Hi! I’m clsung

Hi! I’m clsung

clsung’s blog site

Hi! I’m clsung RSS Feed
 
 
 
 

openmp tutorials – scheduling

目前會的,就是 在 for loop 中, schedule 設為 dynamic 與 guided 的不同。

從 scheduling 的角度來看,static 好的地方在於在一開始的時候就設定好每個 thread 所要 run 的 iteration;而 dynamic 則是每個 thread 根據 chunk_size 的大小,每次 run 完該 chunk_size 的 iteration 後,再去(跟 OS?)要下一次的 iteration (當剩下的 iteration 小於 chunk_size ,自然就全都是該 thread 了);guided 的話,有個公式可以直接參考

iterations_to_do = max(iterations_not_assigned/omp_get_num_threads(), chunk-size)

也就是愈前面的 thread ,該次要處理的 iteration 數會是最多,之後則約略為指數遞減。

所以,若每個 iteration 所要處理的 resource 差不多,則 guided 會是比較(比 dynamic )好的 scheduling 方法,因為要處理分配 iteration 給 thread 所造成的 overhead 比較小。反之,若每個 iteration 要處理的 resource 是不定量(會變動,你自己也不確定)的,那麼用 dynamic 會比較能達到 load balance 的功能。

當然,dynamic/guided 一般來說都比 static 更能達成 load balance 的效果。

FMI,

Leave a Reply

噗浪:

  • clsung 說 睡眠開始被分段了.. 8 小時 之前
  • clsung 說 今天又是轉進日 2010-03-21
  • clsung 說 來看班傑明... 2010-03-20

分類

Flickr

    clsung. Get yours at bighugelabs.com/flickr

Blogroll

    馬的警總回來了