The power of a quantum computer is often described in terms of how many qubits it has. Does that mean that quantum computers can be run using only qubits, and nothing more? Wouldn't we require some kind of quantum RAM or quantum hard drive for a fully functional quantum computer?
3 Answers
Before answering your question, let's go back to classical computing. The classical computer has a processor, which implements functions on bits, and it has varying levels of memory which trade speed of access against volatility and capacity. So, there are hard drives with large, non-volatile, but comparatively slow storage, and RAM, which is volatile, smaller, but fast. There's even some cache on the processor, which is smaller and faster again. But, all of this stores bits. Overall, a computer can simply be described as something that stores and processes bits, it's just that for different aspects of that process, it is more appropriate to use different technologies, leveraging their different advantages.
Exactly the same is true of quantum. Everything is qubits, both processing (application of unitaries, e.g. gate model, and measurement) and storage. We know of different technologies that have different advantages in terms of the trade between gate speed and volatility (measured as "decoherence time"). One might also add into the mix an ability to transmit quantum information over moderate distances. So, one might imagine that the ultimate quantum computer separates out in a similar way to the classical computer. But it's still all qubits. Of course, we're not there yet. It's hard enough doing one part of the experiment with one type of hardware. Add into the mix an interface between two different types of hardware, and it's even trickier.
Currently, as far as I know, all gate-model quantum architectures start computation in a ground state, normally denoted as the zero state $|0\rangle$. In theory, any desired input state can be created from this by use of a correct unitary transformation $\rm U$, since by definition the Hilbert space of quantum states is invariant under unitary transformations (of equal dimensions). This suggests qubits are the only thing we need for a working quantum computer.
The problem is, however, that we don't always know how to construct $\rm U$. We know the first column vector of $\rm U$—as this is the vector that $|0\rangle$ is to be mapped to—but finding a complete matrix which can be nicely expressed in terms of quantum gates quickly becomes an intractable problem. For up to four qubits (or maybe six if you're really devoted) this might be doable, but it becomes impossible for an arbitrary large number of qubits, as may be required in, for example, the HHL algorithm to represent the input vector.
And don't even talk about compiling this possibly huge $\rm U$ to the hardware.
This is where QRAM is supposed to come in. QRAM, which as of now only exists in theory, is a device which is capable of storing a quantum state for an extended period of time, and which, given an index state $|i\rangle$, will load the quantum state located at position $i$ in the memory into an empty state. That is: $${\rm QRAM}: |i\rangle|0\rangle\mapsto|i\rangle|{\rm load}(i)\rangle.$$
In case you are wondering: yes, this can be realised as a unitary transformation. But again, even though some proposals have been made, nobody has been able to reliably implement such a map yet. This is in part caused by the short decoherence times of quantum states, which makes building QRAM a huge challenge.
Furthermore, there is a fundamental problem with the use of QRAM. Assuming we have access to such a QRAM is equivalent to assuming someone or something else will prepare the required quantum state $|{\rm load}(i)\rangle$ and write it into the QRAM for us, so we can simply read it out without effort and run our quantum algorithm with it. And this is precisely the finicky part about these famous quantum algorithms like HHL (and also Grover's, to some extent): they don't provide any description regarding how the input states are actually to be prepared. And a QRAM won't solve this, as in order to load a quantum state, it needs to be written there first.
The only upside is that there may be a clever procedure to write the desired state in a QRAM, allowing us to circumvent having to construct $\rm U$; but that's not something I can draw any conclusions on with certainty.
Apart from QRAM, there is one more aspect I want to mention regarding the power of a quantum computer: error rates. Quantum particles are fragile and very prone to error, which means we have to account for that in some way. After all, a quantum computer with thousands of qubits is completely useless if these qubits can't hold a state for long enough to do the computation. The currently most widely known method to deal with these errors is quantum error correction, which (roughly speaking) uses auxiliary qubits to reduce the probability of error occuring in the work qubits. Suffices to say that the effort put into correcting quantum errors directly contributes to the computational power—and thus usefulness—of the quantum computer.
It is for this reason that the notion of quantum volume was introduced to express the actual power of a quantum chip. This metric incorporates the number of qubits, the error rate as well as a few other things.
To answer your question: I would say yes in some sense, since (a) QRAM doesn't solve the problem of efficiently preparing input states and (b) error correction is done with extra qubits. However, if we want to build a big quantum computer which is comparable in power to a classical computer, we will need stuff like QRAM (including a clever way of writing states to it) to make it work. Just like a classical computer can't operate on bits alone.
Don't expect such a machine to be built within the next twenty years, though.
Qubits are indeed the main elements. But in the future hopefully, we will have complementary devices like a qRAM and this will be helpful for many quantum algorithms like the HHL to input in a quanntum form classical data.
For a more visual presentation of the qRAM, you can check these slides. The architecture proposed at that time was the bucket-brigade with qutrits. What we need is basically the ability to load data in a fast and coherent way.
-
1$\begingroup$ Could you go into a bit of detail about what qRAM would require, apart from more qubits? $\endgroup$ Sep 11, 2018 at 12:53
-
$\begingroup$ @NieldeBeaudrap I edited with adding some slides. Hope it clarifies a little bit. $\endgroup$– cnadaSep 11, 2018 at 13:07