更新日: 14/03/27

Absoft AWE を使った自動並列化サンプルコードの実行例

本ドキュメントでは、Pro Fortran に用意されている Absoft コンパイラの自動並列化機能 (auto-parallelism capabilities) を実際に試すことのできる簡単なサンプルプログラムを紹介します。このサンプルプログラムではメニュー、メニューコマンド、アラートボックス、スプレッドシート、プロットを実装できる Absoft Window Environment (AWE) の機能についても簡単に紹介します。

このプログラムは、Absoft がサポートするオペレーティングシステムであれば、Windows、Linux、OS X などプラットフォームにかかわりなくコンパイルし、実行することができます。お持ちのコンパイラに付属の Absoft User Guide には、AWE に関するさらに詳しいドキュメントが用意されています。

Mac/Linux 版の注意:AWE (Absoft Window Environment) のインターフェイスをもつプログラムをビルドするには、PLPlot の X-Windows が必要です。インストール CD の Additional Fortran Libraries フォルダにインストーラが入っていますので、あらかじめインストールをしておいて下さい。

 

サンプルの説明

このサンプルでは、3つのメニュー項目とそれらの内容をコールバックする関数をそれぞれセットアップすることにします。最初のメニューコマンドは、Solve です。これはプログラムを実行する度にそのタスクに使用するスレッドの数を順番に増やしてゆき、その計算に掛かった時間をそれぞれ蓄積してゆくためのルーチーンを呼び出すものです。2番目のメニューコマンドは、Chart です。これは、AWE にスプレッドシートを作成し、その結果を表示させるものです。3番目のメニューコマンドは、Plot です。これは、計算結果をプロットで表示させるものです。なお、ChartPlot メニュー項目は、Solve コマンドでデータの蓄積が完了するまでは機能しません。

このサンプルは、3つのソースファイルと1つの AbsoftTools プロジェクトファイルで構成されます。プロジェクトファイルについては、次のセクション「サンプルのビルド」で説明します。使用するソースファイルはそれぞれ以下の通りです:

 

サンプルのビルド

サンプルをビルドするには、まずはじめに AbsoftTools を起動します。AbsoftTools の Project メニューで Open Project を選択したら、お持ちのコンピュータの Absoft のメインディレクトリにある “examples” ディレクトリを開きます。そのディレクトリにある “AWE_APO_Example” という名称のディレクトリを開いたら、“AWE_SmpAutoParallel64.atools” という名称のプロジェクトファイルを開きます。AbsoftTools ウィンドウは、以下のようになっているはずです:

AbsoftTools ウィンドウに開いた “AWE_SmpAutoParallel64.atools” プロジェクト

Build メニューから Build を選択するか、ハンマーアイコン をクリックします。AbsoftTools ウィンドウの下半分にある Build ペインに Build completed というメッセージが表示されると、アプリケーションの実行準備は完了です。

 

サンプルの実行

サンプルを実行するには、AbsoftTools の Build メニューから Execute を選択するか、人物が走行しているアイコン をクリックします。AWE ウィンドウが開き、テキストウィンドウに以下の内容が表示されます:

注意:表示されるスレッド数は、お使いのハードウェア構成によって異なります。

 

APO メニューから Solve を選択し、各スレッド数ごとに計算に掛かった時間を求めていきます。計算が完了すると、AWE ウィンドウは以下のようになっているはずです:

Solve を選択し、計算が完了したときの例

計算が完了すると、Chart および Plot メニューコマンドを使ってその結果を表示させることができます。

Chart を選択すると以下のようなスプレッドシートが表示されます:

Chart を選択した例

Plot を選択すると以下のような表示になります:

Plot を選択した例