Re: [問題]core 2 Duo電腦 讓一個程式跑兩個cpu
※ 引述《yllan (藍永倫)》之銘言:
: ※ 引述《astroodie (宇宙)》之銘言:
: : 我有一個單純的程式(fortran的)
: : 裡面有非常多的迴圈(流體力學的程式)
: : ex.
: : do t=0,10,1d-4
: : do k=1,8
: : do j=1,1024
: : do i=1,1024
: : ...
: : 為了提昇效率
: : 有沒有辦法簡單的讓我的Core 2 duo mac book pro
: : 的兩顆cpu一起跑?
: : (因為我發現只有一顆跑100% 另一顆在發呆, 但神奇的是偶爾還會交換)
: : 還是只能靠MPI?
: : 又如果只能靠MPI, 有沒有人能推薦一些關於入門的網頁或文獻(for mac)
: : 謝謝 : )
: 你的計算有 data dependency 嗎?拿你的例子來說
有, 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, 還是很謝謝你 : )
--
我原本以為(或幻想)對一台機器可能會有內建平行計算的技術XD
只要按個扭開啟某個功能就可以平行計算了 XD
: do t=0,10,1d-4
: do k=1,8
: do j=1,1024
: do i=1,1024
: ...
: 可不可以拆成兩個程式分別計算一半?
: do t=0,5,1d-4 do t=5,10,1d-4
: do k=1,8 do k=1,8
: .... ....
: 或者是
: do t=0,10,1d-4 do t=0,10,1d-4
: do k=1,4 do k=5,8
: 可以的話,在你機器上(才一台機器,dual core CPU XD)最簡單的方法就是
: 拆成兩個程式同時跑再把結果手動 merge 起來吧!
: 如果不行的話... 就算用 MPI 也是沒救。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 128.174.51.218
推
12/06 08:56, , 1F
12/06 08:56, 1F
→
12/06 08:56, , 2F
12/06 08:56, 2F
→
12/06 08:57, , 3F
12/06 08:57, 3F
→
12/06 08:59, , 4F
12/06 08:59, 4F
→
12/06 10:05, , 5F
12/06 10:05, 5F
推
12/06 11:01, , 6F
12/06 11:01, 6F
討論串 (同標題文章)
MacDev 近期熱門文章
PTT數位生活區 即時熱門文章