![]() |
A processor available via the Quantum Engine API.
Inherits From: AbstractProcessor
cirq_google.engine.EngineProcessor(
project_id: str,
processor_id: str,
context: 'engine_base.EngineContext',
_processor: Optional[cirq_google.cloud.quantum.QuantumProcessor
] = None
) -> None
Attributes | |
---|---|
project_id
|
A project_id of the parent Google Cloud Project. |
processor_id
|
Unique ID of the processor. |
Methods
create_reservation
create_reservation(
start_time: datetime.datetime,
end_time: datetime.datetime,
whitelisted_users: Optional[List[str]] = None
)
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
engine() -> 'engine_base.Engine'
Returns the parent Engine object.
Returns | |
---|---|
The program's parent Engine. |
expected_down_time
expected_down_time() -> 'Optional[datetime.datetime]'
Returns the start of the next expected down time of the processor, if set.
expected_recovery_time
expected_recovery_time() -> 'Optional[datetime.datetime]'
Returns the expected the processor should be available, if set.
get_calibration
get_calibration(
calibration_timestamp_seconds: int
) -> cirq_google.engine.Calibration
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
get_current_calibration() -> Optional[cirq_google.engine.Calibration
]
Returns metadata about the current calibration for a processor.
Returns | |
---|---|
The calibration data or None if there is no current calibration. |
get_device
get_device() -> cirq.Device
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
get_device_specification() -> Optional[cirq_google.api.v2.device_pb2.DeviceSpecification
]
Returns a device specification proto for use in determining information about the device.
Returns | |
---|---|
Device specification proto if present. |
get_reservation
get_reservation(
reservation_id: str
) -> Optional[cirq_google.cloud.quantum.QuantumReservation
]
Retrieve a reservation given its id.
get_sampler
get_sampler() -> 'cg.engine.ProcessorSampler'
Returns a sampler backed by the engine.
Returns | |
---|---|
A cirq.Sampler instance (specifically a engine_sampler.ProcessorSampler
that will send circuits to the Quantum Computing Service
when sampled.1
|
get_schedule
get_schedule(
from_time: Union[None, datetime.datetime, datetime.timedelta] = datetime.timedelta(),
to_time: Union[None, datetime.datetime, datetime.timedelta] = datetime.timedelta(weeks=2),
time_slot_type: Optional[cirq_google.cloud.quantum.QuantumTimeSlot.TimeSlotType
] = None
) -> List[cirq_google.cloud.quantum.QuantumTimeSlot
]
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
health() -> str
Returns the current health of processor.
list_calibrations
list_calibrations(
earliest_timestamp: Optional[Union[datetime.datetime, datetime.date, int]] = None,
latest_timestamp: Optional[Union[datetime.datetime, datetime.date, int]] = None
) -> List[cirq_google.engine.Calibration
]
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
list_reservations(
from_time: Union[None, datetime.datetime, datetime.timedelta] = datetime.timedelta(),
to_time: Union[None, datetime.datetime, datetime.timedelta] = datetime.timedelta(weeks=2)
) -> List[cirq_google.cloud.quantum.QuantumTimeSlot
]
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
remove_reservation(
reservation_id: str
)
Removes a reservation on this processor.
run
run(
program,
program_id=None,
job_id=None,
param_resolver=None,
repetitions=1,
program_description=None,
program_labels=None,
job_description=None,
job_labels=None
)
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. |
Returns | |
---|---|
A single Result for this run. |
run_async
run_async(
program,
program_id=None,
job_id=None,
param_resolver=None,
repetitions=1,
program_description=None,
program_labels=None,
job_description=None,
job_labels=None
)
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. |
Returns | |
---|---|
A single Result for this run. |
run_batch
run_batch(
programs,
program_id=None,
job_id=None,
params_list=None,
repetitions=1,
program_description=None,
program_labels=None,
job_description=None,
job_labels=None
)
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.
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
run_batch_async(
programs,
program_id=None,
job_id=None,
params_list=None,
repetitions=1,
program_description=None,
program_labels=None,
job_description=None,
job_labels=None
)
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.
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.
run_calibration
run_calibration(
layers,
program_id=None,
job_id=None,
program_description=None,
program_labels=None,
job_description=None,
job_labels=None
)
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 defauly,
this will add a 'calibration' label to the job.
Returns:
An AbstractJob whose results can be retrieved by calling
calibration_results().
run_calibration_async
run_calibration_async(
layers,
program_id=None,
job_id=None,
program_description=None,
program_labels=None,
job_description=None,
job_labels=None
)
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 defauly, this will add a 'calibration' label to the job. |
Returns | |
---|---|
An AbstractJob whose results can be retrieved by calling calibration_results(). |
run_sweep
run_sweep(
program,
program_id=None,
job_id=None,
params=None,
repetitions=1,
program_description=None,
program_labels=None,
job_description=None,
job_labels=None
)
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.
Returns:
An AbstractJob. If this is iterated over it returns a list of
cirq.Result
, one for each parameter sweep.
run_sweep_async
run_sweep_async(
program,
program_id=None,
job_id=None,
params=None,
repetitions=1,
program_description=None,
program_labels=None,
job_description=None,
job_labels=None
)
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. |
Returns | |
---|---|
An AbstractJob. If this is iterated over it returns a list of
cirq.Result , one for each parameter sweep.
|
supported_languages
supported_languages() -> List[str]
Returns the list of processor supported program languages.
update_reservation
update_reservation(
reservation_id: str,
start_time: datetime.datetime = None,
end_time: datetime.datetime = None,
whitelisted_users: List[str] = None
)
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.