December 14, 2010
The eighth version of Mathematica was released last month, the latest in Wolfram Research's 22-year-old computational software platform. Although the tool is a relative newcomer to the high performance computing world, a raft of new capabilities have been added over the last several years that are aimed directly at the performance crowd. Mathematica 8 builds on those capabilities and adds some new ones that make it a serious contender for HPC applications.
Focus on performance started in earnest with Mathematica 4 back in 1999. Beginning with that release, Wolfram Research started to incorporate a variety of features and capabilities that improved runtime execution, including optimizing algorithms, supporting linkage of external C and Fortran libraries, and adding the ability to compile code. In 2008, with Mathematica 7, built-in support for multicore parallelism and compute clusters was added.
Mathematics 8 adds a number of new features that should boost performance even further. Perhaps the most important is the ability to generate, compile and link C code. The new feature allows Mathematica code to be automatically translated into C source code. The source can then be driven through a standard compiler (requiring a native Windows or Mac C compiler) and linked into a Mathematica executable for production.
The idea here is to take advantage of the speed of C-compiled code to boost performance of critical pieces of the Mathematic program. Previously Mathematica only supported compilation to a Java-like virtual machine byte-code, which although faster than interpreted execution, tended to be a good deal slower than compiled C code. In one example, a rendering application using vanilla Mathematica delivered just one frame every 10 to 15 seconds, while C compiled code was able to achieve two to four frames per second. Comparable speedups are to be expected from similar compute-intensive codes. All of this can be accomplished without the programmer ever having to write a single line of C.
Better yet, a parallelization option can be applied to a compiled function, which Mathematica will use to create a multi-threaded implementation. This can speed execution even further, assuming of course that the target CPU is multicore.
Compiled C code can be collected in dynamic link libraries (DLLs), which can be sucked back into the application or shared with other Mathematica programs. The ability to link DLLs also means externally developed C and C++ libraries can be incorporated into Mathematica, opening the door to many more performance optimized packages. Prior to this, talking with external C code involved the MathLink interface, which was burdened with the overhead of inter-program communication. Being able to access DLL routines directly makes calling external code much more efficient and straightforward.
For the GPGPU enthusiast, Mathematica 8 brings in support for CUDA and OpenCL. Unfortunately, this feature doesn't have the seamless automation offered by the C code generation capability. Rather, the targeted algorithm has to be developed in CUDA or OpenCL first and then folded into the program later. Basically, Mathematica automates some of the housekeeping functions, such as downloading code and data to the GPU card, and uploading the results back to the host. GPGPU support can be scaled to utilize all the GPUs on a system, or, using the gridMathematica add-on, across a cluster.
Although you can't automagically transform an arbitrary function into a GPU version, Mathematica 8 does include a couple dozen built-in functions that are already optimized for CUDA-enabled GPUs (in other words, those from NVIDIA). The functions are spread out across linear algebra, financial simulation, and image processing. The folks at Wolfram Research will undoubtedly be adding more built-in GPU routines in future versions, while also promising a more streamlined approach for GPU support.
Another category of performance improvements is enabled by speedups to a number of core algorithms. These include optimized solvers for integer linear algebra, highly oscillatory functions, transcendental and high-degree polynomial methods, and a number of new special functions. In some cases, the optimizations can boost performance by an order of magnitude or more, depending upon the size of the problem.
Besides the additional performance-boosting capabilities, Mathematica 8 also includes about 500 new built-in functions -- an increase that represent nearly the entire function count in the original Mathematica 1 of 1988. The new capabilities in version 8 encapsulate high-level symbolic functions for probability and statistics; permutations and group theory algorithms; financial engineering routines of general utility; control system functions; wavelet analysis functions; graph and network algorithms; and image processing routine.
The last category encompasses some very useful routine for processing visual data. One of the new capabilities is feature detection, such as facial and character recognition. Also included are geometric transformations and image alignment. For video, Mathematica can now import and export individual frames as well as do real-time capture of webcam streams. All of these capabilities can be combined to deliver some rather sophisticated image processing applications on top of an already full-featured computational engine.
Perhaps the most visible addition to version 8 -- at least from a user interface point of view -- is the integration with Wolfram Alpha, the company's Web-based computational knowledge engine. There are a number of advantages to marrying Mathematica to its Web spinoff, which, by the way, is itself a Mathematica application at its core.
First is the ability to tap the store of curated data in Wolfram Alpha, which encompasses a large and growing database that spans many technical and non-technical disciplines. It remains to be seen whether giving Mathematica users access to Wolfram Alpha data spurs new applications or will just be used as a sandbox for more customized data-centric applications.
For the application designer, one of the most potentially interesting uses of Wolfram Alpha is the ability to use its free-form linguistic capabilities. So instead of having to define a problem within the strict confines of the Mathematic language, you can use (more or less) natural language. So, for example, summing all the integers from 1 to 1000 would have to be specified as Sum[i, {i, 1, 1000}] in Mathematica, but could be simply stated as "sum integers 1 to 1000'" using the free-form mode.
The English version is automatically converted to Mathematica syntax on the fly, which can then be tweaked and developed separately. Extending the capability a bit further, users can pass Mathematica variables into Wolfram Alpha calculations.
The nice thing about the Mathematica architecture is nearly all its features, including the new ones described here, are included in the core technology. The Wolfram Alpha team has shied away from toolboxes, libraries, and standalone product add-ons (with the exception of gridMathematica). As a result, the new version 8 features can immediately leverage the large foundation of accumulated Mathematica componentry.
In the kickoff for Mathematica 8 at the Wolfram Technology Conference in November, company CEO Stephen Wolfram reiterated his commitment to maintain the platform as a unified, consistent software tool. Keeping the architecture monolithic means they are free to evolve the product through refinement of the individual pieces and the addition of new ones. With this kind of model, the whole is always guaranteed to be greater than the sum of the parts. "We've had a very simple strategic methodology," explained Wolfram. "Just implement everything."
May 23, 2013 |
The study of climate change is one of those scientific problems where it is almost essential to model the entire Earth to attain accurate results and make worthwhile predictions. In an attempt to make climate science more accessible to smaller research facilities, NASA introduced what they call ‘Climate in a Box,’ a system they note acts as a desktop supercomputer.
Read more...
May 22, 2013 |
At some point in the not-too-distant future, building powerful, miniature computing systems will be considered a hobby for high schoolers, just as robotics or even Lego-building are today. That could be made possible through recent advancements made with the Raspberry Pi computers.
Read more...
May 16, 2013 |
When it comes to cloud, long distances mean unacceptably high latencies. Researchers from the University of Bonn in Germany examined those latency issues of doing CFD modeling in the cloud by utilizing a common CFD and its utilization in HPC instance types including both CPU and GPU cores of Amazon EC2.
Read more...
May 15, 2013 |
Supercomputers at the Department of Energy’s National Energy Research Scientific Computing Center (NERSC) have worked on important computational problems such as collapse of the atomic state, the optimization of chemical catalysts, and now modeling popping bubbles.
Read more...
05/10/2013 | Cleversafe, Cray, DDN, NetApp, & Panasas | From Wall Street to Hollywood, drug discovery to homeland security, companies and organizations of all sizes and stripes are coming face to face with the challenges – and opportunities – afforded by Big Data. Before anyone can utilize these extraordinary data repositories, however, they must first harness and manage their data stores, and do so utilizing technologies that underscore affordability, security, and scalability.
04/15/2013 | Bull | “50% of HPC users say their largest jobs scale to 120 cores or less.” How about yours? Are your codes ready to take advantage of today’s and tomorrow’s ultra-parallel HPC systems? Download this White Paper by Analysts Intersect360 Research to see what Bull and Intel’s Center for Excellence in Parallel Programming can do for your codes.
In this demonstration of SGI DMF ZeroWatt disk solution, Dr. Eng Lim Goh, SGI CTO, discusses a function of SGI DMF software to reduce costs and power consumption in an exascale (Big Data) storage datacenter.
The Cray CS300-AC cluster supercomputer offers energy efficient, air-cooled design based on modular, industry-standard platforms featuring the latest processor and network technologies and a wide range of datacenter cooling requirements.