ジョブ結果のポスト処理
最終更新日2022年6月1日
概要
Rescaleプラットフォームのポスト処理機能により、データをローカルマシンに転送することなく、出力ファイルから選択したデータを直接Rescaleプラットフォーム上で抽出、処理、表示することができます。
ポスト処理機能により、Rescaleが提供する強力なハードウェアを十分に活用することができ、また、データ転送を減らすことで結果を表示するまでの時間を短縮することができます。また、複数回実行するジョブでは、定義した入力パラメータに基づくチャートと、シミュレーション出力ファイルから抽出した出力パラメータを表示する機能が追加されます。
チャート機能を十分に活用するためには、データファイルを解析するためのポスト処理スクリプト(PythonやShellスクリプトなど)を記述する必要があります。抽出されたパラメータは、チャート機能で使用するために、後述のタブ区切り形式で出力する必要があります。このチュートリアルでは、DOEチュートリアルで説明した2次元翼の実験計画法(DOE)の例を拡張して、Rescaleプラットフォームで翼の性能を直接検討する方法を説明します。このチュートリアルの入力ファイル、並列設定、テンプレートファイル、ソフトウェア設定、およびハードウェア設定は、DOEチュートリアルのものと同じです。
ポスト処理用出力フォーマット
抽出したい各変数とその値は、stdoutに別行で書き出す必要があります。その行はタブ区切り形式、すなわち変数名, “タブ”, 変数値が続く形式でなければならない。
Bashスクリプトでは、次のようになります。
printf "%s\t%s\n" "variable" "$stringValue"
あるいはPythonでは、次のようになります。
`print(f"variableName\t{value})`
ポスト処理スクリプトのアップロード
セットアップのポスト処理工程は、基本的なジョブの実行が1回でも、DOEのように複数回実行するものでも同じです。後処理は通常、ジョブのハードウェア設定を定義した後にセットアップされます。設定画面は下図のとおりです。Upload from this computerをクリックして、ポスト処理スクリプトをアップロードします。
スクリプトをアップロードした後、それを実行するコマンドを指定する必要があります。下の画像は、アップロードしたPythonスクリプトforceCoefficients.py(揚力と抗力の係数を抽出)が呼び出されて、結果を処理する様子を示しています。後処理を行うコマンドは赤色で表示されています。
注:ポスト処理スクリプトは、個々のランの作業ディレクトリから実行されます。したがって、出力ファイルへの相対パスはすべてのランで同じになります。
シェルスクリプトの場合も同様の処理が可能です。スクリプトの種類に関係なく、変数は前節で説明したタブ区切り形式でスクリプトから出力されなければなりません。
後処理の設定が完了したら、ジョブを投入し、通常通り実行されます。後処理スクリプトは、個々のランの終了時に実行され、そのランで生成された出力ファイルを処理します。
ポスト処理スクリプトの出力
後処理スクリプトは、Rescaleプラットフォームが表示やチャート作成用の変数として登録するために、データをタブ区切りで出力する必要があります。しかし、スクリプトは、お客様が使用するための追加情報を出力することも可能です。ポスト処理スクリプトの全出力は、以下のように、個々の実行のprocess_output.logで確認することができます。
このように、後処理スクリプトの中で、必要に応じて他の有用な情報を出力することができます。下の画像では、process_output.logに変数出力が確認できます。
結果
以下の画像は、ポスト処理を含む完了したDOEジョブのResultsタブを示しています。このDOEジョブでは、Parallel Settingsで定義した変数(入力条件)がBox 1にハイライト表示されています。ポスト処理スクリプトによって抽出され出力された変数もResultsタブに表示され、Box 2にハイライト表示されています。この表形式表示により、すべてのランのデータを素早く調べることができます。
左端の列でRun番号をクリックすると、個々のランのページが表示されます。このページでは、選択したランの出力ファイルを表示、ダウンロード、または今後のジョブで使用できるようにすることができます。入力および出力変数は、以下のようにVariablesテーブルに表示されます。
次のステップ
ポスト処理スクリプトで出力変数を抽出すれば、Rescaleのチャート機能を利用し、Rescaleプラットフォーム上で直接チャートを生成することができます。利用可能なチャートは3種類あります。
- Scatter
- Area
- Surface
右側の表から、プロットする入力と出力パラメータの組み合わせを選択できます。以下は、2D Airfoil DOE の散布図の例です。この場合、チャートは揚力係数と抗力係数をプロットしています。
なお、散布図には複数のデータ系列をプロットすることができますが、下図では1つのデータ系列のみを示しています。
散布図の 1 つのデータポイントにカーソルを置くと、そのポイントの X/Y 値と、データを生成したランの番号(上図参照)が表示されるデータボックスが表示されます。その点をクリックすると、以下のように結果ページでそのランが強調表示されます。
注:サーフェスチャートは、入力データに基づくグリッドと、加重平均インターポレーターを使用して作成されます。その結果、選択したZ変数のサーフェス値は、近くのポイントの値とは大きく異なる場合があります。