| 24小時(shí)熱門(mén)版塊排行榜 |
| 查看: 2687 | 回復(fù): 22 | |||
| 當(dāng)前主題已經(jīng)存檔。 | |||
[交流]
【原創(chuàng)】科學(xué)軟件編程:現(xiàn)在該學(xué)什么?
|
|||
|
先介紹兩本書(shū)。 第一本,是胡江堂主編的《我是一只IT小小鳥(niǎo)》。 這本書(shū)其實(shí)是一群IT業(yè)的年輕人對(duì)自己求學(xué)和找工作的經(jīng)歷回顧與總結(jié),對(duì)于在讀的、剛畢業(yè)的大學(xué)生和研究生,都很有參考價(jià)值。雖然說(shuō)作者都是IT業(yè)的,對(duì)其他行業(yè)其實(shí)也類(lèi)似。真希望能有一本《我是一只化學(xué)小鳳凰》問(wèn)世。 第二本,是周偉明的《多任務(wù)下的數(shù)據(jù)結(jié)構(gòu)與算法》。 當(dāng)前,國(guó)際形勢(shì)是這個(gè)樣子的:硬件迅速發(fā)展、軟件紛繁復(fù)雜,濕件亟待開(kāi)發(fā)。多核、多任務(wù)、多平臺(tái)......云計(jì)算、云存儲(chǔ)、云服務(wù)......云山霧罩。對(duì)計(jì)算機(jī)編程感興趣的大學(xué)生,應(yīng)該學(xué)些什么,才能跟上這個(gè)國(guó)際形勢(shì)呢? 我的建議是:夯實(shí)C基礎(chǔ)、緊跟多任務(wù)。 (1)夯實(shí)C基礎(chǔ) 花里胡哨的編程語(yǔ)言種類(lèi)實(shí)在太多了。不過(guò),拐角遇到C,大家來(lái)排隊(duì)。沒(méi)有哪種語(yǔ)言能與C來(lái)抗衡。因此,C語(yǔ)言的基礎(chǔ)是絕對(duì)重要的。注意,我說(shuō)的是C語(yǔ)言,不是C++,不是C#,更不是Visual C++(這是開(kāi)發(fā)環(huán)境,不是編程語(yǔ)言)。 (2)緊跟多任務(wù) 反正目前的硬件再高級(jí),也逃不過(guò)老馮模式的瓶頸。因此,多核、多任務(wù)是你有生之年軟件運(yùn)行的主要方式,也是你編程技術(shù)的發(fā)展方向。關(guān)于這一點(diǎn),可以看看韓憲平的博客(如“理解多內(nèi)核、多進(jìn)程和多處理”等)。 下面轉(zhuǎn)載的,是韓憲平的《并行思考!并行編程!事關(guān)國(guó)力》一文。 Intel公司的大師James Reinders告誡程序員改變思維方式,轉(zhuǎn)向并行思考,掌握并行編程技術(shù),他在一次演講中提到實(shí)現(xiàn)并行編程規(guī)則: think parallel并行思考 program using abstraction使用抽象方法 program tasks,not threads使用多任務(wù)而不是多線(xiàn)程(韓憲平注:程序員比較熟悉多線(xiàn)程,多線(xiàn)程共享同一進(jìn)程的資源更容易互相侵犯) design with the option to turn off concurrency設(shè)計(jì)程序的時(shí)候關(guān)掉線(xiàn)程同步 avoid locks when possible盡可能避免使用鎖機(jī)制 use tools and libraries designed to help with concurrency,use scalable memory使用任務(wù)同步的工具和函數(shù)庫(kù),使用靈活伸縮內(nèi)存(?) design to scale through increased workloads通過(guò)增加工作負(fù)載實(shí)現(xiàn)靈活性 我推測(cè),跟摩爾定律(Moor Law)共軛的(conjugate)應(yīng)該有一條“軟件危機(jī)定律”,意思說(shuō):計(jì)算機(jī)硬件總是革命性的力量,而軟件技術(shù)和行業(yè)總是落后的保守的力量。 一般來(lái)說(shuō),像Intel這樣的芯片廠(chǎng)商技術(shù)主管的忠告是不能忽視的。Intel說(shuō),發(fā)布多核處理器已經(jīng)有五個(gè)年頭了,現(xiàn)在雙核成了PC主流,milticore是四核、六核的也漸成大勢(shì),many-core就是八核以上今年或者明年就要發(fā)布,但是市場(chǎng)還只把多核當(dāng)成時(shí)尚而遠(yuǎn)遠(yuǎn)沒(méi)有實(shí)用,還是“銀樣蠟槍頭中看不中用”,因?yàn)槌绦騿T多數(shù)還不會(huì)并行編程讓多核的功能徹底地發(fā)揮出來(lái),終端用戶(hù)并不知道仍然是一個(gè)核心在工作還是所有的核心都在工作。 我做過(guò)一個(gè)實(shí)驗(yàn),使用Python的并行編程技術(shù)寫(xiě)的一個(gè)科學(xué)計(jì)算小程序,顯式地看到我的雙核計(jì)算機(jī)上的兩個(gè)核心在工作,指出每個(gè)核心各自完成了什么工作。 在美國(guó)軍方和政府有“戰(zhàn)略計(jì)算(Strategic Computing)”和“高級(jí)模擬計(jì)算(Advanced Simulation Computing)”范疇和規(guī)劃,用在武器設(shè)計(jì)、臨床基因組學(xué)、天氣預(yù)報(bào)等方面,就是使用多核處理器、多核多處理器和多核處理器多計(jì)算機(jī)系統(tǒng)。 并行思考就是一種系統(tǒng)思維,所以我說(shuō): 并行思考!并行編程!事關(guān)國(guó)力! [ Last edited by 余澤成 on 2010-1-8 at 15:16 ] |

版主 (知名作家)


金蟲(chóng) (正式寫(xiě)手)

金蟲(chóng) (職業(yè)作家)

榮譽(yù)版主 (著名寫(xiě)手)
將軍

木蟲(chóng) (正式寫(xiě)手)
Wave No Move

金蟲(chóng) (職業(yè)作家)
︿_︿簡(jiǎn)單即為美
金蟲(chóng) (正式寫(xiě)手)

| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 085404 22408 315分 +3 | zhuangyan123 2026-03-31 | 3/150 |
|
|---|---|---|---|---|
|
[考研] 284求調(diào)劑 +3 | 小熊~~ 2026-03-31 | 3/150 |
|
|
[考研] 材料求調(diào)劑 一志愿哈工大總分298分,前三科223分 +10 | dongfang59 2026-03-27 | 10/500 |
|
|
[考研] 抱歉 +4 | 田洪有 2026-03-30 | 4/200 |
|
|
[考研] 277跪求調(diào)劑 +8 | 1915668 2026-03-27 | 12/600 |
|
|
[考研] 一志愿北京化工大學(xué)材料與化工(085600)296求調(diào)劑 +25 | 稻妻小編 2026-03-26 | 25/1250 |
|
|
[考研] 0703化學(xué)321分求調(diào)劑 +10 | 三dd. 2026-03-30 | 11/550 |
|
|
[考研] 289求調(diào)劑 +16 | 新時(shí)代材料 2026-03-27 | 16/800 |
|
|
[考研] 南京大學(xué)化學(xué)調(diào)劑 +10 | 景隨風(fēng) 2026-03-29 | 15/750 |
|
|
[考研] 317求調(diào)劑 +10 | 蛋黃咸肉粽 2026-03-26 | 10/500 |
|
|
[考研] 一志愿211,335分,0856,求調(diào)劑院校和導(dǎo)師 +7 | 傾____蕭 2026-03-27 | 8/400 |
|
|
[考研] 289求調(diào)劑 +5 | BrightLL 2026-03-29 | 5/250 |
|
|
[考研] 305求調(diào)劑 +8 | RuiFairyrui 2026-03-28 | 8/400 |
|
|
[考研] 11408軟件工程求調(diào)劑 +3 | Qiu學(xué)ing 2026-03-28 | 3/150 |
|
|
[考研] 299求調(diào)劑 +7 | 嗯嗯嗯嗯2 2026-03-27 | 7/350 |
|
|
[考研] 調(diào)劑 +3 | 好好讀書(shū)。 2026-03-28 | 3/150 |
|
|
[考研] 315分求調(diào)劑 +7 | 26考研上岸版26 2026-03-26 | 7/350 |
|
|
[考研] 265求調(diào)劑11408 +3 | 劉小鹿lu 2026-03-27 | 3/150 |
|
|
[考研] 08開(kāi)頭275求調(diào)劑 +4 | 拉誰(shuí)不重要 2026-03-26 | 4/200 |
|
|
[考研] 348求調(diào)劑 +4 | 小懶蟲(chóng)不懶了 2026-03-27 | 5/250 |
|