Write Your First Quantum Program (Common Lisp)
lambdafaktorie.com
lambdafaktorie.com
The thing is (again, imho!) it wouldn't have made sense to talk about frameworks when the first classical computers appeared --- and you'd better have knowledge about the hardware and theory. (These are still a good idea to know but not really a requirement anymore.)
Likewise, I think that for the next decades, anyone who wants to meaningfully contribute to QC (rather than call a few API functions) will have to read some technical stuff (my recommendations are [1] as a semi-informal approach, [2] for a CS approach, [3] for an algorithm overview, and [4] as the reference book).
Sorry for the minor rant :)
[1] https://www.cambridge.org/catalogue/catalogue.asp?isbn=97811...
[2] Ethan Bernstein, & Umesh Vazirani (1997). Quantum Complexity TheorySIAM Journal on Computing, 26(5), 1411–1473.
[3] https://www.springer.com/gp/book/9783030190651
[4] https://www.cambridge.org/pt/academic/subjects/physics/quant...
On the other hand, quantum control (physically manipulating your quantum computer) has a lot of physics in it, but also crosses into EE. Likewise, looking into physical systems that can behave as a quantum computer is physics and EE. However I'm very much unfamiliar with that part, so I can't say anything there.
[1] https://www.nature.com/articles/ncomms5213
[2] https://iopscience.iop.org/article/10.1088/1367-2630/18/2/02...
Thanks for this perspective. I've always thought the whole "yay! let's do quantum programming!" was a bit strange. IIRC we can't really do "real" quantum computation with anything more than a few bits because people can't do QEC to correct for the noise. D-Wave's systems aren't even "real" QCs AFAIK.
From a very amateur perspective, it looked like Gil Kalai was arguing that physical realizations would not be impossible, but work at UIST and Google's "quantum supremacy" result, somehow have proved him wrong ?
Can you say a bit more on the state of QEC ? Thanks.
P.S: The hype of CS these days is really getting tiring; the ridiculuous expectations around "quantum-deeplearning-crypto-neuron-RL" will hopefully not cause another AI winter.
I assume you meant "would be impossible"? At any rate, from my slightly less amateurish understanding of the subject, I think that the main contrast between Kalai's claims and Google's results boils down to the following:
- broadly speaking, Kalai is referring to pure quantum computation, more specifically he is computing limits about the efficiency and energy requirements of computers that work exclusively using quantum/linear logic;
- Google's experiment made extensive use of classical computation, and it's unclear to what extent quantum computation actually impacted the result (to the point that some people claim that the entire experiment could be performed classically, see e.g. [1])
Unfortunately, many of the nuances in the debate are lost on me--in the past, I had some forays into the physics and mathematics of QC but was ultimately driven away from the dumb money flowing around--but I would recommend Gil Kalai's blog [2] as it is both accessible and rigorous (albeit being obviously biased toward one side of the argument).
There's not a lot I can say other than what's (I think) more or less common knowledge in the field: QEC is a practical issue, and so is deeply tied to physical implementation, etc. QC however, as an idea, has power in itself; you can define a Turing-like machine that incorporates notions of quantum mechanics, forming complexity classes that are thought to be disjoint from the classical ones (including probabilistic classical machines) (see ref. [2] in the OP). QEC is, then, any strategy that allows you to implement reliable (QC) resources in practice (think classical redundancy). The fact that you are dealing with quantum resources rather than classical makes it harder than CEC. The problem with current technology is that if you don't have QEC you can't really get to a point (resource-wise) where the classical/quantum class separation is relevant. Achieving this separation is what's called "supremacy" (or "advantage"). You can try to sidestep QEC by building quality (as noiseless as possible) quantum computers.
> From a very amateur perspective, it looked like Gil Kalai was arguing that physical realizations would not be impossible, but work at UIST and Google's "quantum supremacy" result, somehow have proved him wrong ?
Quantum supremacy is debated, and so not something I can reasonably comment on. From the explanation above however, you can see that supremacy is achieved whenever you do something with a QC that cannot be done with a classical computer. The problem is proving that something is 100% provably beyond the scope of a classical computer (people are clever, and so it's often not). However, one thing is to say whether people are achieving quantum supremacy, another is to say whether people are doing quantum computing. For the latter, I would say we definitely are. You can definitely access a quantum computer in the cloud and run routines that can only produce the given outcome if there are quantum effects in play. [1] (Whether or not you could simulate these results classically relates to supremacy, not whether QC is real.)
[1] https://quantum-computing.ibm.com/composer/docs/iqx/guide/en...
My understanding was that quantum supremacy occurs when a quantum computer performs a computation that cannot be performed with comparable speed on a classical computer given the best available classical hardware and the best available classical algorithms of the time. In particular, it does not require a proof that no efficient classical algorithm exists. Instead, it is sufficient that nobody knows such a classical algorithm at the time of demonstration.
Otherwise even factoring a large number by running Shor's algorithm on an error corrected quantum computer would still not constitute quantum supremacy demonstration because there is no proof that factoring cannot be done efficiently on a classical computer. After all, it is not inconceivable that people just don't know how to factor integers fast on a classical computer.
A lot of people believe this may be the next "big thing." And we're always afraid of being left behind.
Just as you might know plenty about programming but little or nothing about electronics or chip fabrication, so too can you learn about the wonders of quantum programming without knowing anything about the physics of the D-Wave Vesuvius processor or whatever.
You do need to know enough about the topology, gates, decoherence times, etc. to know how to program the actual platform effectively but you can leave the lower level questions to the experts at that level.
I think you misunderstand me; I think it's great that people get into QC, and indeed they don't have to know everything from top to bottom (like I don't).
I just think that it should be regarded as getting into a specific area of biology, physics, or any other area of science, instead of being equated to learning C when you know Java, or something :)
I agree, I tried looking into some QC stuff that was presented that way, my impression after was that it's more akin to learning to solder together PCB boards to make a computer from scratch when all you know is basic HTML.
As a programmer of apps and widgets I only need to know the rules of the game that my framework and language exposes, and I think it probably always helps to have a bigger context, but I think it is increasingly less necessary for getting stuff done.
With quantum, the entire stack is different. Like a computer from an alternate universe ;) So that whole stack has to be built up again.
But I think abstraction and encapsulation is going to allow many (most?) programmers to use the quantum computer without ever having to know what's going on behind the keyboard and the screen, just like our normal computers now.