RESP-Dには計算オプションとしてマルチスレッド機能やマトリックス計算ソルバの設定があり、最近複数ケースを並列計算させるプロセス分割の機能も実装されました。
今回は30階建てと50階建ての単純な耐震モデルを対象に計算オプションごとに振動解析の時間を測定してみた結果を紹介します。
計測PCの性能
プロセッサ:Intel Core i7-9700
実装メモリ:16GB
モデル条件
30階および50階 RC造
スパン 5×5 6mピッチ
解析条件
振動解析
非線形特性:
柱:ファイバーモデル
梁:M-θ(材端剛塑性バネ)
解析ケース① Elcentro-NS 50kine X方向(30秒)
解析ケース② Elcentro-NS 50kine Y方向(30秒)
積分時間間隔 1/400秒
※振動解析前に解析モデルの質量及び初期応力で必要な荷重拾い及び長期荷重・地震荷重の弾性解析も事前解析として実施します
検証する計算方法
①デフォルト解析
スレッド数:1
プロセス数:1
マトリックスソルバ:Skyline
RESP-D初期設定の計算です。
②マルチスレッド
スレッド数:4
プロセス数:1
マトリックスソルバ:Skyline
RESP-Dの「オプション」から各計算時のスレッド数を4に変更した計算です。
③複数プロセス
スレッド数:1
プロセス数:2
マトリックスソルバ:Skyline
RESP-Dの「オプション」から「解析時、複数プロセスで実行」にチェックを入れ、
プロセス数を2に変更した計算です。
今回の場合ではX方向とY方向の2つの解析を並列的に計算します。
④複数プロセス + Sparseマトリックス
スレッド数:1
プロセス数:2
マトリックスソルバ:Sparse
③の設定からマトリックスソルバをSparseマトリックスに変更して計算します。
⑤複数プロセス + IntelPardisoマトリックス
スレッド数:1
プロセス数:2
マトリックスソルバ:IntelPardiso
③の設定からマトリックスソルバをIntelPardisoマトリックスに変更して計算します。
測定結果
デフォルトスレッド1
|
マルチスレッドスレッド4
|
複数プロセススレッド1
|
複数プロセススレッド1
|
複数プロセススレッド1
|
|
---|---|---|---|---|---|
30Fモデル | 19分52秒
(19分29秒) |
18分38秒
(18分17秒) |
9分48秒
(9分17秒) |
10分26秒
(10分4秒) |
11分2秒
(10分39秒) |
50Fモデル | 31分12秒
(30分51秒) |
28分59秒
(28分30秒) |
15分32秒
(14分58秒) |
18分37秒
(18分2秒) |
18分11秒
(17分33秒) |
※()内の数値は荷重計算や長期解析を除いた振動解析のみの時間
マルチスレッド化の影響は今回のモデルでは非線形性の強い部材も少ないからか、計算速度の高速化はわずかなものとなりました。
複数プロセスでの解析は並列的な計算を行うため、当たり前ではありますが、かなりの高速化が見込めることが分かります。
SkylineとSparse、IntelPardisoについては30Fモデル、50FモデルいずれもSkylineのマトリックス計算法が今回は計算が早い結果となりました。
今回は単純なモデルでの計算速度の測定を行いましたが、免震や制震などの複雑なモデルやより規模の大きいモデル、質点系や静的解析についての計測も今後行っていきます。
今回使用したソフト RESP-D