Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

QISKit 0.5 status and notes #413

Closed
33 of 77 tasks
jaygambetta opened this issue Apr 18, 2018 · 10 comments
Closed
33 of 77 tasks

QISKit 0.5 status and notes #413

jaygambetta opened this issue Apr 18, 2018 · 10 comments

Comments

@jaygambetta
Copy link
Member

jaygambetta commented Apr 18, 2018

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.

@yehuda-naveh
Copy link

Hi @jaygambetta can we help on any of these? e.g., with the qobj items, or the sympy/projectq/qconfig? we can be free for that starting Sunday

@jaygambetta
Copy link
Member Author

@yehuda-naveh great. @ajavadia and @ewinston and @diego-plan9 can you let @yehuda-naveh know which parts they can help out on.

@yehuda-naveh
Copy link

@diego-plan9 @ajavadia will you be our contact on this? We'd be happy to help for 0.5 with the qobj items, or the sympy/projectq/qconfig, or elsewhere. Need your confirm, and initial pointer to discussion. Otherwise, we'd just continue our WIP on operator-sum and noise approximations

@yehuda-naveh
Copy link

@yaelbh, after discussing with @jaygambetta, let's start with the projectq item

@ajavadia
Copy link
Member

@yehuda-naveh i think another good place to contribute would be to write some more tests. for example, if you check out PR #421, you can try to write some test circuits and compare results across simulators.

One comparison: local_qasm_simualtor_py, local_qasm_simulator_cpp, local_qasm_simulator_projectq
Another comparison: local_statevector_simulator_py, local_statevector_simulator_cpp, local_statevector_simulator_sympy.

The results, both in format and content, should be as close as possible across the simulators.

@yehuda-naveh
Copy link

Thanks @ajavadia . We're looking into both.

@yaelbh
Copy link
Contributor

yaelbh commented Apr 24, 2018

I've opened Issue #425 for the ProjectQ item and Issue #426 for the test-across-backends item.

@atilag
Copy link
Member

atilag commented May 30, 2018

0.5 was released some time ago. Shall we close this issue @jaygambetta ?

@jaygambetta
Copy link
Member Author

I would rather rename it 0.6 or move the things we did not get done into 0.6 so we keep track of them.

@diego-plan9
Copy link
Member

I have made an effort to move each individual checklist (the ones that still had open items) into single issues, labeled with type: meta:
https://github.com/QISKit/qiskit-core/issues?q=is%3Aopen+is%3Aissue+label%3A%22type%3A+meta%22

and set them for the next milestone:
https://github.com/QISKit/qiskit-core/milestone/2

I did not transfer all the items directly trying to reflect the current status and the pending items - please feel free to add more items to the existing issues, open new ones, or comment as much as possible!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment