Partial Acquisition#

Added in version 2026.07.0: See the release notes for details.

Speed Up Your Quantum Experiments with Partial Acquisitions#

When running fast, iterative quantum experiments, every millisecond counts. Our Partial Acquisition feature is designed to drastically speed up result retrieval by allowing you to selectively download only the data you need, cutting out unnecessary data payloads.

1. Why Partial Acquisitions?#

By default, retrieving weighted integration data pulls a comprehensive metadata set, including:

  • In-phase (I) values

  • Quadrature (Q) values

  • Accumulation count

  • Valid bit

  • Threshold count

For many experiments—particularly those focused on state discrimination—much of this metadata is unnecessary. Partial acquisition allows you to specify the required data format, reducing transfer times and accelerating your iterative loops.

2. Implementation#

The qblox-instruments API utilizes AcquisitionEncodingConfig to control data retrieval. By specifying this configuration in your get_acquisitions call, you can precisely control what data is retrieved.

Available Encoding Configurations#

The AcquisitionEncodingConfig class provides several factory methods:

Method

Description

default_packing()

Applies standard efficient data packing.

iq_raw_only()

Retrieves only raw I and Q data.

iq_normalized_only()

Retrieves normalized I and Q data (pre-divided by count on hardware).

iq_and_avg_count()

Retrieves I/Q data plus average count.

threshold_raw_only()

Retrieves only raw threshold data.

threshold_normalized_only()

Retrieves only normalized threshold data.

threshold_and_avg_count()

Retrieves only normalized thresholds and average count.

Example: Using Encoding Configurations#

from qblox_instruments.types import AcquisitionEncodingConfig

# Define your desired encoding configuration
config = AcquisitionEncodingConfig.iq_raw_only()

# Retrieve the acquisition data using the chosen configuration
encoded_acquisition = device.sequencers.get_acquisitions(
    slot_id, sequencer_id, as_numpy=True, acq_encoding=config
)

3. Guidance for Optimization#

To maximize retrieval efficiency, consider the following best practices:

  • Do you need the “Count” data? You generally do not need to download the accumulation count. Because you define the number of iterations directly in your sequence program, the total number of accumulations is fully deterministic and already known to you. Unless you are performing dynamic, conditional measurements (where the hardware might skip acquisitions on the fly), you already have this number. Therefore, you can safely omit it from your download to significantly accelerate your data retrieval times.

  • Thresholding: If you have not enabled thresholding in your sequence, the hardware automatically omits the threshold metadata. You do not need to configure this manually.

  • Invalid Readings & Validity Bits: When using specific AcquisitionEncodingConfig modes (such as iq_raw_only()), if the hardware determines an acquisition is not valid, it automatically sets the raw I/Q values to 0. Furthermore, the unneeded 32-byte “valid bit” metadata is completely omitted from the payload to significantly reduce transfer sizes.

4. Advanced Optimization: Automatic Compression#

Beyond selectable partial downloads, our hardware features Advanced Automatic Encoding. When acquisition data is requested, the system automatically detects if accumulated I/Q values fit within 32-bit integers rather than standard 64-bit sizes. If they fit, the transfer is automatically compressed, further reducing the payload without requiring any configuration changes.