Mo' Multicore

More multicore. Just can't get enough of it.


July 02, 2007
URL:http://www.drdobbs.com/parallel/mo-multicore/200001993

The last time I outfoxed a Rubik's Cube...oh, now that I think about it, I've never outfoxed a Rubik's Cube. Ice cubes I can handle; Rubik's Cubes, forget it. But then I'm not quite as smart as Northeastern University's Gene Cooperman and Dan Kunkle who solved a Rubik's Cube in just 26 moves. We should be impressed. Of course, they did have access to the Teragrid (www.teragrid.org) and its more than 250 teraflops of computing capability and 30 petabytes of online and archival data storage. All this let them do simulations at a rate of 100,000,000 times per second.

One Teragrid participant is the Pittsburgh Supercomputing Center (www.psu.edu), whose contribution is a Cray XT3 nicknamed "BigBen" that's built around a highly scalable multicore architecture (based on AMD Opteron processors, in this case). Hmmmm, maybe I really should pony up for more RAM and a multicore system after all.

You may recall that last month in this space, I rambled on about multicore processors. But I'm not the only one who thinks that the opportunities that they offer are significant. Herb Sutter obviously does, as evident by his new column "Effective Concurrency," which kicks off this month (page 56).

Sun Microsystems apparently thinks multicore processors are the cat's pajamas, too. A highlight in its Sun Studio 12 is the "auto-parallelization" compiler feature : As code is compiled, sections of it are analyzed as good or bad candidates for running in parallel on separate cores, then shunted to where they can be most efficient.

Other areas of Sun Studio 12 are also multicore aware. The debugger and a new thread analyzer tool analyzes your application's runtime characteristics and help detect potential deadlocks. This information is sent to a graphical front-end, where highlighted areas are related to specific source code. The idea is that features like these make it easier to develop, analyze, debug, and tune multithreaded, parallel applications.

Not to be outdone, Intel made its own software-related announcement in support of multicore. The most recent versions of the Intel C++ Compiler Professional Edition and the Intel Fortran Compiler Professional Edition, for instance, automatically accelerate application performance on multicore processors via multiple threads. For example, applications containing 3D graphics or video are automatically accelerated through vectors via Streaming SIMD Extensions (SSE), including SSE 4 instructions. Combining vectors and threads and integrating them with a technology known as "loop transformation" supposedly generates greater performance on multicore processors without code rewrites. Intel goes on to say that the combined capabilities also provide benefits that extend beyond multicore optimizations by assisting developers in locating vulnerabilities that would otherwise go undetected, such as uninitialized variables and possible buffer overruns.

You don't believe Sun or Intel (okay, I don't blame you for not believing me) about this multicore/parallelism/concurrency thing? Would you believe, well, Microsoft?

According to Ty Carlson, Microsoft's Director of Technical Strategy, future versions of Windows will have to be "fundamentally different" if they are to take advantage of multicore architectures. "You're going to see in excess of 8, 16, 64, and beyond processors on your client computer," said Carlson at the Future in Review Conference (www.futureinreview.com), adding that Vista was "designed to run on one, two, maybe four processors."

Still not convinced? (Okay, you're forcing me to haul out the heavy iron here.) Would you believe—Google?

That's right. The company that used to be everyone's favorite search engine vendor has dipped its toe in the multicore waters by acquiring PeakStream, a maker of tools designed to ease programming multicore processors. (To get a feel for what PeakStream does, listen to the DDJ interview with PeakStream's Matthew Papakipos at www.ddj.com/dept/64bit/196601074, where he discusses the challenges developers face in keeping pace with multicore and other emerging processor architectures.)

At the very least, I'd venture that all those servers inside those massive Google data centers (www.ddj.com/dept/opensource/191601618) will probably be multicore real soon now—if they aren't already.

What's the plan? Rubik's Cube in 20 moves or less is my guess.

Jonathan Erickson

Editor-in-Chief

[email protected]

Terms of Service | Privacy Statement | Copyright © 2024 UBM Tech, All rights reserved.