あらゆる規模でバッチジョブをスケジュールできる新しいマネージド サービス、Batch のご紹介
Google Cloud Japan Team
※この投稿は米国時間 2022 年 7 月 14 日に、Google Cloud blog に投稿されたものの抄訳です。
本日は、フルマネージド サービスである Batch のプレビューをリリースしましたのでお知らせいたします。このサービスでは、Google Cloud のコンピューティング能力とスケールに簡単にアクセスできます。
バッチ処理はコンピューティング自体と同じくらい古く、「バッチ」という用語は初期のメインフレームで使われていたパンチカードにまで遡ります。バッチはリソースを非常に効率的に使い、人の介入があまり必要ないジョブの実行において推奨される方法であることに変わりはありません。エンタープライズ ワークロードには、バッチ処理の要素が含まれることが頻繁にあります。バッチジョブはリサーチやシミュレーション、ゲノム解析、視覚効果、フィンテック、製造、EDA(探索的データ分析)などの分野で特に普及しています。
企業のお客様がクラウドを利用して、より多くのコンピューティング リソースのニーズに応える、または最新のプロセッサや GPU に簡単にアクセスするようになるなかで、バッチ ワークロードが利用されています。Batch は汎用のバッチジョブ サービスです。これは Google が長年かけて作成してきた膨大なサービスのリストのなかでも最新のサービスで、企業がワークロードをクラウドに移行する際にジョブを処理してくれます。このようなサービスには、Cloud Life Sciences(旧称 Google Genomics)や、Dataflow、Cloud Run ジョブなどがあります。
Batch とは
Batch サービスではいくつもの重要なタスクを処理できます。ジョブキューの管理、リソースのプロビジョニングと自動スケーリング、サブタスクの実行、一般的なエラーへの対処をすべて自動化することが可能です。API や gcloud コマンドライン ツール、ワークフロー エンジン、または Cloud コンソール 内の使いやすい UI を通じて、サービスにアクセスできます。つまり、Batch を使えば、開発者や管理者、サイエンティスト、研究者、その他のバッチ コンピューティングに興味があるあらゆる人が、アプリケーションと結果に集中できます。Batch はその間にすべてを処理してくれます。
Batch でできることのうち、ほんの一部の例をご紹介します。
バッチジョブをサービスとして実行できます。Batch はスループット指向、HPC、AI / ML、データ処理のジョブをサポートしています。
コンピューティング リソースをプロビジョニングできます。Batch は、新しくリリースされた T2A Arm インスタンスを含むすべての CPU マシン ファミリーをサポートしています。
アクセラレータ最適化リソースを使用できます。NVIDIA とのコラボレーションにより、Batch は ML トレーニングや HPC、グラフィック シミュレーションといった要求の厳しいバッチ ワークロードを実行するときに、NVIDIA GPU の使用をサポートしています。
一般的なジョブの種類をサポートします。たとえば、ジョブの配列やタスクの並列処理を使用したマルチノード MPI ジョブなどです。
あらゆる実行可能ファイルを処理できます。ご自身のスクリプトまたはコンテナ化されたワークロードを使用できます。
柔軟なプロビジョニング モデルを提供します。たとえば、通常のコンピューティング インスタンスに対して最大 91% の節約を実現する Spot VM や、カスタム マシンタイプをサポートしています。
ネイティブな統合を簡素化できます。Google Cloud サービスに加えて、Nextflow などの好評なワークフロー エンジンおよびツールとの統合に使用できます。dsub コマンドライン ツールは直ちにサポートされる予定です。
お客様とパートナー様の声
「Locomation は、運転をより安全かつ効率的にすることで、トラック運送の自動運転技術をけん引しています。Google Cloud Batch によって、弊社のエンジニアが大量のデータを分析するのに必要なコンピューティング リソースをすぐに保護することが容易になります。Batch を使うことで、大規模なデータセットから分析情報を得るのにかかる時間を 80% 削減し、ビジネスの目標をより迅速に達成できます。」- Locomation 社、ツールおよびインフラストラクチャ リード David Hendi 氏
「Batch は、洗練されていながらも強力な API にわかりやすい実行モデルを備えています。統合をすることでデータ処理が簡単になります。Google Batch に組み込まれたこれらのメリットとその他の技術的なメリットのおかげで、パイプラインの効率性やスループット、信頼性が直接的に向上するでしょう。プレリリースを通して Google と連携すれば、十分な時間を費やしてテストに集中できます。たくさんある本番環境のパイプラインとの大規模な統合を検証すれば、すぐに高品質な統合を始めるのに役立ちます。」- Nextflow 社、リード エンジニアおよび Seqera Labs 社共同創設者 Paolo Di Tommaso 氏
「Roivant Discovery は、小分子のモダリティにおいて、膨大なコンピューティング シミュレーションを活用することで、新しい薬の発見を促進しています。弊社のサイエンティストは、大きな規模で迅速かつアジャイルに量子物理学の最先端を運用する必要があります。Google Batch のこれまでにはない簡潔性と柔軟性のおかげで、常にイノベーションに集中できます。」- Roivant Discovery 社、COO Matt Maisak 氏
Batch の使用
Batch はサービスとして提供されるため、使うためにインストールまたは構成をする必要はありません。ただし、知っておくべき基本的なコンセプトがいくつかあります。
ジョブ - run-to-completion のコンピューティング作業における 1 つの実行です。ジョブは 1 つのシェル スクリプトと同じくらいシンプルか、並列または順番に実行されるより複雑なマルチパートの計算である可能性があります。
タスク - ジョブを構成する計算です。タスクは、Compute Engine インスタンスで実行されます。
配列ジョブ - 同じ実行可能ファイル(スクリプトまたはコンテナ)を同時に実行するジョブ内の複数のタスクです。
リソース - ジョブを実行するのに必要なものです。一般的なリソースには、Compute Engine インスタンス(タスクを実行するためにプロジェクト内で Batch によって作成された VM インスタンス)や、Cloud Storage、NFS マウント、入力と出力の読み取りと書き込みに使われる追加ディスクといったストレージなどがあります。
これらのコンセプトを理解できたら、次はシンプルなジョブを Google Cloud コンソールから送信する方法について見てみましょう(より複雑なジョブについては、Batch API またはコマンドラインを使う必要があります)。このジョブでは、スリープの前に 60 秒間、「helloworld」というテキストとタスクのインデックスがジョブ内に出力されます。このスクリプトは 100 回の実行でタスクを構成し、最大で 20 のタスクを並列に実行します。
上で作成された hello-world
というジョブは Job List ページに表示され、ステータスが Queued から Scheduled そして Succeeded へと変わりました。
ジョブの詳細にドリルダウンすることで、下のような追加情報を表示できます。
開始方法
バッチ処理のジョブを処理する簡単な方法をお探しの場合は、Batch を使えば、数ステップ以内で実行ファイルから結果を容易に得ることができます。Batch は現在、アイオワ(us-central1)、サウスカロライナ(us-east1)、オレゴン(us-west1)、フィンランド(europe-north1)の 4 つの Google Cloud リージョンで利用可能です。Batch サービスの使用に追加料金はかかりません。バッチジョブを実行するのに使用したリソースに対してのみ、料金をお支払いいただきます。Cloud コンソール に移動して、今すぐバッチジョブをデプロイし始めましょう。
Batch の詳細については、プロダクト ページと以下のリソースを確認し、オンボーディングに役立ててください。
Batch を実際に試す - メディアのコード変換のチュートリアル(Batch を活用した H.264 動画ファイルから VP9 へのコード変換)を見る。
GitHub のサンプル - Batch のハウツーとサンプルのキュレーション リストをブラウジングする
新しくリリースされた Google HPC Toolkit を通じて Batch を使う方法について学ぶ
- プロダクト マネージャー Shamel Jacobs
- ソフトウェア エンジニア Bolian Yin