ノート:

Oracle Roving Edge InfrastructureでのOpen MPIの使用

イントロダクション

Oracle Roving Edge Infrastructureは、堅牢なクラウド・コンピューティングおよびストレージ・プラットフォームであり、ネットワーク・エッジでのデプロイメントや、外部の接続が制限された場所やない場所でのデプロイメントに適しています。より大きく、より複雑で要求の厳しいワークロードがネットワーク・エッジに移動するにつれて、エッジ・インフラストラクチャに課題が生じる可能性があります。

Open MPIは、High Performance Computing (HPC)で並列アプリケーションを開発するために使用されるMessage Passing Interface (MPI)規格の実装です。オープンMPIを使用して、High Performance Computingおよび高度にパラレルなワークロードを比較的小さなインフラストラクチャにデプロイし、さらに大規模な集約されたリソース・セットとして動作させることができます。このアプローチは、ワークロードをCPUやその他のコンピュート・リソース(GPUなど)に分散するために使用でき、予測モデリングやその他の人工知能/機械学習(AI/ML)タスクなど、ネットワーク・エッジに大規模で計算集中型のタスクをデプロイできます。

Open MPIを使用して、Oracle Roving Edge Infrastructureノード全体のリソースを利用したパラレル・ワークロードをデプロイできます。Netfilterは、Oracle Roving Edge Infrastructureノード全体でホストされているクラスタリング・ソフトウェアを使用して、VMインスタンスに必要な宛先ネットワーク・アドレス変換(DNAT)およびソース・ネットワーク・アドレス変換(SNAT)を提供します。このチュートリアルでは、Oracle Roving Edge InfrastructureでNetfilterを使用してOpen MPIを実装し、プライム数値計算機能を実行して、パラレル・リソースの使用時のパフォーマンスの向上を示します。

背景情報

Open MPIは、単一のOracle Roving Edge Infrastructureノード内の複数の仮想マシン(VM)インスタンス、または複数のOracle Roving Edge Infrastructureノードにわたって実行できます。単一のOracle Roving Edge Infrastructureノードで実行することはシームレスであり、問題は発生しません。複数のOracle Roving Edge Infrastructureノードで実行する場合は、Oracle Roving Edge Infrastructure VMインスタンスでのネットワーキングと、Open MPIによるトラフィックのルーティング方法を理解して、考えられる問題を回避することが重要です。

Oracle Roving Edge Infrastructure仮想マシン・インスタンスのネットワーキング

Oracle Roving Edge Infrastructureで実行されている仮想マシン・インスタンスは、プライベートIPアドレスを使用して、同じノードでホストされている同じサブネット上の他のVMインスタンスと通信します。パブリックIPアドレスは、Oracle Roving Edge InfrastructureでホストされているVMインスタンスに割り当てて、インスタンスがホストされているOracle Roving Edge Infrastructureノードの外部で実行されている他のサブネットおよびリソースと通信できるようにします。

ノート:パブリックIPアドレスは、パブリックIPアドレス・プールからVMインスタンスVNICに割り当てられます。アドレスはパブリックIPと呼ばれますが、実際には、Oracle Roving Edge InfrastructureノードがRJ-45ポートを介して接続されているのと同じローカル・ネットワーク上のIPアドレスです。これらのアドレスは、インターネットからアクセス可能なIPv4アドレスにすることも、ローカル・ネットワーク上のプライベート・サブネット上のアドレスにすることもできます。これらのアドレスは、VMインスタンスがホストされているノードの外部のリソースに接続できるため、外部IPアドレスとも呼ばれます。

Oracle Roving Edge Infrastructureノード内で実行されているVMインスタンスがノード外のリソースにアクセスしようとすると、トラフィックは外部IPアドレスを通過し、ノード内でルーティングされ、外部ネットワーク接続にルーティングされます。

次のイメージに、Oracle Roving Edge Infrastructureノード上のVMインスタンスの例を示します。割り当てられたパブリックIPアドレスとプライベートIPアドレスを確認します。

Oracle Roving Edge Infrastructureノード上のVMインスタンスの例

複数の Oracle Roving Edge InfrastructureノードでオープンMPIを実行するための課題

VMインスタンスのプライベートIPアドレスの使用は、Open MPIなどのクラスタリング・ソフトウェアが複数のOracle Roving Edge Infrastructureノードに実装されている場合、問題になります。各ノードは、プライベートIPアドレスからパブリックIPアドレスへのマッピング、およびほかのノードでホストされている VMインスタンスのマッピングの変換を認識しません。マッピングは共有されないため、プライベートIPアドレスを使用するパケットは正しくルーティングされないか、失われます。

この問題がOpen MPIを使用してどのように見えるかの例:

VMインスタンス上で実行されているオープンMPIは、ほかの VMインスタンスメンバーに到達するために使用する最適なネットワークパスを判定しようとします。ソフトウェアは、ローカルインタフェースとIPアドレスを調べ、クラスタ内のほかのノードに登録することがあります。

Oracle Roving Edge Infrastructure全体のオープンMPIの実装

Oracle Roving Edge Infrastructureの内部ネットワークの非共有の性質に対処するために、Linux VMインスタンス上のNetfilterソフトウェアを使用して、他のOracle Roving Edge InfrastructureノードでホストされているVMからのネットワーク・パケット、および宛先となるネットワーク・パケットをリライトします。

設計上の考慮事項

このチュートリアルでは、3つのOracle Roving Edge Infrastructure Roving Edge Devices (RED)ノードを使用してOpen MPIクラスタを作成します。すべてのREDは、共有外部ネットワークに接続されています。各ノードには、VMインスタンスへの割り当て用に独自の外部IPプールが構成されています。

VCNおよびサブネットCIDR表

RED名 VCN CIDR サブネットCIDR
RED1 10.0.0.0/16 10.0.1.0/24
RED2 10.0.0.0/16 10.0.2.0/24
RED3 10.0.0.0/16 10.0.3.0/24

この例は、次の図に示されています。2つの異なるREDの2つのネットワーク構成です。

"RED1"上のVCNおよびサブネットの例

"RED2"上のVCNおよびサブネットの例

対象読者

Oracle Roving Edge Infrastructureの管理者、開発者およびユーザー。

目的

前提条件

タスク1: 仮想マシン・インスタンスの作成

各REDの各サブネットにVMインスタンスを作成します。

IPアドレスの割当ての例:

RED名 VM名 VM O/S VMプライベートIP VMパブリックIP
RED1 redvm1 Ubuntu 22.04 10.0.1.2/24 10.123.123.32
RED2 redvm2 Ubuntu 22.04 10.0.2.2/24 10.123.123.67
RED3 redvm3 Ubuntu 22.04 10.0.3.2/24 10.123.123.101

ノート:このタスクのVMインスタンスは、OCI Ubuntu 22.04 LTSを使用してOracle Cloud Infrastructure (OCI)からエクスポートされたイメージを使用して作成されます。適切なOpen MPIパッケージを備えたLinuxディストリビューション(Oracle Linux 8や9、Fedoraなど)を使用できます。

"RED3"のVMリストの例

  1. 各REDで、「コンピュート」「インスタンス」に移動し、「インスタンスの作成」をクリックします。

  2. 「コンピュート・インスタンスの作成」で、「名前」と入力し、インポートされた「カスタム・イメージ」「シェイプ」「ネットワーキングの構成」「SSHキー」の順に選択して、「作成」をクリックします。

    各REDでのコンピュート・イメージの作成

タスク2: 各 VMインスタンスへのOpen MPIパッケージのインストール

すべての VMインスタンスが作成されたら、プロビジョニング中に指定された鍵を使用して、SSH経由で各 VMインスタンスにログインします。次のコマンドは、Ubuntu 22.04に適しています。別のLinuxディストリビューションを使用している場合は、これらの手順を適応させるか、追加のパッケージ・リポジトリを含める必要がある場合があります。

  1. 次のコマンドを実行して、システムを更新してリブートします。

    sudo apt update && sudo apt upgrade -y
    

    完了には時間がかかる可能性があります。これが完了したら、インスタンスを再起動します。

    sudo shutdown -r now
    
  2. インスタンスにログインし、Open MPIパッケージをインストールします。

    ノート:

    • これにより、かなりの数の依存関係が引き継がれます。

    • libopenmpi-devパッケージは、後でテストするサンプル・プログラムをコンパイルする場合にのみ必要です。Open MPI機能をプログラムにコンパイルしない場合は、このパッケージは必要ありません。

    sudo apt install openmpi-bin libopenmpi-dev -y
    

タスク3: 宛先ネットワーク・アドレス変換(DNAT)およびソース・ネットワーク・アドレス変換(SNAT)の設定

  1. 起動された各VMインスタンスの詳細を表示し、プライベートでランダムに割り当てられたパブリックIPアドレスを書き留めます。「コンピュート」「インスタンス」にナビゲートし、インスタンス名をクリックして詳細を表示します。

    "RED3"上のVMの例

  2. SNATを作成します。

    • 表内の各VMのSNATルールをマップすると、次のようになります。

      スポーツ RED1から RED2から RED3から
      redvm1 N/A 入力src 10.123.123.67 SNAT to src 10.0.2.2 入力src 10.123.123.101 SNAT to src 10.0.3.2
      redvm2 入力src 10.123.123.32 SNAT to src 10.0.1.2 N/A 入力src 10.123.123.101 SNAT to src 10.0.3.2
      redvm3 入力src 10.123.123.32 SNAT to src 10.0.1.2 入力src 10.123.123.67 SNAT to src 10.0.2.2 N/A
    • VMごとにiptablesコマンドを使用します。

      • redvm1

        sudo iptables -I INPUT --src 10.123.123.0/24 -j ACCEPT -m comment --comment "Allow REDs public subnet access."
        sudo iptables -t nat -I INPUT -p tcp -s 10.123.123.67 -j SNAT --to-source 10.0.2.2
        sudo iptables -t nat -I INPUT -p tcp -s 10.123.123.101 -j SNAT --to-source 10.0.3.2
        sudo netfilter-persistent save
        
      • redvm2

        sudo iptables -I INPUT --src 10.123.123.0/24 -j ACCEPT -m comment --comment "Allow REDs public subnet access."
        sudo iptables -t nat -I INPUT -p tcp -s 10.123.123.32 -j SNAT --to-source 10.0.1.2
        sudo iptables -t nat -I INPUT -p tcp -s 10.123.123.101 -j SNAT --to-source 10.0.3.2
        sudo netfilter-persistent save
        
      • redvm3

        sudo iptables -I INPUT --src 10.123.123.0/24 -j ACCEPT -m comment --comment "Allow REDs public subnet access."
        sudo iptables -t nat -I INPUT -p tcp -s 10.123.123.32 -j SNAT --to-source 10.0.1.2
        sudo iptables -t nat -I INPUT -p tcp -s 10.123.123.67 -j SNAT --to-source 10.0.2.2
        sudo netfilter-persistent save
        

      ノート: REDがパブリックIPに使用しているサブネットからのアクセスを許可する最初のルール(sudo iptables -I INPUT --src 10.123.123.0/24 -j ACCEPT)の追加。これ(または同様のルール)がないと、REDからREDへのインバウンド・トラフィックは受信側のREDによってドロップされる可能性があります。これらの仮想マシンでは、新しいルールはsudo netfilter-persistent saveで保持されます。ただし、別のLinuxディストリビューションを使用している場合、このコマンドは別のものになる可能性があります。

  3. DNATを作成します。

    • 同様に、表内の各VMのDNATルールをマップする場合、次のようになります。

      DNAT RED1に移動します RED2に移動します RED3に移動します
      redvm1 N/A 出力dst 10.0.2.2 DNAT to dst 10.123.123.67 出力dst 10.0.3.2 DNAT to dst 10.123.123.101
      redvm2 出力dst 10.0.1.2 DNAT to dst 10.123.123.32 N/A 出力dst 10.0.3.2 DNAT to dst 10.123.123.101
      redvm3 出力dst 10.0.1.2 DNAT to dst 10.123.123.32 出力dst 10.0.2.2 DNAT to dst 10.123.123.67 N/A
    • VMごとにiptablesコマンドを使用します。

      • redvm1

        sudo iptables -t nat -I OUTPUT -p tcp -d 10.0.2.2 -j DNAT --to-destination 10.123.123.67
        sudo iptables -t nat -I OUTPUT -p tcp -d 10.0.3.2 -j DNAT --to-destination 10.123.123.101
        sudo netfilter-persistent save
        
      • redvm2

        sudo iptables -t nat -I OUTPUT -p tcp -d 10.0.1.2 -j DNAT --to-destination 10.123.123.32
        sudo iptables -t nat -I OUTPUT -p tcp -d 10.0.3.2 -j DNAT --to-destination 10.123.123.101
        sudo netfilter-persistent save
        
      • redvm3

        sudo iptables -t nat -I OUTPUT -p tcp -d 10.0.1.2 -j DNAT --to-destination 10.123.123.32
        sudo iptables -t nat -I OUTPUT -p tcp -d 10.0.2.2 -j DNAT --to-destination 10.123.123.67
        sudo netfilter-persistent save
        

      ノート: VMインスタンスでは、新しいルールはsudo netfilter-persistent saveで保持されます。

タスク4: オープンMPIの設定

Open MPIでは、SSHを使用してクラスタメンバー間の通信を行うため、ジョブを実行する前に注意する必要がある処理がいくつかあります。

  1. Open MPIは各VMのプライベートIPアドレスを使用し、各Open MPI VMインスタンスで各 VMインスタンスとそのプライベートIPアドレスに対して /etc/hostsエントリを作成します。

    たとえば、redvm1/etc/hostsエントリの上にある構成を使用すると、次のエントリが含まれます。

    127.0.0.1 localhost
    127.0.1.1 redvm1  redvm1
    10.0.2.2  redvm2
    10.0.3.2  redvm3
    

    redvm2では、/etc/hostsには次のエントリが含まれます。

    127.0.0.1 localhost
    127.0.1.1 redvm2  redvm2
    10.0.1.2  redvm1
    10.0.3.2  redvm3
    

    redvm3では、/etc/hostsには次のエントリが含まれます。

    127.0.0.1 localhost
    127.0.1.1 redvm3  redvm3
    10.0.1.2  redvm1
    10.0.2.2  redvm2
    
  2. また、Open MPIで使用する各 VM間にSSH等価が存在することを確認する必要があります。

    ノート:ここでは、これらがUbuntuユーザーの既存のSSHキーを含まない新しいVMであることを前提としています。SSH鍵がすでに作成されている古いVMを使用している場合は、これらの手順を適応させる必要があります。これらの手順により、既存の鍵が上書きされ、VMからロックアウトされる可能性があります。

    1. redvm1で、新しい公開キーまたは秘密キーのペアを作成します(キーがまだ作成されていない場合)。ssh-keygen -b 4096 -t rsaと同様のssh-keygenコマンドを使用します(デフォルトを受け入れ、新しいキーのパスワードは設定しません)。これにより、~/.ssh/id_rsaおよび~/.ssh/id_rsa.pubが生成されます。

    2. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keysを実行するか、テキスト・エディタを使用して手動でコピーして、新しい公開キーをauthorized_keysファイルに追加します。

    3. id_rsaid_rsa.pubの両方を、redvm2およびredvm3ubuntuユーザーの~/.sshディレクトリにコピーします。id_rsa.pubauthorized_keysに追加し、redvm2およびredvm3cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keysを実行します。

    4. これが完了したら、各VMから、VM自体を含む他のすべてのVMに接続して、接続が機能し、SSHが他のホストを信頼することを確認します。

      • redvm1でのSSH接続。

        ubuntu@redvm1:~$ ssh redvm1 date
        The authenticity of host 'redvm1 (127.0.1.1)' can't be established.
        ED25519 key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
        This key is not known by any other names
        Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
        Warning: Permanently added 'redvm1' (ED25519) to the list of known hosts.
        Fri Apr  5 04:28:57 UTC 2024
        ubuntu@redvm1:~$
        ubuntu@redvm1:~$ ssh redvm2 date
        The authenticity of host 'redvm2 (10.0.2.2)' can't be established.
        ED25519 key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
        This key is not known by any other names
        Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
        Warning: Permanently added 'redvm2' (ED25519) to the list of known hosts.
        Wed Jan 31 04:29:11 UTC 2024
        ubuntu@redvm1:~$
        ubuntu@redvm1:~$ ssh redvm3 date
        The authenticity of host 'redvm3 (10.0.3.2)' can't be established.
        ED25519 key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
        This key is not known by any other names
        Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
        Warning: Permanently added 'redvm3' (ED25519) to the list of known hosts.
        Wed Jan 31 04:29:19 UTC 2024
        
    5. redvm3redvm1およびredvm2に接続するredvm2redvm1およびredvm3およびredvm3に接続するredvm2について、前述のステップを繰り返します。

  3. クラスタ・メンバーごとに共通の記憶域の場所を作成します。

    ノート: Open MPIを使用するすべての VMインスタンスが共有ストレージロケーションを持つことが理想的です。これは、NFS、GlusterFS、OCFS2、またはその他の任意の数の共有ファイルシステム・ソリューションの形式にできます。これは、ワークロードに共通の作業ディレクトリまたはデータセットが必要な場合に特に重要です。

    この例では、共有ファイルシステムは必要ありません。テストバイナリの共通名を持つ場所だけです。各VMで、共通の名前の場所/mpitestを作成します。

    sudo mkdir /mpitest && sudo chown ubuntu:ubuntu /mpitest
    

    共有ファイルシステムを使用する場合、共有ファイルシステムはこの場所にすべての VMインスタンスにマウントされます。

  4. mpirunで使用するhostfileを作成します。詳細は、「mpirunに-hostfileオプションを使用する方法」を参照してください。

    1. テスト用に2つのhostfilesを作成します。redvm1で、前述で作成した一般的な名前の場所/mpitestを使用して、次の内容を含むファイル/mpitest/mpihosts.txtを作成します。

      redvm1
      redvm2
      redvm3
      
    2. 次の内容のファイル/mpitest/mpihosts_slots.txtを作成します。

      redvm1 slots=1
      redvm2 slots=1
      redvm3 slots=1
      

ノート:このチュートリアルでは、テストはredvm1からのみ実行されるため、これらのファイルをredvm2およびredvm3にコピーする必要はありません。他のVMからもジョブを実行する場合は、これらのファイルを他のVMインスタンスにコピーするか、NFSなどの適切な共有ファイルシステムを使用する必要があります。

タスク5: VMインスタンスのテスト

  1. 分散コマンドの簡単なテスト。

    • 単純なテストは、すべてのクラスタ・メンバーでhostnameなどのコマンドを呼び出すことです。slots=1 (mpihosts_slots.txt)ファイルを使用して、3つのノードで予想される出力を次に示します。slotsディレクティブは、プロセス数を決定するmpirunではなく、このノードに割り当てることができるプロセスの数をmpirunに通知します。

      ノート: CPU以外の制限されたリソース(GPUなど)を使用している場合、slotsの指定が必要になることがあります。ここで、プロセスを他のリソースの数に制限します。これに失敗すると、他のリソースを割り当てることができないためにプロセスが失敗する可能性があります。

      ubuntu@redvm1:~$ cd /mpitest
      
      ubuntu@redvm1:/mpitest$ cat mpihosts_slots.txt
      redvm1 slots=1
      redvm2 slots=1
      redvm3 slots=1
      
      ubuntu@redvm1:/mpitest$ mpirun --hostfile mpihosts_slots.txt hostname
      redvm1
      redvm2
      redvm3
      
    • slots (mpihosts.txt)ファイルを指定せずに同じテストを実行すると、mpirunによって使用可能なCPUが判別され、各ノードでCPU数のhostnameコマンドが実行されます。これら3つの仮想マシンには16個のCPUがあるため、3 x 16の応答(各ホスト名の16個)を取得する必要があります。

      ubuntu@redvm1:/mpitest$ cat mpihosts.txt
      redvm1
      redvm2
      redvm3
      
      ubuntu@redvm1:/mpitest$ mpirun --hostfile mpihosts.txt hostname | sort | uniq -c
          16 redvm1
          16 redvm2
          16 redvm3
      
  2. Open MPIテストバイナリを構築します。

    Open MPIを使用するプログラムで適切なテストを行うには、John Burkardtの素数計算機の例を使用します。これは、redvm1でダウンロードおよびコンパイルする必要があります。詳細は、Prime Number Calculator by John Burkardtを参照してください。

    ubuntu@redvm1:~$ cd /mpitest
    
    ubuntu@redvm1:/mpitest$ curl https://people.sc.fsu.edu/~jburkardt/c_src/prime_mpi/prime_mpi.c -o prime_mpi.c
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                    Dload  Upload   Total   Spent    Left  Speed
    100  4699  100  4699    0     0   2990      0  0:00:01  0:00:01 --:--:--  2991
    
    ubuntu@redvm1:/mpitest$ mpicc prime_mpi.c -o prime_mpi
    
    ubuntu@redvm1:/mpitest$ ls -l prime_mpi
    -rwxrwxr-x 1 ubuntu ubuntu 16736 Apr  5 05:38 prime_mpi
    

    共有ファイルシステムはテスト用に設定されていないため、prime_mpiバイナリは、redvm1と同じ場所のredvm2およびredvm3にコピーする必要があります。次のコマンドを実行します

    ubuntu@redvm1:/mpitest$ scp prime_mpi redvm2:/mpitest
    prime_mpi                                                                                                                     100%   16KB  27.4MB/s   00:00
    ubuntu@redvm1:/mpitest$ scp prime_mpi redvm3:/mpitest
    prime_mpi                                                                                                                     100%   16KB  28.3MB/s   00:00
    
  3. ベースラインを比較するには、Open MPIバイナリスタンドアロンを実行します。ベースラインまたは比較に対して、オープンMPIなしでprime_mpiを実行します。

    ubuntu@redvm1:/mpitest$ ./prime_mpi
    31 January 2024 06:08:17 AM
    
    PRIME_MPI
      C/MPI version
    
      An MPI example program to count the number of primes.
      The number of processes is 1
    
            N        Pi          Time
    
            1         0        0.000003
            2         1        0.000000
            4         2        0.000000
            8         4        0.000000
            16         6        0.000000
            32        11        0.000001
            64        18        0.000002
          128        31        0.000022
          256        54        0.000019
          512        97        0.000066
          1024       172        0.000231
          2048       309        0.000810
          4096       564        0.002846
          8192      1028        0.010093
        16384      1900        0.037234
        32768      3512        0.137078
        65536      6542        0.515210
        131072     12251        1.932970
        262144     23000        7.243419
    
    PRIME_MPI - Master process:
      Normal end of execution.
    
    31 January 2024 06:08:27 AM
    

    ノート:プロセス数は1で、完了までに約10秒かかります。

  4. Open MPIを使用した分散実行。mpihosts.txtファイルを使用して、3つのVMインスタンスで使用可能なすべてのCPUでOpen MPIを指定してprime_mpiを実行します。

    ubuntu@redvm1:/mpitest$ mpirun --hostfile mpihosts.txt ./prime_mpi
    31 January 2024 06:09:02 AM
    
    PRIME_MPI
      C/MPI version
    
      An MPI example program to count the number of primes.
      The number of processes is 48
    
            N        Pi          Time
    
            1         0        0.020740
            2         1        0.000428
            4         2        0.000331
            8         4        0.000392
            16         6        0.000269
            32        11        0.000295
            64        18        0.000374
          128        31        0.000390
          256        54        0.000380
          512        97        0.000331
          1024       172        0.000351
          2048       309        0.000385
          4096       564        0.000740
          8192      1028        0.001931
        16384      1900        0.006316
        32768      3512        0.021577
        65536      6542        0.078834
        131072     12251        0.273368
        262144     23000        0.808825
    
    PRIME_MPI - Master process:
      Normal end of execution.
    
    31 January 2024 06:09:03 AM
    

    48個のプロセスが使用され、実行に約1秒かかります。

    mpihosts_slots.txtファイルを使用して、同じ例を実行してOpen MPIを調べます。スタンドアロンprime_mpiの実行と比較して改善が見られますが、すべてのノードで完全な補完ではなく、各ノードで1つのプロセッサ(合計3)のみが使用されます。各 VMインスタンスのスロット数を変更することで、ジョブの分散を制御できます。

承認

その他の学習リソース

docs.oracle.com/learnの他のラボをご覧いただくか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスして、Oracle Learning Explorerになります。

製品ドキュメントは、Oracle Help Centerを参照してください。