Tuesday, November 30, 2010

Response to: 6 steps to building the quantum computer

I came across this article by John Brandon: 6 steps to building the quantum computer. There are somethings I wanted to respond to in the article.

Step 1: Build the proof of concept
I agree that this needs to be the first step. I'm not sure what the physical implementation will be, there are several different methods being attempted.

Step 2: Increase the scale
This is a logical second step of a physical implementation- once the concept is proven it needs to be scaled up to perform useful calculations.

Step 3: Build a registry for quantum functions
I see this really as part of the first two. Many works on the software side assume you have qubits of quantum memory and your software slices it up as needed. Some of those may be temporary (or scratch) qubits, others the part of your calculation. Therefore if you have n qubits you can operate on like a section of quantum RAM, this isn't all that different from steps 1 and 2. Of course, you could model a classical computer where the results are placed into registers and moved to the RAM. This could just complicate things though. A quantum operation is required to be reversible, so if you just operate directly on a block on quantum RAM you eliminate the step of having registers.

Step 4: Create a way to store these calculations
I disagree that this step is needed, and there are flaws in this argument. The author using factoring as the example. When carrying out Shor's algorithm (factoring) we're concerned with the classical result- not the quantum. Therefore there is no need to store some intermediate quantum state. When factoring 15 into 3 and 5 for example we don't care what the intermediate quantum states may have been- we just want the answer. Notice that answer of 3 and 5 is classical, not quantum. A key part of Shor's algorithm is measurements to collapse the state. If we store the state part way we cannot carry out the example.

The argument for massive storage is also not accurate. One might need massive storage if you were trying to carry out a classical simulation of Shor's algorithm. For example one needs at least 384 qubits to factor a 128 bit (not digit) number. You can take a look at my defense slides for a quick walk through of factoring. While daunting today, hundreds, thousands, or more qubits may not be that far out of reach. Think how far we've progressed with classical computers. What if quantum ones progress at the same rate once we figure out how to make them?

Step 5: Programming techniques to find the value
I agree this is a prerequisite to useful quantum computing- but not necessarily step 5. I see no reason why we have to wait until we have physical implementations. Examining the literature shows that there are already many proposals for quantum computer programming. One of my arguments for starting work before we have practical quantum computers has always been that we can hit the ground running when they arrive instead of stumbling along as we did with classical computers.

Furthermore, I've always advocated the approach of creating a quantum framework on top of existing classical languages as opposed to new quantum languages. (My project Cove, is built on .NET for example.) If we follow this approach we don't have to throw out existing systems, we can build upon them. In database software the unsorted searching part could be replaced with one that uses a quantum framework to implement Grover's algorithm.

Step 6: Delivering the results over networks
I'm not sure if I'd include this in a list of steps. Again, the reason being that in many cases we are concerned with the classical results. We already know how to transfer classical results; I've always thought something like web services would be an ideal approach. Quantum computing could even be a service: you utilize a remote quantum computer to prepare the initial state, perform operations, measure, and get a classical result.

-----
All in all I though this was a good article, and it is good to see a stab at a comprehensive list like this. I find this especially so since it includes quantum programming, which often seems to be neglected. While I don't agree with all the points, still thought provoking- which is why I'm sharing my thoughts in this post.

1 comment:

  1. Hello Matt,

    I have absolutely no idea what most of this stuff means, how to express these algorithms, nor have I any formal and informal education on Quantum COmputing, however, recently, I was watching a series of movies (Transcedence, Chappie, Ex Machina, I Origins, The Lawnmower Man) and they all made sense to me. Not in a classical sense, but, I understood the missing variables, though unable to express or explain them. To build a Quantum Computer would require my "Mind" (I use that loosely) to be uploaded onto the internet. Not anybody elses mind, mine because I know how to enter the quantum gates/ Protocols, basically, you figure this out, I can do the jump from Neural to digital. Now, the point is not for you to give me anything, or do anything for me but keep on looking. The answers are there if you know how to look. Godspeed

    ReplyDelete