To celebrate the fourth anniversary of its cloud quantum computing service, IBM has said it will run a quantum programming challenge to encourage developers to try quantum computing.
Through the IBM Quantum Challenge, running from 4 to 8 May, IBM said that anyone will be able to try to program its cloud-based quantum computer using quantum circuits, the fundamental building blocks of quantum computation. As developers program quantum computers, they effectively build and run quantum circuits.
IBM's quantum strategy relies on using such circuits to abstract the quantum computing hardware. In a blog post announcing the challenge, Jay Gambetta, IBM fellow and vice-president of IBM Quantum, wrote: “As we approach the fourth anniversary of the IBM Quantum Experience, we invite you to celebrate with us by completing a challenge with four exercises.
“Whether you are already a member of the community, or this challenge is your first quantum experiment, these four exercises will improve your understanding of quantum circuits. We hope you can also have fun as you put your skills to test.
“Trying to explain quantum computing without resorting to incorrect analogies has always been a goal for our team. As a result, we have continuously invested in education, starting with opening access to quantum computers, and continuing to create tools that enable anyone to program them.”
Quantum computing is very different to the binary world of classical computing, where decisions are deterministic and a program runs through a series of “yes” and “no” binary decisions based on whatever it receives as input data.
In a recent Computer Weekly article, Abraham Asfaw, a quantum educator lead at IBM, described a number of the principles that programmers need to get their heads around to move classic computing to the realm of quantum computing.
In the article, Asfaw said: “While the bits in our classical computers can only take on values of 0 or 1, qubits can exist in combinations of 0 and 1. This property, known as superposition, means that individual qubits can take on states that are not available in classical computers.”
Asfaw said that multiple qubits can also become entangled. “Given two entangled qubits, if I were to measure the state of one of them, then the outcome of measuring the other qubit is correlated in some way and isn’t completely random any more, even if the two qubits are far apart. Together, superposition and entanglement can be harnessed for quantum computation.”
The third element of quantum computing that programmers need to consider is the concept of interference. Asfaw describes quantum interference as analogous to a pair of sine waves. When the waves align, then the two signals are amplified; if they interfere with each other, the intensity of the waves diminish. In the non-deterministic world of quantum computing, the concept of interference can be used to reduce the volume of incorrect results an algorithm produces.
Where this becomes really powerful, according to Asfaw, is when several quantum algorithms create superpositions of an exponentially large number of logical states. “These algorithms take advantage of interference in such a way that all the incorrect answers of the specific problem destructively interfere and no longer appear in the final output, leaving behind only the correct answer,” he said.
IBM currently operates 18 quantum systems, which it makes available to its clients and the quantum programming community through its IBM Q initiative. Gambetta said that 175 billion quantum circuits have been executed using IBM quantum computing hardware, resulting in more than 200 publications by researchers worldwide.
According to Gambetta, IBM now has 200,000 users, including more than 100 IBM Q Network client partners, who are actively using the IBM Quantum computer to conduct research on quantum information science, develop the applications of quantum computing in various industries, and educate the future quantum workforce.
IBM has provided an open source software developers kit for quantum software called Qiskit, written primarily in Python.