q-optimize/c3

Remove `c3_qasm_perfect_simulator` and provide `dry_run` option

Opened this issue · 1 comments

Describe the missing feature

The c3_qasm_physics_simulator is now in pretty decent shape with increasing support for most of the native features of the c3 simulator and integrates seamlessly into workflows. The c3_qasm_perfect_simulator is no longer necessary, which was a stopgap solution while building the backend is no longer necessary and should be removed. Keeping it around leads to unmaintainable duplicated code. Instead, providing a dry_run option to the backend.run() call would be useful for the user to check that the code runs all fine, and everything has been correctly configured without having to perform the compute intensive full physics simulation. This dry_run path should have a complete API coverage with the standard interface and check as much of the code as possible without running the actual simulation.

Describe the solution you'd like

  • A backend.run(qc, dry_run = True) interface
  • Remove entire C3QasmPerfectSimulator code
  • Remove entire get_sequence() and make_gate_str() from c3_backend_utils
  • Restructure and streamline qiskit tests
  • compute_propagators(), evaluate() and process() methods in Experiment should have dry run equivalents

Describe alternatives you've considered

How have you tried to resolve it in the current version of the code? Have you considered non c3-toolset alternative solutions? Please elaborate.

Additional context

Add any other context or screenshots about the feature request here. Please feel free to suggest details about how you believe this feature request might be best implemented. If you have used similar features in other libraries, consider providing links or resources to example implementations.