Originally posted by woadman
well don't forget about National Security issues...It's my humble opinion that our governments will decide that the general public doesn't need supercomputers at their fingertips. The computers makers will stop offering more powerful machines to the public....better get yours while you still can....
While there may be a problem with quantum machines being able to crack asymmetric key encryption. In terms of off the shelf machines, an Intel I7 with 6 cores running at 4GHz and AVX2 registers can do 8 single precision multiply-adds per clock cycles, so the upper bound on it's speed is 8*4*6 = 212 Gigaflops. Although it'll never hit that due to memory latency. If you really want to spend money you can get an Intel Xeon Phi with 52 cores (as I remember) for ~$2,000 and that will hit a teraflop double precision.
Assuming Moores law, doubling the transistor count every year, continues to apply in a decade you can expect expect retail machines to be around 200 teraflops single precision. With things like a Xeon Phi giving of the order of a petaflop double precision.
This is still not enough to break a decent cipher with a brute force attack. By the time quantum machines are available off the shelf someone will have found an alternative to the factorization problem to make banking and so forth secure. Governments have no interest in stopping Intel, Arm, AMD, and co. from making their profits.
That last statement partially depends on whether NP != P. If it turns out NP = P (which seems unlikely) then BQP is likely to the same as P (the relationship between NP and BQP is unknown). If P = NP then there might be a problem as the key encryption decryption algorithm would become computationally intense.
P = The set of problems which can be solved in polynomial time on a Turing Machine. Meaning that the time to solve the algorithm grows as some polynomial function of the size of the input.
NP = The set of problems which can be solved in polynomial time on a Non-deterministic Turing machine. Basically a machine with an infinite number of processing cores.
BQP = The set of problems which can be solved in polynomial time on a quantum computer with bounded error (the probability it gets it wrong is no more than 1/3). The requirement is that checking the result can be done in polynomial time too.