Share this post:
To encourage more teachers and students to take advantage of the IBM Q Experience and the IBM Qiskit development platform, we announced in January a number of challenges and prizes to inspire people to take the quantum leap.
And the winners are…
Today, we’re happy to announce the winners of the second IBM Q Award: the IBM Qiskit Developer Challenge, which offered a $4,000 first prize and, due to a tie, we have two $1,000 second prizes. The prizes were awarded for writing the best compiler code in Python or Cython that takes an arbitrary input quantum circuit and maps it to an optimal circuit for a provided hardware topology. Congratulations to our first-place winner, Alwin Zulehner of Johannes Kepler University Linz, and to our two second-place winners, Sven Jandura of the University of Munich and Eddie Schoute of the University of Maryland.
The submissions were benchmarked with a selection of 5, 16 and 20 qubit circuits that were mapped against different hardware topologies totaling more than 500,000 CNOT operations that had to be mapped by each compiler. We chose input circuits for quantum Fourier transforms, quantum chemistry, and randomly sampled circuits from the SU(4) group. These had to be mapped onto linear, circular and grid connectivities of qubits. The performance in terms of cost (circuit depth) of the optimized circuits and the speed of the compilers was compared to that of Qiskit v0.4.10. A maximum of 15 points was assigned using a normalized logarithmic scale*. An additional five points each were given by the judges for the clarity of the documentation and the creativity and uniqueness of the chosen approach.
We selected Alwin as the grand prize winner because his compiler not only consistently produced circuits with at least 10 percent better cost than the competition, but his code was also more than 6 times faster than all the others due to the clever use of Cython.
“In our solution, we tried to utilize our background and expertise in Computer Aided-Design for quantum computing,” says Alwin. “We are honored that our solution got such a great feedback from the jury and are certain that there is much more potential for CAD methods in this domain.”
Sven and Eddie tied for second place because their codes had nearly identical benchmarks and both consistently produced
better circuits than Qiskit and the other contenders. It is a great pleasure to award these two young researchers with a prize as one of them is still an undergraduate and the other is a PhD student.
“Participating in this contest was a great experience, and winning this award is an honor for
me,” says Sven. “I learned a lot in the process of developing and improving the compiler.”
“By breaking the problem down into smaller sub-problems: the movement of qubits, the finding of a good placement, and the final compilation step; we find that it is much easier to experiment with each, individually, and optimize for various parameters,” says Eddie.
Our sincere thanks goes to all the participants who submitted their code. It was difficult to pick a winner, as all the entries were of high quality.
Visit the Qiskit blog over the coming weeks to read blog posts by the winners!
The IBM Q Awards
The first award, Teach Me Qiskit, was awarded in June to Alba Cervera Lierta, a Ph.D. student at the University of Barcelona and the Barcelona Supercomputing Center in Spain. Read her blog post on her submission here.
Our next award to be announced is the IBM Q Best Paper Award, which will be determined in a few weeks and in the meantime, there is still time for the Teach Me Quantum Award.
Teach Me Quantum Award
- For professors or lecturers who use Qiskit or the IBM Q Experience in their lectures.
- Deadline: November 15, 2018
* Score and speed were calculated according to the provided evaluation template and points were given on a log scale with psub= log10(ssub/sQiskit). Points were normalized so that the best submission received 5(10) points and the worst submission received 0 points for speed(cost) respectively. For circuits where the compiler produced an error or an incorrect state, the values for both speed and cost were set to ssub/sQiskit = 2.