IBM®
本文へジャンプ
    Japan [変更]    ご利用条件
 
 
検索範囲検索:    
    ホーム    製品    サービス & ソリューション    サポート & ダウンロード    マイアカウント    
skip to main content

developerWorks Japan  >  Linux  >

サーバー・クリニック: Fortran、Linux環境でくつろぐ

アプリケーション資産にやさしいLinux

developerWorks
ページオプション

JavaScript を要するドキュメントオプションは表示されません

原文はこちら

原文はこちら


レベル: 中級

Cameron Laird (Cameron@Lairds.com), Vice President, Phaseit, Inc.

2003年 3月 19日

Fortran指向の数多くの開発者が、Linuxに安住の住処 (すみか) を見いだしています。新しい開発や移植作業には、アプリケーション資産に関りのある作業が驚くほどたくさん存在します。中には35年以上経つアプリケーション資産もあります。

皆さんの会社は、古いFortranプログラムを実行するのに必要なハードウェアやソフトウェアにかなりのライセンス料やサポート料金を支払っていませんか。それに、年代物のミニコンで必要とされることの多い特別な電力や空調も。そうしたプログラムはLinuxサーバーに移してみて、これらの費用をどれだけ削減できるか試してみてはいかがでしょうか。アプリケーションの性能や利用価値を高めることにもなります。

Linuxは、また、おそらく皆さんが認識されている以上に、Fortranによる数多くの新開発を受け入れています。Linuxプログラマー同士が言語に関して議論する場合、通常、Java、Python、C++、あるいはC# といった流行の言語に関してです。とすれば、皆さんは、1950年代末に考案されたCobol、Fortran、Lispといった言語を使って数多くの有用なソフトウェアが開発されていることに驚かれるのではないでしょうか。

とくにFortranは、Linuxを安住の住処としてきました。今月の「サーバー・クリニック」では、LinuxにおけるFortranの重要性の意味や、さらに詳しく研究するための方法を簡単に紹介します。


救助に現れたLinux

Fortranを扱うといっても、必ずしも回顧を意味するわけではありません。Fortranに関しては、いろいろな活動がなされています。J3国際委員会によって新しいFortran2000標準案が策定されていますし、コンパイラーの開発には重要な進展がありますし、毎年、新規アプリケーションの開発が数多く着手されています。風聞によれば、Linuxが新しい開発を受け入れる割合は増えているといいます。たとえば、高性能の科学用途のクラスターにFortranとLinuxの組み合わせがよく使われています。科学・技術開発の分野には同じようなカタログがいろいろと出されているのですが、その中のLinux4chemistryというカタログには、Fortranでコーディングされたプログラムが数多く掲載されています。Fortranは、プログラマーが慣れていて、Cよりも高い性能を発揮できるということで、技術系のプログラマーから愛用され続けています。

これに対して、それほど明瞭ではないけれども、おそらくもっと興味深いのが、アプリケーション資産に対するLinuxの役割です。35年間も使われてきたものも含め、Fortranでコーディングされた「馬車馬」のようなプログラムは、大量に蓄積されており、世界中のビジネスや研究室での日々の仕事を支えています。中には、「資産 (legacy)」という言葉から連想されるのはY2Kバブルだけだという分野もありますが、それをはるかに凌駕するものがFortranにはあります。Fortranでコーディングされた何千本ものプログラムが、金融関係の書類を作成し、工場の機械を制御し、実験データを解析し、人事記録を管理し、通信機器の交換処理を行うといったことを含め、そのような毎日の仕事に不可欠な数多くの役割を果たしています。これらのプログラムの多くは、その役割を完璧にこなしており、廃 (すた) れつつあるハードウェアで実行されていること以外、何ら変更を必要としていません。たとえば、ヒューレット・パッカード社がMPEやOpenVMSという製品シリーズを廃止したことは、この何十年かの間これらのミニコンを頼りにしてきたユーザーにとって、深刻な問題となっています。

そこで救いの手として登場するのがLinuxです。サーバー・クラスのLinuxマシンは、信頼性が高く、稼働時間の点でも優れており、異機種混合ネットワークでの相互運用性に関するものなど役に立つシステム・サービスを提供し、高品質のFortranコンパイラーを数多く稼働させることができ、かつ少なくとも他のエンタープライズ対応のシステムと同等のセキュリティーを備えています。銀行やメーカーや政府機関は、多くは「整理統合」という題目の下、旧来のプログラムの多くを黙々とLinuxに移しつつあります。

そのような移住に際して、Linuxサーバーからは、品質と使いやすさに関して高い満足度が得られます。私が直接話を伺った組織では、そうしたプロジェクトは、通常、期待以上に良い結果を生み出しています。ただし、私が直接会って話をした人々は、競争やセキュリティー上の理由、および多くは法的な理由から、誰も「オンレコ」で語ろうとはしません。金融機関やメーカーは、内部作業の詳細を公表しても、リスクがたくさん伴うことはあっても、何のメリットもないと見ています。これとは対照的に、軍事関係のコンピューティングが比較的オープンなのは興味深いところです。たとえば、兵器システムや軍事活動のシミュレーションの多くは、Fortranで書かれていることが知られています。英国防衛省は、F3 Tornadoの分析プログラムをLinuxで稼働させています。

皆さんもこうした資産の移住に従事したり、活動中のFortran開発チームをサポートする担当になることがあるかもしれませんので、以下では、Linux用のFortran資源について把握しておいたほうがよいことを紹介しておきます。





上に戻る


さまざまな標準やツールが用意されている

Michael Metcalfの参考文献のページから始めるとよいでしょう (以下の参考文献参照)。このページには、コンパイラーなどのツールや文献についての最も広範で最新の情報が集められています。

人気のあるLinuxディストリビューションには、通常、GNUプロジェクトのフリーのG77 Fortranコンパイラーが入っています。このコンパイラーは、コマンド・ライン引数を使って、66、77、90、95といった標準およびいくつかの派生的な仕様に準拠してコーディングされたさまざまなタイプのFortranを処理できるようにしています。G77は、性能を犠牲にしながらも柔軟性および移植性の点で優れていますので、洗練された商用コンパイラーと肩を並べても堅調な市場を維持しています。G77は、他の多くのFortranコンパイラーと同様、通常f77という名前の実行ファイルとしてインストールされます。

所有権のあるコンパイラーやツールの中にも、無料で提供されているものが多く存在します。たとえば、インテルは、Linux向けに7.0 Fortranコンパイラーをダウンロード可能な形式で提供しています。このコンパイラーは、素晴らしい性能を示しており、x86とItaniumクラスの両方のLinuxホストには明るい未来が期待されます。というのも、インテルのコンパイラー・グループには、DECやコンパックやHPで名を馳せた技術チームが結集しているからです。

何らかの形式の変換プログラムも何社かから製品化されています。こうしたツールは、たとえば、F77準拠のソース・コードをF95のテキストにマップしたりします。これらのツールは、かつては重要な役割を果たしていましたが、現在のLinuxのFortranユーザーは、そういうものをあまり利用しなくなっています。現在のプロジェクトは、Fortranコンパイラーに修正を加えることで、そうしたニーズに対応しているようです。コマンド・ライン引数では対応しきれないような大きな問題については、多くの場合、専門的な独自仕様の言語拡張が必要となります。そういう問題は、人手による熟練の技を労する変換が必要です。いずれにせよ、自動的なソース変換プログラムは、現在では、限定的な役割しか果たさなくなっています。

今では、それとは別のツールのほうに人気があるようです。AbsoftのPro Fortranなど、対話型開発環境 (IDE) でFortranを扱えるものがいろいろと現れてきています。プロファイル作成も、成熟したテクノロジーとなっており、主として性能を重視する人々から重宝されています。





上に戻る


謝辞

Fortranコンピューティングの現状を取り上げるよう何度も私を促してくれたArjen MarkusとSteve Lionelにとくに感謝したいと思います。また、重要な業務アプリケーションにLinuxを使っていることを公表してほしくないという各分野の開発技術者には、内輪の話をお伺いできましたことを感謝いたします。

このコラムでは、いつもは、サーバー関係のセキュリティーや開発の問題を取り上げていますが、この春の期間に少なくともあと1回は、アプリケーション資産を稼働させるためのテクノロジーについて割きたいと考えています。その間、皆さん がLinuxをどのように活用しているのかや、どんな手助けを必要としているのかをお知らせいただければ幸いです。



参考文献

  • Michael Metcalfは、最も信頼性の高いFortran 90/95/HPF Information File を開いています。

  • 最新とは言えませんが、Usenetを基にした情報にFortran FAQ があります。

  • J3 は、米国Fortran標準委員会です。66、77、90、および95の標準化を行い、現在は、「Fortran 200xの主たる開発団体」として活動しています。

  • Fortran 77 Standard は、おそらく最も広く利用されているFortranの基礎的な定義として使われ続けています。

  • GNUプロジェクトは、そのFortranコンパイラーに関する情報をUsing and Porting GNU Fortran として文書化しています。とくに、Invoking G77 の章は、読む価値があります。この章で説明されている豊富なコマンド・ライン・オプションを利用することで、非常に多くのFortran規格のコードをG77で扱うことができます。

  • すでにFortranを使って仕事をされている方のためには、IBMのCommon Optimization INterface (COIN) というコード・ベースにDerivative free optimization (DFO) というFortranパッケージが用意されています。これは、いろいろな種類の一般的な非線型最適化問題を最適化するためのパッケージです。

  • The Linux Fortran Information Page は、物理学者が開いているページですが、その情報の多くは、人的資源市場や金融市場など、幅広い分野にまで応用できます。

  • Intel Fortran Compiler 7.0 for Linux は、コンパイルされた実行ファイルが高い性能を示すことで広く認識されているコンパイラーです。Linux用コンパイラーは、これしかないというわけではありませんが、これが最も高い評判を得ているコンパイラーかもしれません。

  • Fortranを「過去のもの」としか考えていない方は、この言語が数々の利点を備え、活気を残していることを見逃しています。とくに要求仕様が厳しく、Fortranがもたらす性能向上を最も渇望している科学の各分野ではそうなのです。Fortranプログラミングも、いろいろなレベルのオンライン・チュートリアルを利用することで、簡単に始めることができます。

  • 英国空軍は、航空機F3 Tornadoのシミュレーションと分析にLinuxを使用しています。

  • VMS to Unix and Linux Migration Strategies は、とくに、いろいろな種類のオペレーティング・システムのバイナリー・データのネイティブ・フォーマットについて解説している文書です。

  • 皆さんは、IBMがFortranの本拠であると知っていましたか。Fortranは、エンジニアや科学者がコンピューター・プログラムを1と0の羅列ではなく、C=A/Bのような自然な形で書けるようにした最初の言語でした。IBMの歴史1945-1996 を読んでみてください。歴史に残るコンポーネント という記事は、Fortranやそれと類似の言語がオブジェクト指向言語の進化に寄与した経緯を説明しています。

  • 本当のプログラマーはFortranを使用するというのは、文書化された事実です (本当のプログラマーは、その気になれば、Fortranプログラムをどんな言語でも記述できるというのも同じくよく知られたことではありますが)。諺に「Fortranでできなければ、アセンブリー言語でやってみろ。アセンブリー言語でできなければ、やる意味がない」というのがあります。詳しくは、1983年発行のReal Programmers Don't Use PASCAL をお読みください。他にも、Fortran purity testFortran the song (ビリー・ジョエルのPressure に合わせて) といったFortran関係の参考文献は、ためになります。


著者について

Photo of Cameron Laird

Cameronは、Phaseit, Inc. の常勤のコンサルタントです。オープン・ソースなどの技術的なトピックについて、数々の執筆や発言を行っています。Cameronのメール・アドレスはclaird@phaseit.net です。




記事の評価


サイト改善のため、ご意見をお寄せください。こちらのフォームからお願いいたします。



 


 


不充分・不完全である大変素晴らしい
 


この記事を共有する

del.icio.us del.icio.us newsing newsing FC2ブックマーク FC2ブックマーク
Choix! Choix! ニフティクリップ ニフティクリップ Yahoo!ブックマーク Yahoo!ブックマーク
MM/memo MM/memo CZブックマーク CZブックマーク livedoorクリップ livedoorクリップ
はてなブックマーク はてなブックマーク Buzzurl(バザール) Buzzurl(バザール)




上に戻る


    日本IBMについて プライバシー お問い合わせ