2011-08-05 日記 diary 神戸五日目 OpenMP と、MPI + OpenMP のハイブリッドな並列化について とりあえずFORTRANでの解説だったので、該当箇所のC言語版を探したり Java で、CPUコアで並列させた場合と、OpenMP(C言語とか)で並列で処理させたとき、なにが違うんだろう 実装コスト? 処理速度はCの方が速いと思うけど、やりたいことが割と簡単にできるならJavaでもいいのではないか、という話も(雑談レベル) (先輩の発言。私はJavaに詳しくない) 並行(擬似並列)ではなくて、コアで並列させたときの話 OpenMP でfor文の中の処理を単純にコア数で分割したとき、仕事が早く終わった時の task stealing とかは考慮されているんだろうか C# 4.0 にも Parallel とか入りましたね ベンチマークの比較などを見ると、プログラミングを頑張るよりも、時間が経つと勝手に計算機が速くなている(ムーアの法則)効果の方が強いんじゃないかと感じた(半分冗談だけど、半分本当。すごい勢いで最新のスパコンのオワコン化が進むようである) 今回、超並列プログラミングを学んで、CPUや計算機自体のアーキテクチャなどをよく考えてプログラミングをすることが大切だなと感じた スパコンに限っては、そのシステム専用のコンパイラが用意(チューニング)されるくらいだし グローバル変数を直接参照するとパフォーマンスが落ちるが、一度ローカル変数に入れるとパフォーマンスが上がるというのもおもしろい(距離の問題なんだろうけど) お金のかからないチャレンジ、一応進展があった