• ベストアンサー

OpenMP 並列化処理について

#progma parallel for private(j) reduction(+;k) for(i=1;i<x;i++) { for(j=1;j<x;j++) { if(m<n) { k++; } } } このプログラムでreductionって何で必要なのですか?本を読んでもreductionっていまいちわかりません。 また、スレッドって増やしすぎると実行時間が逆に遅くなってしまいますよね、これはなんででしょうか? どなたか教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • asuca
  • ベストアンサー率47% (11786/24626)
回答No.1

参考URLをみても参考になりませんか? >スレッドって増やしすぎると実行時間が逆に遅くなってしまいますよね、これはなんででしょうか? スレッドを増やしたときは並列化するときにはそれぞれオーバーヘッドがかかりますのでそれと一つのスレッドの処理速度が見合わなければ遅くなります。

参考URL:
http://wwweic.eri.u-tokyo.ac.jp/NEWSLETTER/19EICnewsletter/hiyama5.htm

関連するQ&A

専門家に質問してみよう