Azure Batch
- 10 分
ハイ パフォーマンス コンピューティング (HPC) は、ノート PC やワークステーションを使用する場合と比較して高いパフォーマンスを提供する重要なコンピューティング能力を使用する方法です。 複数のコアで同時に実行する必要がある大きな問題を解決します。
これは、問題をより小さなコンピューティング可能な単位に分割し、それらのユニットを分散システムに分散することによって行われます。 より少ないコアで同じ計算を実行するよりも速く最終的なソリューションに到達するために、それらの間で継続的に通信します。
Azure では、複数の HPC とバッチ処理の選択肢を利用できます。 Azure エキスパートと話す場合は、Azure Batch、Azure CycleCloud、Microsoft HPC Pack の 3 つのオプションに焦点を当てることをお勧めします。 このモジュールの次のユニットは、各オプションに焦点を当てています。 これらの選択肢は相互に排他的ではない点に注意することが重要です。 これらは互いに基づいて構築され、ツールボックス内のさまざまなツールと考えることができます。
ここでは、ハイ パフォーマンス コンピューティング全般について説明し、Azure HPC について学習します。
Azure の HPC とは
特殊なタスクに強力なコンピューティング リソースを必要とするさまざまな業界があります。 例えば次が挙げられます。
- 遺伝子科学では、遺伝子シーケンシング。
- 石油とガスの探査では、貯水池シミュレーション。
- 金融では、市場モデリング。
- エンジニアリングでは、物理システム モデリング。
- 気象学では、気象モデリング。
これらのタスクには、命令を高速に実行できるプロセッサが必要です。 Azure 上の HPC アプリケーションは、数千のコンピューティング コアにスケーリングしたり、オンプレミスの大規模なコンピューティングを拡張したり、100% クラウド ネイティブ ソリューションとして実行したりできます。 ヘッド ノード、コンピューティング ノード、ストレージ ノードを含むこの HPC ソリューションは、維持するハードウェア インフラストラクチャなしで Azure で実行されます。 このソリューションは、Azure マネージド サービス (仮想マシン スケール セット、仮想ネットワーク、ストレージ アカウント) に基づいて構築されています。
これらのサービスは高可用性環境で実行され、パッチが適用され、サポートされているので、実行される環境ではなく、ソリューションに注力できます。 Azure HPC システムには、必要に応じてリソースを動的に追加し、需要が減少したときにそれらを削除できるという利点もあります。
分散システムでの並列コンピューティングとは
並列コンピューティングは、計算上の問題を解決するために複数のコンピューティング リソースを同時に使用することです。
- 問題は、同時に解決できる個別の部分に分割されます。
- 各部分は、一連の命令にさらに分けられます。
- 各部分の命令は、異なるプロセッサで同時に実行されます。
- 全体的な制御/調整メカニズムが採用されています。
並列処理のさまざまな段階
並列コンピューターを分類するさまざまな方法があり、Flynn の分類は、これを行う最も一般的な方法の 1 つです。 マルチプロセッサ コンピューター アーキテクチャは、命令ストリームとデータ ストリームの 2 つの独立したディメンションに沿って分類する方法に従って区別されます。 これらの各ディメンションには、 単一 または 複数の 2 つの状態のうち 1 つだけを指定できます。
この図は、クライアント アプリケーションまたはホストされているサービスが Batch と対話して、入力のアップロード、ジョブの作成、タスクの監視、出力のダウンロードを行う方法を示しています。
4 つの異なる分類について詳しく説明します。
SISD | SIMD | MISD | MIMD |
---|---|---|---|
- シリアル (非パラメーター) コンピューター - 単一命令: 任意の 1 クロック サイクル中に CPU によって処理されている命令ストリームは 1 つだけです - 単一データ: 1 つのクロック サイクル中に入力として使用されているデータ ストリームは 1 つだけです。 - コンピューターの最も古い種類。 例: 1. 初期世代のメインフレーム 2. ミニコンピュータ、ワークステーション 3. 単一プロセッサ コア PC |
- 並列コンピューター - 単一命令: すべての処理装置は、任意のクロック サイクルで同じ命令を実行します。 - 複数のデータ: 各処理装置は、異なるデータ要素で動作できます。 - グラフィックスや画像処理など、高い規則性を特徴とする特殊な問題に最適です。 - グラフィックス プロセッサ ユニット (GPU) を備えた最新のコンピューターのほとんどは、SIMD 命令と実行ユニットを使用します。 例: プロセッサアレイ:シンキングマシンCM-2、MasPar MP-1 >MP-2、ILLIAC IV ベクトルパイプライン:IBM 9000、Cray X-MP、Y-MP >C90、富士通VP、NEC SX-2、日立S820、ETA10 |
- 並列コンピューター - 複数の命令: 各処理装置は、個別の命令ストリームを介して個別にデータに対して動作します。 - 単一データ: 1 つのデータ ストリームが複数の処理ユニットに供給されます。 - 並列コンピューターのこのクラスの実際の例はほとんどありません (存在する場合)。 例: 1. 1つの信号ストリームで動作する複数の周波数フィルタ 2. 1 つのコード化されたメッセージを解読しようとする複数の暗号化アルゴリズム |
- 並列コンピューター - 複数の命令: すべてのプロセッサが異なる命令ストリームを実行している可能性があります。 - 複数のデータ: すべてのプロセッサが異なるデータ ストリームで動作している可能性があります。 - 現在、最も一般的な種類の並列コンピューター - 最新のスーパーコンピューターは、このカテゴリに分類されます。 例: 1. 最新のスーパーコンピュータ 2. ネットワーク並列コンピューター クラスターと "グリッド" 3. マルチプロセッサ SMP コンピューター 4. マルチコアPC |
さまざまな種類の HPC ジョブ: 超並列と密結合
並列ジョブには、小さなタスク、単純なタスク、独立したタスクに分けられた計算上の問題があります。 タスクは同時に実行できます。多くの場合、タスク間の通信はほとんどまたはまったく行われません。
並列ジョブの一般的なユース ケースには、リスク シミュレーション、分子モデリング、コンテキスト検索、ロジスティックシミュレーションなどがあります。
密結合ジョブには、継続的に通信する小さなタスクに分割された大規模な共有ワークロードがあります。 クラスター内の異なるノードは、処理を実行する間に相互に通信します。
密結合ジョブの一般的なユース ケースは次のとおりです。
- 計算流体力学。
- 天気予報のモデリング。
- マテリアル シミュレーション。
- 自動車の衝突エミュレーション。
- 地理空間シミュレーション。
- トラフィック管理。
メッセージ パッシング インターフェイス (MPI) とは
MPI は、メッセージの受け渡しに移植可能で効率的な標準を提供することを目的としたシステムです。 高性能でポータブルでスケーラブルであり、さまざまな並列コンピューターのネットワークで動作するように開発されました。
MPI は、産業用および世界規模でのネットワークと並列コンピューティングに役立っています。 また、大規模な並列コンピューター アプリケーションの動作の向上にも役立ちます。
Microsoft MPI の利点は次のとおりです。
- MPICH を使用する既存のコードの移植が容易です。
- Active Directory Domain Services に基づくセキュリティ。
- Windows オペレーティング システムでの高パフォーマンス。
- さまざまな種類の相互接続オプション間のバイナリ互換性。