高性能并行計(jì)算 學(xué)習(xí)C 怎么進(jìn)階?
學(xué)習(xí)C 怎么進(jìn)階?C 是目前編程語(yǔ)言中學(xué)習(xí)成本比較高的語(yǔ)言之一,C 在圖形、音視頻處理,通信,游戲,后端服務(wù)方面應(yīng)用還比較廣泛,我認(rèn)為需要C 學(xué)習(xí)進(jìn)階有如下幾個(gè)步驟:1、看一下C 方面的編程
學(xué)習(xí)C 怎么進(jìn)階?
C 是目前編程語(yǔ)言中學(xué)習(xí)成本比較高的語(yǔ)言之一,C 在圖形、音視頻處理,通信,游戲,后端服務(wù)方面應(yīng)用還比較廣泛,我認(rèn)為需要C 學(xué)習(xí)進(jìn)階有如下幾個(gè)步驟:
1、看一下C 方面的編程書(shū)籍
1)《C Primer》,《C 編程思想》這初級(jí)讀本是所有學(xué)習(xí)C 的人必須啃的書(shū),C 的知識(shí)點(diǎn)比較全。
2)《Effective C 》、《MoreEffective C 》、《C 沉思錄》、《Effective STL》這寫(xiě)書(shū)比較經(jīng)典,進(jìn)階必備。
3) 《深度探索C 對(duì)象模型》、《現(xiàn)代C 設(shè)計(jì)》、《泛型編程與STL》這些書(shū)可以深入理解C
技術(shù)書(shū)可以循序漸進(jìn)看,邊學(xué)變練,做項(xiàng)目過(guò)程中越到問(wèn)題可以翻翻這些書(shū),有可能有解決問(wèn)題的思路,項(xiàng)目不忙時(shí),閑下來(lái)時(shí)可以再看看書(shū)。
2、參與C 的項(xiàng)目
邊做項(xiàng)目邊學(xué)習(xí)是成長(zhǎng)最快的方法,因此要想進(jìn)階就必須參與C 的項(xiàng)目,設(shè)計(jì)開(kāi)發(fā)C 的項(xiàng)目。
3、學(xué)習(xí)和參與C 開(kāi)源項(xiàng)目
看看優(yōu)秀的開(kāi)源項(xiàng)目可以開(kāi)闊視野,提高自己
推薦一些優(yōu)秀開(kāi)源C 項(xiàng)目
1)STL,Boost都是開(kāi)源的,可以學(xué)習(xí)一下
2)Libev libev是一個(gè)開(kāi)源的事件驅(qū)動(dòng)庫(kù),基于epoll,kqueue等OS提供的基礎(chǔ)設(shè)施
3)google的grpc, 基于protobuf的開(kāi)源rpc, 支持多種編程語(yǔ)言: https://github.com/grpc/grpc
4)google的protobuf, 非常經(jīng)典, 強(qiáng)烈建議做c 的同學(xué)閱讀源代碼:
https://github.com/google/protobuf
github有大量C 開(kāi)源,可以看一下
4、經(jīng)常總結(jié)
經(jīng)??偨Y(jié),讓經(jīng)驗(yàn)沉淀下來(lái),有條件可以寫(xiě)博客,也經(jīng)??纯磩e人的技術(shù)博客
如何把我的幾臺(tái)電腦聯(lián)起來(lái)做并行計(jì)算?
首先,你要運(yùn)行的軟件,必須本身支持并行計(jì)算機(jī)處理,或者 服務(wù)器群
其次,不同操作系統(tǒng),需要有不同的工具;
1、windows系統(tǒng)下,罕有并行
計(jì)算軟件
,一些CAD、3D軟件有這個(gè)功能,自帶的,這個(gè)時(shí)候只需要超快的局域網(wǎng)即可,也就是說(shuō)網(wǎng)線要好、交換機(jī)要好就夠了;2、Linxu下很多這種軟件,網(wǎng)上一找一大堆,開(kāi)源免費(fèi)的都有,問(wèn)題是你的軟件要能在Linux下運(yùn)行才行,否則沒(méi)意義;
3、Nvdia公司有K20、K40的這種硬件卡,插在多臺(tái)計(jì)算機(jī)上,用
數(shù)據(jù)電纜
互聯(lián),就能組成并行處理計(jì)算機(jī)陣列,或者服務(wù)器群
集陣列,問(wèn)題也是不支持windows系統(tǒng),這種是效果最好的解決方案。買(mǎi)卡時(shí),會(huì)送對(duì)應(yīng)的軟件的。不便宜。