HPCでのLinuxベースのオンデマンドGPUレンダリング (2024/04/23)

HPCでのLinuxベースのオンデマンドGPUレンダリング (2024/04/23)

https://blogs.oracle.com/cloud-infrastructure/post/ondemand-linuxbased-gpu-rendering-in-hpc

投稿者:Arun Mahajan


リモート・ビジュアライゼーション・エコシステムは、数十年にわたり仮想製品設計プロセスに不可欠な要素となっています。最初の年にはCPUベースのソフトウェアレンダリングが含まれていましたが、基礎となるスタックや前処理ツール、後処理ツールの進歩により、特に過去10年間で3Dハードウェアレンダリングが普及しています。大規模で複雑な3Dエンジニアリング・モデルに取り組む設計者やエンジニアは、ローカル・ワークステーションと高性能コンピューティング(HPC)クラスタ間で前後にデータを移動することなく、データを事前に処理および後処理できるようになり、高帯域幅の専用ネットワーク・パイプでも数日かかる可能性があります。


このブログ記事では、エンジニアや研究者がOracle Cloud Marketplaceで利用可能なHPCスタックの自動スケーリング機能を使用して、既存のHPCクラスタに3Dレンダリング対応Linuxサーバーをオンデマンドでプロビジョニングする方法について説明します。このソリューション全体はオープンソース・ツールに基づいており、ソフトウェアの観点からはゼロコスト環境となっています。基礎となるハードウェアの支払いは、ソフトウェア・ツールではなく、使用した時間に対してのみ行います。



オラクルの自動スケーリング・ユースケースの環境


この例のユースケースでは、Oracle Cloud Infrastructure (OCI)テナンシで自動スケーリング機能が有効になっているHPCクラスタがすでに実行されており、NVIDIA A10 Tensor Core GPUを搭載した仮想シェイプVM.GPU.A10.1もプロビジョニングするために必要な制限が設定されています。また、グラフィック・ドライバ、仮想GLライブラリおよびTurbo VNCを使用したGPUシェイプのオペレーティング・システム・イメージも事前構成されています。OS、イメージまたはリモート・ビジュアライゼーション・ツールの構成の詳細は確認しません。かわりに、事前構成済のOSイメージを使用して、概念全体を共有します。



アーキテクチャ


図1: HPC VDIアーキテクチャの簡略化された例



エンタープライズクラスのHPC環境は、通常、管理サーバー、コンピュートおよびGPUノード、LinuxまたはWindowsベースの仮想デスクトップ、および高スループットのストレージ・ファイル・システムで構成されます。OCIは、エコシステム全体を構築するために、幅広いIntelベースおよびAMDベースの仮想マシン(VM)とベアメタル・シェイプを提供しています。現在使用可能なシェイプの完全なリストは、コンピュート・シェイプを参照してください。オンデマンドGPUレンダリングには、NVIDIA A10ベースの仮想インスタンスを使用しています。同じシェイプ名と仕様が以下で共有されます。

  • Shape: VM.GPU.A10.1
  • OCPU: 15
  • GPU Memory (GB): 24
  • CPU Memory (GB): 240
  • Local Disk (TB): Block Storage Only
  • Max Network Bandwidth (Gbps): 24
  • Max VNICs (Linux): 15
  • Max VNICs (Windows): 15



HPCでのオンデマンド・プロビジョニングの有効化


すでに稼働しているHPCクラスタ内のコンピュート・シェイプのオンデマンド・プロビジョニングでは、バッチ・ジョブ・スケジューラとHPCスタックの自動スケーリング機能の両方の構成を更新する必要があります。


Oracle Cloud Marketplaceで使用可能なHPCスタックでは、SLURMがジョブ・スケジューラとして使用されます。GPUレンダリングにNVIDIA A10 GPUベースのシェイプVM.GPU.A10.1を使用するには、最初のステップはSLURMの技術仕様を「将来の状態」で更新することです。この選択は、ノードが将来の使用のために定義されており、SLURMデーモンの起動時に存在する必要がないことを示します。詳細は、SLURMワークロード マネージャの構成ガイド を参照してください。


次に、HPCスタックの自動スケーリング構成ファイルqueues.confを更新します。スタックには、複数のキューおよび複数のインスタンス・タイプの構成方法を簡単に理解できるように、サンプル・ファイル/opt/oci-HPC/conf/queues.conf.exampleが用意されています。


OCIのネイティブ自動スケーリング機能(より多くのコンピュート・リソースをプロビジョニングするためにインスタンス・プールに依存し、メトリックまたはスケジュールのいずれかに基づいている)とは異なり、HPCスタックの自動スケーリング機能では、ジョブごとにクラスタをオンデマンドでプロビジョニングでき、使用中またはアイドル状態でなくなったときに自動的に破棄されます。この機能を使用して、GPUベースのシェイプをリモート・ビジュアライゼーション・サーバーとしてプロビジョニングし、大規模なエンジニアリング・モデルの3Dレンダリングと前処理および後処理を行います。このセットアップは、GPUリソースの最適な利用に役立つだけでなく、HPCクラスタでリモート・ビジュアライゼーション・ファームを実行する全体的なコストも削減します。


HPCスタックの自動スケーリング機能の詳細は、「High Performance Computing - RDMAクラスタ・ネットワーク」のスタックの使用情報の下にある「自動スケーリング」の項を参照してください。



対話型ジョブの発行


バッチ・スケジューラおよび自動スケーリングを正常に構成した後、SLURMコマンドsrunを使用して対話型ジョブを発行できます。この設定では、次のパラメータとそれに関連する値を使用しました。


# srun –-partition=compute -–gpus=1 -–constraint=a10 -–pty /bin/bash


ここで、"--partition"はSLURMキューを示し、"--gpu"は必要なGPUの数を示し、"-constraint"は自動スケーリング構成ファイル"queues.conf"の"instance_types"定義で定義されている名前を示します。


自動スケーリング・フレームワークでは、バックエンドに事前構成されたイメージでGPUシェイプのプロビジョニングが自動的に開始されます。コマンドによって、すべてのHPC共有ストレージ・フォルダにもアクセスできる、新しくプロビジョニングされたGPUシステムのbashプロンプトが表示されるまで、プロセスは約5分かかります。GPUシステムは正常にプロビジョニングされ、使用可能であるため、適切な引数を指定してコマンドvncserverを実行し、VNCセッションを開始します。


たとえば、カスタム・イメージでは、ワンタイム・パスワード機能VirtualGLライブラリ、「Mate」をWindowsマネージャとして使用するように構成されたTurbo VNCサーバーがあり、次の引数で「vncserver」コマンドを使用しました。


# vncserver -vgl -otp -wm mate-session

            Desktop 'TurboVNC: compute-gpu-node-172:1 (opc)' started on display compute-gpu-node-172:1

            One-Time Password authentication enabled.  Generating initial OTP ...

            Full control one-time password: XXXXXXXX

            Run '/opt/TurboVNC/bin/vncpasswd -o' from within the TurboVNC session or

                '/opt/TurboVNC/bin/vncpasswd -o -display :1' from within this shell

                to generate additional OTPs

            Starting applications specified in /opt/TurboVNC/bin/xstartup.turbovnc

            (Enabling VirtualGL)

            Log file is /home/opc/.vnc/compute-gpu-node-172:1.log


VNCサーバー・コマンドによって返されたパスワードおよびその他の情報(ホスト名など)を使用して、ローカル・ワークステーションにインストールされたVNCクライアント(Tiger VNC Viewerなど)を使用してリモート・デスクトップ・セッションを確立できます。


次の図に示すように、VM.GPU.A10.1サーバーでホストされたVNCセッション内でインドから標準のGLX Spheresベンチマークを実行しました。また、400フレーム/秒以上を達成できました。


図2: GLX Spheresベンチマーク出力(フレーム/秒)



まとめ


OCIは、GPUおよび3Dハードウェア・レンダリング要件に対応した最新のクラス最高のグラフィック・カードを備えたさまざまなGPUシェイプをお客様に提供するだけではありません。また、LinuxベースのHPCクラスタで効率的に使用するための最適な方法も提供されます。


OracleのHPCチームとつながり、30日間の無料トライアル版を使用してOracle Cloud Infrastructure上のソリューションを評価することをお薦めします。詳細は、次のリソースを参照してください。

コメント

このブログの人気の投稿

Oracle RACによるメンテナンスのためのドレインとアプリケーション・コンティニュイティの仕組み (2023/11/01)

Oracle Cloud Infrastructure Secure Desktopsを発表: デスクトップ仮想化のためのOracleのクラウドネイティブ・サービス (2023/06/28)

Oracle Cloudのデータベースをオブジェクト・ストレージにバックアップする3つの方法 (2021/12/13)