8.4 Module 2 Exam
8.4.1 Quantum compiler.
What is quantum compiler for? It is interesting that various quantum computers do their own way. DWave has no quantum compiler. Xanadu has a quantum language hence her complier is very similar to the purpose of classical compiler. However, since IBM Q experience, the superconducting QC, is so popular, its compiler functions are more or less standard, at least in 2 papers I read: The Fingerhuth’s survey and Sven Jandura’s github post to improve qiskit compiler. Both papers list 2 functions: optimize the number of gates and match the hardware topology. I think this quiz problem is tricky in that answer (1) convert user-designed gates to available gates – well it would be better to use the word “optimize” instead of “convert”. Answer (2) is not true because compiler does not control the running of quantum processor. Answer (3) is true because “connection structure” of qubits is the topology. Finally answer (4) decomposes user-defined unitary operations to elementary gates – well, I am not sure what is “user-defined unitary operations”. It is certainly not user-defined quantum algorithm. I think it means user-defined quantum circuits, but not yet optimized. (But why these quantum circuits must be unitary?) In that sense the answer (4) is correct. Please refer to the following diagram (from Fingerhuth) to be firm exactly which process the quantum computer compiler is in for.
At any rate, this quiz problem crystalizes a series of SW+HW processes a “standard” quantum computer does and what a QC vendor has to spent money & resources do. This is why fingerhuth talks about open-source quantum compiler while he noticed that many vendors have their proprietary compiler. IBM is smart in that she opens up her qiskit source and the smart guys of the whole world work for her for very little reward money or mostly free. She is qualified to do that because of her powerful hardware sales who also make money on consulting, application tools, etc.
The webpage from DWAVE (https://docs.dwavesys.com/docs/latest/c_gs_2.html) tells more