[問題] openMP不適合跑大量的資料?
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 )
( 未必需要依照此格式,文章條理清楚即可 )
遇到的問題: (題意請描述清楚)
由於研究的需要,最近在跑FDTD的數值方法,
想要用openMP來加速計算的速度,
在模擬區域小的時候都還有不錯的效果,
可是一但模擬區域大於一定的範圍後,openMP的效果就不復存在,
以下是我模擬程式執行所需的時間(ms):
128*128 256*256 512*512 1024*1024 2048*2048
1-core 72 505 2160 8340 32862
4-cores 40 175 1960 7800 30931
用openMP的部分,雖然全部都有跑滿4個核心,
但是在模擬區域大於512*512以後效果就跟單核心的幾乎沒有兩樣了,
我給予的解釋是:CPU的cache用完了,不過真的是這樣嗎?
不知道各位先進有對於這種情況有沒有什麼看法,謝謝指導。
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
VC++, Windows XP
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.171.37
→
02/27 18:03, , 1F
02/27 18:03, 1F
→
02/27 19:12, , 2F
02/27 19:12, 2F
→
02/28 20:03, , 3F
02/28 20:03, 3F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):