ハイスループットコンピューティング (HTC)

この機能は現在ベータ版であり、デフォルトでは有効になっていないことに注意してください。 アクセスを有効にするには、組織のソリューション アーキテクトまたはアカウント エグゼクティブに問い合わせてください。

概要

ハイスループットコンピューティング (HTC) は、多数 (例: 数百から数百万) の小規模で分離されたジョブ (例: XNUMX 桁のコアから XNUMX 桁のインスタンス、マルチノード MPI なし) を同時に実行するための API ベースの Rescale 製品です。

ハイパフォーマンスコンピューティング ((HPC)) クラスターを使用して高度な計算タスクを解決します。 大きなタスクはサブタスクに分割され、マルチノード上で並行して解決されます。 (HPC) は、同種の相互接続されたマシン (ノード) のセットです。 それぞれ タスクの一部を表すデータを処理するプレインストールされたプログラムのコピーを実行します。 グローバル ソリューションに到達するには、HPC クラスター内のノードが相互に通信する必要があるため、近接している (同じデータ センター、同じラック) 必要があります。 HPC 計算は密結合されており、個々のノードに障害が発生すると失敗します。

HPC の目的は、個々の計算の結果が得られるまでの時間を短縮し、XNUMX 秒あたりの演算量を最大化することです。 オンデマンドのクラウド HPC クラスターの寿命は可能な限り短くなります。

ハイスループットコンピューティング (HTC) 複数のノードを長期間にわたって使用して、複数の計算ジョブを解決します。 各ジョブは、 コンテナ レジストリに保存されているイメージ。 HPC と同様に、コンピューティング作業は多くのジョブに分割されます。 HPC とは異なり、HTC のジョブは XNUMX 人のユーザーに対して行われます。 ワークロード 簡単に1,000から10,000のオーダーになる可能性があります。

HTC のコンピューティングの構成

HTC ジョブは、階層構造で編成されています。 HTC を使用すると、階層は次の図に示されます。

プロジェクト: ワークスペースには XNUMX つ以上のプロジェクトを含めることができます。 必須ではありませんが、プロジェクトは通常、XNUMX 人以上のユーザーのワークロードのさまざまなインスタンス化を組織するための半長期間存続するエンティティです。

仕事: プロジェクトには XNUMX つ以上のタスクを含めることができます。 タスクは通常、一時的なものであることが期待されており、ユーザーのワークロードの XNUMX 回の「実行」をカプセル化します。

ジョブ: タスクには多くのジョブが含まれています。 ジョブは作業の基本単位です。 ジョブは互いに独立しています。

HTC の目的は、XNUMX つのジョブにかかる時間を最適化することではなく、XNUMX 週間または XNUMX か月で完了するジョブの数を最大化することです。 これは HTC の「スループット」の部分です。

HTC 内のデータの構成

各プロジェクトには、すべてのタスクがアクセスできる「共有」ストレージがあります。 各タスクには、そのタスク専用のストレージも割り当てられます。 特定のタスク内のジョブは、そのタスクのストレージ内のデータにのみアクセスでき、他のタスクに関連付けられたストレージにはアクセスできません。 同様に、特定のプロジェクト内のジョブは、そのタスクが存在するプロジェクト内の共有データにのみアクセスできます。

一般に、ユーザーはタスク全体で共有される入力ファイル用にプロジェクト ストレージを使用する傾向があります。 タスク ストレージは通常、タスク固有の入力ファイルと、そのタスク内のジョブからの出力ファイルに使用されます。

現在、プロジェクト ストレージとタスク ストレージの両方がサポートされています。 オブジェクトストレージ。 複数のクラウド プロバイダーおよびリージョンのオブジェクト ストレージは HTC API を通じて利用できるため、データを消費および生成するコンピューティングの近くにデータを共存させることができます。

Rescale HTC API

次の図は、Rescale HTC API によって公開されるすべてのリソースを表しています。 後続のセクションでは、これらについて詳しく説明します。 完全なベータ版 HTC API ドキュメントはこちらからご覧いただけます。 こちら.

HTC API へのアクセス

HTC API へのアクセスは、まず Rescale Solution Architect によって特定の Rescale ワークスペースで有効化される必要があります。 アクセスが許可されたら、Rescale API キーを使用して認証する必要があります。 API キーを生成またはアクセスするには、ここを参照してください。 HTC 対応のワークスペースで。

HTC API を使用した認証

この Rescale API キーは、Rescale パブリック API 経由で Rescale プラットフォーム上の HTC API にアクセスするために使用される API キーです。 このキーを使用して、HTC API ユーザー ベアラー トークンを生成できます。このベアラー トークンは、残りの HTC API にアクセスするために使用されます。 次の方法で HTTPS リクエストの Authorization ヘッダーに Rescale API キーを指定し、 /auth/トークン/エンドポイント:

curl -H "認可: トークンhttps://htc.rescale.com/api/v1/auth/token 

ペイロードでは、一時的なベアラー tokenValue が提供されます。 このトークンは、後続のすべての HTC API アクセスに使用されます。 各ベアラー トークンは発行後 6 時間で期限切れになるため、期限切れになったら Rescale API キーを使用して新しいベアラー トークンを取得する必要があります。

ベアラー トークンを使用して HTC API 呼び出しを認証するには、ヘッダーでそれを指定します。

カール -H "権限: ベアラーhttps://htc.rescale.com/api/v1/htc/…

プロジェクトの管理

HTC プロジェクトは、複数のワークロードにわたるコンピューティングとデータを管理するために使用されます。 プロジェクトを作成したり、新しい利用可能なリージョンや制限で更新したり、プロジェクト ストアにファイルを受信したりできます。 さまざまなプロジェクト関連の API エンドポイントが文書化されています こちら.

プロジェクトはワークスペース管理者によって作成され、通常、管理アクセス権を持つ HTC ユーザーは管理できません。

プロジェクトコンテナレジストリ

各プロジェクトには独自のものがあります コンテナ レジストリ。 プロジェクト コンテナー レジストリ内のイメージは、そのプロジェクト内のタスクで実行されているすべての HTC ジョブによってアクセスされます。 コンテナー レジストリは、事実上、そのプロジェクトで使用できるアプリケーション カタログです。

プロジェクトには複数のリポジトリを含めることができ、各リポジトリには一意のタグがある限り、複数のコンテナ イメージを含めることができます。 ジョブでは、定義内でリポジトリ名と任意のイメージ タグを指定し、ジョブに対してどのコンテナを実行するかを指定します。

現在、レジストリ内のコンテナ イメージをプロジェクト間で共有することはできません。

タスクの管理

HTC タスクは通常、単一ユーザーのワークロードを保持します。 ワークスペース内のすべてのユーザーは、文書化されているように特定のプロジェクトにタスクを作成できます。 こちら.

ジョブの送信と管理

HTC ジョブは、これを使用して「バッチ」でタスクに送信されます。 APIエンドポイント。 各ジョブ バッチは、次の高レベルのコンポーネントで構成されます。

職種名: このジョブのバッチで共有される名前
バッチサイズ: このバッチ内のジョブの数。 バッチ内のすべてのジョブは同じジョブ定義を共有します
htcジョブ定義: このバッチ内のジョブ間で共有されるすべてのパラメータ。これらは次で構成されます。
画像名: 使用するコンテナ イメージ。これには、特定のコンテナ イメージ リポジトリのタグを含めることもできます。
maxVcpus: 各ジョブで使用されることが予想される vCPU の最大数 
最大メモリ: 各ジョブが使用できる DRAM メモリの最大 MiB
maxDiskGiB: 各ジョブが使用できる一時ディスク領域の最大 GiB
コマンド: コンテナ実行時に実行するコマンド
execTimeoutSeconds: コンテナが強制終了されるまでに実行が許可される最大秒数
建築: ジョブの実行に使用される CPU アーキテクチャ。現在のオプションは次のとおりです。 X86 またはAARCH64
優先順位: ジョブをオンデマンド優先として実行するか、オンデマンド エコノミーとして実行するか