SageMaker HyperPod マルチヘッドノードのサポート - Amazon SageMaker AI

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

SageMaker HyperPod マルチヘッドノードのサポート

単一の SageMaker HyperPod Slurm クラスターに複数のコントローラー (ヘッド) ノードを作成できます。1 つはプライマリコントローラーノードとして機能し、もう 1 つはバックアップコントローラーノードとして機能します。プライマリコントローラーノードは、コンピューティング (ワーカー) ノードを制御し、Slurm オペレーションを処理します。バックアップコントローラーノードは、プライマリコントローラーノードを常にモニタリングします。プライマリコントローラーノードに障害が発生したり、応答しなくなったりすると、バックアップコントローラーノードの 1 つが新しいプライマリコントローラーノードとして自動的に引き継ぎます。

SageMaker HyperPod Slurm クラスターで複数のコントローラーノードを設定すると、いくつかの重要な利点があります。コントローラーヘッドノードを提供することで、単一コントローラーノードの障害のリスクを排除し、バックアップコントローラーノードへの自動フェイルオーバーを高速リカバリで実現し、独自のアカウンティングデータベースと Slurm 設定を個別に管理できます。

主要なコンセプト

Slurm クラスターの SageMaker HyperPod マルチコントローラー (ヘッド) ノードサポートに関連する概念の詳細は、以下のとおりです。

コントローラーノード

コントローラーノードは、クラスター内の Amazon EC2 インスタンスであり、クラスターのオペレーションを管理および調整するための重要な Slurm サービスを実行します。具体的には、Slurm コントローラーデーモン (slurmctld)Slurm データベースデーモン (slurmdbd) をホストしています。コントローラーノードはヘッドノードとも呼ばれます。

プライマリコントローラーノード

プライマリコントローラーノードは、Slurm クラスター内のアクティブかつ現在制御中のコントローラーノードです。これは、Slurm によってクラスターの管理を担当するプライマリコントローラーノードとして識別されます。プライマリコントローラーノードは、ユーザーからコマンドを受信して実行し、実行中のジョブ用にコンピューティングノード上のリソースを制御して割り当てます。

バックアップコントローラーノード

バックアップコントローラーノードは、Slurm クラスター内の非アクティブなスタンバイコントローラーノードです。これは、Slurm によって現在クラスターを管理していないバックアップコントローラーノードとして識別されます。バックアップコントローラーノードは、スタンバイモードで Slurm コントローラーデーモン (slurmctld) を実行します。バックアップコントローラーノードで実行されるコントローラーコマンドは、実行のためにプライマリコントローラーノードに伝播されます。その主な目的は、プライマリコントローラーノードを継続的にモニタリングし、プライマリコントローラーノードに障害が発生したり、応答しなくなったりした場合にその責任を引き受けることです。

コンピューティングノード

コンピューティングノードは、Slurm ワーカーデーモン (slurmd) をホストするクラスター内の Amazon EC2 インスタンスです。コンピューティングノードのプライマリ関数は、プライマリコントローラーノードで実行されている Slurm コントローラーデーモン (slurmctld) によって割り当てられたジョブを実行することです。ジョブがスケジュールされると、コンピューティングノードは Slurm コントローラーデーモン (slurmctld) から指示を受け取り、ノード自体内でそのジョブに必要なタスクとコンピューティングを実行します。コンピューティングノードはワーカーノードとも呼ばれます。

仕組み

次の図は、さまざまな AWSのサービスが連携して SageMaker HyperPod Slurm クラスターの複数のコントローラー (ヘッド) ノードアーキテクチャをサポートする方法を示しています。

SageMaker HyperPod マルチヘッドノードのアーキテクチャ図

SageMaker HyperPod マルチコントローラー (ヘッド) ノードアーキテクチャをサポートするために連携するAWSサービスには以下が含まれます。

AWSSageMaker HyperPod の複数のコントローラーノードアーキテクチャをサポートするために連携する サービス
サービス 説明
IAM (AWS Identity and Access Management) アクセス許可を制御する 2 つの IAM ロールを定義します。1 つはコンピューティングノードインスタンスグループ用、もう 1 つはコントローラーノードインスタンスグループ用です。
Amazon RDS for MariaDB ジョブレコードと計測データを保持する Slurm のアカウントデータを保存します。
AWS Secrets Manager Amazon FSx for Lustre がアクセスできる認証情報を保存および管理します。
Amazon FSx for Lustre Slurm 設定とランタイム状態を保存します。
Amazon VPC HyperPod クラスターとそのリソースがデプロイされる隔離されたネットワーク環境を提供します。
Amazon SNS プライマリコントローラー (ヘッド) ノードに関連するステータス変更 (Slurm コントローラーが ON または OFF) があると、管理者に通知を送信します。

HyperPod クラスター自体は、コントローラーノード (プライマリノードとバックアップノード) とコンピューティングノードで構成されます。コントローラーノードは、コンピューティングノード全体のワークロードを管理してモニタリングする Slurm コントローラー (SlurmCtld) とデータベース (SlurmDBd) コンポーネントを実行します。

コントローラーノードは、Amazon Lustre ファイルシステム用 FSx に保存されている Slurm 設定とランタイム状態にアクセスします。Slurm アカウンティングデータは Amazon RDS for MariaDB データベースに保存されます。 は、コントローラーノードのデータベース認証情報への安全なアクセスAWS Secrets Managerを提供します。

Slurm コントローラーノードにステータス変更 (Slurm コントローラーが ON または OFF) がある場合、管理者がさらなる対応ができるように、Amazon SNS は通知を送信します。

この複数のコントローラーノードアーキテクチャにより、1 つのコントローラー (ヘッド) ノードの単一障害点がなくなるため、フェイルオーバーの高速かつ自動的な復旧が可能になり、Slurm アカウントデータベースと設定を制御できるようになります。