■ 解析手順2:並列ソルバーの変更
先ほどの解析結果では、CPUコアを1から4に変更したことで、計算時間が増える期待外れな結果でした。それでは、別のソルバーに変更して検討を広げたいと思います。
・Eficasの起動
コマンドファイルcommはテキストファイルなので、エディタでも修正できますが、パラメータの選択などを支援するEficasを使う方が便利です。ASTKの解析ファイルの中で、ssnv506d.commにカーソルを入れておき、メニューから Tools > Command file editor (Eficas)を選択します。
・Eficasの操作
最初に用いるコマンドのバージョンを聞かれるので、ここでは安定板なのでSTA10を選択して、OKで進めます。
ソルバーの設定は、STAT_NON_LINEにあるので、これを展開して、最後の方のSOLVEURを展開します。
デフォルトの直接法ソルバーとしてmult_frontが設定されているので、SOLVEURにMETHODを追加します。
これに対して、MUMPUSを設定します。b_mumpsに、OUT_OF_CORE, MATR_DISTRIBUTEE, LIBEREMEMOIREを追加します。
これらの3つのMUMPUSの設定項目では、それぞれOUIを設定して、Eficasを保存して終了します。
さらに検証を進めると、PCENT_PIVOTの追加がエラーメッセージにあるので100と設定します。
・ソルバーMUMPUSでの解析
再びASTKを起動して解析を実行します。この場合には解析は途中まで進みますが、mess,resuが生成されません。
そこで、Total memoryをこの状態で可能な8000MBとして、CPUコア数を4にすると、解析は最後まで進みました。そこで期待の計算時間ですが88.51秒でデフォルトの1コアの場合とほぼ同じでした。並列処理の効果がなかなか確認できません。
先ほどの解析結果では、CPUコアを1から4に変更したことで、計算時間が増える期待外れな結果でした。それでは、別のソルバーに変更して検討を広げたいと思います。
・Eficasの起動
コマンドファイルcommはテキストファイルなので、エディタでも修正できますが、パラメータの選択などを支援するEficasを使う方が便利です。ASTKの解析ファイルの中で、ssnv506d.commにカーソルを入れておき、メニューから Tools > Command file editor (Eficas)を選択します。
・Eficasの操作
最初に用いるコマンドのバージョンを聞かれるので、ここでは安定板なのでSTA10を選択して、OKで進めます。
ソルバーの設定は、STAT_NON_LINEにあるので、これを展開して、最後の方のSOLVEURを展開します。
デフォルトの直接法ソルバーとしてmult_frontが設定されているので、SOLVEURにMETHODを追加します。
これに対して、MUMPUSを設定します。b_mumpsに、OUT_OF_CORE, MATR_DISTRIBUTEE, LIBEREMEMOIREを追加します。
これらの3つのMUMPUSの設定項目では、それぞれOUIを設定して、Eficasを保存して終了します。
さらに検証を進めると、PCENT_PIVOTの追加がエラーメッセージにあるので100と設定します。
・ソルバーMUMPUSでの解析
再びASTKを起動して解析を実行します。この場合には解析は途中まで進みますが、mess,resuが生成されません。
そこで、Total memoryをこの状態で可能な8000MBとして、CPUコア数を4にすると、解析は最後まで進みました。そこで期待の計算時間ですが88.51秒でデフォルトの1コアの場合とほぼ同じでした。並列処理の効果がなかなか確認できません。