With this week's announcement of the reorganization and expansion of Tabor Communications, HPCwire and our sister publication, GRIDtoday, will begin to offer a broader view of the high performance computing and Grid domains, respectively. By recognizing that computing productivity is now the most important aspect in IT, the industry has begun to look at ways to identify it, measure it and improve it. Our new company-wide focus on High Productivity Computing means that HPCwire will be providing news and analysis of the “old” high performance computing community from an expanded perspective.
That's going to make my job a bit more complex. Unlike simple computing metrics like SPEC or Linpack benchmarks; network measurements of bandwidth and latency; or storage measurements of capacity and data transfer rates; productivity is notoriously hard to quantify. It's one of those things that people think “I know it when I see it,” but it's difficult to measure.
The economic definition of productivity is the amount of output created per unit input used. In computing systems, the outputs would be the useful calculations, but the inputs are more numerous and complex. Software development, computers, networks, external storage, energy consumption, physical infrastructure and maintenance define a whole assortment of input parameters. The interaction between all these elements creates a number of challenges. For example, a high performing computer combined with low performing external storage running an I/O-intensive application will probably waste most of its computational speed waiting for disk transfers to complete. Another part of the productivity puzzle is wrapped up in intangibles like the usability of the software development environment. So it's not enough to simply add up the costs of the individual pieces of a system.
Maybe a more useful way to think about computing productivity is as a combination of a system's performance, programmability, portability, reliability, and application workloads. And in fact these are the main criteria that were defined in DARPA's High Performance Productivity Systems (HPCS) program, which is tasked to develop the next-generation petascale computing systems. One of the main goals of this program is to develop technologies that will result in a 10X improvement in productivity. It's generally understood that this is the most important (and ambitious) goal of the program and is significantly more challenging than just achieving peak petaflops.
In the November 2006 issue of CTWatch Quarterly, which was entirely devoted to the issue of high productivity computing, authors Declan Murphy, Thomas Nash and Lawrence Votta, Jr. from Sun Microsystems and Jeremy Kepner from MIT Lincoln Laboratory described a quantitative productivity framework for high performance computing.
In the article titled “A System-wide Productivity Figure of Merit,” the authors summarize the challenge: “Establishing a single, reasonably objective and quantitative framework to compare competing high productivity computing systems has been difficult to accomplish. There are many reasons for this, not the least of which is the inevitable subjective component of the concept of productivity. Compounding the difficulty, there are many elements that make up productivity and these are weighted and interrelated differently in the wide range of contexts into which a computer may be placed.”
By starting with the relationship “productivity = utility/cost” and then decomposing utility into a number of relatively independent factors, the authors construct the framework: “In a well-balanced HPCS, significant costs will be incurred for resources other than just the CPU cycles that dominate thinking in the commodity cluster architectures. In particular, memory and bandwidth resources will have cost as much or more than CPU, and efficient programs and job allocation will have to optimize use of memory and bandwidth resources as much as CPU. Our framework allows for the inclusion of any set of significantly costly resources.”
In another article in the same CTWatch issue titled “Making the Business Case for High Performance Computing: A Benefit-Cost Analysis Methodology,” Suzy Tichenor of the Council on Competitiveness and Albert Reuther from the MIT Lincoln Laboratory developed a model that attempts to predict the return on investment (ROI) of high performance computing using a benefits-cost calculation.
Tichenor and Reuther explain: “Traditionally, HPC systems have been valued according to how fully they are utilized (i.e., the aggregate percentage of time that each of the processors of the HPC system is busy); but this valuation method treats all problems equally and does not give adequate weight to the problems that are most important to the organization. With no ability to properly assess problems having the greatest potential for driving innovation and competitive advantage, organizations risk purchasing inadequate HPC systems or, in some cases, foregoing purchases altogether because they cannot be satisfactorily justified.”
Tichenor and Reuther argue that business HPC adoption is being held back at least in part because end users focus on the costs (easy to measure) rather than the benefits (hard to measure). Certainly the economic case for more widespread use of high performance computing in the private sector would be strengthened if users had some tools to measure HPC value.
The most compelling reason to focus on productivity is to improve it. As we enter the petascale era, the gap between system peak performance and system utilization will continue to widen unless the HPC community starts to design and program these machines rather differently. With computing performance accelerating away from memory bandwidth and multi-core architectures racing ahead of application concurrency, the imbalances that already exist in our terascale systems are going to become even more severe. These escalating problems have been described from different perspectives: as a multi-core crisis, as a datacenter power/cooling crisis, and as a software crisis. But more generally, the current dilemma in high performance computing is a crisis of productivity.
End users will always be interested in the cost-effectiveness of developing, running and maintaining their applications. But this requires more than just studying some bullet points on a marketing brochure detailing gigaflops, gigabytes, and gigabits per second. By recognizing that time-to-market (or time-to-solution), total cost of ownership and ROI are functions of productivity rather than just raw hardware performance, the industry is realizing that a more sophisticated model for evaluating computing systems is going to be required.
As always, comments about HPCwire are welcomed and encouraged. Write to me, Michael Feldman, at [email protected].