

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# パラメトリックコンパイルを使用したハイブリッドジョブの高速化
<a name="braket-jobs-parametric-compilation"></a>

 Amazon Braket は、特定の QPU でのパラメトリックコンパイルをサポートしています。このサポートにより、ハイブリッドアルゴリズムの各イテレーションをコンパイルするのではなく、回路を 1 回コンパイルするだけで済むようになるため、計算コストの高いコンパイルステップにかかるオーバーヘッドを削減できます。これにより、各ステップで回路を再コンパイルする必要がなくなるため、ハイブリッドジョブの実行時間が大幅に短縮されます。パラメータ化された回路を Braket ハイブリッドジョブとして、サポートされている QPU のいずれかに送信するだけでよいのです。長時間実行されるハイブリッドジョブの場合、Braket は、回路をコンパイルするときに、ハードウェアプロバイダーからの更新されたキャリブレーションデータを自動的に使用して、最高品質の結果を実現します。

パラメトリック回路を作成するには、まずパラメータをアルゴリズムスクリプトの入力として指定する必要があります。次の例では、小さなパラメトリック回路を使用し、各イテレーション間の古典的な処理をすべて無視しています。標準的なワークロードなら、多数の回路をバッチで送信し、各イテレーションでパラメータを更新するなどの古典的な処理を実行するところです。

```
import os

from braket.aws import AwsDevice
from braket.circuits import Circuit, FreeParameter

def start_here():

    print("Test job started.")

    # Use the device declared in the job script
    device = AwsDevice(os.environ["AMZN_BRAKET_DEVICE_ARN"])

    circuit = Circuit().rx(0, FreeParameter("theta"))
    parameter_list = [0.1, 0.2, 0.3]
    
    for parameter in parameter_list:
        result = device.run(circuit, shots=1000, inputs={"theta": parameter})

    print("Test job completed.")
```

次のジョブスクリプトを使用して、ハイブリッドジョブとして実行するアルゴリズムスクリプトを送信できます。パラメトリックコンパイルをサポートする QPU でハイブリッドジョブを実行する場合、回路は最初の実行時にのみコンパイルされます。後続の実行では、コンパイルされた回路が再利用されるため、コード行を追加しなくてもハイブリッドジョブの実行時間が短縮されます。

```
from braket.aws import AwsQuantumJob

job = AwsQuantumJob.create(
    device=device_arn,
    source_module="algorithm_script.py",
)
```

**注記**  
パラメトリックコンパイルは、Rigetti Computing 製のあらゆる超伝導ゲートベース QPU でサポートされています。ただし、パルスレベルプログラムは例外です。