The post Mathematica 8 Gets Performance Boost, Integration with Wolfram Alpha appeared first on HPCwire.

]]>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.”

The post Mathematica 8 Gets Performance Boost, Integration with Wolfram Alpha appeared first on HPCwire.

]]>The post Wolfram Alpha’s API Is Free, but Using It Costs appeared first on HPCwire.

]]>The post Wolfram Alpha’s API Is Free, but Using It Costs appeared first on HPCwire.

]]>The post Wolfram Alpha: A Web-Based Application That Embraced Supercomputers appeared first on HPCwire.

]]>The launch created quite a bit of fanfare in the media since Wolfram Alpha was seen (incorrectly) as a rival to search engines like Google and Yahoo. The new application also encapsulated the notion of the Semantic Web, which many envision as “the next big thing.” Add to that the fact that the Web site was built on top of supercomputers and you have all the ingredients for a juicy high-tech story for the masses.

The supercomputer infrastructure was one of the least talked about aspects of the project, but to our publication, one of the most interesting. Schoeller Porter, who now does business development for Wolfram Alpha, wrote about the pre-launch of the Web site in a recent blog post, and how the project outgrew the initial infrastructure plan even before it booted up.

According to Porter, whom I spoke with shortly after he wrote the blog entry, the project’s initial plan devised in February was to roll out Wolfram Alpha on a much smaller scale. The idea was they would make a discrete announcement in the Mathematica community, and users would trickle in. They were anticipating early traffic would be around 200 queries per second. For that kind of computing load, they would be able to get by with a few datacenters populated by modest-sized Web-style clusters — “normal servers you can buy off the shelf from anywhere,” said Porter.

Then in early March, Stephen Wolfram wrote a blog post announcing Wolfram Alpha and they started getting a lot more inquiries about the it. “It clearly hit a nerve in the Semantic Web community,” explained Porter. From that point on, they noticed that every time Wolfram gave a speech on the subject, it got more and more press coverage. They soon realized their backroom project was going to get a great deal more attention than they had originally thought. Now they were anticipating that the initial launch would attract something in the neighborhood of 2,000 queries per second — ten times the original estimate.

As a result, they were forced to scale out the Wolfram Alpha infrastructure. (And thanks to the deep pockets of Wolfram Research, they could do so.) But the time scale was compressed. It was already March and they were looking to launch the site in May. They determined the only way to ramp up the capacity so quickly was to deploy large ready-made clusters, i.e., HPC machines. That’s basically why the 576-node cluster from R Systems (R Smarr) and a slightly smaller Dell HPC cluster were added. The other three datacenters consist of much smaller cluster systems using vanilla servers.

According to Porter, strictly speaking they don’t depend upon supercomputers for the Wolfram Alpha application. The queries are being handled in parallel, but a tightly-coupled system is not required for that. There’s no MPI programming involved. Since Mathematica is the computational engine, the calculations themselves are single threaded, even presumably for operations like matrix multiplication. Aggregating all the queries is where the parallelism comes in, just like any typical Web application.

However, since Wolfram Alpha is all about computation, the extra CPU horsepower and memory performance of HPC servers do not go to waste. Traditional search applications are pretty easy on the CPU, since basically they’re just scanning through an index of Web pages. Wolfram Alpha, on the other hand, is doing heavy-duty math, so there is a much greater use of floating point and high precision fixed-point arithmetic. And all the calculations are being done in real time. “Every time you go the Web site and provide an input, the result you get back is generated on the fly,” explained Porter.

As you might suspect, computational capacity per query is not unlimited. The software automatically times out if a calculation is hogging the CPU. Thus, for example, the Haferman carpet fractal can be run with an iteration of six, but it quits if the iteration is seven or greater. Similarly, if you try to compute the factorial of 250,000 or greater — no dice.

But the Web site’s biggest stress test is probably ahead of it. The May launch of Wolfram Alpha came just as many universities and high schools were shutting down for the year. Since Wolfram Alpha is ideally suited for students and teachers, especially for math and science course work, it wouldn’t be surprising to see a significant uptick in Web site traffic when schools come back into session at the end of August and beginning of September.

According to Porter they expect to expand the infrastructure within the year beyond the 10,000 or so CPU cores they now have deployed. “I expect as we grow, we’ll grow at this supercomputer-sized scale,” he said. The project team is also reevaluating the infrastructure design to determine if they can improve the system as it scales out. In particular, they’re looking at increasing the number of connections from the databases to the compute nodes to maximize throughput.

Since Mathematica currently runs only on commodity processors, for the time being Wolfram Alpha infrastructure will be based on x86 servers. However, Wolfram Research is investigating GPUs and other types of computational accelerators and as support for those technologies are integrated into Mathematica, they will migrate into Wolfram Alpha as well. “But the fundamental limitation isn’t the technology itself,” explained Porter. “It’s how do we enable ordinary folks to be able to take advantage of that technology. I think in some ways Wolfram Alpha is the model to accomplish that.”

The post Wolfram Alpha: A Web-Based Application That Embraced Supercomputers appeared first on HPCwire.

]]>The post Is La Toya Jackson a Prime Number? appeared first on HPCwire.

]]>The post Is La Toya Jackson a Prime Number? appeared first on HPCwire.

]]>