IQMServerExecutor#

Module: iqm.iqm_server_client.iqm_server_executor

class iqm.iqm_server_client.iqm_server_executor.IQMServerExecutor(client: IQMServerClient)#

Bases: ExecutorInterface

Concrete executor that communicates with a remote IQM Server 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 (IQMServerClient)

get_experiment_configuration() → dict[str, Any]#

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: dict[str, str]) → int#

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() → str#

Get the QPU chip label.

Return type:

str

get_chip_design_record() → dict[str, Any]#

Get the chip design record for the QPU.

Return type:

dict[str, Any]

get_channel_properties() → dict[str, ChannelProperties]#

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

Return type:

dict[str, ChannelProperties]

get_static_quantum_architecture() → StaticQuantumArchitecture#

Get the simplified QPU topology.

Use get_chip_design_record() for more detailed QPU topology information.

Return type:

StaticQuantumArchitecture

get_settings() → SettingNode#

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: str | UUID) → JobData#

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: str | UUID, job_type: Literal['run', 'circuit']) → RunDefinition | PostJobsRequest#

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: str | UUID) → dict[str, list[ndarray]]#

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: str | UUID) → list[dict[str, list[list[int]]]]#

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: str | UUID) → list[CircuitMeasurementCounts]#

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: str | UUID) → None#

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: str | UUID) → None#

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() → dict[str, Any]#

Serialize the object instance into a dictionary payload.

Return type:

dict[str, Any]

classmethod deserialize(data: dict[str, Any]) → IQMServerExecutor#

Reconstruct an instance from a dictionary payload.

Parameters:

data (dict[str, Any])

Return type:

IQMServerExecutor

Inheritance

Inheritance diagram of iqm.iqm_server_client.iqm_server_executor.IQMServerExecutor