Rescale で Gnuplot を使用してシミュレーションの結果を自動化および視覚化する


経歴
その他にもたくさんのグーグルの エンジニア 走ることを任された HPC アプリケーション 通常、監視に熱心です シミュレーション 計算が予想どおりに進んでいることを確認したり、ソリューション エラーが一般的なエンジニアリング エラーしきい値を下回っているかどうかを判断したり、シミュレーションしている物理現象の整合性を確認したりします。ほとんどの商用アプリケーションでは、グラフィカル ドリブン インターフェイス内でこのタイプのデータを何らかの形で視覚化またはプロットする機能を提供していますが、プロットのオプションは通常制限されており、プロット自体は見栄えが悪く、他の人に結果を提示したり文書化したりするのには適していません。

Gnuplotは、複数のプラットフォームで使用できるポータブルなコマンドライン駆動型グラフィックユーティリティであり、もともとは科学者や学生が数学関数を視覚化できるようにするために作成されました。 データ 最初は対話型でしたが、その後、非対話型の用途も数多くサポートするようになりました。Gnuplot には、プロットの作成を自動化し、優れたプロットを作成するのに役立ついくつかの利点があります。ユーザーは、さまざまな関数やデータセットで再利用できるスクリプトまたはテンプレートを設定できます。これらのスクリプトでは、プロットの書式設定方法、使用するデータの解析方法などを定義できます。Gnuplot の汎用性は、図に示されている例で強調されています。 1   5.

matlab_line_colors_2014
図 1: デフォルトの Matlab R2014 の線色でプロットされた次数 XNUMX から次数 XNUMX までのバッセル関数
クラインボトル
図 2: クラインの壷
ワールドカラー3D (1)
図 3: Natural Earth II の世界の陰影起伏と水のプロット
equirectangular_projection
図 4: 世界の正距円筒図法
animate_bessel
図 5: ベッセル関数のアニメーション

分析の説明
エンジニアや科学者がRescale上で独自のシミュレーションを監視するのに役立つと思われるGnuplotの使用方法を示すために、出版に適した結果のプロットを生成するだけでなく、単純な3Dレイノルズ平均ナビエ・ストークス(RANS)シミュレーションを実行します。 スタンフォード大学の 非構造化 (SU2) オープンソースの有限体積ソルバー。CFD シミュレーション全体を通じて監視されているソリューション残差と空力係数メトリックの両方について、Gnuplot を使用して定期的にプロットが生成されます。ユーザーは、実行中の特定のシミュレーションのジョブ ステータス ページで更新される生成中のプロットを表示できます。

このプロセスの概要は、最初に Gnuplot コマンドまたはスクリプト ファイルを定義することによって説明されます。このファイルでは、プロットの形式が定義され、プロット自体が生成されます。 この Gnuplot コマンド ファイル内では、Gnuplot にコマンド ファイルを定期的に再読み込みさせるための簡単なステートメントがファイルの最後に追加されています。 RANS シミュレーションが実行され、モニター ファイルが更新されると、Gnuplot はソルバーが終了するまで、更新されたシミュレーション結果を使用して新しいプロットを生成します。
この例では、ファイル SU2.gnu 使用されている。

リセット # ポストスクリプト 端末ポストスクリプトを設定 eps 拡張カラー サイズ 5.47,3.33 フォント ”Verdana, 12” 線幅 2 # カラー定義 境界線の幅を設定 1.5 スタイル ライン 1 を設定 lc rgb '4dbeee' lt 1 lw 2 シアン スタイル ライン 2 を設定 lc rgb 'a2142f ' lt 1 lw 2 レッド セット スタイル ライン 3 lc rgb 'd95319' lt 1 lw 2 オレンジ セット スタイル ライン 4 lc rgb 'edb120' lt 1 lw 2 イエロー セット スタイル ライン 5 lc rgb '77ac30' lt 1 lw 2 グリーン セット スタイルline 6 lc rgb '0072bd' lt 1 lw 2 blue set style line 7 lc rgb '7e2f8e' lt 1 lw 2 violet # キーセットキー右下左 # 軸セットスタイル line 11 lc rgb '808080' lt 1 set border 3 back ls 11 set tics nomirror outscale 0.75 # グリッド セット スタイル ライン 12 lc rgb '808080' lt 0 lw 1 グリッド バックを設定 ls 12 set xlabel 'Iteration' set ylabel 'Residual' set mxtics 2 set mytics 10 set datafile Separator ”,”形式を設定 '%g' 形式 y を設定 '10 %.0s}' 出力を設定 'residuals.eps' プロット 'history.plt' Every::4 u 1:12 t 'rho' wl ls 1, 'history.plt'毎::4 u 1:13 t 'x-mom' wl ls 2, 'history.plt' 毎::4 u 1:14 t 'y-mom' wl ls 3, 'history.plt' 毎::4 u 1:15 t 'z-mom' wl ls 4, 'history.plt' 毎::4 u 1:16 t 'エネルギー' wl ls 5, 'history.plt' 毎::4 u 1:17 t ' nu' wl ls 6 set ylabel 'リフト係数、CLift' 形式を設定 y '%g' 出力を設定 'lift.eps' プロット 'history.plt' Every::4 u 1:2 t 'CLift' wl ls 1 set ylabel 'ドラッグ係数、CDrag' set 出力 'drag.eps' プロット 'history.plt' Every::4 u 1:3 t 'CDrag' wl ls 2 set xlabel 'リフト係数、CLift' set ylabel 'リフトとドラッグの比率、 L/D' 出力を設定 'lift-drag.eps' プロット 'lift-drag.dat' u 1:2 t 'L/D' wls 1 一時停止 30 再読み込み

コマンド ファイルは、PostScript 端末が使用される端末設定を定義することから始まります。 Gnuplot 内ではいくつかの端末が利用可能で、Gnuplot プロンプトで「set Terminal」と入力すると、使用可能な端末がリストされます。 通常、ドキュメント内で使用するプロットを生成する場合は、postscript ターミナル オプションが推奨されます。 一方、出力を Web パブリッシングに使用する場合は、svg ターミナルと pngcairo ターミナルが推奨されます。 LATEX または TEX ドキュメント内に数式やテキストを統合するためのオプションも存在します。

次に、解の残差を含む 2 つのプロットで使用されている多数のメトリクスを区別しやすくするために、色付きのいくつかの線スタイルが定義されます。 キー (または凡例) は右下に配置され、テキストは左揃えになります。 軸の色 (グレー) と線の太さが指定され、目盛りの書式設定とその配置が指定されます。 プロットの書式設定オプションをすべて設定したら、SUXNUMX のhistory.plt ファイルを使用して実際のデータがプロットされ、シミュレーションの実行中にシミュレーションに関連付けられたデータが反復ごとに出力されます。

Gnuplot には、一見無限に見える一連の書式設定オプションが含まれています。 最初はオプションの数に圧倒されるかもしれませんが、好みに合わせてグラフが表示されるように設定してしまえば、それ以降のグラフに変更を加える必要はほとんどありません。 必要に応じて、特定のプロットの作成に使用されるデータまたは関数を更新するために必要な数行だけを編集できます。 したがって、これらのコマンド ファイルを再利用できると、長期的には貴重な時間を節約できます。

最後の XNUMX 行は XNUMX 秒の遅延を追加し、Gnuplot にコマンド ファイルを再度読み取るか実行するように促します。 データ ソース ファイルに追加されたデータは、次回コマンド ファイルが実行されるときにプロットに追加されます。 これにより、プロットされる内容が最新の変更で更新されます。
Rescale では、提供されたコマンド ファイルで Gnuplot を開始し、そのプロセスをバックグラウンドで配置し、ソルバーを実行する単純なラッパー スクリプトだけが必要です。 あるいは、Rescale でジョブを設定するときに、これらの個別のコマンドをソフトウェア設定ページの「コマンド」フィールドに追加することもできます。 SU2 を使用したこの特定の RANS シミュレーション例では、 るんす2 ラッパー スクリプトが使用されており、独自のカスタム スクリプトを作成するための例として役立ちます。

シミュレーションソリューション
ジョブセットアップ全体を複製して実行できます。 こちらをクリック。 シミュレーションの実行中に生成され利用可能なプロットの例を図に示します。 6   9.

残差
図 6: 解の残差履歴
持ち上げる
図 7: 揚力係数 (CLift) の履歴
かわいいです
図 8: 抗力係数 (CDrag) の履歴
リフトドラッグ
図 9: 抗力比 (L/D) 対揚力係数 (CLift) のプロット

製品概要
モデル化されている物理現象の整合性を検証するために、HPC アプリケーションから生成されたシミュレーション結果の後処理とレポートは、どのエンジニアや科学者にとっても多大な労力を要するプロセスとなる可能性があります。 Gnuplot は、出版に適した魅力的なプロットの生成に関わる作業の多くを自動化する非対話型の手段を提供します。 Rescale では、Gnuplot はどのシミュレーションにもアクセスでき、シミュレーションの実行中に重要な特定のメトリクスを簡単に視覚化して監視できるという追加の利点も提供します。

ここで紹介したRescaleのクラウドベースHPCの例を試してみてください。 プラットフォーム して、高成長のクロスチャネル戦略の構築を始めましょう!

類似の投稿