Thursday, May 12, 2005
Parallel Programming with Matrix Distributed Processing
This paper describing a C++ parallel matrix library has some very impressive programs as examples, like a complete parallel version of the Game of Life, written in 39 lines of C++. I'm sure there are many other parallel matrix libraries out there, but this one seems worthy of consideration especially for anyone designing a parallel quantum computer simulator.
For those who think of parallel computers as being massively large and expensive machines in the basements of research labs, or world-wide Internet-based parallel programs like SETI@home, that image is going to be changing drastically over the next 5-10 years. Single core processors are getting too hot at high clock frequencies, so chip makers are currently moving to dual core designs. The forthcoming XBox 2 is apparently going to feature a triple-core CPU. If adding cores is the only way to maintain Moore's law for the near future, then it's pretty obvious what's going to happen, and in 10 years, 30-40 cores per desktop computer or video game console could be commonplace. This will have a huge impact on CPU-bound programs. In other words, most programmers will need to become very good at some form of parallel programming.
Although classical parallel programming is extremely different from quantum computer programming, maybe the paradigm shift will spur interest in what else is coming down the road, i.e. quantum computer programming. I hope the classical theoretical community is ready for the forthcoming upsurge of interest in parallel algorithms. They're going to need a model better than the PRAM.
(P.S. I forgot to keep track of the blog which linked to the aforementioned paper. My apologies)