次のような問題については、実際にFortranをリストの最上位に置くという要求があります。
a)数値
計算b)並列化可能
c)csの研究の外で(プロのプログラマーではないエンジニアに)教えられた事実上の言語です。
d)業界グレードのコンパイラの数で信じられないほどの(!)業界支援があり、ベンダーのいずれもそのブランチを放棄する兆候をほとんど示していません。インテルの代表者の1人は、Fortran製品の売り上げが開発ツールで他のどの製品よりも高いことを明らかにしました。
また、信じられないほど簡単に習得できる言語でもあります。研究助手をスピードアップするのに時間がかかることには同意しません。私の最初の教科書には、30ページ(?)のまばらな印刷テキストしかありませんでした。これは、10個のキーワードを学習した後、中規模のプログラムを作成できる言語です。デフォルトのWordテキストで書かれた30ページは、ほとんどのユーザーにとってより包括的な「Fortranマニュアル」になると思います。
CUDAに興味がある場合は、それをサポートするPortland Groupのコンパイラを確認することをお勧めします。私は細かい詳細に精通していませんが、人々は一般的に賞賛とそれについて話します。
それとは別に、プログラムを並列化するために、OpenMP、MPI、そして今度は(そして待望の)インテル®コンパイラーが最近実装したコアレイを利用できます。言葉を無駄にしないために、Fortranにはプログラムを並列化するための非常に優れた「ライブラリ」のガンマがあります。
業界標準の数値ライブラリーが何よりも開発されており、関数/ルーチンポートフォリオで多かれ少なかれ他の言語が使用されています。
とはいえ、私は(最初に書かれた時期に応じて)F77コードまたはそれより古いものをお勧めします。時間を経て部分的に新しい方言に書き直します-可能な場合は、F2003機能で少なくともF90。そのトピックに関する論文/論文は、最近発表された(先に中型PDFファイル)。適切に実行すれば、複数のプラットフォーム間での移植性を確保できるだけでなく、将来のメンテナンスも容易になります。
ps「将来のメンテナンス」に関する限り、私が時々言及したいだけの逸話。私の論文を書いている間、私は私の執筆者からのコードを再利用しました。エラーは1つだけでコンパイルされました。コピーペーストの間違いにより、最後にステートメントがありません:)
@DaveMateer(コメントへの返信) -少し失礼かもしれないコメントを次のように作成しますが、間違ったやり方をしないでください。
あなたはこの「問題」に間違った方法で取り組んでいるように思えます。いくつかの短い点で私が意味すること(ここでは非常に遅いので、読みやすい(わかりやすいだけでなく)文を作成できるので、午後10時以降になります。)
a)余分なコーディング時間を最小限にしようとしていると言いましたが、数値表現に特化した言語からカラフルな言語の選択肢への書き換えを検討しています。私の表現をご容赦ください。
- そのうちのいくつかは、特に多次元配列をサポートしていません
- それらのほとんどは、重い数値処理には適していません(HaskellとHadoopの並列処理機能については、私は何も知りませんが...それらのサークルで言及されたことさえ聞いたことがない)
- 試みられた可能性がありますが、離散問題の言語であるFortranから関数型言語への書き直しを聞いたことはありません
- 最近、comp.lang.fortran(Googleグループで検索してみてください)で、「クラウド内」の科学コンピューティングの側面について議論がありました(
やる気をそがれたくはありませんが、公平に言えば、誰も本当にほとんどの人は可能性が存在することに同意しましたが、今のところ物事がうまくいく方法に満足しています。)多くの問題は、そのような並列化にも適していません。
b)そのような書き換えのコストはいくらですか?人/時間。
c) -コンパイルするライブラリの正しいバージョン...-はどの言語でも問題であり、回避することはできませんが、それを見てください。
d) Python(本当に素晴らしい言語)がいくつかの場所で並列アプリケーションで使用されていると聞いたことがありますが、その市場への浸透はまだ増加していないようで、その性質が絶えず変化しているため、長期プロジェクト(後方互換性を考えてください)。一部の人々は、これを「接着」言語として非常に気に入っています。
うーん、もし私が他に何かを考えるなら、明日それを追加します。おやすみなさい...