パスワードを忘れた? アカウント作成
493747 journal

kahoの日記: GCC4.2

日記 by kaho

GCC4.2をビルドしてみた.
目的はもちろんOpenMPだったのだが,当初OpenMP用のプログラムが全く並列処理されず悩んでしまった.
結果,リンク時に-fopenmpをつけないといけないということに気がついてようやく並列処理できるようになった.
パフォーマンスを比較しようと以前使っていたOmniCCをインストールしようとしたのだが,こちらは最終リリースがずいぶん古いため,最近のjavacではビルドさえ出来なかった.
まあこっちは立ち上げに時間がかかったりプログラムがクラッシュしてもプロセスがゾンビ化するという問題があったのでもう使うことはないと思うが,バグリポートを送ったりして以前は親しみがあっただけに放置されていて寂しいし,GOMPとのベンチマーク競争もできないので残念だ.

とりあえずちょっと意地悪なテストからしてみた.
100x100の行列A, Bに対してA = A x Bを1000回繰り返すというもの.2CPUのSMPではこのようなテストは通常キャッシュのコヒーレンシが問題となって並列化の粒度が低いと並列化した方がパフォーマンスが落ちる.
# Time(sec)
1 8.0
2 13.0
3 11.6
4 13.1
5 12.4
6 13.1
と予想通りになったが,スレッド数を変えてもあまり落ちていかない.
逆に演算部分を重くして並列化を効きやすくするとパフォーマンスが上がったが,こちらもCPU数以上にスレッド数を多くしても遅くなりにくい.
これはなかなかよさそうだ.
そのうちXeon (Pen4 with HT) x 2のシステムで(ただしcygwinだが)どうなるか見てみたいと思う.

また,MacにはなかったGCJも目的だったのだが,libmが衝突すると文句を言われる.あんなに時間かけてビルドしたのに・・

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

アレゲは一日にしてならず -- アレゲ見習い

読み込み中...