sgi technology guide for ansys fluent analysts guide sgi ® technology guide for ansys fluent...
TRANSCRIPT
T E C H G U I D E
SGI® Technology Guide For ANSYS® Fluent™ Analysts
AuthorBy Spencer Swift†, Tony DeVarco††
AbstractANSYS Fluentソフトウェアは、航空機の翼に流れる気流のほか、炉内燃焼、血流、半導体製造、クリーンルーム設計、排水処理施設など、工業分野の流体、乱流、熱伝達および反応をモデル化するために必要となる幅広い物理モデリング機能を備えています。シリンダー内の燃焼、空力音響、ターボ機構、多相系をソフトウェアでモデル化できる特別なモデルが提供され、用途が広がっています。ANSYS Fluentソリューションは、複数ユーザをサポートするための豊富な並列処理能力を備えており、リソースがどこに分散していてもソフトウェアを配備して、使用できるよう、柔軟性を完備しています。
しかしながら、ソリューションを実行する場合は、ハードウェアリソースの配置には細心の注意が必要です。単一ノードマルチコアのワークステーションから、複数ノードのクラスタ、巨大なメモリ空間をアクセスするシングル・イメージの多コアシステムまで、ハードウェアが多様化した今日では、この問題はさらに重要性を増しています。この文書では、そのようなソリューションのMPI性能、コア周波数、ネットワークトポロジーの選択、メモリ速度およびハイパースレッディングの利用について考察し、先進のSGIコンピュータハードウェアシステム上でANSYS Fluentを実行するガイドラインを確立します。
† Senior Application Analyst, SGI Applications Engineering†† Director of SGI Virtual Product Development Solutions
T E C H G U I D E
目 次
1.0 SGI システムについて 11.1 SGI Rackable® スタンダードデプスクラスタ 11.2 SGI® ICE™ X システム 21.3 SGI® UV™ 2000 31.4 SGI パフォーマンスツール 41.5 SGI システム管理ツール 41.6 リソースとワークロードのスケジューリング 41.7 SGI NICE DCV付属SGI VizServer® 5
2.0 ANSYS Fluent 概要 62.1 ANSYS Fluent アプリケーションアーキテクチャ 6
2.1.1 プリプロセッシングフェーズ 62.1.2 ソリューションフェーズ 72.1.3 ハードウェアとソフトウェアの体系 82.1.4 並列処理指標 8
3.0 ANSYS Fluent アーキテクチャの主要コンポーネント 84.0 SGI ANSYS Fluentのベンチマーク 9
4.1 ジョブサブミット手順 94.2 サブミットコマンド 10
5.0 ベンチマーク例 105.1 ベンチマーク結果 r16 11
5.1.1 Fluent r15 と Fluent r16 の性能を比較したSGI ICE Xベンチマーク結果 125.2 SGI® PerfBoostを使ったSGI MPIライブラリの優位性 135.3 コアの周波数とインテル® ターボ・ブースト・テクノロジーの影響 145.4 メモリ速度とメモリ帯域幅の影響 155.5 クラスタに関するネットワーク技術の選択 175.6 ハイパースレッディング技術の利用 17
6.0 結論 18
SGI® Technology Guide for ANSYS® Fluent™ Analysts
T E C H G U I D E
SGI® Technology Guide for ANSYS® Fluent™ Analysts 1
1.0 SGIシステムについて本書で概説するベンチマークの実行に用いられるSGIシステムは、SGI Rackable® スタンダードデプスクラスタ、SGI® ICE X統合ブレードクラスタおよびSGI® UV™ 2000共有メモリシステムで構成されます。また、これらは世界で最も難しいとされてきたコンピューティング上の課題のいくつかを解くために用いられたサーバと同じものです。
1.1 SGI Rackable® スタンダードデプスクラスタ
SGI Rackable® スタンダードデプスクラスタのC2112-4GP3 2Uラックマウント筺体は4つのノードからなり、64スロットで最大4TBのメモリ(16スロット/サーバ)をサポートします。また、この筺体は、FDR InfiniBand、14コア インテル® Xeon® プロセッサー E5-2600 v3 シリーズ、2133MHz DDR4メモリをサポートし、2U毎に最大144コア搭載可能です。SUSE® Linux® Enterprise Server または RedHat® Enterprise Linuxが実行可能でTCOを削減します(図1)。
本書で用いるSGI Rackableクラスタの構成:
ベンチマークシステム• SGI Rackable Standard Depth Servers C2112-4GP3
• インテル® Xeon® 14コア 2.6GHz E5-2697 v3
• IB FDRインターコネクト
• コアあたり4.5 GBメモリ、メモリ速度 2133 MHz
• Altair® PBS Professional Batch Scheduler v12
• SLESまたはRHELと最新のSGI Performance Suite™
図1: SGI Rackable Server (トップカバーを外した様子)
T E C H G U I D E
SGI® Technology Guide for ANSYS® Fluent™ Analysts 2
1.2 SGI® ICE™ X システム
SGI® ICE™ Xは、世界最速の商用分散メモリ型スーパーコンピュータのひとつです。その性能のリーダーシップは、研究所や顧客サイトで証明されており、その中には世界最大かつ最速の計算InfiniBandクラスタを採用しているサイトもあります。インテル® Xeon® プロセッサE5-2600 v3シリーズ単独での計算ノード、またはインテル® Xeon® プロセッサおよびインテル® Xeon Phi™コプロセッサとNvidia® Compute GPUから成る計算ノードを構成できます。SUSE® Linux® Enterprise ServerとRed Hat® Enterprise Linuxが稼働するSGI ICE Xは、ラック当たり172テラフロップスを超える性能を発揮でき、36ノードから数万ノードまでの構成が可能です。
SGI ICE Xは、システムのオーバーヘッドと通信のボトルネックが最小になるよう設計されおり、スイッチとシングルプレインあるいはデュアルプレインのFDRインターコネクトを選択することにより、さまざまなトポロジーで構成できます。統合ブレード設計により、ラックレベルでの冗長電源と、空冷もしくは冷水か温水による水冷が選択可能で、ストレージや可視化機能を追加することも可能です(図2)。
この文書では次のSGI ICE XとXAの構成を使用しました。
ベンチマークシステム• SGI ICE X と XA
• インテル® Xeon® 12コア 2.6 GHz E5-2690 v3
• IB FDR インターコネクト
• コアあたり5.3 GB メモリ、メモリ速度 2133 MHz
• Altair® PBS Professional Batch Scheduler v12
• SLES または RHEL と最新の SGI Performance Suite™
図2: SGI ICE X クラスターとブレード・エンクロージャ
T E C H G U I D E
SGI® Technology Guide for ANSYS® Fluent™ Analysts 3
1.3 SGI® UV™ 2000
SGI UV 2000サーバは最大256ソケット(2,048コア)で構成されています。シングル・システム・イメージで64TBのグローバル共有メモリをサポートしているので、インメモリデータベースから多様なデータ群にわたるアプリケーションや、数値計算HPCアプリケーションに対して、SGI UVの能力を最大限引き出せます。なじみがあるLinux OSでプログラミングでき[2]、複雑な通信アルゴリズムを搭載するためにソフトウェアを書き換える必要はありません。TCOは、ひとつのシステムだけを管理すればよいので低く抑えられます。ワークフローや全体の時間のソリューションは、プリプロセッシングやポストプロセシング、ソルバー、可視化をデータを移動させることなく、ひとつのシステム上で稼働させることにより短縮されることです(図3)。
ジョブのメモリは、コアの配置とは独立にアロケートされ、マルチユーザで異機種混合ワークロード環境の柔軟性が最大限に発揮されます。クラスタ上では問題を分解しなければならず、多数のノードを利用する必要がありますが、SGI UVは、多くのメモリを必要とする問題を利用可能なアプリケーションライセンス適用して任意の数のコアで実行することができ、しかもメモリリソース不足によりジョブが中断させられる懸念が少なくなります。
図3: SGI UV Computer Aided Engineering (CAE)におけるANSYSアプリケーションのワークフロー
本書で用いるSGI UV共有メモリの構成:• SGI® UV™ 2000
• インテル® Xeon® 8コア 3.3 GHz E5-4527 v2
• NUMAlink® 6 インターコネクト
• コアあたり 8 GB メモリ、メモリ速度 1867 MHz
• Altair® PBS Professional Batch Scheduler v12
• SLES または RHEL と最新の SGI Performance Suite™
T E C H G U I D E
SGI® Technology Guide for ANSYS® Fluent™ Analysts 4
1.4 SGI パフォーマンスツール
最新のMPI準拠ライブラリと標準Linuxディストリビューションを活用して、SGI® Performance Suite(図4)は、HPCアプリケーションの高速化と規模の拡大を飛躍的に加速します。豊富な機能を持つツール群は、アプリケーションの配置を最適化し、再コンパイルせずにランタイムでアプリケーションをチューニングすることが可能で、最大70%まで性能を高めることができます。細粒度の指標はMPI分析を容易にします。チェックポイントリスタート機能は生産性を高めます。さらに標準Linuxディストリビューション上の特別なカーネルを使わずに、ハード・リアルタイム・パフォーマンスを実現できます。世界に誇るアプリケーションの専門知識と相まって、SGIはLinuxを次のレベルに引き上げます。詳細については、http://www.sgi.com/products/software/をご覧ください。
図4: SGI Performance Suite Component
1.5 SGI システム管理ツール
ベアメタル・プロビジョニングとメモリ障害回避、24×7のシステム監視、タスク自動化、革新的な電力最適化などを通して、SGI® Management Suiteは、生産性の最大化と高い投資対効果の実現を支援します。アドミニストレータは、ずば抜けた速度でのシステム導入とアップグレード、積極的なシステムの健全性とエネルギー消費の管理、高いサービスレベルの常時提供が可能になるので、ユーザは継続的により短い時間でより多くのジョブを実行することができます。詳細については、http://www.sgi.com/products/software/smc.html をご覧ください。
1.6 リソースとワークロードのスケジューリング
リソースとワークロードのスケジューリングにより、大規模で複雑なアプリケーション、ダイナミックで予測できないワークロードを管理し、限られたコンピューティングリソースを最適化することができます。SGIは、選択可能な複数のソリューションを提供し、お客様のニーズに的確にお応えします。
Altair Engineering PBS Professional® は、SGIのあらゆるクラスタやサーバにおいてテクニカル・コンピューティングのスケーリングを行う際にSGIが推奨するワークロード管理ツールです。
特長:• ポリシー主導型のワークロード管理。生産性を向上させ、サービスレベルを満たし、ハードウェアとソフトウェアの
コストを最小限に抑えます。• ワークロード主導自動ダイナミックプロビジョニングのような機能についてSGI Management Centerとの統合
機能。
• Altair PBS Professional Power Awarenessは、SGI Management Center 3とジョブレベルの電力管理を統合します。
T E C H G U I D E
SGI® Technology Guide for ANSYS® Fluent™ Analysts 5
Adaptive Computing Moab® HPC SuiteベーシックエディションAdaptive Computing Moab® HPC Suiteは、スケーラブルシステムのワークロードのためのインテリジェントな予測的スケジューリングを可能にします。
• クラスターワークロードのスケジューリング、管理、監視、報告を統合するポリシーに基づいたHPCワークロードマネージャー
• TORQUEリソースマネージャー同梱
1.7 SGI VizServer® (NICE DCV)
図5: SGI VizServer ワークフロー
企業のサーバにインストールしたSGI VizServer®(NICE DCV)は、企業のプライベートネットワークに組み込まれたSaaSとして、Fluentリモート可視化機能を提供できます。ソフトウェアは、使いやすいウェブインターフェースでアクセスできるので、エンドユーザが容易に利用できます。このソリューションは、直感的なヘルプとガイダンスを提供しており、経験の少ないユーザでも複雑なITプロセスに邪魔されることなく生産性を最大にできます。
SGI VizServer(NICE DCV):• 技術者指向のセルフサービスポータル: 技術者は、セルフサービスポータルを使って、ANSYSポストプロセシン
グアプリケーションとウェブブラウザで設定したデータにアクセスできます。ユーザの企業データ漏洩防止とITマネージャーの使用履歴管理を保証するセキュリティ、モニタリング、管理も提供します。技術者は、自分のローカルクライアントに個別のFluentソフトウェアをインストールする必要はなく、ウェブブラウザからFluentアプリケーションとデータに直接アクセスできます。
• リソース制御と抽象レイヤー: リソース制御と抽象レイヤーは、ポータル内部に隠されており、エンドユーザからは見えません。ユーザの使い心地を損なうことなく、ジョブのスケジューリング、遠隔可視化、リソースプロビジョニング、相互ワークロード、分散データ管理を処理します。このレイヤーは、ブラウザからのユーザの要求を翻訳し、可視化やHPCタスクを遂行するために必要なリソースの割り当てを支援します。また、マルチサイトWANでの実装だけでなく、単一SGI RackableクラスタやSGI UVサーバ上で稼働するスケーラブルなアーキテクチャを持っています。
• 計算とストレージリソース: SGI VizServer(NICE DCV)は、企業が既に持っている、または新規購入したSGI業界標準リソースを活用します。対象リソースには、ホスト・アプリケーション・バイナリ、モデル、中間結果に必要なストレージだけでなく、サーバ、HPCスケジューラ、メモリ、グラフィックス・プロセッシング・ユニット(GPU)、可視化サーバなどがあります。これらは全てリソース制御と抽象レイヤーを介してウェブベースのポータルでアクセスされ、エンドユーザの必要に応じてミドルソフトウェアが提供します。
T E C H G U I D E
SGI® Technology Guide for ANSYS® Fluent™ Analysts 6
NICE DCVとEnginFrameソフトウェアは、共通の技術標準に従って構築されています。このソフトウェアは、ネットワークを大幅にアップグレードすることなく、企業が独自のセキュアなエンジニアリング・クラウドを作成できるように、ネットワークインフラに順応します。また、このソフトウェアでは、技術アプリケーションとデータの両方ともプライベートクラウドまたはデータセンタに留まり、ソフトウェア自体をワークステーションに転送してステージングする必要性がないので、データの安全が確保されます。これらのソリューションは、単純、セルフサービス、ダイナミック、スケーラブルというクラウド・コンピューティングの最大の特長を備えています。その上、ユーザの居場所に関係なく、エンドユーザへHPCの能力を提供するだけでなく、3次元可視化も提供できます。
2.0 ANSYS Fluent 概要数値流体力学(CFD)シミュレーションソフトウェアは、製品使用時だけでなく、設計から製造にいたるまで、製品への流体の影響を正確に予測する機能を提供します。例えば、流体解析機能は、新しい装置の設計と最適化や既存品の障害診断に使用でき、製品性能に関する貴重な見識を提供します。ANSYS Fluentソフトウェアは、航空機の翼に流れる気流のほか、炉内燃焼、気泡塔、石油プラットフォーム、血流、半導体製造、クリーンルーム設計、排水処理施設など、工業分野の流体、乱流、熱伝達および反応をモデル化するために必要となる幅広い物理モデリング機能を備え、工学シミュレーション業界ではリーダー的存在です。特別なモデルを利用して、シリンダー内の燃焼、空力音響、ターボ機構、多相系のシミュレーションも可能です。
これらの複雑なシミュレーションモデルは、大量のデータを生成し、適正な時間で解を提供するために最高の計算性能を必要とします。例えば、ソフトウェアでは10億以上のセルを含む微細なメッシュとして実際の製品を表現します。各セルは一連の方程式で記述され、解が収束するにつれてその方程式を何度も解く必要があります。ANSYS Fluentが使用する先進の並列計算処理手法では、解答までの時間を最短にするために、単一マシンやネットワーク上の多様なマシン内の多数のマルチコアプロセッサを有効活用します。動的負荷分散は、複雑な物理モデルが使われていてもCPUがバランスのとれた負荷を分担するように、自動的に並列計算性能を検出して分析し、プロセッサ間での計算セルの割り当てを調整します。ANSYS Fluentは、SGI のLinux®プラットフォームで提供されています。
2.1 ANSYS Fluent アプリケーションアーキテクチャ
ANSYS Fluentには、異なる3つの使用フェーズがあり、各フェーズにはそれぞれ異なるハードウェア要件があります。
2.1.1 プリプロセッシングフェーズ
ANSYS Fluentのプリプロセッシングは、ANSYS CADインターフェース(CAD形状にアクセス)、ANSYS DesignModeler(幾何学形状生成と修正)、ANSYS Meshing、ANSYS DesignXplorerなど、他のANSYSソフトウェアアプリケーションと連携します。また、ANSYS Fluentのユーザインターフェースはプリプロセッシング中にも使用されます。これら全てのアプリケーションは、ANSYS Workbench環境下で動作し、対話型のグラフィックモードで使用します。
これらのアプリケーションは多くの場合、スタンドアロンのデスクトップワークステーション上かサーバ上のリモート可視化ツールを介して、単一プロセッサで実行されていました。ソルバーで必要な計算要素を生成する技術によって、多くのプロセッサを並列に使用するよう最適化できます。ANSYS Meshing、ANSYS DesignModeler、ANSYS DesignXplorerで必要なメモリは、モデルのサイズに依存します。プリプロセッシングフェーズ中に生成される典型的な入力ファイル(「ケースファイル」とも呼びます)は、100 MB(またはそれ以下)から、大きなワークロードでは2~3 GBにおよびます。出力ファイル(「データファイル」とも呼びます)は、次に示すように、著しく大きくなります。プリプロセッシングでは、グラフィックが多用されるので、ハイエンドのANSYS認定グラフィックカードが必要です。
T E C H G U I D E
SGI® Technology Guide for ANSYS® Fluent™ Analysts 7
2.1.2 ソリューションフェーズ
ソリューションフェーズでは、対象の物理的な振る舞いを記述した方程式を解くためにANSYS Fluentソルバーが実行されます。このフェーズでは、計算能力とメモリを集中的に使用し、マルチコアワークステーション、サーバ、またはサーバやブレードのクラスタ上の並列処理を使って最適化します。適切に規模調整されたハードウェアを利用すると、ターンアラウンドタイムを、週単位から日単位へ、あるいは日単位から時間単位へと短縮できます。また、適切なハードウェアは、より大規模で、詳細なシミュレーションモデルも可能にします。
製品設計に必要なANSYS Fluentシミュレーションモデルの多くは、モデルの解像度と規模に応じて16から128の計算コアで実行されます。大規模で高解像度のモデルでは、千や1億さえ超える処理コアを活用できます。
Fluent Rating と Speed-upクラスタ環境におけるソリューションフェーズの性能を評価するために、2つの測定値、Fluent RatingとSpeed-upを使用します。
Fluent Ratingは、スループット測定値で、24時間以内に実行できるベンチマークジョブ数で定義します。
Fluent Rating = 86,400秒 / 1ベンチマークジョブ完了までの必要秒数
Speed-upは、基準プラットフォームからの改善係数です。例えば、基準プラットフォームが2ノード構成の場合、32ノード構成のSpeed-upは:Speed-up = 32ノードのFluent Rating / 2ノードのFluent Rating
並列処理効率は:並列処理効率 = Speed-up / (対象構成のノード数 / 基準構成のノード数)
通常、1ノードを基準構成として使用します。時には、最小試験構成が、メモリ不足などの制限のために複数ノードとなることもあります。ANSYS Fluentは、高度にスケーラブルなアプリケーションです。スケーラビリティの障害が最小となるネットワーク上に実装された場合、すばらしい高速化と高効率を実現できます。
並列処理機能コンピュータシステムの並列処理には、2つの手法が存在します。• 分散メモリ並列処理(DMP)は、明示的な物理領域の分解に焦点を当てたMPIアプリケーション・プログラミン
グ・インターフェース(API)を使用します。結果として小さくなった幾何学的領域では、必要な処理用リソースが少なくなり、効率が向上します。とは言え、共通境界の大きさは、プロセス間通信を減らすために最小に保たなければなりません。
• 共有メモリ並列処理(SMP)は、多様な共有スレッド(例えば、OpenMP、Pthreads等)を使用します。
これら2つの枠組みは、異なる2つのシステムハードウェアレベルに同時にマッピングすることが可能です。
• ノード間またはクラスタ並列処理(メモリは各ノードでローカル)- DMPのみ。
• ノード内またはマルチコア並列処理(メモリは各ノードの全コアで共有)。
上記のハイブリッドアプローチを用いるANSYS Fluentの機能には、AMGソルバー、粒子追跡、レイトレーシング、アーキテクチャを考慮した領域分割があります。
ANSYS Fluentの分散並列処理機能Fluent並列シミュレーションは、常に幾何学的領域分割から始まります。この技術は、幾何学モデルを分割し、各プロセッサのソケット上のコアに領域を分配します。プロセス間通信を減らすために、領域間の境界サイズを最小にするように注意しなければなりません。
負荷分散は、通信コストを最小にするのと同様に重要です。各メッセージ・パッシング・インターフェース(MPI)プロセスについて、各プロセスが解の計算中にほぼ同じ計算量をこなし、同時に終了するように、ワークロードのバランスを取ります。ノード全体の総MPIプロセス数を、最初に処理が指定された各ノードのコアをいっぱいにする(「ランク」配置)か、全てのノードにわたってラウンドロビン方式で分配するように割り当てます。実際には、領域分割はユーザに存在をまったく意識させませんが、ユーザは利用可能な領域分割手法(Principal Axes、Metis等)の中から選択できます。
T E C H G U I D E
SGI® Technology Guide for ANSYS® Fluent™ Analysts 8
2.1.3 ハードウェアとソフトウェアの体系
分散メモリ並列処理には、目の前の問題のために領域分割が実装されています。それぞれの業界が関わる物理的現象に応じて、領域とは、形状、有限要素、行列、周波数、荷重条件、または陰解法の右辺などになります。通信コストによる並列処理の非効率性は、領域分割によって作られた境界の影響を受けます。負荷分散も、全てのMPIプロセスが解の計算中に同じ計算量をこなし、同時に終了するためには重要です。コンピューティングリソース全体にわたるMPIプロセスの配置は、「ランク」または「ラウンドロビン」アロケーションを使って、各アーキテクチャに適応させることができます。
2.1.4 並列処理指標
ソリューションフェーズでは、ファイル入出力(I/O)を比較的少ししか必要としません。ただし、主としてソリューションの進捗を監視するために行われるものがあります。ソリューションフェーズの最後で、ANSYS Fluentは結果ファイル
(これは「データファイル」とも呼ばれます)をセーブします。この出力ファイルは、数百MBから、ハイエンドでは10~20GBまでの範囲になります。多くのワークロードは、複数の出力ファイルを生成します。長時間の過渡現象シミュレーションでは、計算途中での中間データ自動保存が役立つことがあります。その場合、ワークロードは、高性能ファイルシステムとストレージネットワークを使って最適化できます。ポストプロセシングフェーズは、ANSYS Fluent(統合ポストプロセッサを搭載)やANSYS CFD Postと連携します。
3.0 ANSYS Fluent アーキテクチャの主要コンポーネントANSYS Fluentアーキテクチャの主要コンポーネントは、以下の6つです。
CORTEXCORTEXは、ANSYS FluentのフロントエンドGUIです。対話型の場合、エンドユーザはこれを使ってアプリケーションと対話します。
HOSTHOSTプロセスは、ケースやデータなどの入力データを読み込み、メッシュ情報を残りの計算タスクに配布するために計算タスク0と通信します。さらに、HOSTタスクは、過渡現象モデルのシミュレーション中にI/Oを実行するために使われます。
計算タスク計算タスク群は、以前に説明したソリューションフェーズを実行する抽象化したソフトウェアです。計算タスクはMPIを用いて互いに通信します。計算タスク0は、特別な意味を持っており、メッシュ関係の情報を送受信するために、HOSTプロセスとやりとりします。オプションで、すべての計算タスクはHOSTプロセスのオーバーヘッド無しで、MPI-IOを用いて直接I/Oディバイスにモデルの状態情報(.pdatファイル)を回復または保存できます。計算タスクで実行されるパラレルI/Oをサポートするために並列ファイルシステムが必要となります。
ファイルシステムANSYS Fluentソリューションプロセス中に情報を保存または回復するために、ファイルシステムが必要となります。ファイルシステムは、HOSTタスクが存在するノードのローカルでも良く、またはネットワークファイルシステム(NFS)やGeneral Parallel File System(GPFS)などの共有ファイルシステムでも実現可能です。両方ともEthernetやInfiniBandなどのインターコネクトファブリックを介してHOSTタスクにアクセスできます。
計算ノード計算ノードは、全てマルチコアで、ANSYS Fluent計算タスクを実行するために使用されます。計算ノードの各コアは、ひとつの計算タスクを実行します。
ネットワーク(インターコネクト)これは、HOSTタスクを実行する計算ノード、ファイルサーバ、クライアントのワークステーションを接続する通信ファブリック群です。通常、これらのシステムは、機能によってグルーピングされ、それぞれは個別のネットワークで接続されま
T E C H G U I D E
SGI® Technology Guide for ANSYS® Fluent™ Analysts 9
す。例えば、全ての計算ノードを、プライベートネットワークで接続することもできます。ただし、常にゲートウェイとして働くノードが存在し、ヘッドノードのように2つのネットワークに所属して、あるネットワーク上のエンティティが他のネットワーク上のエンティティにメッセージをルーティングできるようにしています。並列処理がANSYS Fluentで起動されたとき、ソフトウェアは、シミュレーションモデルを領域に分け、計算タスク群として特定のプロセッサ群に分配します。各タスクは、モデルの割り当てられた部分についてソリューションの計算を担当します。
各タスクの主な作業は計算であり、割り当てられたグリッドの領域内で最終解を計算するために反復処理を実行します。しかし、一般的に各領域の境界付近の解は隣り合う領域の解に依存するので、各タスクはグリッドの隣り合う領域を担当するタスクと通信してデータを交換する必要があります。Fluent内の通信とデータ交換では、通信するタスク間で比較的短いメッセージの転送が伴います。これは、ノード間のMPIソフトウェアレイヤーと(あるモデルについては)各ノード内の共有メモリOpenMPアプローチを使って実行されます。
ソフトウェアレイヤーは、ANSYS Fluentと同梱配布されますので、別途入手する必要はありません。
4.0 ANSYS Fluent の SGIベンチマーク
4.1 ジョブサブミット手順
サブミット手順では次の項目が重要です。• ノード内のノードとソケット全体にわたるプロセスとスレッドの配置
• ノード容量内に収まるようなプロセス・メモリアロケーション制御
バッチスケジューラーやリソースマネージャーは、フロントエンドのログインノードからジョブをディスパッチし、1つまたは複数の計算ノードで実行されるようにします。バッチ環境のディスクで実行時間を最短にするために、入出力ファイルへのアクセスは高性能共有並列ファイルシステム上に配置しなければなりません。高性能ファイルシステムは、インメモリファイルシステム(/dev/shm)、ダイレクト・アタッチド・ストレージ(DAS)やネットワーク・アタッチト・ストレージ
(NAS)ファイルシステムなどが可能です。ディスクレス計算環境では、インメモリファイルシステムかネットワーク・アタッチト・ストレージしか選択できません。このファイルシステム体系を図6に示します。
図6: Example File Systems for Scratch Space
ジョブ登録スクリプトの概要を次に示します。1. バッチスケジューラーでアロケートされた最初の計算ノード上のワークディレクトリに、ディレクトリを変更します。
2. 全ての入力ファイルをこのディレクトリに上書きします。
3. 最初の計算ノード上のアプリケーションを起動します。実行ファイル自体は、主解析実行の最初と最後で、起動ノードと他のノード間の伝播やさまざまなファイルの収集を実行できます。
Fluentは、シリアルI/OとパラレルI/Oの両方を採用しています。パラレルI/Oは、MPIのパラレルMPI I/O機能を使用しています。シリアルI/OまたはパラレルI/Oの選択は、保存しているソリューションファイルの拡張子で管理します。シリアルI/Oはxx.dat、パラレルI/Oはxx.pdatです。
T E C H G U I D E
SGI® Technology Guide for ANSYS® Fluent™ Analysts 10
4.2 サブミットコマンド
次のキーワードをANSYS Fluent実行コマンドで使用しました。
FLUENT <precision> –<rshel> –p<network> –cnf =hosts –t<nprocs> -mpi =<MPI > -i <journal> <GUI>• precision: ソルバーが単精度(3d)または倍精度(3ddp)
• rshel: リモートシェル(rshまたはssh)
• network: ノード間ネットワークの種類、GigEならeth、InfiniBandならib
• hosts: DMPジョブでの使用ノード一覧
• Nprocs: DMPジョブでの使用ノード一覧
• MPI: MPI実装バージョン(デフォルトはhp)
• journal: アプリケーション制御フローの定義ファイル
• -g: GUIなし
5.0 ベンチマーク例Ansys標準ベンチマークに基づいて多くの性能調査を実施しました。その中には、111MセルのTruckと280MセルのOpen wheel Racecarも含まれます。
Truck_14(111)m: 14(111)m Cells, Turbulent Flow, Segregated Implicit Solver
Open_Racecar_280m: 280m Cells, Turbulent Flow, Pressure-Based Coupled Solver
T E C H G U I D E
SGI® Technology Guide for ANSYS® Fluent™ Analysts 11
5.1 ベンチマーク結果 r16
次の試験結果で示したように、新世代のインテル® Xeon® プロセッサー E5-2690 v3 では、以前のインテル プロセッサーファミリーに対して顕著な性能向上がみられます。主に寄与した要因は以下です。• コア数 / ソケット数の増加
• クロックレートの向上
• メモリ速度の向上
0
1000
2000
3000
4000
5000
6000
0 1000 2000 3000 4000 5000 6000 7000 8000
Spee
d (jo
bs/d
ay)
MPI Tasks (cores)
Fluent Truck_111m cell Benchmark
ICE-‐XA E5-‐2690v3 @ 2.6 GHz
図7a: Truck 111m
0
100
200
300
400
500
600
700
800
0 100 200 300 400 500 600 700 800 900 1000
Spee
d (jo
bs/d
ay)
MPI Tasks (cores)
Fluent Open Racecar 280M cell Benchmark
ICE-‐XA R16
Rackable R16
UV2000 R16
図7b: Open_racecar 280m Cells
T E C H G U I D E
SGI® Technology Guide for ANSYS® Fluent™ Analysts 12
0
500
1000
1500
2000
2500
3000
3500
4000
4500
0 1000 2000 3000 4000 5000 6000 7000 8000
Spee
d (jo
bs/d
ay)
MPI Tasks (cores)
Fluent Open Racecar 280M cell Benchmark
ICE-‐XA R16
Rackable R16
UV2000 R16
図7c: Open_racecar 280m Cells
5.1.1 Fluent r15とFluent r16の性能を比較したSGI ICE Xベンチマーク結果
図8aとbでは、ANSYS Fluent r15と最新のANSYS Fluent r16リリース版を、最新のインテル® Xeon® E5-2690 v3プロセッサーを使い、SGI ICE XとXA上で実行して比較しました。スケーラビリティの向上につながるFluentのパラレルレイヤーで、大きく改善したのが分かります。Fluent r16リリースの詳細な特徴については、http://www.ansys.com/Products/ ANSYS+16.0+Release+Highlightsをご覧ください。
600
800
1000
1200
1400
1600
1800
700 800 900 1000 1100 1200 1300 1400 1500 1600 1700
Spee
d (jo
bs/d
ay)
MPI Tasks (cores)
Fluent Truck_111m cell Benchmark
ICE-‐XA R16
ICE-‐X R16
ICE-‐X R15
図8a: Truck 111m (detail)
T E C H G U I D E
SGI® Technology Guide for ANSYS® Fluent™ Analysts 13
0
1000
2000
3000
4000
5000
6000
0 1000 2000 3000 4000 5000 6000 7000 8000
Spee
d (jo
bs/d
ay)
MPI Tasks (cores)
Fluent Truck_111m cell Benchmark
ICE-‐XA R16
ICE-‐X R16
ICE-‐X R15
図8b: Truck 111m
5.2 SGI® PerfBoostを使ったSGI MPIライブラリの優位性
ノード、ソケットまたはコアが複数ある環境では、MPIランクとプロセッサコアを結合するMPIライブラリの機能が、性能を制御する鍵となります。現在、MPIプラットフォームは、MPIランクを発行したプロセッサのコアにMPIランクを結び付けるため、CPU指定機能とコア配置機能を提供しています。
SMPスレッドを含む子スレッドも、同じプロセッサ内のコアに結び付けることができます。しかし、異なるプロセッサには結び付けることができません。さらに、SMPスレッドに関するコアの配置はシステムのデフォルトであり、ユーザが明示的に制御することはできません。
対照的に、SGI MPIは、「omplace」コマンドを用いて、各ノード内のハイブリッドMPI/OpenMPプロセッサとスレッドを一意的に使いやすく配置できます。このMPIライブラリは、SGI® Performance Suite内にあるSGI PerfBoost機能を使って利用できます。SGI PerfBoostは、SGIのMPIに対してPlatform MPI、インテル® MPI、Open MPI、HP-MPI、ABIコンパチブルインターフェースを提供します(1)。
FluentにとってのSGI PerfBoostの主な利点は、非常に多数のプロセッサ上で動作できることです。Fluent 15と16を使って、巨大なFluentベンチマーク(truck_111m)のひとつを6,912コアで構成できました。
0
1000
2000
3000
4000
5000
6000
0 1000 2000 3000 4000 5000 6000 7000 8000
Spee
d (jo
bs/d
ay)
MPI Tasks (cores)
Fluent Truck_111m cell Benchmark
ICE-‐XA E5-‐2690v3 @ 2.6 GHz
図9: Fluent Scalability Chart
T E C H G U I D E
SGI® Technology Guide for ANSYS® Fluent™ Analysts 14
SGI PerfBoostを支持するもう一つの注目すべき所見は、バッチシステムと共に大きなSMPシステムでFluentのビルトインaffinity設定を使用すると、この設定は「cpuset」機能を持っていないので、想定外のスレッドアロケーションになる可能性があることです。cpusetは、タスクのCPUとメモリの配置を、タスクが現存するcpuset内のリソースにだけに限定します。cpusetは、仮想ファイルシステムで見るとネストした階層構造を形成しており、通常、/dev/cpusetに割り付けられています。cpusetは、大規模システムの動的なジョブ配置を管理するため、不可欠なメカニズムを提供します。cpusetが無ければ、リクエストがシステム全体に分散してしまい、実行時の性能に影響します。対照的に、SGI MPIはデフォルト設定でこの機能を使用するので、すべてのスレッドが正確な方法でCPUと結び付けられます(デフォルトアロケーションはユーザ定義のアロケーションです)。
図10: SGI PerfBoost vs. Platform MPI
5.3 コアの周波数とインテル® ターボ・ブースト・テクノロジーの影響
他に考慮すべきデータとして、インテル® ターボ・ブーストを用いて得られる性能向上があります。ターボ・ブースト機能は、インテル® Xeon® 5500シリーズで最初に導入されました。この機能は、ソケットの温度エンベロープに依存した仕様限界内で、コアの動作周波数を上げて性能を向上させます。起動モードは、ある時点で動作しているコア数の関数になります。OpenMPスレッドやMPIプロセスが、実行中の親の下で使われていない場合などに起動します。例えば、ベース周波数が2.6GHz、動作中のコア数が1~2の場合、コアの動作周波数は3.5GHzまで引き上げられますが、動作中のコア数が3~4の場合、3.3GHzまでしか引き上げられません。大部分の計算では、ターボ・ブースト・テクノロジーを活用すると実行時間が短縮されますが、全体的な効果は、純粋な演算処理以外の性能上のボトルネックがあるために薄らぐ可能性があります。ターボ・ブーストを使用すると、シミュレーション時間の80%が3.20GHzで動作し、約7%向上します。単一コアのタスクは3.50GHzでピークに達し、ベース周波数3.00GHzに対して17%改善されます。
T E C H G U I D E
SGI® Technology Guide for ANSYS® Fluent™ Analysts 15
0
1000
2000
3000
4000
5000
6000
0 1000 2000 3000 4000 5000 6000 7000 8000 Sp
eed
(jobs
/day
)
MPI Tasks (cores)
Fluent Truck_111m cell Benchmark
ICE-‐X E5-‐2690v3 @ 2.6 GHz TURBO
ICE-‐X E5-‐2690v3 @ 2.6 GHz
図11: インテル ターボ・ブースト・テクノロジー On/Offの例
5.4 メモリ速度とメモリ帯域幅の影響
コアの周波数に加えて、メモリ速度とメモリ帯域幅が全てのアプリケーションの全体性能に影響します。Fluentでは、デフォルト速度2133MHzに対してクロック周波数を1867MHzに下げたメモリセットを使って性能を比較しました。Rackableベンチマーククラスタ内のサブセットノード上のBIOSで、メモリのクロック周波数を下げました。次のメモリ試験は、Truck_111mモデルを使って実施しました。下図12aを見て分かるように、メモリ速度の影響は測定可能でしたが、約2%という小さなものでした。
0
100
200
300
400
500
600
0 100 200 300 400 500 600
Jobs/day
MPI Tasks
Memory Speed Comparison
1867 MHz 2133 MHz
図12a: Memory Speed Test on truck_111m
T E C H G U I D E
SGI® Technology Guide for ANSYS® Fluent™ Analysts 16
インテル® が提供している多種多様のCPU SKUで、性能に影響するもうひとつの要因がメモリ帯域幅です。ノードのCPUソケットに対するメモリ帯域幅は固定されています。その結果、ソケット当たりのコア数が増えると、個々のコアが利用できるメモリ帯域幅は減少します。ICE-Xベンチマークシステム上でCPU内の12コア全てを使用してベンチマークを実行し、この影響を調査しました。その後、1CPUで利用可能な12コアの内、8コアだけを使用してベンチマークを繰り返しました。
図12bに示したように、8コアだけを使用するとメモリ帯域幅が増加し、コア当たりの性能が9%向上しました。これは、同一周波数でコア数がより少ないCPU SKUを選択すると、各コアの性能が向上することを意味します。しかし図12cによると、コア数の多いCPUを選択した方が、ノード全体の性能は向上することが分かります。これはFluentが高度にスケーラブルなモデルになっているためで、ノード当たりのMPIタスク追加による性能向上は、タスク当たりのメモリ帯域幅減少による性能低下を上回ります。この試験では、8コアから12コアにすると、ノードレベルで性能が28%、全体的に向上しました。
さらに、クラスタのインフラ費用はノード数によるので、コア数の多いCPU SKUを選択すると総所有コストの削減に役立ちます。そうは言っても個々のCPUが高価になるので、この効果はやや小さくなります。価格は常に変動するため、ここでは全体的な効果を正確な数値で表すことはできません。
0
200
400
600
800
1000
1200
1400
1600
1800
0 200 400 600 800 1000 1200 1400 1600 1800
Jobs/day
MPI Tasks
CPU Density Comparison
24 Proc/node 16 Proc/node
図12b: Per Core Performance on truck_111m
!"
#!!"
$!!"
%!!"
&!!"
'!!!"
'#!!"
'$!!"
'%!!"
'&!!"
!" #!" $!" %!" &!" '!!" '#!"
()*+,-./"
0)-1+"
0)-1"213+45/"6)78.94+)3"
#$":9);,3)-1" '%":9);,3)-1"
図12c: Per Node Performance on truck_111m
T E C H G U I D E
SGI® Technology Guide for ANSYS® Fluent™ Analysts 17
5.5 クラスタに関するネットワーク技術の選択
「どのネットワーク技術を選択すべきなのか?」クラスタベースのシステムを設計している段階で、頻繁に浮んでくる疑問です。2ノード以上を使う場合は、InfiniBandの使用をお勧めします。一般的に、InfiniBand FDRは高速ですが比較的高価で、InfiniBand QDRはFDRより安価ですが、通常低速だと知られています。したがって選択は非常に複雑になり、多くの場合、結果は個々のネットワークタイプ上で実行した対象アプリケーションの性能に依存します。
そこで、InfiniBand FDRとQDRを使用したFluentシミュレーションの動作実験を、Xeon® E5-2697 v2プロセッサを搭載したSGI Rackableシステム上で何回か行いました。32ノード(768コア)の範囲内では、QDRとFDRネットワークで顕著な性能差はありませんでした。Fluent通信レイヤーの効率は、ネットワークレイテンシで決まり、QDRとFDRでは実質的に同等なので、これは予想されていました。point-to-pointのFluentメッセージは非常に短く、線形ソルバーアルゴリズムの特性によるものです。FDRは、大部分が長いメッセージを送信し、高速なネットワーク帯域幅に依存するアプリケーションや、Fluent実行規模で数百ノードを必要とするアプリケーションで、インターコネクトとして好まれます。SGIは、FDR InfiniBandと新しいEDR InfiniBandを比較したときも同様の結果になると予想しています。FDR対EDRのベンチマークデータが準備でき次第、この文書の改訂版を発行する予定です。
図 13: InfiniBand QDR vs. FDR example
5.6 ハイパースレッディング技術の利用
インテル® ハイパースレッディング・テクノロジー(インテル® HTテクノロジー)は、同時マルチスレッディングのためのインテル®の特許技術です。この技術では、ある実行要素、具体的には実行状態を保存する要素が複製され、その一方で実際に実行する要素は複製されません。これは、物理的にたったひとつのプロセッサしか存在しなくても、オペレーティングシステムは2つの仮想プロセッサを検知し、ワークロードをその間で分配することを意味します。 L1やL2キャッシュのようなユニットと、実行エンジン自体は2つの競合スレッド間で共有されることに注意してください。
ハイパースレッディングには、オペレーティングシステムとCPU、両方のサポートが必要です。インテル® Xeon® 5600シリーズプロセッサは、インテル® HTテクノロジーの形式を再導入し、6個の物理コアを12個の仮想コアに拡張していますので、12個の実行スレッドとなっています。例えば、現行のインテル® Xeon®、14コア 2.6GHz E5-2697 v3ベースの計算ノードでは、全体で56個の仮想コアが存在し、56スレッドを実行できます。実際に、メインメモリからのデータ待ちや、I/Oの完了待ち、システム操作の完了待ちなどで、実行スレッドが使われていないことがあります。キャッシュミス、分岐の誤予測、データ依存関係、I/O操作の完了待ちなどのため、プロセッサがストールしていることもあります。この場合、そのようなアイドル期間を利用して、同一コア上の別スレッドが同時に実行できます。
一般的には、ハイパースレッディングによって30%もの効果があるアプリケーションもあり、高性能を得るため非常に経済的な方法を与えてくれます。しかし、ソフトウェアが異なると実行プロファイルも異なるので、別のアプリケーションではハイパースレッディングの効果も変化すると予想されます。CFDソフトウェアでのハイパースレッディングの効果は、ソフトウェアに異なるコーディング技術が使われていることだけでなく、CFD入力モデルの種々のオプションと機能や、
T E C H G U I D E
SGI® Technology Guide for ANSYS® Fluent™ Analysts 18
個別のCFD機能にも依存します。ANSYS Fluentを実行する場合、問題の大きさによりますが、我々の経験ではハイパースレッディングは一つか二つのノードでしか有効ではありません。計算に特化したHPCパラレルコアの高度な同期特性のため、ハイパースレッディングの有効性は非常に限られてしまいます。また、商用CFDアプリケーションでは、想定される追加ライセンス費用の発生と、ハイパースレッディングの技術的および性能的な効果をユーザが比較検討すべきだということも指摘しておきます。
ANSYSは、各ノードのシステムBIOSでハイパースレッドを無効にすることを勧めています。これはANSYSのインストールとライセンス関連文書で取り上げてられています。我々の試験では、ハイパースレッド含めないcpusetをPBSリソースに要求する事が適切だと分かりました。
6.0 結論数値流体力学は時間のかかる性能集約型の作業です。SGI Rackable、ICE XとXA、UV製品ラインは、混相流、化学反応、燃焼、スプレーを始めとして、その他の物理現象における複雑な物理モデリングで必要となるスケーラビリティと性能を提供します。この調査で、Turbo Boost、具体的ネットワークの選択、およびハイパースレッディングが性能にどの程度影響するかを、特定のデータセットについて評価してきました。特に次のようなことが分かりました。
• 強力な並列スケーリング
• 多数のスレッドで使用すると、(PerfBoostを介した)SGI MPIは他のMPIより優れた性能を持っている。
• 性能に関する制約要因が他にもあるので、周波数とターボ・ブーストの影響は小さい。
• InfiniBand FDRは、InfiniBand QDRに比べて少数ノードでは顕著な性能向上はないが、多数ノードでは非常に高速になる。
• ハイパースレッディングは、8プロセッサを超えると通信コストがかかるので役に立たない。
• CPUのコア数が増えるとコストパフォーマンスが良くなる。
これらの効果は、全て使用するデータセットとソリューション手法に依存します。そのため、想定されるデータセットの範囲で、リソースの正しい組み合わせを調達する必要があります。さらに、ここで説明した性能指標は、購入費用、ライセンス、電力、設備、サービスで構成されるコスト、ターンアラウンドタイム、スループットなど、多くの指標のたったひとつに過ぎません。
SGIは、PerfBoostを使用してANSYSを実行した際、発生したすべての問題についてお客様をサポートします。ANSYSは専用MPIライブラリ上のANSYSソフトウェアを保証します。SGI MPIとSGI PerfBoostテクノロジーについては、ANSYSは保証していませんが、互換性があると考えられます。ANSYSは、PerfBoost無しで再現性のある、あらゆる問題についてお客様をサポートします。
TEL : 03-5488-1811(大代表) FAX:03-5420-7201TEL : 06-6479-3918( 代表 ) FAX : 06-6479-3919TEL : 0565-35-2561( 代表 ) FAX : 0565-35-2189TEL : 029-858-1551( 代表 ) FAX : 029-858-1071TEL : 022-221-2301( 代表 ) FAX : 022-221-2304TEL : 082-258-5037( 代表 ) FAX : 082-258-5038
本 社西 日 本 支 社中 部 支 社つ く ば 営 業 所東 北 営 業 所広 島 営 業 所
http://www.sgi.co.jp
〒150-6031 東京都渋谷区恵比寿4-20-3 恵比寿ガーデンプレイスタワー31階
このカタログは、環境に配慮した植林木を使用しております。日本SGIは様々なソリューションの提供を通じてお客様の製品の開発・設計の過程において発生する紙や燃料等の資源消費量やCO2排出量の低減を行い、省資源、省エネルギー化に貢献しています。
日 本 S G I は 地 球 環 境 に 優 し い 企 業 へ
©2015 SGI Japan, Ltd. All Rights Reserved. 仕様は予告なしに変更される場合がありま す。SGI ICE、SGI UV、Rackable、NUMALink、Performance Suite、ProPack、OpenMP および SGI のロゴは Silicon Graphics International Corp. または、アメリカ合衆国および / またはその他の国の子会社の商標または登録商標です。ANSYS は ANSYS Corporation の登録商標です。インテル、Intel、Xeon は、アメリカ合衆国および / またはその他の国におけるインテル コーポレーションの商標です。Linux はいくつかの国におけるLinus Torvalds の登録商標です。その他の会社名、製品名は、各社の登録商標または商標です。(09/2015)