分子力学およびGROMACSアプリケーションのデプロイ
ベア・メタルからOracle Cloud Infrastructure (OCI)で使用可能な仮想マシンGPUシェイプまで、様々な計算フレームワーク・オプションを使用して、分子力学およびGROMACSアプリケーションをデプロイします。
GROMACSは、あらかじめ定義された一連の条件下での生体分子中の原子の動きをシミュレートする分子力学ソフトウェアです。生存組織で発生した実際の条件を模倣する温度、圧力およびその他の入力の変化にさらされる場合のこれらの生物分子の動作を識別します。GROMCSは蛋白質折りたたみ,蛋白質‐リガンド結合,細胞膜輸送のパターンを確立できるため,薬物研究・発見に有用な応用となる。
GROMACSの主な機能は次のとおりです。
- 主に蛋白質、脂質、核酸などの生化学的分子用に設計されています。
- 多くのアルゴリズム最適化により、高いパフォーマンスを提供します。
- 多くの場合、C言語で記述され(コンパイラはSIMDマシン命令に変換されます)、入力および出力ファイル用のコマンド行オプションを備えた単純なインタフェースを使用します。
- トポロジ、クリア・テキスト形式で書き込まれたパラメータ・ファイル、一貫性チェックおよびクリア・エラー・メッセージを使用すると、わかりやすくなります。
- これは、標準のMPI通信プロトコルを使用するか、単一ノードワークステーション用の独自のスレッドMPIライブラリを使用して、並列で実行できます。
- 完全に自動化されたトポロジ・ビルダーが含まれています。
- GNU Lesser General Public License (LGPL)バージョン2.1で入手可能なフリー・ソフトウェアです。
アーキテクチャ
このリファレンス・アーキテクチャは、ディープ・ラーニングおよび科学コンピューティングに関連する複数のアプリケーションに使用できます。
ディープ・ラーニングおよび科学コンピューティング・ワークロードには、専用の計算フレームワークが必要です。 Oracle Cloud Infrastructure (OCI)には、ベア・メタルから仮想マシン(VM) GPUシェイプまで、最も要求の厳しいワークロードを処理するための様々なオプションが用意されています。NVIDIA GPU Cloud (NGC)は、Oracle Cloud Infrastructureで使用可能なオプションの1つです。
この単純な参照アーキテクチャでは、ブロック・ストレージを持つGPUノードは、パブリック・サブネットおよびインターネット・ゲートウェイを持つVCNにデプロイされます。ブロック・ストレージにはアプリケーションが格納されます。
次の図は、この参照アーキテクチャを示しています。
アーキテクチャには、次のコンポーネントがあります。
- リージョン
Oracle Cloud Infrastructureリージョンは、可用性ドメインと呼ばれる1つ以上のデータ・センターを含む、ローカライズされた地理的領域です。地域は他の地域から独立しており、広大な距離で(国または大陸間で)分離できます。
- 可用性ドメイン
可用性ドメインは、リージョン内のスタンドアロンの独立したデータ・センターです。各可用性ドメインの物理リソースは、フォルト・トレランスを提供する他の可用性ドメインのリソースから分離されます。可用性ドメインは、電源や冷却などのインフラストラクチャや内部可用性ドメイン・ネットワークを共有しません。したがって、ある可用性ドメインで障害が発生しても、リージョン内の他の可用性ドメインに影響する可能性はほとんどありません。
- テナント
テナンシは、Oracle Cloud Infrastructureへのサインアップ時にOracleによってOracle Cloud内に設定されるセキュアで分離されたパーティションです。テナンシ内のOracle Cloudでリソースを作成、編成および管理できます。
- コンパートメント
コンパートメントは、Oracle Cloud Infrastructureテナンシ内のリージョン間論理パーティションです。コンパートメントを使用して、Oracle Cloudでリソースを編成し、リソースへのアクセスを制御し、使用量割当て制限を設定します。特定のコンパートメント内のリソースへのアクセスを制御するには、リソースにアクセスできるユーザーおよびリソースが実行できるアクションを指定するポリシーを定義します。
- Cloud Guard
Oracle Cloud Guardを使用して、Oracle Cloud Infrastructureのリソースのセキュリティを監視および維持できます。Cloud Guardは、定義可能なディテクタ・レシピを使用して、リソースにセキュリティ上の弱点がないかどうかを調べ、オペレータおよびユーザーのリスクのあるアクティビティを監視します。構成の誤りやセキュアでないアクティビティが検出されると、Cloud Guardは修正処理を推奨し、定義可能なレスポンダ・レシピに基づいてそれらの処理の実行を支援します。
- 仮想クラウド・ネットワーク(VCN)およびサブネット
VCNは、Oracle Cloud Infrastructureリージョンで設定するカスタマイズ可能なソフトウェア定義ネットワークです。従来のデータ・センター・ネットワークと同様に、VCNを使用すると、ネットワーク環境を完全に制御できます。VCNには、VCNの作成後に変更できる複数の重複しないCIDRブロックを含めることができます。VCNは、リージョンまたは可用性ドメインにスコープ指定できるサブネットにセグメント化できます。各サブネットは、VCN内の他のサブネットと重複しない連続したアドレス範囲で構成されます。サブネットのサイズは、作成後に変更できます。サブネットはパブリックまたはプライベートにできます。
- インターネット・ゲートウェイ
インターネット・ゲートウェイでは、VCNのパブリック・サブネットとパブリック・インターネット間のトラフィックが許可されます。
- ルート表
仮想ルート表には、通常はゲートウェイを介して、サブネットからVCN外部の宛先にトラフィックをルーティングするルールが含まれます。
- セキュリティ・リスト
サブネットごとに、サブネット内外で許可する必要があるトラフィックのソース、宛先およびタイプを指定するセキュリティ・ルールを作成できます。
- Compute
Oracle Cloud Infrastructure Computeサービスを使用すると、クラウド内のコンピュート・ホストをプロビジョニングおよび管理できます。リソース要件(CPU、メモリー、ネットワーク帯域幅およびストレージ)を満たすシェイプでコンピュート・インスタンスを起動できます。コンピュート・インスタンスを作成したら、安全にアクセスし、再起動し、ボリュームをアタッチおよびデタッチし、不要になったときに終了できます。
- ベア・メタルGPU
ハードウェア高速分析やその他の計算には、ベア・メタルGPUシェイプを使用します。
- ブロック・ボリューム
ブロック・ストレージ・ボリュームを使用すると、ストレージ・ボリュームを作成、アタッチ、接続および移動したり、ストレージ、パフォーマンスおよびアプリケーションの要件を満たすようにボリューム・パフォーマンスを変更できます。ボリュームをアタッチしてインスタンスに接続した後、そのボリュームを通常のハード・ドライブのように使用できます。データを失うことなく、ボリュームを切断して別のインスタンスにアタッチすることもできます。
推奨事項
Oracle Cloud Infrastructureに様々な計算フレームワーク・オプションを使用して、分子動的アプリケーションをデプロイするための開始点として、次の推奨事項を使用します。
実際の要件は、ここで説明するアーキテクチャとは異なる場合があります。
- VCN
VCNを作成する場合、VCNのサブネットにアタッチする予定のリソースの数に基づいて、必要なCIDRブロックの数と各ブロックのサイズを決定します。標準のプライベートIPアドレス空間内にあるCIDRブロックを使用します。
プライベート接続を設定する予定の他のネットワーク(Oracle Cloud Infrastructure、オンプレミス・データ・センターまたは別のクラウド・プロバイダ内)と重複しないCIDRブロックを選択します。
VCNを作成した後、CIDRブロックを変更、追加および削除できます。
サブネットを設計する際には、トラフィック・フローとセキュリティ要件を考慮してください。特定の層またはロール内のすべてのリソースを、セキュリティ境界として機能する同じサブネットにアタッチします。
リージョナル・サブネットを使用します。
- セキュリティ・リスト
セキュリティ・リストを使用して、サブネット全体に適用されるイングレス・ルールおよびエグレス・ルールを定義します。
- Cloud Guard
Oracleが提供するデフォルト・レシピをクローニングおよびカスタマイズして、カスタム検出およびレスポンダ・レシピを作成します。これらのレシピを使用すると、警告を生成するセキュリティ違反のタイプと、それらに対して実行できるアクションを指定できます。たとえば、可視性がパブリックに設定されているオブジェクト・ストレージ・バケットを検出できます。
Cloud Guardをテナンシ・レベルで適用して、最も広範な範囲をカバーし、複数の構成を維持する管理上の負担を軽減します。
管理リスト機能を使用して、特定の設定をディテクタに適用することもできます。
- ベア・メタルGPU
最高のパフォーマンスを得るには、ベア・メタル・シェイプのBM.GPU2.2またはBM.GPU3.8を使用します。
注意事項
分子力学アプリケーションをデプロイする場合は、次の点を考慮してください。
- パフォーマンス
最適なパフォーマンスを得るには、適切な帯域幅を持つ正しいコンピュート・シェイプを選択します。
- 可用性
デプロイメント要件およびリージョンに基づいて高可用性オプションを使用することを検討してください。オプションには、リージョン内の複数の可用性ドメインの使用およびフォルト・ドメインの使用が含まれます。
- コスト
ベア・メタルHPCインスタンスは、より高いコストで必要なCPU電力を提供します。要件を評価して、適切なコンピュート・シェイプを選択します。
- モニタリングとアラート
必要に応じてシェイプをスケール・アップまたはスケール・ダウンできるように、ノードのCPUおよびメモリー使用率の監視およびアラートを設定します。
デプロイ
このリファレンス・アーキテクチャのTerraformコードは、GitHubで入手できます。シングルクリックでコードをOracle Cloud Infrastructure Resource Managerにプルし、スタックを作成してデプロイできます。または、Terraform CLIを使用して、GitHubからコンピュータにコードをダウンロードし、コードをカスタマイズし、アーキテクチャをデプロイすることもできます。
- Oracle Cloud Infrastructure Resource Managerのサンプル・スタックを使用してデプロイします。
をクリックします
まだサインインしていない場合は、テナンシおよびユーザー資格証明を入力します。
- 条件をレビューして受け入れます。
- スタックをデプロイするリージョンを選択します。
- 画面に表示されるプロンプトと指示に従ってスタックを作成します。
- スタックの作成後、「Terraformアクション」をクリックし、「プラン」を選択します。
- ジョブが完了するまで待機し、計画を確認します。
変更するには、「スタックの詳細」ページに戻り、「スタックの編集」をクリックして、必要な変更を行います。次に、プラン処理を再度実行します。
- これ以上変更が必要ない場合は、「Stack Details」ページに戻り、「Terraform Actions」をクリックして「Apply」を選択します。
- GitHubでTerraformコードを使用してデプロイします。
- GitHubに移動します。
- リポジトリをローカル・コンピュータにクローニングまたはダウンロードします。
README
ドキュメントの手順に従います。