Last week we posted an item about Wolfram Research‘s partnership with NVIDIA to integrate GPU programming into Mathematica. With NVIDIA’s GPU Technology Conference 2010 starting today, we thought we would share a little more for those who won’t be at the show to see us (booth #31, for those who are attending).
Mathematica‘s GPU programming integration is not just about performance. Yes, of course, with GPU power you get some of your answers several times faster than before—but that is only half the story.
The heart of the integration is the full automation of the GPU function developing process. With proper hardware, you can write, compile, test, and run your code in a single transparent step. There is no need to worry about details, such as memory allocation or library binding. Mathematica handles it elegantly and gracefully for you. As a developer, you will be able to focus on developing and optimizing your algorithms, and nothing else.
Here are a couple of examples to give you a taste of the upcoming feature.
September 14, 2010 — Angela Sims, Partnership Support Specialist
CUDA is NVIDIA’s performance computing architecture that harnesses modern GPU’s potential. The new partnership means that if you have GPU-equipped hardware, you can transform Mathematica‘s computing, modeling, simulation, or visualization performance, boosting speed by factors easily exceeding 100. Now that’s fast!
Afraid of the programming involved? Don’t be. Mathematica‘s new CUDA programming capabilities dramatically reduce the complexity of coding required to take advantage of GPU’s parallel power. So you can focus on innovating your algorithms rather than spending time on repetitive tasks, such as GUI design.
March 31, 2009 — Joel Klein, Kernel Technology
For some people, parallel computing and the need for a cluster is a way of life. For others, the need sneaks up on them. Most clusters and grids are planned and organized from the first, and that can take time and effort, to say nothing of configuration. Other times there’s no budget for new hardware, but there are computer labs or desktop computers unused for much of the day—a cluster waiting to be harnessed, if only you can get the Macs to talk to the Windows boxes, and keep straight all the hostnames in use. For situations like these I helped develop Wolfram Lightweight Grid System, which is designed from the ground up to let you assemble existing hardware into a self-organized network, accessible from Mathematica with almost no configuration.
March 18, 2009 — Roman Maeder, Director of Parallel Computing Technology
In the eighties I attended a scientific presentation about a rather cumbersome way to parallelize one of the symbolic computation systems in existence at that time and quickly realized how much more elegantly I could bring parallelism to Mathematica, thanks to its symbolic communication protocol, MathLink. This protocol allowed me to exchange not only data but also programs between concurrently running Mathematica kernels.
The result was a package, written entirely in Mathematica, called Parallel Computing Toolkit. At a time when parallel computing meant big expensive machines, FORTRAN, and batch jobs, it was quite satisfying to experiment with different parallel paradigms from an interactive Mathematica notebook, with a couple of machines on a local network doing the computations, and be able to do parallel functional programming and work with symbolic expressions and arbitrary-precision arithmetic in parallel. I got a lot of surprised reactions from people who thought that parallelization is this big complicated thing, requiring supercomputers and large funds, and rather large problems, to be worthwhile. The truth is, most problems people solve are easy to parallelize.
October 30, 2007 — Theodore Gray, Co-founder, Director of User Interfaces
The spinthariscope, invented and beautifully named by William Crookes in 1903, is a device for seeing individual atoms. Or at least, seeing the death of individual atoms.
A spinthariscope consists of a needle, similar to a watch hand, positioned in front of a zinc sulfide luminous screen, with a magnifying glass focused on the screen. At the end of the needle is a small patch of radioactive material. Originally radium was used; more recently polonium, uranium, and americium have been found to be safer.