作者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
1F:→ akasan:你应该要个别计录完最後再合并结果到118.168.189.200 07/23 17:51
2F:→ akasan:counter後会好很多 而不应该在计算当中去同118.168.189.200 07/23 17:52
3F:→ akasan:步化118.168.189.200 07/23 17:52
4F:→ ericyu:counter++ 这种可以用 atomic 试试看 140.112.31.3 07/23 21:59
5F:→ sorryChen:但我的counter很多很大 64M个counters 128.125.87.33 07/24 12:38
6F:→ sorryChen:所以分开也不是好方法.. 128.125.87.33 07/24 12:39
※ 编辑: sorryChen 来自: 128.125.87.33 (07/24 12:52)
7F:→ sorryChen:atomic确实还不错 16个cpu快5倍 128.125.87.33 07/24 13:16