| 3 | 1/1 | 返回列表 |
| 查看: 1140 | 回復(fù): 2 | |||
choly8新蟲 (初入文壇)
|
[求助]
關(guān)于fortran程序進(jìn)行并行計(jì)算的問題
|
之前照著論文的公式和模板,寫了一個(gè)3d phase-field的fortran程序,由于需要計(jì)算的網(wǎng)格數(shù)量多,因此,計(jì)算速度十分緩慢,按照網(wǎng)上的意思,openmp并行不僅對(duì)程序修改的少,而且加速效果好,于是我就在原先的fortran程序中加入了openmp并行。可是,我發(fā)現(xiàn)隨著線程數(shù)threads的增加,我的計(jì)算速度反而變得越來越慢,所以想請(qǐng)教一下大佬們問題可能出在哪?個(gè)人感覺的原因有如下兩點(diǎn)(1.我的程序中使用了大量的離散和差分,并且由于矩陣占據(jù)內(nèi)存,因此對(duì)于差分這樣的中間變量并沒有使用矩陣進(jìn)行存儲(chǔ),而是每次循環(huán)進(jìn)行刷新,這樣會(huì)不會(huì)導(dǎo)致我的程序不適合Openmp并行呢? 2.在使用opnemp并行和串行的比較時(shí),為了能更好的比較兩者的結(jié)果,我的網(wǎng)格取的比較小,目前我的網(wǎng)格數(shù)量大概在100*100*100左右,這樣是不是不利于Openmp進(jìn)行并行)。 除此之外,最最最主要的就是想請(qǐng)教下各位大佬們,對(duì)于上述的程序可以通過怎樣的方式進(jìn)行加速(MPI? GPU?) 謝謝大家了 |
新蟲 (正式寫手)
|
OpenMP適合于一臺(tái)電腦,共享內(nèi)存式的并行,當(dāng)你開的進(jìn)程數(shù)大于電腦本身的可以的進(jìn)程數(shù)時(shí)(一般是CPU核數(shù)x2),就起不到加速作用了。MPI一般用于集群的并行計(jì)算,如果你有這個(gè)條件可以集群,此外MPI也可以用于單機(jī)的并行,但是由于進(jìn)程間通信比較耗時(shí)所以效果可能不如OpenMP。注:我剛開始看一些資料,沒有實(shí)踐多少,僅供參考 發(fā)自小木蟲IOS客戶端 |
新蟲 (著名寫手)
| 3 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|