The power of a quantum computer is measured in qubits, the basic unit of measurement in a quantum computer. .
I facepalm after each reading of such phrases. It hasn’t led to anything good; my vision is starting to deteriorate; soon I will have to turn to Meklon.
I think it's time to systematize the main parameters of a quantum computer. There are several of them:
- Number of Qubits
- Coherence Time (decoherence time)
- Error Rate
- Processor Architecture
- Price, availability, maintenance conditions, depreciation time, programming tools, etc.
Number of Qubits
It's all quite obvious; the more, the better. In reality, however, you have to pay for qubits, and ideally, you should buy exactly as many qubits as needed for the task. For a developer of exclusive slot machines, one qubit per machine (for generating randomness) is sufficient. For a brute-force attack on RSA-2048 — at least 2048 qubits.
The most publicized quantum algorithms are named after Grover and Shor. Grover allows for 'hacking' hashes. To take down Bitcoin, you need computers with at least 256 qubits on board (you can mess with Bitcoin's complexity, but let's stick with this round figure). Shor allows for the factorization of numbers. To factor a number with n binary digits, you need at least n qubits.
Current maximum: 50 qubits (). And in fact, 50 qubits is the limit. The limit of simulating a quantum computer. In theory, we can simulate any number of qubits on classical computers. In practice, adding one qubit to the simulation requires doubling the classical computing resources. Add to this the rumors of doubling qubits each year, and ask yourself: how to debug algorithms for 25651210242048 qubits? There is no simulator; you can't set a breakpoint on a quantum processor.
Coherence Time (decoherence time)
Coherence and coherence are not the same thing. I prefer to compare coherence to the regeneration of RAM. On a RAM stick, there are billions of cells, each carrying a charge, either zero or one. This charge has a very interesting property — it leaks. An initially 'one' cell becomes a cell at 0.99, then 0.98, and so on. Accordingly, the zero accumulates 0.01, 0.02, 0.03… This charge needs to be refreshed, 'regenerated'. Everything below half is reset to zero; all else is brought up to one.
Quantum processors cannot be regenerated. Consequently, there is one cycle for all computations, until the first 'leaky' qubit. The time until the first 'leak' is called the decoherence time. Coherence, on the other hand, is the state when the qubits haven't 'leaked' yet. You can look for slightly more mature explanations.
Decoherence is related to the number of qubits: the more qubits there are, the harder it is to maintain coherence. On the other hand, with a large number of qubits, some can be used for error correction related to decoherence. Hence, it follows, that the number of qubits in itself doesn't solve anything. You can double the number of qubits and spend 90% of them on fixing decoherence.
Here, the concept of a logical qubit comes into play. Roughly speaking, if you have a processor with 100 qubits, but 40 of them are directed towards fixing decoherence — you have 60 logical qubits left. Those on which you execute your algorithm. The concept of logical qubits is currently rather theoretical; personally, I haven't heard of practical implementations.
Errors and their correction
Another bane of quantum processors. If you invert a qubit, there’s a 2% chance the operation will end in error. If you entangle 2 qubits, the error rate reaches 8%. Take a number with 256 bits, hash it using SHA-256, calculate the number of operations, and then compute the probability of performing ALL these operations error-free.
Mathematicians provide a solution: error correction. Algorithms exist. Implementing one entanglement of 2 logical qubits requires 100,000 physical qubits. The Bitcoin apocalypse will not come soon.
Processor Architecture
Strictly speaking, there are no quantum computers. There are only quantum processors. Why need RAM when the working time is limited to milliseconds? I program in Q#, but it’s a high-level language. I allocated 15 qubits, and do whatever you want with them. Wanted to entangle the first qubit with the tenth – done. Desired to entangle the first six – done.
On a real processor, such freedom doesn't exist. If I request to entangle the first qubit with the 15th, the compiler will generate 26 additional operations. If I'm lucky. If not, it may generate a hundred. The thing is, a qubit can only entangle with its neighbors. I've never seen more than six neighbors for a qubit. In principle, there are optimizing quantum program compilers, but they are still mostly theoretical.
Each processor has its own set of instructions, and the connections between qubits differ. In an ideal world, we have arbitrary Rx, Ry, Rz, and their combinations, plus free entangling across dozens of features, plus Swap: look at the operators in . In reality, we have several pairs of qubits, and entangling CNOT(q[0], q[1]) costs one operation, while CNOT(q[1], q[0]) already costs 7. And coherence fades...
Price, availability, conditions of maintenance, amortization time, programming tools...
Prices are not publicized, availability for the average citizen is nearly zero, amortization time hasn't been practically calculated, and programming tools are just emerging. Documentation is available at arxiv.org.
So what information should we demand from experts when releasing a new quantum computer?
Besides the list above, I like the options from and :
I wish every article about a new quantum computer started with two characteristics — the number of simultaneously entangled qubits, and the time of qubit retention.
Or even better — with the time taken to execute the simplest benchmark, such as finding the prime factors of the number 91.
Source: habr.com
