お客様プロフィール

株式会社IHI様総合重工業メーカー
【URL】https://www.ihi.co.jp/
流体解析アプリケーションの実行時間が10分の1に。開発費用と開発期間を削減
2017年4月~11月の期間で、航空用ジェットエンジン開発における、三次元圧縮性流体解析プログラムと流体力学シミュレーションプログラムの高速化チューニングを実施しました。
抱えていた課題
- より規模が大きい複雑なケースのシミュレーションを行いたい
- テストケースを増やしてより多くのシミュレーションを行いたい
- スレッド並列化したにもかかわらず逐次処理よりも時間がかかっていた
高速化適用後の効果
- 9.98倍の高速化をしたことによるシミュレーションコスト(費用、期間)の削減
- 製品の市場投入を早められたことによるビジネスインパクトの向上
改善のポイント
- コアレベルの並列性の向上ソース修正とOpenMPにより、スレッド並列化を促進しました。
- 命令レベルの並列性の向上ソース修正と最適化指示子でSIMD化し、命令スケジューリングを促進しました。
スレッド並列化における性能劣化問題
初めに行った性能計測では、16コアを使った自動スレッド並列処理であるにもかかわらず、逐次処理の約4倍もの実行時間がかかってしまっていることを確認しました。また、プロファイルの結果から、整数型load を扱う装置で待ち合わせが発生していることが分かりました。
では、なぜ整数型loadで待ち合わせが発生しているのでしょうか。メトロでは30年間で2700件を超えるチューニングに対応してきたこれまでの知見から、複雑なアセンブラコードの中で目星をつけ、検証と分析を繰り返して原因を絞り込んでいきます。
コアレベルの並列性の向上についての原因と対策
16並列(改善前)

16並列(改善後)

最もボトルネックになっていたのは、コンパイラが内部で生成するallocate関数が各スレッドから同時期に実行され、大きなコンフリクトが発生していたことでした。
この問題を解決するには複数の手法がありますが、プログラムの特性と環境を考慮した結果、ポインタ配列をローカル配列にコピーして、その配列を引数とすることが最適な手法だと考えられました。これによりローカル配列はスレッドスタック領域に確保されるため、関数を呼び出すたびに発生していたヒープ領域のコンフリクトが解消されます。
コアレベルの並列性の向上についての性能改善の結果
今回の事例では改善前と比較して、7.15倍高速化することができました。スレッド並列化はマルチコアを活用する大変有効な手段です。しかし、ハードウェア本来の性能十分に発揮するには、コンパイラとハードウェアを熟知し、並列実行時に発生するボトルネックを正しく分析し適切に対処することが必要となります。
さらに命令レベルの並列性の向上を合わせて行うことで、最終的には9.98 倍の性能向上を実現することが可能になりました。
資料ダウンロード
本事例のPDF資料のダウンロードをご希望される方は、下記フォームにお客様情報をご入力ください。
当サイトで取得する個人情報の取り扱い
【個人情報の利用目的について】
弊社は、ご記入いただく個人情報を、以下の目的に利用します。
- 弊社のサービス・製品及び、弊社が開催するイベントまたはセミナーに関する情報の提供(E-mail、電話等)
- お問合わせに対する回答、関連する資料の送付
- お客様との連絡・交渉
- 弊社のサービス・製品の提供に当たって必要な事務手続き及び請求手続き
- サービス・製品等のサポート対応
【個人情報の委託について】
弊社では、利用目的の達成に必要な範囲内において、他の事業者へ個人情報を委託することがございます。その場合は、個人情報保護体制が整備された委託先を選定するとともに、個人情報保護に関する契約の締結や適切な監督を行います。
【第三者提供について】
弊社は、お客様の承諾を得た場合または法令により許された場合を除き、お客様の個人情報を第三者に提供いたしません。お客様の同意のもとまたは法令に基づき個人情報を第三者に提供する場合には、適切な管理を義務づけ、その第三者からの漏えい・再提供の防止などを図ります。
【本人が個人情報をご提供する際の任意性について】
弊社に個人情報を提供することは任意です。ご提供いただけない場合は、弊社の業務に支障を来し、ご本人が弊社からの十分なサービスを受けられない可能性がございますのでご了承ください。
【個人情報の取り扱いに関するご連絡先、相談窓口】
※開示、訂正、利用停止等のお申し出は、下記リンクに記載の受付窓口までご連絡ください。
https://www.metro.co.jp/privacypolicy-3.html
【個人情報保護管理者】
- 取締役 執行役員 CIO
- 電話番号:03-4214-1020
- メールアドレス:privacy@metro.co.jp
◆「個人情報保護ポリシー」「プライバシーポリシー」をご覧になりたい方は下記リンクをご参照ください。
フォームが表示できない場合
フォームが表示できない場合は、Q&A をご覧ください。
関連サービス
アプリ高速化サービス
スーパーコンピュータや組み込み向けアプリケーションの動作が遅くなるボトルネックを解消し、開発・研究にかかる期間の短縮や経費削減に繋げます。
コンパイラ開発
コンパイラの性能改善やアーキテクチャ対応、プログラム言語の新しい規格への対応など、プロセッサの性能を引き出すための独自コンパイラを開発いたします。
