iqm.pulla.pulla.Pulla#
- class iqm.pulla.pulla.Pulla(iqm_server_url, *, quantum_computer=None, token=None, tokens_file=None, client_signature=None)#
Bases:
objectPulse level access to IQM quantum computers.
Each instance of this class represents a connection to a remote quantum computer. Can create a
Compilerinstance ready to be used with the connected quantum computer.- Parameters:
iqm_server_url (str) – URL for accessing the server. Has to start with http or https.
quantum_computer (str | None) – ID or alias of the quantum computer to connect to, if the IQM Server instance controls more than one.
token (str | None) – Long-lived authentication token in plain text format. If
tokenis given no other user authentication parameters should be given.tokens_file (str | None) – Path to a tokens file used for authentication. If
tokens_fileis given no other user authentication parameters should be given.client_signature (str | None) – String that Pulla adds to User-Agent header of requests it sends to the server. The signature is appended to IQMServerClient’s own version information and is intended to carry additional version information, for example the version information of the caller.
Methods
_get_station_control_settings()Station Control default settings tree.
Fetch a specific calibration set from the server.
Fetch the default calibration set from the server, in a minimal format.
Control channel properties from Station Control controller settings.
QPU label of the quantum computer we are connected to.
QPU topology of the quantum computer we are connected to.
get_standard_compiler([...])Returns a new instance of the compiler with the default calibration set and standard stages.
submit_playlist(playlist, settings, *, context)Submit a Playlist of instruction schedules for execution on the remote quantum computer.
- get_standard_compiler(calibration_set_values=None, circuit_execution_options=None)#
Returns a new instance of the compiler with the default calibration set and standard stages.
- Parameters:
calibration_set_values (dict[str, bool | str | int | float | complex | ndarray] | None) – Calibration set to use. If None, the current calibration set will be used.
circuit_execution_options (CircuitExecutionOptions | dict | None) – circuit execution options to use for the compiler. If a CircuitExecutionOptions object is provided, the compiler use it as is. If a dict is provided, the default values will be overridden for the present keys in that dict. If left
None, the default options will be used.
- Returns:
The compiler object.
- Return type:
- fetch_default_calibration_set()#
Fetch the default calibration set from the server, in a minimal format.
- fetch_calibration_set_values_by_id(calibration_set_id)#
Fetch a specific calibration set from the server.
All calibration sets are cached in-memory, so if the calibration set with the given id has already been fetched, it will be returned immediately.
- get_chip_topology()#
QPU topology of the quantum computer we are connected to.
- Return type:
ChipTopology
- get_channel_properties()#
Control channel properties from Station Control controller settings.
- Returns:
Mapping from channel names to their properties. component_to_channel: Mapping from chip component names to functions to channel names.
For example, ‘QB1’ -> ‘drive’ -> ‘QB1__drive.awg’
- Return type:
channel_properties
- submit_playlist(playlist, settings, *, context, use_timeslot=False)#
Submit a Playlist of instruction schedules for execution on the remote quantum computer.
- Parameters:
playlist (Playlist) – Schedules to execute.
settings (SettingNode) – Station settings to be used for the execution.
context (dict[str, Any]) – Context object of the compiler run that produced
playlist, containing the readout mappings. Required for postprocessing the results.use_timeslot (bool) – Submits the job to the timeslot queue if set to
True. If set toFalse, the job is submitted to the normal on-demand queue.
- Returns:
Created job object, used to query the job status and the execution results.
- Return type: