Skip to content

QISKit 0.5 status and notes #413

@jaygambetta

Description

@jaygambetta

posting this to the public so the the community can see what we want in 0.5

  • 1st — backend_rework branch*
    Backend rework, adding compile and execute #376: merged
    At the end of this level 2 user will be happy with no quantumprgroam and will use qiskit.execute

    • move the auto naming in create_quantum_register, create_classical_register to QuantumRegister, ClassicalRegister creation
    • add auto naming for QuantumCircuit creation
    • finish qiskit.compile() function level 1 user
    • finish qiskit.execute() function level 2 user
    • update README and using_qiskit, hello_quantum examples. I want to have a hello world, and using_qiskit_level_0 (execute), using_qiskit_level_1 (compile and run on backends) and using_qiskit_level_2 (future pass manager and DAG compiling)
    • tests and passing old ones
    • check backward compatibility of quantum program
    • can openquantumcompiler be removed here
    • a new backend_manager (old backendutils) with a register
    • can backendutils be removed here
    • update the documentation with qiskit.compile and qiskit.execute
    • register('token', url)
    • backends (filter)
    • all_backends()
    • backend.configuration schema
    • backend.status schema
    • merge
  • cpp-simulator-refactor branch*
    C++ Simulator Refactor #386: merged - for the C++ changes
    Simulator Interfaces #421: closed - for the backend naming changes (reissued in Simulator backends #435)
    Simulator backends #435: merged

    • Treat snapshot, noise, load, save as barriers in the mapper, so they don’t move around.
    • Subclass statevector simulator from qasm simulator (python and cpp)
    • Tests
    • making sure naming conventions is correct and local_qasm_simulator defualts to c++
    • update the documentation with how to use the different simulators
    • merge
  • Generate new qobj format*
    [WIP] Qobj class, schema validation, and update backends to accept qobj #415: open
    Backend rework, adding compile and execute #376: closed (added schemas into the codebase)

    • Generate them according to schemas and edit schemas appropriately
    • Also make sure it is forward compatible with pulse (see document)
    • update the documentation to explain the qobj
    • merge
  • Qobj object and validate against schemas
    [WIP] Qobj class, schema validation, and update backends to accept qobj #415: open
    [WIP] Introduce Qobj object and revise Result #144: closed (introduced in [WIP] Qobj class, schema validation, and update backends to accept qobj #415)

    • create a Qobj object
    • make sure all backends are using qobj and that they pass the schema
    • in the document make sure it make sense
    • check that the exp is working with this format
    • CONFIRM THAT WE HAVE FIXED THE ORDERING BUG
    • merge
  • run Qobj and return instead of QuantumJob
    [WIP] Qobj class, schema validation, and update backends to accept qobj #415: open
    [WIP] Pass qobj to remote backends. Implement qobj validation. #326: closed (closed and introduced in [WIP] Qobj class, schema validation, and update backends to accept qobj #415)

    • update using_qiskit_level_2
    • can QuantumJob be removed here
    • update any documentation
    • merge
  • Result object

    • remove qobj
  • Introduce a Job object and make all runs async
    rework jobs #403: merged
    At the end of this level 1 user will be happy with no quantumprgroam and they have control of their jobs

    • create a Job Object
    • update using_qiskit_level_2
    • job = backend.run(qobj) where qobj is dict or object
    • job.done
    • job.status
    • job.cancel
    • job.result()
    • job.job_id (IBM Q)
    • shows examples of how users can get the status and cancel a job
    • make sure quantumprogram still works
    • merge
  • backend

    • backend.jobs()
    • backend.retrieve_job(job_id)
    • backend.status
    • backend.schema
    • backend.configuration
    • backend.properties
    • update the documentation with backend uses
  • remove sympy backends and projectq backends and provided them as qiskit-core-backend-plugins example

    • sympy
    • projectq
  • Qconfig

    • provide a simple solution
    • merge
  • parameters and calibrations go to properties and pass a schema

After the release

  • backend.validation
  • Remove QuantumJob as qobj should have replaced it
  • Remove JobProcessor as it should be replaced with JobProcessor of the actual Job object.
  • remove opencompiler as it should be obsolete
  • clean ibmq provider
  • start to get errors and checks against the schema in place.

Lets add below anything i forgot.

Also @ajavadia when we are finished with the spec for qobj can we add a link to this in the comments. Also @ewinston @diego-plan9 @ajavadia lets link pr's against this.

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions