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 コマンドを発行する場合と比べて、次のような点で有利です。
高級言語で記述されたメークファイルのターゲット名をメニューに記憶し、アクセスを簡便化することができる
構築の進捗状況を視覚化することができる
「構築」ウィンドウに表示された構築エラーから、エラーが含まれているソースファイルをテキストエディタで開くことができる
ダイアログボックスで、構築に使用する make オプション、メークファイルのマクロ、環境変数を変更することができる (メークファイルはユーザーが作成)
複数のタスクを同時に処理すると、プログラムの実行速度が上がり、パフォーマンスも改善されます。自動並列化の対象となるのは、プログラム中で繰り返し使用されているループです。これは、ループの反復によって、アプリケーションの実行時間に影響が出ることがあるからです。並列化を行うと、ループでの計算作業を複数のプロセッサに分散させるために、ソースプログラムを書き換える必要がありません。
アプリケーションを並列化 (またはマルチスレッド化) すると、コンパイル済みのプログラムがマルチプロセッサシステムを最大限に活用できるようになります。また、ループなどのシングルタスクが複数のプロセッサで実行されるため、実行速度を飛躍的に短縮することができます。
FORTRAN 77、Fortan 90、C の各コンパイラを使用すると、ソースコードを解析して、反復して使用されているループの中から、それぞれ独立していて並列化しても安全性が損なわれないループを特定することができます。
FORTRAN 77、Fortan 90、C の各コンパイラを使用すると、いったん構造化されたコードが自動的に拡張構造化されるため、より高度なループレベルの並列化を行うことができます。コンパイラでは、こうした変換を行うために、次の手法を採用しています。
ループ分散 - 並行処理が可能な文と不可能な文を区別する
ループ融合 - 複数の隣接する小規模なループを結合して 1 つの並列ループにし、実行時のオーバーヘッドを削減する
ループ交換 - 入れ子になっているループを 1 つのループに変換し、並列化して、オーバーヘッドを大幅に削減する
スカラー変数および配列変数の固有化 - データ依存性のあるループの並列処理に、スカラー変数や配列変数の複数のコピーを使用する
並行処理を行うことが有益かどうかを、コンパイラだけでは判断できない場合があります。このような場合、並列化指令 (プラグマ) コメント行を使用して、この指令の次のループを並列化するかどうかをコンパイラに指示することができます。
FORTRAN 77 コンパイラ、Fortan 90 コンパイラでは、高精度と高パフォーマンスが保証されています。高パフォーマンスを実現するための機能には、次のものがあります。
64 ビット Solaris 7 環境対応
大型ファイルのサポート
大型配列 (64 ビット Solaris 7 ソフトウェアを使用する場合)
新しい最適化プラグマ (指令)
コードやアプリケーションのパフォーマンス管理に使用するオプション群
C、C++ プログラムとの相互運用が可能
デバッグセッションが完了したら、インクリメンタルリンカーを使用してアプリケーションを再構築します。インクリメンタルリンカーを使用すると、アプリケーションを再度リンクするための時間が短縮されるため、アプリケーションに加えた変更内容をより迅速にテストすることができます。新しい実行可能ファイルの作成時には、変更された .o ファイルだけが直前の実行可能ファイルにリンクされます。したがって、変更後のアプリケーションの再構築に要する時間は、アプリケーション全体の大きさではなく、変更量に比例します。
Sun Performance WorkShop Fortran には、Sun Performance ライブラリと数学ライブラリが用意されています。どちらも、アプリケーションのパフォーマンスを向上させるための重要なライブラリです。
線形代数やフーリエ変換の演算を実行するような、計算中心のアプリケーションを開発する場合に使用するライブラリです。このライブラリは、シングルプロセッサシステムでもマルチプロセッサシステムでも使用でき、どの Sun WorkShop コンパイラ言語処理系からでも呼び出せます。
もっとも広く使用されているライブラリは、BLAS、LINPACK、LAPACK、FFTAPACK、VFFTPACK などの数学コレクションです。これらのライブラリには多数の関数が用意されていますが、通常、高度に最適化されていたり並列化されているわけではありません。Sun Performance ライブラリには、これらのライブラリを高度に最適化したバージョンが収められています。また、FORTRAN 77 用インタフェースを内蔵し、Fortran 90 からも使用できるため、アプリケーションの実行速度を 4 倍以上も引き上げることができます。
計算中心のアプリケーションを主に使用する場合は、Sun Performance WorkShop Fortran に組み込まれている最適化された数学ライブラリで、パフォーマンスを向上させることができます。Solaris オペレーティングシステムの libm 数学ライブラリには、Solaris オペレーティングシステムで採用されているさまざまな規格に必要な関数が含まれています。数学ライブラリには、次のような特長があります。
単精度、倍精度、4 倍精度の浮動小数点数値形式
代数、超越、丸め、変換、乱数の各関数
最高の実行速度と精度を提供する表方式のアルゴリズム
C 言語処理系は、コンパイラ、アセンブラ、リンカーで構成されています。C コンパイラは、次の機能を利用して、C プログラムのパフォーマンスを向上させます。
インクリメンタルリンク
ループの自動並列化、ユーザーの指定による並列化のサポート
特定の警告メッセージをオフにする機能
UltraSPARC(TM) コード生成のサポート
2000 年問題に対応した設計
他のマシンへの移植性に優れた C アプリケーションプログラム
カスタマイズ可能な例外処理