IBM版Mac OS X用C/C++コンパイラ 15
ストーリー by Acanthopanax
さらに速くなるか 部門より
さらに速くなるか 部門より
chiba-f 曰く、 "IBMからMac OS X用C/C++コンパイラのβ版、"XL C V6.0 and XL C++ V6.0 for Mac OS X - Betas"が出ました。それから、Fortranコンパイラのβ版、"XL Fortran V8.1 for Mac OS X - Beta"も同時に公開されました。IBMのページ(C and C++ Compilers - Family Overview)からダウンロードできます。PowerPC G5用ですが、数値計算プログラムでは、G4でも結構良い結果が得られているようです。"
Requirements (スコア:3, 参考になる)
でもこれがインストールできなくて、おかしいな?と思ったら、Developer Toolsのアップデート(やはり昨年12月のもの)が必要でした。gcc の方は12MBくらいでしたが、こっちは301MB。ダウンロードも大変でしたが、インストールに30分かかりました(PBG4, 400MHz)。
基本的には、gcc 3.3のヘッダとライブラリを使うそうです。一部、stdarg.hとかはibm製。
Input/Outputなしで、コンパイルオプションもなにもなしで400次元の行列のかけ算のみをプログラムを作って試してみたら、1割ちょっと早くなってました(コマンドラインでtimeコマンドで計っただけ)。プログラムの中身はmallocとdoubleのかけ算のforループのみ、システム時間が0.04秒から0.1秒に長くなって、ユーザー時間が9秒から8秒になりました。
なんかmathなライブラリやAltiVecを使うプログラムを使って試してみようと思います。
先生、質問です (スコア:1)
よろしければ教えていただきたいところが。
(というか、今現在サイトを見られないのですが)
1.コンパイル時間はGCCより短いか(特にC++の場合)
2.GCCのソースとの互換性はどうか
3.STLのサポート状況は
4.OpenMP [openmp.org]のサポートはあるか
など、気がついた点でもあれば教えていただきたいです。
kaho
Re:先生、質問です (スコア:1)
1. コンパイル時間はあまり変わりません。6.8秒のが7.08秒に。
2. ソースの互換性は高いと思います(変更は全くナシで大丈夫そう)。
3. STLが何か知らないので、なんとも...
4. OpenMPのサポートは、公式には当然ないと思います。
ただ、gccのライブラリを使うくらいだから、OpenMPも普通に使えるんじゃないか、と思います。導入してデメリットはないと思いますが、逆にメリットを享受するには、しばらく仕事の片手間に遊んでみないといけないなぁ、と思ってます。
Re:先生、質問です (スコア:1)
GCCの気に入らないところはC++のプリコンパイルヘッダをサポートして
いないことでコンパイル時間がかかることなので、G5でない現在乗り換
えるほどではないかなあ、というところです。
STLはvectorとかmapとかのC++の機能なのですが、テンプレート回りは
各コンパイラで実装がかなり違う(違った?)ところなので気になるの
です。が、ライブラリを共有できるならば速度が必要な部分だけIBMの
コンパイラを使うという手もありますね。
OpenMPはGCCには標準のライブラリが用意されていないはずなので、
ちょっと後で自分で調べてみます。
#早く来い来いG5・・・・
kaho
Re:Requirements (スコア:1)
が・・・C++は使えないと考えた方がいいようですね。
名前空間のサポートやstringはよくても、iostreamやcomplexヘッダをインクルード
しただけでコンパイラが落ちてしまいました。
ソース互換性のところまで検討していませんが、gccとのオプションの共通性もあま
りないようだし、C++の人間でCには戻れない私にはしばらく実用性が低そうです。
kaho
Re:Requirements (スコア:1, 興味深い)
make clean相当の作業をしてからコンパイルしなおしてみたら、どうなるでしょうか。
Re:Requirements (スコア:1)
たしかにオブジェクトファイルは作成されていたのでリンカの問題
だと思います。
ただ単一のファイルからa.outを作成しようとしただけなのでオブ
ジェクトファイルを混ぜたせいではないと思っています。
私の設定や環境の問題である可能性は高いですが、リリースバージョ
ンになったらまた試してみます。
kaho
これって (スコア:0)
まあgccと互換だとか高速になるだとかあるけど
とりあえず俺みたいなホビープログラマには関係なさそうな。
Motorolaは (スコア:0)
速くする手段を知らないのならパソコンのCPUなんか作っても仕方ないんじゃぁ。
Intel真似てAltiVecでお茶を濁したりするのもやめて、その開発コストとCPUを占めるスペースを別に使って欲しかった。
# 素人発言なので…というかID取るのが面倒なのでAC
もちろん (スコア:1)
Re:Motorolaは (スコア:1)
そもそも年間数百万個程度しか出ない(予定?)のCPUをHPC向けに作るって成功した企業はどこにも無いでしょう。
数千万個出ているAMDですら赤字っすよ、赤字。
という訳でワタシはモトローラ頑張っているとは思いますケドネ。
-----------------
#そんなワタシはOS/2ユーザー:-)
Re:Motorolaは (スコア:1)
AltiVECは、AppleとIBMとMotorolaの共同開発のはずだし、Intelは似たようなもの
(ベクトルユニット)さえ作ってないと思いますが?AltiVECは大きな長所には違いないし、
必要だからPowerPC 970にも搭載されている訳で...。
Re:Motorolaは (スコア:0)
これ、本当ですか?
確かに昔のgccのppc最適化はとんでもなくひどかったけど、
Appleのコードが入ってからはそれなりの速さになりましたよ。
もともとMrC(Apple) >> MCC(Motorola) > CodeWarrior
という感じで、CodeWar
Re:Motorolaは (スコア:0)
Re:Motorolaは (スコア:1)
PowerPCに最適化された数学ライブラリを
配布していましたね。
MkLinux/LinuxPPC上で使わせていただいていました。
PowerPC601,603とかの時代でした。