本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用檢查點儲存和重新啟動混合式任務
您可以使用檢查點儲存混合任務的中繼反覆運算。在上一節的演算法指令碼範例中,您可以新增以 #ADD 評論的下列行來建立檢查點檔案。
from braket.aws import AwsDevice from braket.circuits import Circuit from braket.jobs import save_job_checkpoint #ADD import os def start_here(): print("Test job starts!!!!!") device = AwsDevice(os.environ["AMZN_BRAKET_DEVICE_ARN"]) #ADD the following code job_name = os.environ["AMZN_BRAKET_JOB_NAME"] save_job_checkpoint( checkpoint_data={"data": f"data for checkpoint from {job_name}"}, checkpoint_file_suffix="checkpoint-1", ) #End of ADD bell = Circuit().h(0).cnot(0, 1) for count in range(5): task = device.run(bell, shots=100) print(task.result().measurement_counts) print("Test hybrid job completed!!!!!")
當您執行混合式任務時,它會在檢查點目錄中的混合式任務成品中,使用預設/opt/jobs/checkpoints
路徑建立檔案 <jobname>-checkpoint-1.json。除非您想要變更此預設路徑,否則混合任務指令碼保持不變。
如果您想要從先前混合任務產生的檢查點載入混合任務,演算法指令碼會使用 from braket.jobs import load_job_checkpoint
。要載入演算法指令碼的邏輯如下所示。
checkpoint_1 = load_job_checkpoint( "previous_job_name", checkpoint_file_suffix="checkpoint-1", )
載入此檢查點後,您可以根據載入 的內容繼續邏輯checkpoint-1
。
注意
checkpoint_file_suffix 必須符合先前在建立檢查點時指定的尾碼。
您的編排指令碼需要指定來自先前混合任務job-arn
的 ,並加上 # 的行註解ADD。
job = AwsQuantumJob.create( source_module="source_dir", entry_point="source_dir.algorithm_script:start_here", device_arn="arn:aws:braket:::device/quantum-simulator/amazon/sv1", copy_checkpoints_from_job="<previous-job-ARN>", #ADD )