The Leading Source for Global News and Information Covering the Ecosystem of High Productivity Computing
December 04, 2008
Planning to Scale in a World with Less "Embarrassing Parallelism"
The need to write scalable applications has been important for programmers in the HPC community for years. Now, the proliferation of multi-core processors is making scalability a top priority for millions of programmers. Previously, HPC programs that scaled very well were called "embarrassingly parallel," but it is inevitable that we will increasingly settle for "good enough" parallelism. Any scaling, and a design to keep scaling, will be of paramount importance. Efficient designs will be relatively unimportant if a program cannot scale into the future. "Forward scaling" will become a key part of good program design. Less "embarrassing" parallelism will become the norm for most programmers.
The move to multi-core processors means that all programmers will need to incorporate new techniques to write scalable applications and adopt a new mindset to achieve further gains in application performance. In the past, a poorly written sequential program would still generally speed up as processor clock rates increased. However, we are now faced with the reality that a poorly written concurrent program will generally not speed up as more processor cores become available. Programmers today need to "think parallel" and write parallel programs to harvest the potential of multiple processor cores.
Thinking and writing parallel are not easy feats. As computer science professor Andrew S. Tanenbaum recently observed at the USENIX '08 conference, "Sequential programming is really hard, and parallel programming is a step beyond that." Obviously, we would prefer to not do these difficult tasks over and over again as future-generation architectures are released. Forward scaling offers a means of avoiding much of that repetitive work.
Free lunch, not free beer
As the writer and programmer Herb Sutter announced a few years ago, "The free lunch is over." Programmers can no longer count on the acceleration of their applications along with a continuous rise in clock rates. Is there a new free lunch on the horizon? Clearly programmers want a way to maximize the long-term returns for the time and effort they invest today.
Some have suggested that scaling is the new free lunch. Scaling provides a way to avoid rewriting code and redoing difficult tasks with the release of each new architecture. When our applications are successful at scaling, our software will run well on today's dual- and quad-core processors while also capitalizing on tomorrow's many-core architectures.
Is scaling the new free lunch? It's probably not free in the sense of "free beer" (as Richard Stallman might say). Scaling takes some work. The goal is to make investments today that will continue to pay off in the future.
Forward scaling defined
Forward scaling is an approach to designing software that will deliver outstanding performance on today's multi-core processors and will scale that performance on tomorrow's many-core architectures. The objective of forward scaling is to find techniques that will help avoid a complete code rewrite with the addition of more processor cores. Is this possible? In many cases, it appears so. There is no perfect solution but the options available today can assist a great deal.
Page: 1 of 3(Digg, Technorati, more)
New Paper: Parallel Computing Without Parallel Programming
Learn how domain experts can run VHLL programs like MATLAB® on a variety of high-performance platforms without low-level reprogramming and how to work with the largest datasets and complex algorithms without sacrificing ease of use or reducing productivity.
Jul 09 | Engineer Live | The demand for computational tools to underpin the 3D seismic interpretation process has never been more apparent. Read more...
Jul 08 | EE Times | Unemployment for U.S. engineers has reached record levels, according to government figures. Read more...
Jul 08 | Network World | Global spending for 2009 projected to drop 6 percent, for a total of $3.2 trillion. Read more...
Jul 08 | Linux Magazine | Portability or efficiency? Neither is guaranteed when writing explicit parallel code. Read more...
Jul 07 | Ars Technica | Japanese company builds custom ASIC to accelerate real-time ray traced rendering for the auto industry. Read more...
Jul 10 | | Engineers, scientists, and other domain experts depend on the productivity enabled by very high-level language (VHLL) tools like MATLAB® and Python. However, as datasets grow larger and programs get more sophisticated, ordinary desktop computers can no longer keep up. The paper explores how to run VHLL programs on high-performance platforms without low-level reprogramming. Work with large datasets and complex algorithms without sacrificing ease of use or reducing productivity.
Apr 14 | | Many HPC IT departments are feeling the rising pressure to deliver more capacity computing and performance while trying to reduce the total cost of ownership. This white paper discusses how an environmentally-friendly and open-standards HPC building block based computing system using flexible interconnect options helps address capacity computing needs.
Source: Addison Snell, GM/VP, Tabor Research; sponsored by Dell
Many organizations that could benefit from the use of HPC clusters find that it is complicated to get the systems up and running because of limited IT resources or the complexities of the clusters themselves. Learn how the Intel Cluster Ready program, for which Dell was an original partner, seeks to address this challenge for entry level and mid-range HPC users.
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.
Sun Studio Compilers and Tools and Sun HPC ClusterTools allow you to create high performance parallel applications for OpenSolaris, Solaris and Linux. Sun Studio Express 11/08 includes MPI performance analysis capabilities and full OpenMP 3.0 compiler support. Learn about all this and the latest in Sun HPC ClusterTools 8.1.