並列タスクを実行するように Azure Batch ジョブを設計する

完了

Azure Batch では、並列タスクを使用して、コンピューティング ノード間でジョブを分割します。

あなたは非営利組織のソリューション アーキテクトとして、Azure Batch ジョブの設計方法、並列処理の有効化方法について理解し、これらの機能を OCR シナリオにおいて使用したいと考えています。

ここでは、Batch 並列タスクの主な要素について学習します。

Azure CLI での Azure Batch の使用

あなたは非営利組織の目的達成を支援するため、Azure Batch と CLI を使用してソリューションを作成することを決定しました。他の方法で開始する場合に必要となるすべての基本的なコードをスキャフォールディングすることに時間を費やすことなく、簡易フレームワークを導入して徐々に改良することができます。 .NET や Node.js など、Azure Batch ソリューションを作成するその他のメソッドの場合、Batch とその他の Azure API に対するより充実した詳細なコントロールが可能であることは確かです。しかし、CLI でコマンドを発行して結果を観察することで得られる機敏性と即座のフィードバックには、これらのどのメソッドもかないません。

サンプルの並列タスク

あなたは Azure Batch と CLI を理解するために、さまざまなノードの並列での実行を示すためのシンプルな概念実証を決定しました。 CLI 内で数回ループし、ループの反復ごとに番号付きタスクを追加し、各タスクで生成されるメタデータを後でダウンロードして確認します。 このメタデータには、Azure Batch サービスのスケジューリング タスクが、別々のノードに順次方式で作成されたときに示されます。そのため、すべての処理が並列で実行されます。

この種の概念実証は、実際には Azure Batch の実際のアプリケーションの基となっています。 たとえば、OCR のシナリオの場合、アップロードされた浄水メーターの画像を TIF 形式に変換するために Imagemagick などのソフトウェアがタスクによりインストールされ、変換処理を実行するために Tesseract がインストールされます。 これらのタスクは、より早く完了するために各ワーカー ノードが OCR 処理の一部分を他の処理と並列で実行できるような方法で、パーティション分割されます。

この概念実証であっても、Azure Batch の重要なコンポーネントが連携して動作することが示されます。 プールの作成、ワーカー ノードの作成、ジョブの作成、タスクの作成はすべて、Azure CLI を使用してコマンドを発行し即座のフィードバックを取得することで行います。

Azure Batch ワークフローの図。

Azure Batch を使用する利点

Azure Batch は、大規模な並列コンピューティングやハイパフォーマンス コンピューティング (HPC) のバッチ ジョブの実行に特に向いています。 サービスによってすべてが、つまりシナリオの実行に必要なすべてのノードとアプリケーションの管理とスケジュール設定が、自動的に行われます。 また、このサービスは無料であるため、基になるコンピューティング、ストレージ、ネットワーク リソースの使用に対してのみお支払いいただきます。