> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wandb.ai/llms.txt
> Use this file to discover all available pages before exploring further.

> マルチコアまたはマルチGPUマシンで sweep エージェントを並列化します。

# エージェントの並列化

マルチコアまたはマルチGPUマシンで sweep エージェントを並列化すると、複数の sweep の run を同時に実行できます。並列化により、ハイパーパラメーター空間の探索にかかる時間を短縮できます。このページでは、単一ホスト上の利用可能な計算リソースを最大限に活用できるように、マルチCPUおよびマルチGPUマシンでエージェントを並列起動する方法を説明します。

開始する前に、sweep を初期化する必要があります。詳細は、[Initialize sweeps](/ja/models/sweeps/initialize-sweeps)を参照してください。

<div id="parallelize-on-a-multi-cpu-machine">
  ## 複数の CPU コアを備えたマシンで並列化する
</div>

以下のタブでは、同じマシン上で複数の sweep エージェント を並列実行する方法を説明します。並列エージェントは、各エージェントをそれぞれ別の CPU コアで実行できる、複数の CPU コアを備えたマシンで特に効果的です。ワークフローに応じて、CLI または Jupyter Notebook のタブを選択してください。

<Tabs>
  <Tab title="CLI">
    ターミナルで sweep エージェント を複数の CPU にまたがって並列実行するには、[`wandb agent`](/ja/models/ref/cli/wandb-agent) コマンドを使用します。[sweep を初期化](/ja/models/sweeps/initialize-sweeps)した際に W\&B から返された sweep ID を指定してください。

    1. ローカルマシンで複数のターミナルウィンドウを開きます。
    2. 次のコードスニペットをコピー＆ペーストし、`[SWEEP-ID]` を sweep ID に置き換えます。

       ```bash theme={null}
       wandb agent [SWEEP-ID]
       ```
  </Tab>

  <Tab title="Notebook">
    Jupyter Notebook 内で sweep エージェント を複数の CPU にまたがって並列実行するには、W\&B Python SDK ライブラリを使用します。[sweep を初期化](/ja/models/sweeps/initialize-sweeps)した際に W\&B から返された sweep ID を指定し、`function` パラメーターに sweep が実行する関数名を設定します。

    1. 複数のノートブックを開きます。
    2. 複数のノートブックに同じ sweep ID をコピー＆ペーストして、sweep を並列化します。たとえば、sweep ID が `sweep_id` という変数に格納されていて、関数名が `function_name` の場合は、次のコードスニペットを複数のノートブックに貼り付けることで sweep を並列化できます。

       ```python theme={null}
       wandb.agent(sweep_id=sweep_id, function=function_name)
       ```
  </Tab>
</Tabs>

<div id="parallelize-on-a-multi-gpu-machine">
  ## マルチ GPU マシンで並列化する
</div>

`CUDA_VISIBLE_DEVICES` を使用して各 [`wandb agent`](/ja/models/ref/cli/wandb-agent) を別々の GPU に割り当てると、同じマシン上の複数の GPU で sweep エージェントを並列実行できます。これにより、同じデバイスを取り合うことなく、エージェントを並列に実行できます。

この手順を実行するには、次が必要です。

* 2 基以上の GPU を搭載したマシン。
* NVIDIA CUDA Toolkit がインストールされていること。
* ターミナル。

たとえば、ローカル マシンに 2 基の NVIDIA GPU があるとします。各コマンド内の `[SWEEP-ID]` は、sweep の初期化時に W\&B が返す sweep ID に置き換えてください。

1. 1 つ目のターミナルで、`CUDA_VISIBLE_DEVICES` を `0` に設定し、エージェントを起動します。

   ```bash theme={null}
   CUDA_VISIBLE_DEVICES=0 wandb agent [SWEEP-ID]
   ```

2. 別のターミナルで、`CUDA_VISIBLE_DEVICES` を `1` に設定し、同じ sweep ID でもう 1 つのエージェントを起動します。

   ```bash theme={null}
   CUDA_VISIBLE_DEVICES=1 wandb agent [SWEEP-ID]
   ```
