看板 Programming 關於我們 聯絡資訊
我看網上說 OpenMP的每個thread 有自己的stack 和 heap 這我能分別在每個thread new object嗎 假設我有 一個 size為n的pointer array 然後我讓每個thread分別 new 物件 這樣可以嗎 ※ 引述《sorryChen (陳揚和)》之銘言: : 自問自答一下 : 確實只要在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: 207.151.227.14
WPC001:效能恐怕會變成笑能... Orz 123.195.36.10 07/27 20:46
WPC001:OpenMP雖然將thread高階化抽象化了... 123.195.36.10 07/27 20:47
WPC001:但本意是為了縮短運算時間, 請還是考慮低階 123.195.36.10 07/27 20:48
WPC001:低階原本的特性吧... Orz 123.195.36.10 07/27 20:48
WPC001:OpenMP不是萬能的... 請勿惡搞後嫌他不好 123.195.36.10 07/27 20:49
sorryChen:感謝經驗分享 207.151.229.9 07/28 00:09
akasan:或許你可以試試Intel TBB118.167.152.182 07/28 13:53