One of the promises of Intel’s Many Integrated Core (MIC) architecture is the ability to do massive two- and three-dimensional simultaneous calculations in parallel.
Many mathematical models are essentially chaotic dynamical systems where you have to calculate changes in a single point. That point, for example, might be the temperature of a given point in space, or any other physical property at that point.
But a more abstract example that most of us have seen would be a fractal.
Fractals come in different forms, but the generation of one type, called an “escape time,” involves doing a series of calculations at every single point on a two-dimensional plane (usually a two-dimensional complex number plane, so that each point in the two-dimensional plane represents a single complex value).
Here, a function is chosen (such as z squared + c, where z is the complex value at the point, and c is a complex number constant). This function is calculated for the single point, and the result is plugged back into the function, and the function is run again. That result is yet again plugged back in, over and over for a certain number of counts. Depending on how fast the series diverges (that is, goes to infinity), the pixel corresponding to the original point is painted a certain color. That same series of calculations is done for every single point on the screen, and the end result is a (possibly very beautiful) fractal image.
Back to Reality
Although the fractal doesn’t directly represent a physical object, the concept of applying repeated calculations to multiple points does apply to many situations, especially if you also factor in the value of surrounding points.
Weather is a good example here. The temperature at a given point 10 minutes from now is going to depend on many factors, including the properties of the surrounding points.
And with weather, we’re not just talking about flat, two-dimensional systems like the fractal example. Remember, although weather maps are usually presented as flat, two-dimensional images, in fact they’re three dimensions with our planet’s atmosphere extending upwards from the ground. And when we try to model such systems, we have to do massive calculations.
In the original days of calculating fractals on computers (which I did research in as a graduate assistant many years ago), we used single-core, first-generation Pentium processors (if we were lucky to have them), or, in my case, a Motorola 68000 chip inside an Amiga 500 computer. Generating a single fractal image took minutes to hours. Multiply that to a third dimension, and you’re looking at days of calculations for a single map. Add in a map in motion, such as a moving storm system and where it’s going to go in the next six hours, and, well, basically by the time the calculations are finished, the storm has long since subsided and nobody cares anymore.
Modern Times and Faster Calculations
Today’s quad-core and six-core machines with fast processors can calculate dynamical systems in a much faster time. You and I can download free fractal-generation software and watch fractals being generated quickly, sometimes even in real-time.
But we’re still looking at two dimensions; at three dimensions, we’re still not there.
That’s where MIC comes in. In my previous blogs, I’ve talked about two separate topics in parallelization, one being vectorization where a single core can do multiple calculations (including floating-point) simultaneously, and then more traditional parallelization where the multiple cores do such calculations at the same time.
Bring in a processor with 50 cores, and suddenly these three-dimensional calculations become a reality. This short video demonstrates some fractal generation on the MIC system.
Meteorologists can take a massive storm with its data points plugged into the system, and perform sophisticated calculations on all the points in an extremely short time period. From there, they can make multiple predictions about the storm in ways they have never been able to before. They can make small adjustments to parameters, and quickly run the prediction again and see how the system changes. They can do several such predictions, and combine their human experience and knowledge with those predictions to determine the most likely outcome. And they can even generate a “futurecast” in the form of a flattened two-dimensional weather map showing you exactly what you can expect in the days to come – or even hours to come, and whether, for example, a tornado is likely in your area and you need to take shelter to protect yourself. And this is already a reality, as John Michalakes of the National Renewable Energy Laboratory discusses in this video.
This is just one example of where MIC is taking us. We’re on the edge of seeing some amazing computer models coming with this technology.
Where do you see advanced technologies like MIC leading us programmers?
Tell me about it in the Comments section below.