看板 Programming 關於我們 聯絡資訊
自問自答一下 確實只要在counter之前加上 #programa omp critical 但是不幸的是 parallel後的時間 居然是三倍 我想數數的時間很快 parallel後的要併行的還要處理critical region.. 消耗實在太大了.. 所以反而浪費時間 ※ 引述《sorryChen (陳揚和)》之銘言: : 用OpenMP 來平行計算 而且使用共同的記憶體 : 常常只要在for loop前加小小的一行 就可以併行 : 有人知道他的critical region 要怎麼標明嗎 : 我的實際問題是我有一個字串 (DNA actually) 我想算在上面固定長度的子字串 : 的各種pattern出現幾次 (比如說AAA AAC AAG.... 幾種pattern) : 由於counter 是共用的 : 那就在counter[]++前寫#pragma omp critical.. : 這樣可能 也快不到哪去 是嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 128.125.87.33
akasan:你應該要個別計錄完最後再合併結果到118.168.189.200 07/23 17:51
akasan:counter後會好很多 而不應該在計算當中去同118.168.189.200 07/23 17:52
akasan:步化118.168.189.200 07/23 17:52
ericyu:counter++ 這種可以用 atomic 試試看 140.112.31.3 07/23 21:59
sorryChen:但我的counter很多很大 64M個counters 128.125.87.33 07/24 12:38
sorryChen:所以分開也不是好方法.. 128.125.87.33 07/24 12:39
※ 編輯: sorryChen 來自: 128.125.87.33 (07/24 12:52)
sorryChen:atomic確實還不錯 16個cpu快5倍 128.125.87.33 07/24 13:16