StationControlExecutor#

Module: iqm.station_control.client.station_control_executor

class StationControlExecutor(client)#

Bases: ExecutorInterface

Concrete executor that communicates with a remote Station Control to manage hardware execution and results.

Methods

cancel_job

Cancel a job that has been submitted for execution.

delete_job

Delete a job that has been submitted for execution.

deserialize

Reconstruct an instance from a dictionary payload.

get_artifact_measurement_counts

Get the measurement counts of a circuit batch execution job.

get_artifact_measurements

Get the measurement results of a circuit batch execution job.

get_artifact_sweep_results

Get the results of an N-dimensional sweep job.

get_channel_properties

Get control channel properties, including hardware limitations and supported instructions.

get_chip_design_record

Get the chip design record for the QPU.

get_dut_label

Get the QPU chip label.

get_experiment_configuration

Get the default experiment configuration for the backend.

get_job

Get status information about an existing job.

get_job_payload

Get the job payload, i.e. the definition used to create the job.

get_or_create_software_version_set

Get software version set ID from the database, or create one if it doesn't exist.

get_settings

Default settings tree of the quantum computer.

get_static_quantum_architecture

Get the simplified QPU topology.

serialize

Serialize the object instance into a dictionary payload.

submit_job

Submit a job definition for execution.

Parameters:

client (StationControlClient)

get_experiment_configuration()#

Get the default experiment configuration for the backend.

Returns:

Default experiment configuration.

Return type:

dict[str, Any]

get_or_create_software_version_set(software_version_set)#

Get software version set ID from the database, or create one if it doesn’t exist.

Parameters:

software_version_set (dict[str, str])

Return type:

int

get_dut_label()#

Get the QPU chip label.

Return type:

str

get_chip_design_record()#

Get the chip design record for the QPU.

Return type:

dict[str, Any]

get_channel_properties()#

Get control channel properties, including hardware limitations and supported instructions.

Return type:

dict[str, ChannelProperties]

get_static_quantum_architecture()#

Get the simplified QPU topology.

Use get_chip_design_record() for more detailed QPU topology information.

Return type:

StaticQuantumArchitecture

get_settings()#

Default settings tree of the quantum computer.

Contains the available settings of the control instruments, and their default values.

Return type:

SettingNode

submit_job(job_definition: RunDefinition, *, use_timeslot: bool = False) → RunJobTracker#
submit_job(job_definition: PostJobsRequest, *, use_timeslot: bool = False) → CircuitJobTracker

Submit a job definition for execution.

Parameters:
  • job_definition – The content of the job to be created (e.g. and experiment run, or a batch of quantum circuits).

  • use_timeslot – Iff True, submit the job to the priority timeslot queue; otherwise, submit it to the shared FIFO queue.

Returns:

A JobTracker instance wrapping the submitted job, providing methods to track progress and retrieve results.

get_job(job_id)#

Get status information about an existing job.

Allows for managing jobs submitted in previous sessions or by other clients.

Parameters:

job_id (str | UUID) – The ID of the job to query.

Returns:

Current status and metadata of the job.

Return type:

JobData

get_job_payload(job_id, job_type)#

Get the job payload, i.e. the definition used to create the job.

Parameters:
  • job_id (str | UUID) – ID of the job to query.

  • job_type (Literal['run', 'circuit'])

Returns:

Job payload.

Return type:

RunDefinition | PostJobsRequest

get_artifact_sweep_results(job_id)#

Get the results of an N-dimensional sweep job.

Raises an error if the results are not available.

Parameters:

job_id (str | UUID) – ID of the job to query.

Returns:

Results of the sweep job.

Return type:

dict[str, list[ndarray]]

get_artifact_measurements(job_id)#

Get the measurement results of a circuit batch execution job.

Raises an error if the results are not available.

Parameters:

job_id (str | UUID) – ID of the job to query.

Returns:

For each circuit in the batch, the measurement results.

Return type:

list[dict[str, list[list[int]]]]

get_artifact_measurement_counts(job_id)#

Get the measurement counts of a circuit batch execution job.

Raises an error if the results are not available.

Parameters:

job_id (str | UUID) – ID of the job to query.

Returns:

For each circuit in the batch, the measurement counts.

Return type:

list[CircuitMeasurementCounts]

cancel_job(job_id)#

Cancel a job that has been submitted for execution.

A canceled job will remain in the execution record, but it will not proceed further. If the job is currently being executed, it is interrupted. If the job has already reached a terminal state (completed or failed), it will remain in that state.

Parameters:

job_id (str | UUID) – ID of the job to be canceled.

Return type:

None

delete_job(job_id)#

Delete a job that has been submitted for execution.

Works like cancel_job(), but also removes the job from the IQM Server database.

Warning

There is no way to recover a deleted job.

Parameters:

job_id (str | UUID) – ID of the job to be deleted.

Return type:

None

serialize()#

Serialize the object instance into a dictionary payload.

Return type:

dict[str, Any]

classmethod deserialize(data)#

Reconstruct an instance from a dictionary payload.

Parameters:

data (dict[str, Any])

Return type:

StationControlExecutor

Inheritance

Inheritance diagram of iqm.station_control.client.station_control_executor.StationControlExecutor