fc2ブログ
MacOSXのインテルコンパイラでOpenMP
折角たくさんコアがあるけど、並列プログラミングは面倒だという方に指示されているのかどうか解りませんが、OpenMPを使ったときのメモを。

#ifdef _OPENMP
#pragma omp parallel
#endif
 for( int i = 0; i < permu_cnt; ++i){
...
などとすると、マルチコア化されるという魔法のような話です。
スレッド数は環境変数OMP_NUM_THREADSで設定できます。GNU g++は4.2からOpenMPに正式対応したということですが、手元にIntel C++ Compiler11.0があったので、これでコンパイルしました。
言われたとおり、
-openmp
ってつけたらコンパイルは出来たのに、実行すると、
dyld: Library not loaded: libiomp5.dylib
Referenced from: /Users/***呼び出し元のバイナリ***
Reason: image not found
Trace/BPT trap
というエラーが・・・
/opt/intel/Compiler/11.0/056/lib
に、libiomp5.dylibがあったので、LD_LIBRARY_PATHに追加すればいいのか?と思ってやってみるも失敗。
あり?と少し悩みましたが、iccのコンパイルオプションに、
-static-intel
を追加すればOKです。
なんか、とりあえずマルチスレッドで動いてます。8コアMacProなので、5コアくらい使って5倍になったらいいかなというところです。


スポンサーサイト



【2009/11/25 20:12】 | C++ | トラックバック(0) | コメント(0) | page top↑
<<Gmailは添付ファイルの中身も検索している? | ホーム | PyCXXの簡単な例>>
コメント
コメントの投稿














管理者にだけ表示を許可する

トラックバック
トラックバックURL
→http://tanopy.blog79.fc2.com/tb.php/43-e453fc94
この記事にトラックバックする(FC2ブログユーザー)
| ホーム |