Web Quantum Computer Simulator
Heraklit writes "As reported on Heise News, the Frauenhofer Institute of Computer Architecture and Software Technology has made available the first online quantum computer simulator - it will be simulating up to 31 quantum bits, for testing new advanced quantum algorithms. Behind the scenes, it is a 32 node Athlon 3200 Myrinet Linux Cluster with 56GByte RAM! Now imagine the computing power of a few hundred qubits, if ever constructed..."
It's more convenient than Web interface and has no arbitrary limits...it's a quantum computing module for Perl! There's also libquantum for C users, and QCF for Matlabbers.
1) This is C code, not pseudocode.
1) There are 31 qbits, not 32.
3) Why the right shift by 30 bits on the rand()? You're AND-ing this with 0x01 anyway, so the final outcome will either be 0 or 1. Quite perplexing.
Traditional digital computing uses the basic bit that can be on/off. Quantum computing uses a qbit that can be 0, 1, or superposition of the two. Using this formalism, one can construct simulations that are "instantious" of complex systems that are modeled using probability distributions instead of traditional statistical techniques. The problem is that now the computational work has been shifted to setting up the model for the simulation. But the model will always be "instantious" (if this was quantum hardware it would actually be instantious, but since these libraries simulate quantum computing it isn't in this case).
What I can explain without too much trouble is that the cluster is merely emulating the abilities of a quantum computer. A quantum computer, conversely, would be incapable of matching the performance of, say, seti@home on all of those machines. Emulation is taxing on any system - just ask the people who are using PearPC on their brand spankin' new computers only to get sub-G3 performance out of OS X.
What this refers to is the fact that quanta do not have discrete positions. They have probabilities. 50% chance of location A or 50% chance of location B (to make it simple). The issue is that until you check, it exists at BOTH A and B. But even after you check, there are problems...
One of the fundamental principles of quantum mechanics is Heisenburg's Uncertainty Priciple. It states that you cannot know both the location and the velocity (remember that in physics velocity is both speed and direction).
Explanation (basic terms):
The smaller something is the more powerful the light you need to see it. This appeals to common sense. When you are looking at things VERY small (like quanta) the 'light' you use to look at it is powerful enough to move it. So you can know where is WAS but not where it IS. Or, you can know where it WAS going but not where it IS going. This pertains to ALL the properties of quanta.
Long story short, maybe the tree makes a sound when it falls , and maybe it doesn't. But once you check, you change the results. See the Wikipedia entry on Schrödinger's cat for more info.
Basically this stuff can't be done in polynomial time. For all quantum algorithms you start by setting a bunch of qubits into a uniform superposition of states (e.g. if you do this to 8 qubits and then measure them, you will be equally likely to get any number between 0 and 255 as your result). Then you can use these qubits as input into a function and effectively calculate the value of that function over every possible value of the input. The trouble is that you don't get 2^n different values of the function, you get a superposition of 2^n states. When you measure the output, you'll only find out one of the values of the function. So in order to get a working quantum algorithm, you have to manipulate the quantum state until you have a high probability of measuring the state you want.
Quantum computing has other complexities. Every function must output as many qubits as it has for input. It's also impossible to make a copy of a qubit without altering the original qubit. This means that in any quantum programming langauge, all funciton parameters must be passed by reference. All functions must be invertible. This can be generally accomplished by leaving the inputs unaltered and writing the output to some scratch qubits which are set to 0 beforehand.
If you want to learn more about quantum algorithms, I suggest you read up on Grover's search algorithm. It's much simpler than many quantum algorithms and it's also proven very adaptible to other situations.
My only political goal is to see to it that no political party achieves its goals.
In a traditional computer, a 32-bit memory location can store a 32-bit number. In a quantum computer, a 32-qubit memory location "stores" a value for each possible 32-bit number. For example, the value stored for 0 might be 0.01, the value for 1 might be 0.25, and so on. When you actually read the memory location, there is (in this example) a 1% chance that you will read a 0, and a 25% chance you will read a 1, and so on.
The above is a little bit simplified. The probability isn't stored directly. Rather, a complex number is stored and the probability is the square of the complex number.
So if you want to simulate this for a 32-qubit number, you need to store in your classical computer 2^32 complex numbers. Each operation you carry out on your 32-qubit number must be done 2^32 times on a classical computer.
A 31-bit QC can accomplish in a few instructions what takes this mainframe several hours.
- C
The class of problems a quantum computer can solve is exactly the same as the class of problems a normal computer can solve. The only difference is that a quantum computer may be able to solve some problems much faster.
"Let's see, I used to know what a qubit was. Well, don't you worry about that. Just get some particles, build it."
The Wikipedia articles linked to below will certainly get you started, but they will make your head hurt.
To ease the pain in your head I recommend Nick Herbert's Quantum Reality, a popular title, but clear, concise and accurate.
There are a lot of popular works on Quantum Mechanics, but they all play the "pick any two" game with clarity, concision and accuracy. Herbert's is the only one I've found that nails all three.
One of the things that I particularly like about Herbert's book is the way he makes it explicitly clear that various models built upon interpretations of QM are a)interpretations, not QM itself and b)exclusionary.
QM presents certain logical ambiguities and paradoxes when we try to interpret it into the common world of understanding. Various models have been made to to try to deal those issues. Popular "philosophers" like to mix and match these interpretational models, believing they're a)all really the same interpretation and b)Quantum physics.
"So there I was, cruising along faster than light, backwards in time through the multiverse. . . "
But you can't do that, take one from column A and two from column B. Each interpretation is a logical structure unto itself and if you accept the multiverse interpretation adding elements from some other interpretations actually breaks the model's relation to QM.
The above 'quote' is like saying:
"So, I calculated my trajectory by Newton's Laws, but banged into a crystal sphere of Mars because I neglected one of the epicycles and didn't correct for General Relativistic forces. There's a chance I misread the initial conditions data from the chicken entrails as well."
Anyway, just read the book. It'll make you a better person, or at least a person with a more accurate view of QM than nonphysicits who haven't. Just 250 pages, so it's not even some huge tome that takes a multimonth commitment. Like I said, it's concise. Like a good O'Reilly book.
KFG
There's Grover's algorithm, which is an O(sqrt(n)) time algorithm for finding a single marked element in an unsorted database of elements, according to this site:
/ in dex.html
http://alumni.imsa.edu/~matth/quant/473/473proj
Having just finished a class in Quantum computing I have these observations:
1) Right now most of these quantum 'circuits' are implemented on NMR machines. They can realize a handfull of qubits. Not very cost effective. Unless you want your computer to double as an MRI machine (hey, you could rent it out every night!) it's not going to cost effective any time soon.
2) Quantum Cellular Automata (QCA) - not strictly quantum computing, but a very interesting and potentially realizable (as in they might actually be able to fabricate these in the next 10 years or so) computing paradigm. The big advantages over current logic families (like CMOS): there is no current flow hence the power dissipation could be miniscule. They switch at Terahertz rates. QCA circuits are very small ( a majority gate in less space than a current CMOS transistor).
3) Put the word 'Quantum' in front of something and it suddenly has a certain cachet.
For the time being, most of this stuff is fantasy. At most we can build actual quantum circuits (not simulated) which have maybe 10 gates or so which isn't too useful and the implementation technology is extremely expensive (not to mention large and power hungry). QCAs may actually lead to something real - but they're not really quantum gates.
http://www.howstuffworks.com/news-item210.htm
The superior power of quantum computers is due to their ability to simultaneously exist in several different, wavelike states, called superpositions. Conventional bits of data only exist in one of two states, a 1 or 0. A qubit can exist in a superpostion that is simultaneously both 1 and 0. To handle quantum data, a computer's switches must be able to interact with one another while maintaining these superpositions, so that the qubits don't fall back into 1's or 0's. Until now, researchers have tried to hold qubits in entangled states, meaning the state of any one qubit depends on the state of all others. Using this method, the collapse of one qubit back into a 1 or 0 would result in lost data.
I fought the corporate America, and the corporate America bought the law.
In fact you'd need about 2^qbits of classical computers to directly simulate an equivalent quantum computer. That is because 2^qbit states exist for quantum computer on the road to calculating the answer. With only 32 computers involved in the simulation there must be a lot of serializing going on. Keeping track of the other states must be why they have so much RAM.
I like to think of quantum computers as doing sorting rather than calculation. This is because you can give it the output to a classically irreversible and it will "sort" or "resolve" for the correct input from all of it's various multiverse incarnation.
Another Physics Fanboy speaks out! Hi there, Physics Fanboy!
I read your "reference" (or at least the Google cache of it), and it doesn't even contain the word "computer", so I fail to see how you've supported the claim that QC can help with teleportation. See, your (attempted) sarcastic point was actually literally true; I do know that stuff. Evidentally better than you do, since I can describe why we aren't teleporting stuff around right now. Can you? After all, we teleported a photon years ago; why haven't we done anything significantly larger? (Maybe because it's impossible? Give the idea a fair shot.)
Anyone want to take a crack at providing a reference that actually, well, refers to WarriorPoet42's claim?
Quantum computing will never be useful in graphics... because each qubit only ever results in a single bit of information. Even with an unthinkably powerful 1000 qubit computer, one computation is going to result in at most 1000 bits of image.
Quantum computing is useful when you have problems which are very hard even for short answers... like the travelling salesperson problem.
Simulated quantum computer in the InterNet
Fraunhofer Institut for computer architecture and software technology ( ROOFRIDGE ) placed a quantum computer simulator on-line accessible by Webbrowser . The simulated machine can with up to 31 Qubits so mentioned work and is help to develop new algorithms and circuits for quantum computers.
Technical details of the hard and software describe the scientists in a detailed essay on the Website. Behind the simulation by Myrinet a coupled Linux cluster with altogether 56 GByte puts main memories.
Quantum computers are able to solve computing problems very fast at those conventional computers the teeth break off themselves -- for example the factorizing of very large numbers. They can do that, because they work with Qubits so mentioned instead of with bits. A Qubit takes both binary conditions at the same time; an arithmetic operation at a register from Qubits affects therefore all values at the same time. Each selection of the result destroys however the simultaneousness (or superposition) and reduces it to only one value.
Therefore hardware is, which can manipulate the sensitive Qubits, it however on the other hand as well as possible before the destructive external world influences protects for material quantum computers necessarily on the one hand. On the other hand completely new algorithms are necessary, with which the final result contains to a certain extent all solutions. One of it is the factorizing algorithm of Shor .