0

さて、私はかなり長い間この質問を自問してきました。

GNU Fortran コンパイラ ( gfortran) を使い始めて、とても満足しました。しかしその後、Intel Fortran コンパイラ ( ifort) の方が Intel プロセッサ向けに最適化されているため (したがって、Intel の市場シェアが大きいため、今日のほとんどのコンピューター向けに最適化されているため) 優れていると聞くようになりました。その後、私は を使い始めましifortたが、真実は、いくつかのエラーを検出しないため、完全に満足していないということですgfortran(つまり、質問:「参照の受け渡しが行列の値を変更しています」 )。

gfortran他にも Fortran コンパイラがあるのは事実ですが、実は私はと以外は使っていませんifort

そこでお聞きしたいのですが、それぞれの長所と短所は何ですか? 最適化が重要でない場合、どれが最適ですか?

4

1 に答える 1

3

私の意見では、使い慣れた標準に固執し、この標準に準拠するコードを記述することが最善です。次に、コンパイラの選択は、その標準のサポートによって決定されます。

以下は、 2003および2008規格のコンパイラ サポートの広範なリストです。

デバッグメッセージが好きだったので、私自身g95をよく使いました。現在、私は一般的に Fortran 2008gfortranの機能を使用していますifortg95Fortran 2003 および 2008 に対する のサポートはかなり制限されています。

私は通常、両方のコンパイラとすべての警告を有効にしてコードをコンパイルしますが、コンパイラの 1 つが見落としているエラーに驚くことがよくあります。コンパイルされたコードのパフォーマンスに関しては、違いに気づきませんでした (バンドルされている数学ライブラリを除く)。

ほとんどの市販のコンパイラには、非標準の拡張機能OpenACC(例: CrayPGI) または特別な機能 (例PGI CUDA Fortran) やバンドル ライブラリ (例Intel MKL) があります。これらもあなたの選択に影響を与える可能性があります。一部のハードウェアでは、特別なコンパイラ (Crayコンパイラなど) が必要な場合や、その恩恵を受ける場合があります。

編集:さまざまなコンパイラとマシンのベンチマーク結果を次に示します。

于 2013-10-06T16:16:02.317 に答える