折角構築した並列版Code_Asterを活用する手順を説明します。ここでは、構築に用いたCode_Asterのソースパッケージの中にある検証例題を用いて並列解析を検証します。なお、以下の手順では、コマンドライン操作が中心なので、端末を開いて進めます。
■ 検証例題に必要なファイル
作業用ディレクトリAsterWorkをホームディレクトリ/home/dexcs/に作り、ここで作業を行います。
$ mkdir ~/AsterWork
・検証例題のファイル
Code_Asterをこのブログに示した手順でインストールすると、/opt/asterの中に、以下の4つの解析モジュールが構築されます。
開発版11.3 : 単独実行 STA11.3(stable) 並列実行 PAR11.3
安定版10.8 : 単独実行 STA10.8(stable) 並列実行 PAR10.8
Code_Asterのソルバーのバージョンは、基本的には独立しているので、11系列と10系列は分けて扱います。以下の説明では、10系列の検証例題を対象とします。なお単独実行STA10.8と並列実行PAR10.8の例題は同じですが、ここではPAR10.8を対象とします。
検証例題のファイルは、/opt/aster/PAR10.8/astestにあるので、移動します。
$ cd /opt/aster/PAR10.8/astest
ここでは、ssnv506dの検証例題を対象とします。この例題の意味は以下の通りです。
s: Structureで構造解析
s: Staticで静的解析
n: Nonlinearで非線形問題
v: Volumic 3Dで3次元要素
506:506番例題
d:a~dで立体問題
関連するファイルを、作業ディレクトリにコピーします。
$ cp ssnv506d.* ~/AsterWork
コピーしたファイルを確認します。以下の5つのファイルがあります。
$ cd ~/AsterWork; ls
ssnv506d.comm ssnv506d.datg ssnv506d.mail ssnv506d.mgib ssnv506d.para
それぞれの拡張子の意味は以下の通りです。
comm:Asterの解析コマンドファイル
datg:多分?入力データの説明
mail:Asterのメッシュファイル
mgib:Gibi形式のメッシュファイル
para:計算例の結果情報
・検証例題の解説文章
この検証例題については、理論解説や数値解析の比較検討が文章でまとめられています。まずCode_Asterのドキュメントは、以下にあります。
http://www.code-aster.org/V2/spip.php?rubrique19
左のメニューから、開発版11系(Code_Aster version 11)、安定板10系(Code_Aster version 10)を選択します。ここでは10系です。
検証例題なので、Validationの「V6」を選択すると、多数の解説文書があり、この中でssnv506に該当する以下を選択します。
[V6.04.506] SSNV506 - elastic-plastic indentation of a block by an elastic spherical indenter
全18頁のPDFドキュメントが表示されるので、これで検証例題の内容を確認します。2頁の図にあるように、平板に球体を押し付ける接触解析です。今回対象とする例題dは立体問題で、文書の11頁にモデル図があります。
■ 解析手順その1:並列実行の確認
現在の状態では、Code_Asterで並列解析を行うには、ASTKを用います。まずは最も単純な設定で解析を実行してみます。
先に説明したブログに従って並列Code_Asterの解析環境が構築されている前提です。以下のコマンドでASTKを実行します。
$ /opt/aster/bin/astk
・作業フォルダの設定
ASTKのFILESの下、Base pathの欄の右のフォルダアイコンより、作業フォルダを設定します。ここでは/home/dexcs/AsterWorkです。
・入力ファイルの設定
先のアイコンの2つ下のフォルダアイコンより、ssnv506d.commとssnv506d.mgibを設定します。
・出力ファイルの設定
最低限として出力のメッセージファイルを設定します。先のアイコンの間の新規ファイルアイコンより、以下の設定で作成します。
Type: mess Server: Local Name: /home/dexcs/AsterWork/ssnv506d.mess
・解析モジュールの選択
まずは安定板の単独実行なのですが、このコマンドファイルの設定が並列実行のソルバーを前提としており、PAR10.8を選択します。ただし現状の設定では、利用するCPUは1個なので単独実行となります。
・ASTK設定ファイルの保存
この条件設定を保存します。File > Saveで、ファイル名をssnv506d.astkとして保存します。
・単独実行の解析
右下のボタンRunを押して実行します。それなりに時間がかかるので、システムモニターで動作を確認します。
・出力ファイルの確認
以上の実行により、先に設定した解析のメッセージファイルssnv506d.messと解析の定義ファイルssnv506d.exportの2つが作られます。
このmessファイルをエディタviで開くと、最後にTEMPS CPU TOTALの項目が88.15となっていました。これが計算時間になります。
・結果ファイルの確認
次に解析結果を保存するファイルを以下のように設定します。これを設定すると結果ファイルresuが作られます。
Type: resu Server: Local Name: /home/dexcs/AsterWork/ssnv506d.resu
・並列処理の設定
目的である並列実行を設定します。ASTKのメニューより Options > mpi_nbcpu を選択して1から4にしてみます。この解析環境のCPUコア数は4です。
このとき、システムモニターのリソースのCPU使用率をみると、4つのCPUコアが動作しているのが確認できます。この時の計算時間は99.27秒で並列処理の方が遅くなっています。
■ 検証例題に必要なファイル
作業用ディレクトリAsterWorkをホームディレクトリ/home/dexcs/に作り、ここで作業を行います。
$ mkdir ~/AsterWork
・検証例題のファイル
Code_Asterをこのブログに示した手順でインストールすると、/opt/asterの中に、以下の4つの解析モジュールが構築されます。
開発版11.3 : 単独実行 STA11.3(stable) 並列実行 PAR11.3
安定版10.8 : 単独実行 STA10.8(stable) 並列実行 PAR10.8
Code_Asterのソルバーのバージョンは、基本的には独立しているので、11系列と10系列は分けて扱います。以下の説明では、10系列の検証例題を対象とします。なお単独実行STA10.8と並列実行PAR10.8の例題は同じですが、ここではPAR10.8を対象とします。
検証例題のファイルは、/opt/aster/PAR10.8/astestにあるので、移動します。
$ cd /opt/aster/PAR10.8/astest
ここでは、ssnv506dの検証例題を対象とします。この例題の意味は以下の通りです。
s: Structureで構造解析
s: Staticで静的解析
n: Nonlinearで非線形問題
v: Volumic 3Dで3次元要素
506:506番例題
d:a~dで立体問題
関連するファイルを、作業ディレクトリにコピーします。
$ cp ssnv506d.* ~/AsterWork
コピーしたファイルを確認します。以下の5つのファイルがあります。
$ cd ~/AsterWork; ls
ssnv506d.comm ssnv506d.datg ssnv506d.mail ssnv506d.mgib ssnv506d.para
それぞれの拡張子の意味は以下の通りです。
comm:Asterの解析コマンドファイル
datg:多分?入力データの説明
mail:Asterのメッシュファイル
mgib:Gibi形式のメッシュファイル
para:計算例の結果情報
・検証例題の解説文章
この検証例題については、理論解説や数値解析の比較検討が文章でまとめられています。まずCode_Asterのドキュメントは、以下にあります。
http://www.code-aster.org/V2/spip.php?rubrique19
左のメニューから、開発版11系(Code_Aster version 11)、安定板10系(Code_Aster version 10)を選択します。ここでは10系です。
検証例題なので、Validationの「V6」を選択すると、多数の解説文書があり、この中でssnv506に該当する以下を選択します。
[V6.04.506] SSNV506 - elastic-plastic indentation of a block by an elastic spherical indenter
全18頁のPDFドキュメントが表示されるので、これで検証例題の内容を確認します。2頁の図にあるように、平板に球体を押し付ける接触解析です。今回対象とする例題dは立体問題で、文書の11頁にモデル図があります。
■ 解析手順その1:並列実行の確認
現在の状態では、Code_Asterで並列解析を行うには、ASTKを用います。まずは最も単純な設定で解析を実行してみます。
先に説明したブログに従って並列Code_Asterの解析環境が構築されている前提です。以下のコマンドでASTKを実行します。
$ /opt/aster/bin/astk
・作業フォルダの設定
ASTKのFILESの下、Base pathの欄の右のフォルダアイコンより、作業フォルダを設定します。ここでは/home/dexcs/AsterWorkです。
・入力ファイルの設定
先のアイコンの2つ下のフォルダアイコンより、ssnv506d.commとssnv506d.mgibを設定します。
・出力ファイルの設定
最低限として出力のメッセージファイルを設定します。先のアイコンの間の新規ファイルアイコンより、以下の設定で作成します。
Type: mess Server: Local Name: /home/dexcs/AsterWork/ssnv506d.mess
・解析モジュールの選択
まずは安定板の単独実行なのですが、このコマンドファイルの設定が並列実行のソルバーを前提としており、PAR10.8を選択します。ただし現状の設定では、利用するCPUは1個なので単独実行となります。
・ASTK設定ファイルの保存
この条件設定を保存します。File > Saveで、ファイル名をssnv506d.astkとして保存します。
・単独実行の解析
右下のボタンRunを押して実行します。それなりに時間がかかるので、システムモニターで動作を確認します。
・出力ファイルの確認
以上の実行により、先に設定した解析のメッセージファイルssnv506d.messと解析の定義ファイルssnv506d.exportの2つが作られます。
このmessファイルをエディタviで開くと、最後にTEMPS CPU TOTALの項目が88.15となっていました。これが計算時間になります。
・結果ファイルの確認
次に解析結果を保存するファイルを以下のように設定します。これを設定すると結果ファイルresuが作られます。
Type: resu Server: Local Name: /home/dexcs/AsterWork/ssnv506d.resu
・並列処理の設定
目的である並列実行を設定します。ASTKのメニューより Options > mpi_nbcpu を選択して1から4にしてみます。この解析環境のCPUコア数は4です。
このとき、システムモニターのリソースのCPU使用率をみると、4つのCPUコアが動作しているのが確認できます。この時の計算時間は99.27秒で並列処理の方が遅くなっています。