作者sorryChen (陳揚和)
看板Programming
標題Re: 有人在用openMP嗎
時間Thu Jul 23 11:54:58 2009
自問自答一下
確實只要在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