Hacker News new | ask | show | jobs
by neuxenian 2995 days ago
I've started reading some quantum computing texts, and dabbled a bit with IBM's quantum computing experience, and this is where I get stuck:

I can follow the basics at the level of "gates" or circuits -- a lot of what's out there is essentially quantum assembly language or something of that sort.

But what about interfacing classical and quantum computing? Is the idea that you just run something from start to finish on a quantum computer? Or that you take the output from a classical system and input into a quantum system?

Some of the things I'd be most interested in with a quantum computer seem to require an interface with a classical computer, or at least raise the issue, which generally isn't addressed by these sorts of pieces. It's sort of assumed that you're programming whatever it is you're interested in at the level of machine/assembly code.

2 comments

This is a great question! I've worked a lot on this topic and its crucial to understanding how quantum computers will be used in the near term.

While I don't have an easy answer for the high level interface, the assembly level interface between quantum and classical computing is also important. If you're interested in that then you should check out this paper where we describe Quil, an instruction set architecture for hybrid quantum/classical computing based on shared memory: https://arxiv.org/abs/1608.03355

This instruction set is the basis for Rigetti Computing's Forest quantum programming environment: https://www.rigetti.com/forest

Thanks for these links--these are interesting and probably come closest to addressing my questions of anything I've seen so far.
A few years ago I went to a seminar run by DWave and I really pressed them along similar lines that you were asking. A few of their engineers basically walked me through the concept.

As I understand it - and someone please correct me where this is wrong:

If you have designed an algorithm/program that optimizes for some minima (ex gradient descent), then you as the developer will need to map that algo into their system which basically creates a quantum topological map.

That topo is loaded into the QC and then it is run and outputs the "coordinates" of the minima.

Makes sense if you can 1. Convert your algo into something that can optimize for minima

2. Convert that into the topo space

3. Have no need for real-time results