粒子追跡アプリケーションで検出された負荷バランス問題
英国環境漁業水産養殖科学センター(Cefas)は、海洋科学技術の世界的リーダーであり、水生環境、生物多様性、食糧安全保障に革新的なソリューションを提供しています。センターでは、さまざまな海洋管理に関する問題に取り組むために、行動モデルと輸送モデルを使用しています。
彼らは、流体力学モデルからの速度場を用いるオフラインの粒子追跡モデルを使用しています。これは個体行動モデル(IBM)GITM(一般個体輸送モデル)コードとして知られています。これには物理的な粒子の移流と拡散、生物学的な発達と行動が含まれます。コードはFortran 90で実装され、既にOpenMP並列化されていました。
目的
この作業の目的は、GITMアプリケーションのOpenMPを用いた並列性能の向上と、MPIによる分散メモリHPCシステム上での並列実行のための作業量を定量化することでした。
方法
分析:コード分析には2か月を要しました。性能の評価と制限事項を特定するために一連の性能指標を使用しました。これらの指標は、計算スケーリング性、負荷バランスに関係するものです。分析の結果、マルチスレッドの使用に対して更に性能上の利得が得られることがわかりました。その要因として見出されたのは、非効率的なキャッシュ効率とベクトル化の非効率な配列アライメントによって生じる負荷バランス性でした。また、コードはOpenMPで並列化されていますが、NetCDFを用いたI/Oはシリアルに実行されていました。
負荷バランステストレポートの例
レポート:アプリケーションのベクトル化と計算性能を改善するための推奨事項が作成されました。特に、コンパイラの変更は、マスクされたFortran 90配列操作のベクトル化が促進することがあります。配列の並びが改善されるとベクトル化がより効率的になり、浮動小数点除算の使用を減らすことでより効率的な計算が可能になります。MPIを使用するための長期的な推奨事項が作成されました。これによりシーケンシャルアクセス方式ではなくパラレルNetCDFライブラリを介してI / Oを実行することでスケーラビリティを高めることができます。
コードの改善:コードの改善は、要請された場合にnAGのアドバイスを利用して、既存の開発によって実行されています。
今後:作業は現在、I / Oを改善し、コードの更なる部分をベクトル化することが進められています。
並列NetCDFライブラリをパラレルI/Oに利用できるように、MPI利用の長期的な推奨が検討されています。
この分析の詳細はPOPプロジェクトレポートを参照してください。
注:この作業はPOPの任務として担当したnAGのスタッフが実施しました。
EUのHPCプロジェクトPerformance Optimisation and Productivity (POP)は、科学技術研究に対するHPC技術の利用を促進を目的として欧州委員会によって推進されているHPC領域の8つのセンターオブエクセレンスの1つです。POPは2015年に開始され、バルセロナ・スーパーコンピューティングセンターに設置されました。POPプロジェクトには、nAG、ユリッヒおよびシュツットガルト・スーパーコンピューティングセンター、アーヘン大学、Teratecがパートナーとして選ばれました。
POPは、EU内の組織に無料でサービスを提供しており、並列ソフトウェアのパフォーマンスを分析かつ問題を特定してパフォーマンスの改善を提案するプロジェクトです。性能分析ツールとして、バルセロナ・スーパーコンピューティングセンターで開発されたExtraeとParaverが主に用いられています。