CycleCloud: コア概念
最も基本的なハイ パフォーマンス コンピューティング (HPC) システムは、パフォーマンスの高いファイル システムによってサポートされ、低遅延ネットワークによって相互接続されたコンピューティング リソースのプールです。 これらの計算リソースは、通常、ジョブをスケジュールするソフトウェア アプリケーションである HPC Schedulers によって管理されます。
Virtual Machines、ディスク、ネットワーク インターフェイスなどの基本的なインフラストラクチャ ユニットから Azure 上に個々の HPC システムを構築するのは面倒です。特に、これらのリソースが一時的な場合は、手元の HPC タスクの解決に必要な時間だけ存在します。 さらに、オペレーターは、さまざまなビジネス ユニット、研究チーム、または個人に合わせて調整できる複数の個別の HPC 環境を作成したいと考えています。 これらの複数の HPC システムの管理は、運用上複雑になる可能性があります。
CycleCloud とは
Azure CycleCloud は、Azure 上に HPC システムを構築するのに役立つツールです。 これらのシステムを調整して、基本的な Azure 構成要素を管理する手間をかけずに、手元の HPC タスクに従って柔軟にサイズを調整します。 CycleCloud は、HPC 管理者とユーザー向けの経験豊富な HPC プロフェッショナルのチームによって設計されています。特に、よく知っている内部 HPC インフラストラクチャに似た HPC システムを Azure で構築しようとしているユーザーです。
CycleCloud は、運用上、Azure 上の Linux VM または Azure API とリソースにアクセスできるオンプレミス サーバーにインストールされるアプリケーション サーバーです。 CycleCloud は、スケジューラとユーザー アプリケーションを統合できる CycleCloud クラスターを構築するために、Azure VM を取得してプロビジョニングします。 CycleCloud には、多数の HPC スケジューラと、Azure VM 上で実行される CycleCloud エージェントの自動スケーリング統合も用意されています。
アプリケーション サーバー
このアプリケーション サーバーでは、次の機能が提供されます。
- Azure で HPC システムを作成および管理するための REST API。
- ユーザーが HPC システムを管理および監視できるようにするグラフィカル ユーザー インターフェイス。
- CycleCloud の既存のワークフローへの統合を容易にする CLI。
- クラスターとノードの状態をキャッシュする内部 NoSQL データストア。
- Azure VM を取得および管理する割り当てとオーケストレーション システム
- 状態の変化を警告する既存の VM のノード監視システム。
統合
CycleCloud には、一般的なスケジューラと Azure VM への多くの統合も用意されています。 次の情報を提供します。
- プロビジョニングされた VM を HPC ノードに変換するためのノード準備および構成システム。
- HPC スケジューラ タスクの要件を Azure リソースに変換する HPC スケジューラの自動スケーリング。
CycleCloud でできること
CycleCloud は、HPC システムを Azure にデプロイしていて、HPC スケジューラからアプリケーションのインストールとデータ アクセス用のファイル システム マウント ポイントまで、内部的に実行されているインフラストラクチャをレプリケートする HPC オペレーター (管理者とユーザー) を対象としています。 これらのユーザーは特に、内部プロセスを再ツールすることなく、アプリケーション、ワークフロー エンジン、計算パイプラインのサポートを検討しています。
CycleCloud には、クラスター トポロジ (クラスター ノードの数と種類) から、各ノードにデプロイされるマウント ポイントとアプリケーションまで、HPC システムを記述できる豊富な宣言型テンプレート構文が用意されています。 CycleCloud は、PBSPro、Slurm、IBM LSF、Grid Engine、HT Condor などの HPC スケジューラと連携するように設計されており、ユーザーは各スケジューラで異なるキューを作成し、Azure 上の異なる VM サイズのコンピューティング ノードにマップできます。 さらに、自動スケーリング プラグインは、各システムのジョブ キューをリッスンするスケジューラ ヘッド ノードと統合され、アプリケーション サーバーで実行されている自動スケーリング REST API と対話することで、それに応じてコンピューティング クラスターのサイズを変更します。
CycleCloud には、HPC ノードのプロビジョニングと作成に加えて、仮想マシンを準備および構成するためのフレームワークも用意されています。本質的には、ベア VM を HPC システムの機能コンポーネントに変換するためのシステムを提供します。 このフレームワークを使用すると、ユーザーは VM で最後の 1 マイルの構成を行うことができます。
さらに、CycleCloud には次の機能があります。
ユーザー アクセス
CycleCloud には、HPC システムの各ノードでローカル ユーザー アカウントを作成するためのサポートが組み込まれています。 このシステムを使用すると、ディレクトリ サービスをデプロイすることなく、1 つの管理プレーンを介してユーザー アクセスを制御できます。
Monitoring
ノード レベルのメトリックが収集され、CycleCloud UI に表示されます。 これらは、システムの負荷を監視する場合に役立ち、レポートおよびアラート サービスにフックできます。
Logging
CycleCloud は、ノードおよびアプリケーション サーバー レベルでアクティビティとイベントをログに記録するためのシステムを提供します。
移植性
システムでは、特定の VM イメージまたはオペレーティング システムを使用する必要はありません。 CycleCloud では、HPC ノード上の主要な Windows および Linux オペレーティング システムがサポートされています。 さらに、ユーザーは独自の VM イメージを構築し、HPC システムで使用できます。
コードとしてのインフラストラクチャ
CycleCloud で作成されたすべてがテンプレートと構成スクリプトで定義されているため、CycleCloud を介してデプロイされた HPC システムは反復可能で移植可能です。 これにより、サンドボックス、開発、テスト、運用など、さまざまな環境に HPC システムをデプロイするオペレーターの一貫性が提供されます。 オペレーターは、異なるビジネス グループまたはチームに同じ HPC システムをデプロイして、会計上の懸念事項を分離することもできます。
疎結合または密結合ワークロード
CycleCloud によって作成される HPC クラスターは、スケール (クラスターのサイズ) が主な関心事である疎結合または恥ずかしい並列ジョブをサポートするように設計されています。 CycleCloud クラスターは、Azure の Infiniband バックボーンを念頭に置いて設計されており、ノードの近接性とネットワーク待ち時間が重要な密結合または MPI ベースのワークロードをサポートします。 これらのスケールアウトと密結合の概念は、CycleCloud がサポートするスケジューラ統合に浸透しています。