the zettaflop, the yottaflop and the xeraflop
At a recent industry conference, it was shown that the biggest growth area in computing is HPC, or High Performance Computing. This was surprising, even to those in this field, as it has historically been a fairly small, insular, academic area populated by geeky professors and hard-working grad students, all using Fortran.
But a new phrase has become common, HPCC, or High Performance Commercial Computing. This is an attempt to make a distinction between the academic world and the business world, while still acknowledging their joint interests. But how closely aligned are these two spaces?
From our perspective, not so much. Academics use clusters, running Fortran. A speaker at a Supercomputing conference I attended pounded the lectern and declared, "Fortran is good enough, dammit!" Academics use grad students, who are very smart, are essentially immobile, and are virtually slave labor, and while performance matters to all, academics don't really care how long the overall project takes, as you get 7 years to write your dissertation.
In the commercial space, Java is the most used application language, people are diverse in their abilities, and they cost a lot. Worse yet, if they don't like their situation, they quit and move. And projects have far shorter lifespans -- if the ROI doesn't meet the hurdle rate, the project is killed.
These thoughts were triggered by a New York Times article, Military Supercomputer Sets Record
"Solving that programming problem is important because in just a few years personal computers will have microprocessor chips with dozens or even hundreds of processor cores. The industry is now hunting for new techniques for making use of the new computing power. Some experts, however, are skeptical that the most powerful supercomputers will provide useful examples."
Maybe that skepticism is justified, what do you think??






The robust growth in HPC is not at the Blue Genie side of the business, it is the adoption of small clusters by the mid-market. This mid-market has finally figured out how to use a job scheduler: their design flow contains a step that is effectively rerunning a single job a thousand times with different input data. Most of that mid-market still doesn't use HPC in the sense that they are using a cluster to run one compute intensive job. That is mostly caused by the lack of commercial parallel programs.
The domain expertise needed to write an effective parallel program is beyond most programmers. Particularly for the those markets where insights in numerical properties of the algorithm are important, as in finance, science, and engineering. A mistake in managing round-off error in a option pricing trading system could cost billions. This has been a problem for 40 years and it will not get solved till we can throw away efficiency.
Theo