Skip to content

Rust native core data model #13264

@mtreinish

Description

@mtreinish

Since the 1.2 and 1.3 release we have an increasing amount of Qiskit's internal data model expose to rust. This has led to anything not defined as a rust-native object with a python interface on top as becoming a potential bottleneck as it limits what we're able to do in pure rust. For example, creating bit objects is often the bottleneck for circuit construction/synthesis and in #13238 creating UnitaryGate objects is taking ~60% of the time to construct the circuit (and those are just containers that wrap a numpy array we already created). This issue is for tracking the last pieces necessary to fully create a circuit through a default transpilation pipeline without needing to call Python. The current list of work items is:

It should be noted this doesn't preclude extending the data model from Python as is supported now, we have provisions in place already for things where the data model supported this like custom instructions and gates, and we should still support these use cases. It's more about ensuring we have a complete core data model in rust so that we can do manipulations of the qiskit defined pieces in rust without needing Python.

Metadata

Metadata

Assignees

Labels

RustThis PR or issue is related to Rust code in the repositoryperformance

Type

Projects

Status

Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions