Sun Performance WorkShop Fortran の概要

第 2 章 構築とコンパイル

Sun Performance WorkShop Fortran では、プログラムの構築やコンパイルを 1 枚のコントロールパネルから実行できるため、開発作業が非常に効率的です。

統合環境のプログラム

Sun Performance WorkShop Fortran では、グラフィカルユーザーインタフェース (GUI) 1 つで、複数の開発ツールセットを集中的に管理、実行できます。

また、開発者が使い慣れたエディタで作業できるように、一般的なエディタを 3 種類 (vi、Emacs (Mule)、XEmacs) 用意しました。エディタの選択は、Sun WorkShop の 「テキストエディタのオプション」 ダイアログボックスで行います。

「構築」ウィンドウによる構築の単純化

メークファイルには、最終的な実行可能プログラムだけでなく、プログラムの各モジュールの構築方法も記述されています。Sun WorkShop の構築ツールでは、UNIX の make ユーティリティを視覚的に利用して、プログラムのコンパイル処理を監視し、プログラムが常に最新のソースからコンパイルされるように管理することができます。「構築」ウィンドウでプログラムの構築を開始すると、プログラムのメークファイルが読み込まれ、そこに記述されているコマンドが実行されます。

構築ツールは、make コマンドの機能を発展させた、フレキシブルなツールです。このツールを利用すると、ワークステーションの処理能力がぐんと向上します。また、大型プログラムの構築処理を複数のプロセッサに分散させたり、マルチプロセッサシステムの場合は複数の CPU に処理を分散させることもできます。

構築ツールには、次のような特長があります。

構築ツールでの作業は、コマンド行から make コマンドを発行する場合と比べて、次のような点で有利です。

アプリケーションの自動並列化

複数のタスクを同時に処理すると、プログラムの実行速度が上がり、パフォーマンスも改善されます。自動並列化の対象となるのは、プログラム中で繰り返し使用されているループです。これは、ループの反復によって、アプリケーションの実行時間に影響が出ることがあるからです。並列化を行うと、ループでの計算作業を複数のプロセッサに分散させるために、ソースプログラムを書き換える必要がありません。

アプリケーションを並列化 (またはマルチスレッド化) すると、コンパイル済みのプログラムがマルチプロセッサシステムを最大限に活用できるようになります。また、ループなどのシングルタスクが複数のプロセッサで実行されるため、実行速度を飛躍的に短縮することができます。

FORTRAN 77、Fortan 90、C の各コンパイラを使用すると、ソースコードを解析して、反復して使用されているループの中から、それぞれ独立していて並列化しても安全性が損なわれないループを特定することができます。

コードを自動的に再構造化する

FORTRAN 77、Fortan 90、C の各コンパイラを使用すると、いったん構造化されたコードが自動的に拡張構造化されるため、より高度なループレベルの並列化を行うことができます。コンパイラでは、こうした変換を行うために、次の手法を採用しています。

プラグマサポートの導入

並行処理を行うことが有益かどうかを、コンパイラだけでは判断できない場合があります。このような場合、並列化指令 (プラグマ) コメント行を使用して、この指令の次のループを並列化するかどうかをコンパイラに指示することができます。

Fortran コンパイラによるパフォーマンスの改善

FORTRAN 77 コンパイラ、Fortan 90 コンパイラでは、高精度と高パフォーマンスが保証されています。高パフォーマンスを実現するための機能には、次のものがあります。

テストの高速化

デバッグセッションが完了したら、インクリメンタルリンカーを使用してアプリケーションを再構築します。インクリメンタルリンカーを使用すると、アプリケーションを再度リンクするための時間が短縮されるため、アプリケーションに加えた変更内容をより迅速にテストすることができます。新しい実行可能ファイルの作成時には、変更された .o ファイルだけが直前の実行可能ファイルにリンクされます。したがって、変更後のアプリケーションの再構築に要する時間は、アプリケーション全体の大きさではなく、変更量に比例します。

ライブラリによるパフォーマンスの改善

Sun Performance WorkShop Fortran には、Sun Performance ライブラリと数学ライブラリが用意されています。どちらも、アプリケーションのパフォーマンスを向上させるための重要なライブラリです。

Sun Performance ライブラリ

線形代数やフーリエ変換の演算を実行するような、計算中心のアプリケーションを開発する場合に使用するライブラリです。このライブラリは、シングルプロセッサシステムでもマルチプロセッサシステムでも使用でき、どの Sun WorkShop コンパイラ言語処理系からでも呼び出せます。

もっとも広く使用されているライブラリは、BLAS、LINPACK、LAPACK、FFTAPACK、VFFTPACK などの数学コレクションです。これらのライブラリには多数の関数が用意されていますが、通常、高度に最適化されていたり並列化されているわけではありません。Sun Performance ライブラリには、これらのライブラリを高度に最適化したバージョンが収められています。また、FORTRAN 77 用インタフェースを内蔵し、Fortran 90 からも使用できるため、アプリケーションの実行速度を 4 倍以上も引き上げることができます。

Sun 数学ライブラリ

計算中心のアプリケーションを主に使用する場合は、Sun Performance WorkShop Fortran に組み込まれている最適化された数学ライブラリで、パフォーマンスを向上させることができます。Solaris オペレーティングシステムの libm 数学ライブラリには、Solaris オペレーティングシステムで採用されているさまざまな規格に必要な関数が含まれています。数学ライブラリには、次のような特長があります。

C コンパイラによるパフォーマンスの改善

C 言語処理系は、コンパイラ、アセンブラ、リンカーで構成されています。C コンパイラは、次の機能を利用して、C プログラムのパフォーマンスを向上させます。