HPCwire

Leading HPC
Solution Providers


























HPCwire >> Blogs

Blog: From the Editor

From the Editor | Main Blog Index

Core Convictions


As Intel continues to flesh out its multicore processor roadmap, Anwar Ghuloum, principal engineer with the company's Microprocessor Technology Lab, is already encouraging software developers to begin designing applications for manycore processors -- architectures that contain tens, hundreds or thousands of cores. In his latest blog entry titled "Unwelcome Advice," he makes the case that designing apps for multicore processors is somewhat of a dead end.

If you're a mainstream programmer, you might think this puzzling. The current crop of IA processors sports 2 to 4 cores and Intel's next generation Nehalem processors, due out later this year, will support between 2 and 8. Larrabee, Intel's first manycore processor family, is a couple of years down the road, and its programming guide is still under wraps. So why commit to manycore when you're struggling to slice up your application into enough threads to give the current cores something to do?

Ghuloum's point is that manycore architecture will emerge as the enduring model in the industry, implying that the transition from "multi" to "many" will happen rather quickly. "Eventually, developers realize that the end point is on the other side of a mountain of silicon innovations," he writes. The downside, Ghuloum admits, is that designing an application for manycore is a much bigger undertaking than doing a multicore port.

The latter usually involves just breaking an application into well-defined tasks that can run concurrently. In some cases, this design may naturally be teased out of the existing code framework, where the application's major functions can be logically mapped to independent threads. A trivial example is a transactional app that inputs a data item, processes it, and outputs the transformed result -- and does this over and over. Turning this from a sequential app into one with three threads (Input, Process, Output) that carry out the tasks in parallel is often fairly straightforward. But since the application is now mapped to three cores, taking advantage of a platform with a different core count involves another dive into the application. Not only that, but for most applications there is no clear functional decomposition that can get you to tens or hundreds of cores.

Long-term scalability is easier to achieve with a manycore design mindset up front, since you're forced to deal with the built-in assumption that the ultimate number of cores is not just large, but variable. Ghuloum admits this "usually requires at least some degree of going back to the algorithmic drawing board and rethinking some of the core methods they implement." He continues (and here's the really Unwelcome Advice part): "This also presents the 'opportunity' for a major refactoring of their code base, including changes in languages, libraries, and engineering methodologies and conventions they’ve adhered to for (often) most of the their software’s existence."

Ghuloum kind of glosses over how this might actually be accomplished, but in previous blog entries he has written more extensively about Intel's adventures in fine-grained parallelism and terascale computing in general. In particular, back in January, he wrote about the company's new Ct language, a C/C++ derivative, and offered some detail about how it supports manycore architectures. In a nutshell, Ct supports both data and task parallelism and is designed to tackle fine-grained parallelism in a more generalized way than is currently being done with GPGPU environments like NVIDIA's CUDA or AMD's Brooks+. The Ct runtime insulates the programmer from the underlying hardware, creating and dispatching threads as needed.

Whether anyone will heed Ghuloum's Unwelcome Advice remains to be seen. He correctly notes that the HPC crowd is already on board with the idea of automatic application scaling, but the rest of the industry may be a harder sell. It's hard to imagine that many (non-HPC) legacy codes will migrate to manycore; a lot just don't contain enough inherent parallelism to make the trip worthwhile.

The real potential for manycore architectures and software environments like Ct is that they will provide a platform for much more intelligent (and thus valuable) types of software than exist today -- applications like image-based data miners, personal health agents, and real-time market trade analyzers. (I wrote about how Intel views this application space last year.) If developers see clear monetary opportunities in manycore applications, all advice will be welcomed.

Posted by Michael Feldman - July 2 @ 6:50PM

Discussion

There are 0 discussion items posted.  

Sponsored Links

Michael Feldman

Michael Feldman is the editor of HPCwire.

More Michael Feldman



Recent Comments

Feature Articles

The Linux HPC Empire Strikes Back

While the Microsoft juggernaut has been touting the joys of its new Windows HPC Server 2008, the Linux HPC contingent has been somewhat less vocal of late. But now Red Hat has come up with its version of an integrated cluster solution.
Read More...

Nexsan Looks to Scare Up HPC Customers With Storage Beast

Even though the cost of servers still dominates the datacenter budget, storage is actually on a steeper growth curve. HPC storage, in particular, is being singled out as high-growth opportunity. Vendors are scrambling to keep up.
Read More...

The Week in Review

Google datacenters most energy efficient; Cluster Resources to demo Moab Hybrid Cluster; Red Hat Linux releases HPC distro. John West recaps those stories and more in our weekly wrap-up.
Read More...

Top Headlines

Lustre to Battle Corruption

Oct 07 | GCN.com | Sun Microsystems has been busy building a lot more intelligence into Lustre, a file system used for large-scale cluster computing. Read more...

Oracle and HP's Database Machine Predicated on Voltaire

Oct 06 | The Register | Does the HP Oracle Database Machine represent InfiniBand's big chance to break out its HPC niche? Read more...

3D Imaging Spreads to Fashion and Beyond

Oct 06 | BusinessWeek | A body scan can save a lot of time in the fitting room, and fields from medicine to architecture are adopting 3D computing applications. Read more...

Structural Engineers and Computer Scientists Hope to Integrate Disciplines to 'Revolutionize Building Construction'

Oct 03 | UCSD News | Despite the evolution of computer science over the past 30 years, structural engineering -- hindered by a reluctance to adapt to digital innovations -- has remained relatively unchanged as a discipline. Read more...

Credit Crisis Spreads a Pall Over Silicon Valley

Oct 02 | New York Times | Silcon Valley is starting to feel the effects of the credit crunch. Read more...

Featured Whitepapers

Panasas® Tiered Parity™ Architecture

Sep 04 | | Disk drives are approximately 250 times denser today than a decade ago. This is good news for users who are creating, manipulating and storing more data than ever before. It gives them an opportunity to derive more value from their stored data and lowers the capital acquisition and operating expense associated with that data.

Multimedia

Video White Paper: Architecting a Better Network Storage Solution

BlueArc's Titan architecture represents an evolutionary step in file servers by creating a hardware-based file system that can scale bandwidth, IOPS, and overall data capacity well beyond conventional software-based devices. With its ability to virtualize a massive storage pool of up to four usable petabytes of tiered storage, Titan can scale with growing data requirements, offering a competitive advantage for businesses, researchers, or other enterprises seeking to better manage data growth while still ensuring optimal performance.

Blogs by Topics

Blogs by Author

HPC Blogroll

Featured Events

LCI Workshop
SIFMA
HP-CAST
2008 Virtualization Conference & Expo
Symposium 2009