Innovation and Commoditization in High Performance Computing
Consumer-product giants like Kraft or Procter & Gamble have to compete with cheap knock-offs under a retailer’s own brand. How they accomplish this is by developing a new product that does a better job of solving a customer’s need. “Better” can include safer, more effective, and easier to use.
That a pioneering work is copied is not lamentable. A dropping price means both greater accessibility and the incentive for greater creativity. Innovation and commoditization are complementary. If the former is a path, then the latter are its endpoints. An existing commodity product sets the starting location for the innovator’s journey that eventually leads to new products to commoditize.
Consider the x86 CPU. While Intel tried to disown its child by working on Itanium, AMD enhanced the x86 with 64-bit extensions, low power consumption, and multi-core architectures. AMD started with an existing commodity product, innovated, and created what has ultimately become a new commodity product.
To be precise, it’s not the x86 CPU that was important, but rather a CPU that can execute x86 instructions quickly. In creating a new instruction set, Intel required their customers to spend the time and money to port legacy systems to Itanium. AMD’s customers, meanwhile, were able to leverage their existing infrastructure more effectively. In essence, AMD followed the mantra of scientific discovery by standing on the shoulders of a giant. Building over an established baseline is a key factor for success.
Corporations often attempt to create an atmosphere of innovation. Common approaches include “skunk works” that bring A-list people together to work with minimal oversight, or “twenty-percent time” in which employees devote one day each week to a pet project. But more technologically advanced does not always mean better. Different does not equal useful. Innovation is only useful if it solves a problem.
HPC customers require a number of fast processors, a solid operating system, and a robust network. Linux Networx gives customers exactly this by integrating commodity components. In a way, they are doing for HPC today what Dell did for the PC twenty years ago. Compare that approach to Cray’s insistence on building their own network, among other components. Even Apple realized the error of their way and are now using the x86 with an open source kernel.
The Software Component
Certainly in the high-end server market open source operating systems are taking the stage. With its significantly lower cost of adoption, Linux has become a central component for many vendors. Compare that adoption trend to Solaris after the dot-com bust; Solaris finally became open source after Sun lost market share.
The interesting thing about open source software is that technically savvy users may also act as contributors, hence the abundance of open source technical computing tools. Challenges within a user’s domain thus subsequently drive the innovation of HPC software. This principle has led to a curious result in that end users are programming with MPI.
MPI was intended for software engineers. Technical computing customers without a background in computer science would be better served with a tool like MATLAB or Mathematica. Indeed, both of these now feature add-ons for parallel computing. Of special interest is interactive parallel computing, such as with Star-P or even Excel Services.
These commercial applications bring back the price issue. Traditional software licenses charge per node or CPU, which makes the applications inaccessible to some users. A better solution, one that is now available for enterprise computing customers, is the “software-as-a-service” paradigm. It seems feasible that ANSYS could make Fluent and LS-DYNA available on demand, in which customers rent time on a centrally managed cluster. (Note that this model is different from “grid computing,” which is a sharing model and usually only encompasses the underlying systems.)
How to Actually Make Money
Given that successful technology leads towards commoditization, the services business model certainly looks like an appealing strategy. IBM derives more than half of its revenue from consulting and related activities. RedHat exists to offer support for open source software. While this model is increasingly common, it is not the only — nor always the best — one available.
Another possible business strategy is to sell the essential component for a commodity product. Mellanox produces silicon for InfiniBand vendors, whereas Microsoft makes an operating system for PC manufacturers. Both companies were able to ensure the importance of their unique platforms by embracing developers and thereby creating an ecosystem of applications. The consequence of legacy leads to a “competitive moat” in which these companies are protected from rivals.
A third approach is to become a standout integrator of commodity components. Rackable Systems was able to grow in the wake of the dot-com bust under this model. The integration community has a number of their own innovations, such as blades, which reduce resource requirements, and the “personal supercomputer,” which is an easy-to-mange cluster-in-a-box.1
The fourth and most generic method is to innovate over the commodity component. For example, network vendors will only stay in business if they acknowledge the ubiquity of Ethernet, Sockets and TCP/IP. The OpenFabrics Alliance pushes iWARP, while Myricom and Quadrics have both released “10G” products. Compare those to the financial disaster from Dolphin’s SCI network.
Similarly, creating co-processors for existing processors can be a workable strategy. ClearSpeed’s CSX600 and IBM’s Cell-BE both compliment existing chips by adding more number-crunching capacity. Likewise, GPUs and FPGAs permit additional capabilities, especially with stream programming and electronic system-level tools respectively.
Instead of creating co-processors, it is possible to enhance the CPU and processor themselves. Recent strategies for this include virtualization extensions and multi-core architectures.2 All of these examples are innovations over the commodity component.
Observe the Old and Ring in the New
Many of the above cited cases were far from state-of-the-art. A successful venture needs to be useful, not just technologically advanced. Introducing anything new to the market carries with it risks, but building on an established base is a sure way to hedge the bets.
After studying Toyota’s processes, Matthew E. May described the carmaker’s mantra as “no best, only better.” By this, he meant that perfection can be pursued but never obtained. Toyota follows a path of gradual improvement to solve a particular need.
HPC vendors must look for opportunities of both innovation and commoditization if for no other reason than that the customer requires such.
1 It seems feasible that technical computing customers will one day do their work interactively on a desktop machine while intense number crunching is offloaded transparently to the department’s personal supercomputer. That, or offloaded to the application vendor’s own cluster for rent under a service agreement. Any entrepreneur looking for an idea may wish to investigate such a scenario.
2 Of course, massively multi-core chips and numerous co-processors lead to the potential for bus saturation. The solution to this is not to have a bus at all, but rather to embrace a direct-connect architecture. That is, to forgo SMP for NUMA. Because ccNUMAs present data-partitioning issues, naive shared-memory programming will prohibit best possible performance. Any student looking for a project may wish to investigate the partitioned global address space model of programming on massively multi-core processors.
Christopher C. Aycock is wrapping up his PhD from Oxford University, where his thesis topic is in communications programming paradigms for high-performance networks. He can be reached via firstname.lastname@example.org.