Skip to content

Scheduling transpiler options in composite experiments #535

@yaelbh

Description

@yaelbh

T1._set_backend and T2Ramsey._set_backend contain the following lines:

        if not self._backend.configuration().simulator and not isinstance(backend, FakeBackend):
            timing_constraints = getattr(self.transpile_options, "timing_constraints", {})
            if "acquire_alignment" not in timing_constraints:
                timing_constraints["acquire_alignment"] = 16
            scheduling_method = getattr(self.transpile_options, "scheduling_method", "alap")
            self.set_transpile_options(
                timing_constraints=timing_constraints, scheduling_method=scheduling_method
            )

These transpile options are necessary when running delay gates on devices.

When running a parallel experiment that consists of two T1 sub-experiments, these transpile options are missing.

The task:

  1. Move the logic that adds these transpile options to the base classes, to a location where the backend is already set and the circuits are known; apply it to any experiment that has circuits with delay gates and runs on a device.
  2. Until then, users will have to manually add this line to their code:
exp.set_transpile_options(timing_constraints={"acquire_alignment": 16}, scheduling_method="alap")

This has to be clearly communicated in docstrings and tutorials.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions