Raggruppamento quantistico delle attività - Amazon Braket

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Raggruppamento quantistico delle attività

Il raggruppamento quantistico delle attività è disponibile su tutti i dispositivi Amazon Braket, ad eccezione del simulatore locale. Il batching è particolarmente utile per le attività quantistiche eseguite sui simulatori su richiesta (TN1oSV1) perché possono elaborare più attività quantistiche in parallelo. Per aiutarti a configurare varie attività quantistiche, Amazon Braket fornisce notebook di esempio.

Il batching consente di avviare attività quantistiche in parallelo. Ad esempio, se si desidera eseguire un calcolo che richiede 10 attività quantistiche e i circuiti utilizzati in tali attività quantistiche sono indipendenti l'uno dall'altro, è consigliabile utilizzare il batching. In questo modo, non è necessario attendere il completamento di un'attività quantistica prima di iniziare un'altra attività.

L'esempio seguente mostra come eseguire un batch di attività quantistiche:

circuits = [bell for _ in range(5)] batch = device.run_batch(circuits, s3_folder, shots=100) print(batch.results()[0].measurement_counts) # The result of the first quantum task in the batch

Per ulteriori informazioni, consulta gli esempi di Amazon Braket GitHub o Quantum task batching, che contiene informazioni più specifiche sul batching.

Informazioni sul raggruppamento quantistico delle attività e sui costi

Alcune avvertenze da tenere a mente per quanto riguarda il raggruppamento quantistico delle attività e i costi di fatturazione:

Quantum task batching e PennyLane

Sfrutta i vantaggi del batch quando utilizzi PennyLane Amazon Braket impostando parallel = True quando istanziare un dispositivo Amazon Braket, come mostrato nell'esempio seguente.

device = qml.device("braket.aws.qubit",device_arn="arn:aws:braket:::device/quantum-simulator/amazon/sv1",wires=wires,s3_destination_folder=s3_folder,parallel=True,)

Per ulteriori informazioni sul batching with, consulta Ottimizzazione parallelizzata dei circuiti PennyLane quantistici.

Task batching e circuiti parametrizzati

Quando si invia un batch di operazioni quantistiche che contiene circuiti parametrizzati, è possibile fornire un inputs dizionario, utilizzato per tutte le attività quantistiche del batch, oppure uno list dei dizionari di input, nel qual caso il dizionario -th viene abbinato al task i -th, come mostrato nell'esempio seguente. i

from braket.circuits import Circuit, FreeParameter, Observable from braket.aws import AwsQuantumTaskBatch # create the free parameters alpha = FreeParameter('alpha') beta = FreeParameter('beta') # create two circuits circ_a = Circuit().rx(0, alpha).ry(1, alpha).cnot(0,2).xx(0, 2, beta) circ_a.variance(observable=Observable.Z(), target=0) circ_b = Circuit().rx(0, alpha).rz(1, alpha).cnot(0,2).zz(0, 2, beta) circ_b.expectation(observable=Observable.Z(), target=2) # use the same inputs for both circuits in one batch tasks = device.run_batch([circ_a, circ_b], inputs={'alpha': 0.1, 'beta':0.2}) # or provide each task its own set of inputs inputs_list = [{'alpha': 0.3,'beta':0.1}, {'alpha': 0.1,'beta':0.4}] tasks = device.run_batch([circ_a, circ_b], inputs=inputs_list)

È inoltre possibile preparare un elenco di dizionari di input per un singolo circuito parametrico e inviarli come batch di operazioni quantistiche. Se nell'elenco sono presenti N dizionari di input, il batch contiene N task quantistici. Il task quantistico i -th corrisponde al circuito eseguito con il dizionario di input -th. i

from braket.circuits import Circuit, FreeParameter # create a parametric circuit circ = Circuit().rx(0, FreeParameter('alpha')) # provide a list of inputs to execute with the circuit inputs_list = [{'alpha': 0.1}, {'alpha': 0.2}, {'alpha': 0.3}] tasks = device.run_batch(circ, inputs=inputs_list)