RishabGhosh98 / hackathon-2021

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Latest news

🔊 2021/08/09: All registered developers can now start experimenting with Qiskit Runtime built-in programs. They are public for using with simulators! 🎉🎉

🔊 2021/07/29: Now you can simulate launching Qiskit Runtime programs from a Web service with the Qiskit Runtime test server! This is a special fork of the original Qiskit Runtime repository created for this hackathon.

What is this about?

IEEE Services Hackathon is an event collocated with the 2021 IEEE World Congress on Services (SERVICES 2021), and is sponsored by the IEEE Computer Society. The IEEE Computer Society established the services computing initiative two decades ago in response to the fast-growing service industry as well as the exponential rise in computing professionals.

The cloud as a quantum-computing accelerator

These machines, now called mainframes, were locked away in specially air conditioned computer rooms, with staffs of professional operators to run them. Only big corporations or major government agencies or universities could afford the multimillion dollar price tag. To run a job (i.e., a program or set of programs), a programmer would first write the program on paper (in FORTRAN or assembler), then punch it on cards. He would then bring the card deck down to the input room and hand it to one of the operators and go drink coffee until the output was ready.

A History of Operating Systems, Andrew S. Tanenbaum

Quantum Computing promises to be a revolutionary milestone in the history of cloud services. There will be a day that quantum processors become a commodity and they will speed up complex calculus in a similar way that GPUs are doing nowadays. Developers, all around the world, will benefit from the ultimate computational power.

Until that date, quantum processors are a scarce resource, only available through the cloud, and working in a sort of a "batch mode", executing short, static, and noisy programs called circuits.

Despite the limited execution time, and the relatively high level of noise, the success of near-time quantum computing seems to be at the reach of our fingertips thanks to the intimate collaboration between classical and quantum computing. Cloud architectures leveraging colocation of classical and quantum resources, and reducing waiting times between the interacting parts, enable applicable fast, iterative dynamic workflows, where new circuits are created on the fly, according to the results of classical computations.

Proposed task

We challenge the participants to create innovative cloud services on top of custom quantum programs or to find novel applications for the Qiskit Runtime's built-in library.

Introduced by IBM Quantum, Qiskit Runtime is a new model of execution aiming at fulfilling the promises of near-time quantum computing by executing hybrid classical and quantum Python programs.

We envision a future of quantum services and invite all the community of professional developers, students and quantum enthusiasts to make the most of quantum cloud services using Qiskit Runtime. Even in beta, developers can download and start experimenting locally, leveraging built-in programs or uploading their own, and exposing them as cloud services for others to use.

How to participate

Here you have a summary about how to participate. Along this README, you will find more details about the conference. We encourage reading it from begenning to end.

  1. If you did not read the code of conduct, start by reading it.
  2. Choose a category to participate.
  3. Find your team members and register the project. Do this as soon as possible, you can modify the project details later.
  4. Participate:
    1. Download the beta version of Qiskit Runtime + Test Server
    2. Learn how to locally run a test server.
    3. Read about accessing the REST API directly and writing your own programs.
    4. Start hacking your idea!
  5. Upon submission deadline on August, 30th, ensure that you...
  6. Wait for preselection.
  7. Present at SERVICES 2021!
  8. Wait for winners announcement.

Motivating scenarios (use cases)

Many near-term quantum algorithms are variational, i.e., they involve an optimization loop between classical and quantum computers. For such algorithms the Qiskit Runtime is crucial to improve performance and to scale to larger systems. In the following we'll introduce the currently available Qiskit Runtimes and discuss possible applications:

Variational Quantum Eigensolver (VQE) Runtime: VQE is an algorithm to approximate the ground state of a given Hamiltonian by replacing the full exponential Hilbert space by a sub-space determined via a parametrized quantum circuit. A classical optimizer is then used to find the optimal parameters that minimize the expected value defined by the circuit and Hamiltonian. VQE can be applied in many domains, e.g. to find groundstates in quantum chemistry or to find good solutions to combinatorial optimization problems. Finding ground states is a fundamental task in chemistry and eventually will enable designing new materials, catalysts, etc. Combinatorial optimization is very difficult classically, since the number of possibilities scales exponentially with the number of variables. Possible applications range from portfolio optimization, to optimal routing, to protein folding.

Quantum Approximate Optimization Algorithm (QAOA): One key question for VQE is how to chose the parametrized quantum circuit for a given problem. QAOA is a variant of VQE particularly suited for combinatorial optimization where the circuits are constructed based on the given problem and with some convergence guarantees if the circuits could be made long enough. Thus, QAOA has the same applications as VQE but is particularly suited for combinatorial optimization.

Quantum Kernel Alignment (QKA): Quantum computers allow to evaluate kernels to be used e.g. in Support Vector Machines (SVM) on exponentially large feature spaces. This may help to improve the performance of machine learning models and lead to higher accuracies. QKA extends this idea to parametrized kernels that are trained to best match the data. The QKA Runtime allows to align to and evaluate the kernel for given data in the cloud and uses is it for classification tasks such as fraud detection.

Your Awesome Program: Collaboration has always been an important concept in the scientific community. In addition to using the build-in programs, you can come up with your own Qiskit Runtime programs that can help you and others accelerate their research. Much like the existing built-in programs, your new program will benefit the most from the Qiskit Runtime architecture if it requires iterative quantum/classical processing. Ideally, the program would be flexible enough to suite a wide range of applications but also easy to use.

Code of Conduct

By participating in the IEEE Services 2021 hackathon, we all abide by the Qiskit Code of Conduct, IEEE Code of Conduct and IEEE Code of Ethics

If you are an observer or a victim of harassment, or any other behaviour against our codes of conduct, direct your inquiry to one of the following contacts:

Salvador de la Puente González - salva@ibm.com

Meeting point

Either if you are a participant looking for expert help, or a team in the search of coachers, or a coacher willing to help, we meet in Slack.

Access the Qiskit Slack workspace, and join the channel #ieeeservices-hackathon-21.

Categories & prizes

There are two categories a team can participate in: student and general.

Best teams will receive a certificate, a prize in cash and the opportunity of presenting its proposal in a session at SERVICES 2021 conference.

Projects & deliverables

To register a new project, fill the Project Registration template.

A team can only participate with one project. The deliverable is a GitHub repository including, at least:

  • The source code of the project.
  • A README file with instructions to test it*.
  • A LICENSE file with the Apache license 2.0.
  • A report with an specific format, detailed later.

*An easy way of testing the project is throught the use of Docker containers (i.e., local host service + local application emulation). The GitHub repository should detail the steps for repeatability using docker containers.

Submitting & submission deadline

All submissions need to be finalized by Monday August 30, midnight Eastern Standard Time, Time zone in New York, NY (GMT-5).

Upon submission, tag the version of the project you want to be evaluated with the tag submission.

Remember the repository should include all the files detailed in Projects & deliverables.

Team formation

For team registration, add the names and institutions of the participants to your project registration issue.

Teams participating in the student category will be composed only of students, not counting coachers.

Teams participating in the general category do not have any restriction but cannot have any coacher.

In any case, a team cannot be more than 6 participants, excluding coacher, and a participant can join only one team.

Coachers

Teams of students can team up with one coacher from the industry and one coacher coming from the academia.

Want to be a coacher? Look at the projects registered or meet us on Slack.

Project report

The report contextualizes the project and summarizes the software design process. It should contain no more than eight pages describing:

  1. Motivation. Why building the project?
  2. Innovation. How original is the idea?
  3. Applicability. What is the estimated time horizon, and the required conditions for practical applicability?
  4. Role of Qiskit Runtime. Why the runtime plays a key role in the design?
  5. Future applications. What is the potential future use once the technology has matured enough?
  6. Technology stack, design decisions, and architecture.

Evaluation criteria

Once passed the deadline, the hackathon committee will evaluate the projects according to the following criteria:

  1. Novelty of the idea (1 – 5 scale);
  2. Applicability (1 - 5 scale);
  3. Role of Qiskit Runtime (1 - 5 scale);
  4. Clarity of the report (1 – 5 scale);
  5. Easiness for setting up and using the system (1 – 5 scale);
  6. Performance, usability, and reliability of the system (1 - 5 scale)
  7. Code-base quality: learning curve to start contributing, code reliability, maintainability and documentation. (1 - 5 scale)

The hackathon committee will then preselect the best ones for presenting during IEEE SERVICES and, after evaluating the presentations, the hackathon committee will determine the winners of the hackathon.

Learning materials

"Qiskit Runtime," IBM Quantum Lab documentation, 2021. [Online]. Available: https://quantum-computing.ibm.com/lab/docs/iql/runtime/.

"Simulating Molecules using VQE," Qiskit Textbook, 2021. [Online]. Available: https://qiskit.org/textbook/ch-applications/vqe-molecules.html.

"Solving combinatorial optimization problems using QAOA," Qiskit Textbook, 2021. [Online]. Available: https://qiskit.org/textbook/ch-applications/qaoa.html.

"Variational Quantum Linear Solver," Qiskit Textbook, 2021. [Online]. Available: https://qiskit.org/textbook/ch-paper-implementations/vqls.html.

"Quantum Kernel Alignment with Qiskit Runtime," Qiskit Runtime documentation, 2021. [Online]. Available: https://qiskit.org/documentation/partners/qiskit_runtime/tutorials/qka.html.

References

B. Johnson and I. Faro, "IBM Quantum delivers 120x speedup of quantum workloads with Qiskit Runtime," IBM Research, 11-May-2021. [Online]. Available: https://research.ibm.com/blog/120x-quantum-speedup.

About


Languages

Language:Python 81.3%Language:Dockerfile 18.7%