-
Notifications
You must be signed in to change notification settings - Fork 14
Description
What's the problem this feature will solve?
The recent development of new quantum multicore device architectures, for instance that of planqc's “Multicore Atomic Quantum Computing Systems” (MAQCS) (https://www.lrz.de/en/research/research-projects/detail/maqcs), underscores the necessity to introduce support for architectures with more then one processing unit within the QDMI interface. The specification needs to be sufficiently flexible to accommodate not only homogenous architectures with quantum processing units that bear similarity to the concept of cores and threads in classical computing, but also potential heterogeneous architectures in the future.
The objective of the interface would be to facilitate the ability to address each processing unit for the query, as well as the job interface. Therefore, in the case of a noise model that has been queried, a noise-aware compiled circuit may be submitted to the same processing unit.
Note: Only a subset of the issue was addressed by PR #200.
FYI:
@echavarria-lrz
@burgholzer
@ystade
@AdVetter
Describe the solution you'd like
I can think of three ways to achieve this, which I will outline below. The first two will involve breaking changes, whereas the third will not.
- Introduce a new opaque pointer for the abstraction of a quantum processing unit that can represent a core, thread or chiplet. This opaque pointer can replace the device pointer in the interfaces used for querying and submitting jobs.
- Add an additional argument to the query and job submission interface functions to represent the processing unit ID.
- Introduce a new function (e.g. 'select_qpu'), which can be used to set the active core/thread/chiplet in the device pointer. This determines which core/thread/chiplet is targeted in all subsequent calls to the query and job interfaces.