Re: [問題]core 2 Duo電腦 讓一個程式跑兩個cpu

看板MacDev作者 (藍永倫)時間17年前 (2007/12/06 11:00), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串5/7 (看更多)
※ 引述《astroodie (宇宙)》之銘言: : 有, i,j,k 可以想像成 三維空間的x,y,z : 而t 是時間 : 空間中每個格子(u(i,j,k))的流體要怎麼流 : 必須要知道旁邊的格子(u(i+-1,j+-1,k+-1))的狀態 : 而下一個時間點(t=t+dt) 必須知道現在現在(t=t)的狀態 : 所以拆開的話 還是要在交界處溝通(不過只用溝通最邊邊的狀態) : 而時間會切隔成數萬份或更多 所以手動merge是不可行的 : 我目前知道的方法是mpi : (不過還在學怎麼設定環境和使用) : 但也如你所說得 我才一台機器 用mpi是殺雞用牛刀啊 : anyway, 還是很謝謝你 : ) 照你的例子來看,如果只用知道四周上下左右前後共 26 個格子的話, 平行化的潛力很大!用 MPI 好像不錯,不過如果時間切得很細,一直要 溝通邊界也蠻傷的。(特別是空間很大的時候) 在這種 case 底下我建議開 multi-thread 來跑,對空間分割,每個 thread 負責一半空間,這樣直接對同一份資料操作就不用一直溝通來 溝通去。只要注意每個 iteration 結束後都要停下來確認另一個 iteration 也結束才能再繼續。(這點 MPI 也一樣吧!) (我唸書的時候曾經念過,pthread 是 userland library,OS 沒辦法 把他分到兩個 CPU 上。不過剛剛在 OSX 測了一下 pthread 是沒問題的) 不過我只會 C 語言的語法,Fortran 不知道怎麼用 pthread... 召喚 mj! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.112.176.150

12/06 12:32, , 1F
主要還是要先 review 他的 algorithm 才行
12/06 12:32, 1F
文章代碼(AID): #17LsNf5f (MacDev)
討論串 (同標題文章)
文章代碼(AID): #17LsNf5f (MacDev)