せっかく苦労して自前ビルドしたGCC 4.5なので、OpenMPを試してみました。
自前ビルドの手順は以下の記事を参考にしてください。
GCC 4.5のビルド
GCC 4.5.2リリース
サンプルプログラムは、以下のページのものを使用しました。
http://en.wikipedia.org/wiki/OpenMP
・C
ソースコード: helloworld.c
以下のようにコンパイルします。
gcc -fopenmp helloworld.c -static
または、
gcc -fopenmp helloworld.c -lgomp -lpthread
・C++
ソースコード: helloworld.cpp
以下のようにコンパイルします。
g++ -fopenmp helloworld.cpp -static
または、
g++ -fopenmp helloworld.cpp -lgomp -lpthread
a.exe ができていれば成功です。
実行すると、こんな感じになります。
Hello World from thread 1
Hello World from thread 0
There are 2 threads
CPUがAthlon X2なので、コア数を自動で取得して2並列になっています。
いろいろ使い道がありそうですが、詳しいことはよくわかりません。
GCCのバイナリを配布している、KomisarさんとかTDMさんのものでOpenMPが使えるかどうかは試していませんので、あしからず。
2011/01/08 追記
本日付の、Komisarさんの所の最新版はGCC 4.5.2で、OpenMPは使えませんでした。
http://komisar.gin.by/mingw/
TDMさんの所の最新版はGCC 4.5.1で、一応OpenMPが使えました。
http://tdm-gcc.tdragon.net/download
2011年01月05日
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/42395744
※言及リンクのないトラックバックは受信されません。
この記事へのトラックバック
http://blog.sakura.ne.jp/tb/42395744
※言及リンクのないトラックバックは受信されません。
この記事へのトラックバック