[問題] 平行化與陣列
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
C
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
pthread
原po正在把一個C語言的程式改成平行化的版本 利用 pthread
原po將程式原使用的許多變數改成陣列
如
int a --> int* a
a = 1 --> a[thread] = 1
陣列的宣告大小則視使用者自訂的 thread 數
並沒有改變到程式的演算法
但當原po執行平行化版本,使用一個 thread 時
執行的時間卻為原本程式的四倍!
原本版本花費約為15秒的時間 , 1 thread 平行化版本執行時間卻為 ~60秒
原po有另外寫一個小程式用foor loop累加去測試陣列和變數的讀寫時間的差異,
但發現兩者讀寫時間的差異並不大,陣列甚至比變數讀寫更為快速
想請問各位版友可否想出問題是出在哪裡
由於程式碼超過 10,000行 所以就不貼上
很感謝大家的幫忙
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.251.163.49
推
06/01 23:33, , 1F
06/01 23:33, 1F
→
06/01 23:35, , 2F
06/01 23:35, 2F
→
06/02 00:19, , 3F
06/02 00:19, 3F
→
06/02 00:35, , 4F
06/02 00:35, 4F
→
06/02 01:05, , 5F
06/02 01:05, 5F
→
06/02 01:45, , 6F
06/02 01:45, 6F
推
06/02 13:19, , 7F
06/02 13:19, 7F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章