cirq_google.engine.EngineProcessor

A processor available via the Quantum Engine API.

Inherits From: AbstractProcessor

project_id A project_id of the parent Google Cloud Project.
processor_id Unique ID of the processor.
context Engine configuration and context to use.
_processor The optional current processor state.

project_id A project_id of the parent Google Cloud Project.
processor_id Unique ID of the processor.

Methods

create_reservation

View source

Creates a reservation on this processor.

Args
start_time the starting date/time of the reservation.
end_time the ending date/time of the reservation.
whitelisted_users a list of emails that are allowed to send programs during this reservation (in addition to users with permission "quantum.reservations.use" on the project).

engine

View source

Returns the parent Engine object.

Returns
The program's parent Engine.

expected_down_time

View source

Returns the start of the next expected down time of the processor, if set.

expected_recovery_time

View source

Returns the expected the processor should be available, if set.

get_calibration

View source

Retrieve metadata about a specific calibration run.

Params
calibration_timestamp_seconds The timestamp of the calibration in seconds since epoch.

Returns
The calibration data.

get_current_calibration

View source

Returns metadata about the current calibration for a processor.

Returns
The calibration data or None if there is no current calibration.

get_device

View source

Returns a Device created from the processor's device specification.

This method queries the processor to retrieve the device specification, which is then use to create a cirq_google.GridDevice that will validate that operations are supported and use the correct qubits.

get_device_specification

View source

Returns a device specification proto for use in determining information about the device.

Returns
Device specification proto if present.

get_reservation

View source

Retrieve a reservation given its id.

get_sampler

View source

Returns a sampler backed by the engine.

Args
run_name A unique identifier representing an automation run for the processor. An Automation Run contains a collection of device configurations for the processor.
device_config_name An identifier used to select the processor configuration utilized to run the job. A configuration identifies the set of available qubits, couplers, and supported gates in the processor.

Returns
A cirq.Sampler instance (specifically a engine_sampler.ProcessorSampler that will send circuits to the Quantum Computing Service when sampled.1

get_schedule

View source

Retrieves the schedule for a processor.

The schedule may be filtered by time.

Time slot type will be supported in the future.

Args
from_time Filters the returned schedule to only include entries that end no earlier than the given value. Specified either as an absolute time (datetime.datetime) or as a time relative to now (datetime.timedelta). Defaults to now (a relative time of 0). Set to None to omit this filter.
to_time Filters the returned schedule to only include entries that start no later than the given value. Specified either as an absolute time (datetime.datetime) or as a time relative to now (datetime.timedelta). Defaults to two weeks from now (a relative time of two weeks). Set to None to omit this filter.
time_slot_type Filters the returned schedule to only include entries with a given type (e.g. maintenance, open swim). Defaults to None. Set to None to omit this filter.

Returns
Schedule time slots.

health

View source

Returns the current health of processor.

list_calibrations

View source

Retrieve metadata about a specific calibration run.

Params
earliest_timestamp_seconds The earliest timestamp of a calibration to return in UTC.
latest_timestamp_seconds The latest timestamp of a calibration to return in UTC.

Returns
The list of calibration data with the most recent first.

list_reservations

View source

Retrieves the reservations from a processor.

Only reservations from this processor and project will be returned. The schedule may be filtered by starting and ending time.

Args
from_time Filters the returned reservations to only include entries that end no earlier than the given value. Specified either as an absolute time (datetime.datetime) or as a time relative to now (datetime.timedelta). Defaults to now (a relative time of 0). Set to None to omit this filter.
to_time Filters the returned reservations to only include entries that start no later than the given value. Specified either as an absolute time (datetime.datetime) or as a time relative to now (datetime.timedelta). Defaults to two weeks from now (a relative time of two weeks). Set to None to omit this filter.

Returns
A list of reservations.

remove_reservation

View source

Removes a reservation on this processor.

run

View source

Runs the supplied Circuit on this processor.

Args
program The Circuit to execute. If a circuit is provided, a moment by moment schedule will be used.
program_id A user-provided identifier for the program. This must be unique within the Google Cloud project being used. If this parameter is not provided, a random id of the format 'prog-################YYMMDD' will be generated, where # is alphanumeric and YYMMDD is the current year, month, and day.
job_id Job identifier to use. If this is not provided, a random id of the format 'job-################YYMMDD' will be generated, where # is alphanumeric and YYMMDD is the current year, month, and day.
param_resolver Parameters to run with the program.
repetitions The number of repetitions to simulate.
program_description An optional description to set on the program.
program_labels Optional set of labels to set on the program.
job_description An optional description to set on the job.
job_labels Optional set of labels to set on the job.
run_name A unique identifier representing an automation run for the processor. An Automation Run contains a collection of device configurations for the processor.
device_config_name An identifier used to select the processor configuration utilized to run the job. A configuration identifies the set of available qubits, couplers, and supported gates in the processor.

Returns
A single Result for this run.

run_async

View source

Runs the supplied Circuit on this processor.

Args
program The Circuit to execute. If a circuit is provided, a moment by moment schedule will be used.
program_id A user-provided identifier for the program. This must be unique within the Google Cloud project being used. If this parameter is not provided, a random id of the format 'prog-################YYMMDD' will be generated, where # is alphanumeric and YYMMDD is the current year, month, and day.
job_id Job identifier to use. If this is not provided, a random id of the format 'job-################YYMMDD' will be generated, where # is alphanumeric and YYMMDD is the current year, month, and day.
param_resolver Parameters to run with the program.
repetitions The number of repetitions to simulate.
program_description An optional description to set on the program.
program_labels Optional set of labels to set on the program.
job_description An optional description to set on the job.
job_labels Optional set of labels to set on the job.
run_name A unique identifier representing an automation run for the processor. An Automation Run contains a collection of device configurations for the processor.
device_config_name An identifier used to select the processor configuration utilized to run the job. A configuration identifies the set of available qubits, couplers, and supported gates in the processor.

Returns
A single Result for this run.

run_batch

View source

Runs the supplied Circuits on this processor.

This will combine each Circuit provided in programs into a BatchProgram. Each circuit will pair with the associated parameter sweep provided in the params_list. The number of programs is required to match the number of sweeps. This method does not block until a result is returned. However, no results will be available until the entire batch is complete. Args: programs: The Circuits to execute as a batch. program_id: A user-provided identifier for the program. This must be unique within the Google Cloud project being used. If this parameter is not provided, a random id of the format 'prog-################YYMMDD' will be generated, where # is alphanumeric and YYMMDD is the current year, month, and day. job_id: Job identifier to use. If this is not provided, a random id of the format 'job-################YYMMDD' will be generated, where # is alphanumeric and YYMMDD is the current year, month, and day. params_list: Parameter sweeps to use with the circuits. The number of sweeps should match the number of circuits and will be paired in order with the circuits. If this is None, it is assumed that the circuits are not parameterized and do not require sweeps. repetitions: Number of circuit repetitions to run. Each sweep value of each circuit in the batch will run with the same repetitions. program_description: An optional description to set on the program. program_labels: Optional set of labels to set on the program. job_description: An optional description to set on the job. job_labels: Optional set of labels to set on the job. run_name: A unique identifier representing an automation run for the processor. An Automation Run contains a collection of device configurations for the processor. device_config_name: An identifier used to select the processor configuration utilized to run the job. A configuration identifies the set of available qubits, couplers, and supported gates in the processor. Returns: An AbstractJob. If this is iterated over it returns a list of cirq.Result. All Results for the first circuit are listed first, then the Results for the second, etc. The Results for a circuit are listed in the order imposed by the associated parameter sweep.

run_batch_async

View source

Runs the supplied Circuits on this processor.

This will combine each Circuit provided in programs into a BatchProgram. Each circuit will pair with the associated parameter sweep provided in the params_list. The number of programs is required to match the number of sweeps. This method does not block until a result is returned. However, no results will be available until the entire batch is complete. Args: programs: The Circuits to execute as a batch. program_id: A user-provided identifier for the program. This must be unique within the Google Cloud project being used. If this parameter is not provided, a random id of the format 'prog-################YYMMDD' will be generated, where # is alphanumeric and YYMMDD is the current year, month, and day. job_id: Job identifier to use. If this is not provided, a random id of the format 'job-################YYMMDD' will be generated, where # is alphanumeric and YYMMDD is the current year, month, and day. params_list: Parameter sweeps to use with the circuits. The number of sweeps should match the number of circuits and will be paired in order with the circuits. If this is None, it is assumed that the circuits are not parameterized and do not require sweeps. repetitions: Number of circuit repetitions to run. Each sweep value of each circuit in the batch will run with the same repetitions. program_description: An optional description to set on the program. program_labels: Optional set of labels to set on the program. job_description: An optional description to set on the job. job_labels: Optional set of labels to set on the job. run_name: A unique identifier representing an automation run for the processor. An Automation Run contains a collection of device configurations for the processor. device_config_name: An identifier used to select the processor configuration utilized to run the job. A configuration identifies the set of available qubits, couplers, and supported gates in the processor. Returns: An abstract_job.AbstractJob. If this is iterated over it returns a list of cirq.Result. All Results for the first circuit are listed first, then the Results for the second, etc. The Results for a circuit are listed in the order imposed by the associated parameter sweep. Raises: ValueError: If neither processor_id or processor_ids are set. ValueError: If only one of run_name and device_config_name are specified. ValueError: If processor_ids has more than one processor id. ValueError: If either run_name and device_config_name are set but processor_id is empty.

run_calibration

View source

Runs the specified calibrations on the processor.

Each calibration will be specified by a CalibrationLayer that contains the type of the calibrations to run, a Circuit to optimize, and any arguments needed by the calibration routine. Arguments and circuits needed for each layer will vary based on the calibration type. However, the typical calibration routine may require a single moment defining the gates to optimize, for example. Note: this is an experimental API and is not yet fully supported for all users. Args: layers: The layers of calibration to execute as a batch. program_id: A user-provided identifier for the program. This must be unique within the Google Cloud project being used. If this parameter is not provided, a random id of the format 'calibration-################YYMMDD' will be generated, where # is alphanumeric and YYMMDD is the current year, month, and day. job_id: Job identifier to use. If this is not provided, a random id of the format 'calibration-################YYMMDD' will be generated, where # is alphanumeric and YYMMDD is the current year, month, and day. program_description: An optional description to set on the program. program_labels: Optional set of labels to set on the program. job_description: An optional description to set on the job. job_labels: Optional set of labels to set on the job. By default, this will add a 'calibration' label to the job. Returns: An AbstractJob whose results can be retrieved by calling calibration_results().

run_calibration_async

View source

Runs the specified calibrations on the processor.

Each calibration will be specified by a CalibrationLayer that contains the type of the calibrations to run, a Circuit to optimize, and any arguments needed by the calibration routine. Arguments and circuits needed for each layer will vary based on the calibration type. However, the typical calibration routine may require a single moment defining the gates to optimize, for example. Note: this is an experimental API and is not yet fully supported for all users.

Args
layers The layers of calibration to execute as a batch.
program_id A user-provided identifier for the program. This must be unique within the Google Cloud project being used. If this parameter is not provided, a random id of the format 'calibration-################YYMMDD' will be generated, where # is alphanumeric and YYMMDD is the current year, month, and day.
job_id Job identifier to use. If this is not provided, a random id of the format 'calibration-################YYMMDD' will be generated, where # is alphanumeric and YYMMDD is the current year, month, and day.
program_description An optional description to set on the program.
program_labels Optional set of labels to set on the program.
job_description An optional description to set on the job.
job_labels Optional set of labels to set on the job. By default, this will add a 'calibration' label to the job.

Returns
An AbstractJob whose results can be retrieved by calling calibration_results().

run_sweep

View source

Runs the supplied Circuit on this processor.

In contrast to run, this runs across multiple parameter sweeps, and does not block until a result is returned. Args: program: The Circuit to execute. If a circuit is provided, a moment by moment schedule will be used. program_id: A user-provided identifier for the program. This must be unique within the Google Cloud project being used. If this parameter is not provided, a random id of the format 'prog-################YYMMDD' will be generated, where # is alphanumeric and YYMMDD is the current year, month, and day. job_id: Job identifier to use. If this is not provided, a random id of the format 'job-################YYMMDD' will be generated, where # is alphanumeric and YYMMDD is the current year, month, and day. params: Parameters to run with the program. repetitions: The number of circuit repetitions to run. program_description: An optional description to set on the program. program_labels: Optional set of labels to set on the program. job_description: An optional description to set on the job. job_labels: Optional set of labels to set on the job. run_name: A unique identifier representing an automation run for the processor. An Automation Run contains a collection of device configurations for the processor. device_config_name: An identifier used to select the processor configuration utilized to run the job. A configuration identifies the set of available qubits, couplers, and supported gates in the processor. Returns: An AbstractJob. If this is iterated over it returns a list of cirq.Result, one for each parameter sweep.

run_sweep_async

View source

Runs the supplied Circuit on this processor.

In contrast to run, this runs across multiple parameter sweeps, and does not block until a result is returned.

Args
program The Circuit to execute. If a circuit is provided, a moment by moment schedule will be used.
program_id A user-provided identifier for the program. This must be unique within the Google Cloud project being used. If this parameter is not provided, a random id of the format 'prog-################YYMMDD' will be generated, where # is alphanumeric and YYMMDD is the current year, month, and day.
job_id Job identifier to use. If this is not provided, a random id of the format 'job-################YYMMDD' will be generated, where # is alphanumeric and YYMMDD is the current year, month, and day.
params Parameters to run with the program.
repetitions The number of circuit repetitions to run.
program_description An optional description to set on the program.
program_labels Optional set of labels to set on the program.
job_description An optional description to set on the job.
job_labels Optional set of labels to set on the job.
run_name A unique identifier representing an automation run for the processor. An Automation Run contains a collection of device configurations for the processor.
device_config_name An identifier used to select the processor configuration utilized to run the job. A configuration identifies the set of available qubits, couplers, and supported gates in the processor.

Returns
An AbstractJob. If this is iterated over it returns a list of cirq.Result, one for each parameter sweep.

Raises
ValueError If neither processor_id or processor_ids are set.
ValueError If only one of run_name and device_config_name are specified.
ValueError If processor_ids has more than one processor id.
ValueError If either run_name and device_config_name are set but processor_id is empty.

supported_languages

View source

Returns the list of processor supported program languages.

update_reservation

View source

Updates a reservation with new information.

Updates a reservation with a new start date, end date, or list of additional users. For each field, it the argument is left as None, it will not be updated.