NVIDIA Clara Parabricks と Batch を組み合わせて実行する
Google Cloud Japan Team
※この投稿は米国時間 2023 年 2 月 10 日に、Google Cloud blog に投稿されたものの抄訳です。
大量のゲノミクス パイプラインの実行は簡単ではありません。ソリューションに GPU を追加することはさらに困難です。今回のブログでは、GPU と Batch を使用して複数のジョブを実行するソリューションの全貌をご紹介します。NVIDIA Clara Parabricks は Google Cloud Platform Marketplace で利用可能で、Parabricks のツールで 1 つの VM を容易にスピンアップしてゲノミクス パイプライン ワークロードを促進できます。Parabricks VM では、個々のワークフローを手動で実行できます。ラボや医療研究所レベルの環境では、解析を並行して実行するために、デプロイの自動化機能を備えたスケールアウト ソリューションが必要です。複数の Parabricks VM を作成するだけでは、Marketplace から作成された VM に対する一元的なジョブ管理機能がないため、解決策にはなりません。この問題を解決するソリューションが Batch です。多くのゲノミクス パイプラインは、Parabricks のような HPC ソリューションとツールに依存しています。以下に、Batch で NVIDIA Clara Prarbricks を大規模に実行する方法とその理由を説明します。
プロダクトの概要:
Batch
Google のインフラストラクチャでバッチジョブをスケジュールし、キューに入れて、実行するフルマネージド バッチサービスです。ユーザーのプロビジョニングと自動スケーリング機能を備えており、サードパーティ ソリューションを管理する必要がありません。Google Cloud とネイティブに統合されており、ワークロードを実行、スケーリング、モニタリングします。
NVIDIA Clara Parabricks パイプライン
Parabricks は、次世代シーケンシング(NGS)DNA および RNA データの二次解析実行のためのソフトウェア スイートです。Parabricks の大きなメリットは、非常に高速かつ低費用で結果を導き出せることです。30x 全エクソーム シーケンス(WES)データの場合は約 30 時間であるのに対し、Parabricks はヒトゲノム全解析を約 45 分で完了できます。最大のメリットは、出力結果が一般的に使用されているソフトウェアに完全に対応する点です。したがって、出力の精度の検証がかなり簡単になります。
処理フロー:
Google Cloud Storage バケットでデータが利用可能な状態である場合、ジョブを Batch API に送信できます。
注意する必要があるのは次の 2 つのファイルだけです。
Batch json ファイル - このファイルでは、マシンタイプ、GPU の数、コンテナ イメージ、永続ディスク、GCS バケット(データ)の場所、実行スクリプトの場所とコマンドなど、インフラストラクチャに関するあらゆる情報が定義されています。
Docker コンテナ内で実行される Bash スクリプト - 実行するすべてのステップが記述されているファイルです。
Batch API が有効であり、ジョブを送信するための IAM ロールと権限があることを確認してください。
次の例では、NVIDIA Clara Parabricks ウェブサイトのチュートリアルのステップを見てみましょう。
https://docs.nvidia.com/clara/parabricks/3.8.0/Tutorials.html
アーキテクチャとインフラストラクチャに関する決定:
Compute Engine 永続ディスクの使用 - ユーザーはサイズとパフォーマンスを定義できます。サイズはディスクあたり最大 63 TB です。パフォーマンス階層は pd-standard、pd-balanced、pd-ssd のいずれかです。
Google Cloud Storage(GCS)の使用
スクリプトは Batch VM と Docker コンテナにマウントできます。
入力と出力は費用対効果の高い方法で GCS バケットに保存できます。
大規模なデータセットの場合、GSUTIL などの転送オペレーションの方がパフォーマンスが高い可能性があります。
NVIDIA Clara Parabricks イメージ - 新たなイメージを構築せずに、Parabricks イメージをネイティブに利用します。カスタム イメージを維持する必要はありません。
サンプルコード:
共有 VPC ネットワークのユースケースを含むサンプル GCP 環境の概要を次に示します。
GCP サービス プロジェクト: service-hpc-project2
GCP 共有 VPC ホスト プロジェクト: host-hpc-project1
GCP ネットワーク: test-network
GCP サブネットワーク: tier-1
GCS バケット: thomashk-test2
バッチ送信 JSON の例(cb-parabricks.json)
#Copyright 2023 Google. 本ソフトウェアは「現状有姿」で提供されており、いかなる使用および目的に対しても保証および表明をいたしません。本ソフトウェアのご利用については、Google との契約が適用されます。
バッチファイルを使用する実行ステップを含むスクリプトを次に示します(parabricks-run.sh
)
スクリプトを GCS バケット(gs://thomashk-test2)に保存します
$ gsutil ls gs://thomashk-test2/parabricks
gs://thomashk-test2/parabricks/
gs://thomashk-test2/parabricks/parabricks-run.sh
gs://thomashk-test2/parabricks/input/
gs://thomashk-test2/parabricks/output/
ユーザーは次のコマンドでこのジョブを送信できます。
ジョブ送信コマンド:
ジョブ ステータスの確認コマンド:
Batch と Parabricks を併用することで、GPU でゲノム解析実行を高速化でき、大規模な運用が可能になります。ストレージのデータが利用可能であり、割り込みなしでジョブを Batch に自動的に送信する cron ジョブがあるため、ゲノム解析実行スクリプトの生成を検討できます。Batch では、API、gcloud コマンド、webGUI でジョブのステータスを表示できます。
このコンピューティング機能をぜひご活用ください。