A few bad ideas on the way to the triumph of parallel computing
Section snippets
Amdahl, the story of a law that gets broken all the time
What is Amdahl’s Law? If half of a computation cannot use even a second processor working in parallel with the first, then, no matter how many processors one employs, the work will take at least half the uniprocessor compute time. If the fraction of work that must be sequential, the Amdahl fraction, is , then the speedup from parallelism cannot be more than .
I do not think Amdahl wrote the law in a paper; rather he gave a talk at the 1967 AFIPS Spring Joint Computer Conference and it was
The dusty deck
Big labs have a big problem: the million lines of industrial-strength Fortran that they use every day to do operational calculations. I imagine the following conversation between a computer vendor’s chief technologist, and the head of software development at a lab or ISV:
Vendor: We are going to develop a computer one billion times more powerful than the one you are using, and it will not cost much more.
Software guy: Yeah, but will we need to rewrite our code?
You bet you will. The good news has
Attached accelerators: Are they the JATO of parallel computing?
This one is less simple. Attached accelerators are not a bad idea. But they have not won big, either. Customization of computer hardware works. A special purpose hardware device (an ASIC, or application-specific integrated circuit) beats any computer hands down in performance per unit cost or power, but it is not actually a computer. FPGA hardware is reconfigurable, and not as efficient as an ASIC, but still beats a general purpose machine. Moving further, machines specialized for scientific
Not-so-bad ideas that did not make it
I discarded a bunch of other ideas in thinking about and planning my talk and this chapter. They are not actually bad ideas, but they have not turned out to be particularly relevant to the job of advancing science through computation. They included the idea of harvesting the cycles of idle workstations — what I call supercomputing by accident; algorithms that are tuned to and exploit the characteristics of the interconnection topology of the machine (they are therefore parochial and are hard to
Truth, good ideas, and why we need to identify the bad ones
We work in a complex field. High performance computing is a science, it is engineering, and it is a business. Businesses may not always tell the truth — or they engage in what Mark Twain called “stretchers”. When they are new, good ideas can look quite similar to bad ideas. David Bailey produced one of the classic papers in high performance computing when he surveyed the many ways that a new, different, possibly immature computing approach can be made to look much better than it really is when
Acknowledgments
Alan Karp and Keshav Pingali read drafts of this chapter and greatly improved it.
Robert Schreiber is a Distinguished Technologist at Hewlett Packard Laboratories. Schreiber’s research spans sequential and parallel algorithms for matrix computation, compiler optimization for parallel languages, and high performance computer design. With Moler and Gilbert, he developed the sparse matrix extension of Matlab. He created the NAS CG parallel benchmark. He was a designer of the High Performance Fortran language. At HP, Rob led the development of PICO, a system for synthesis of
References (7)
- et al.
Scalable iterative solution of sparse linear systems
Parallel Computing
(1994) Validity of the single processor approach to achieving large-scale computing capabilities
Twelve ways to fool the masses when giving performance results on parallel computers
Supercomputing Review
(1991)
Cited by (0)
Robert Schreiber is a Distinguished Technologist at Hewlett Packard Laboratories. Schreiber’s research spans sequential and parallel algorithms for matrix computation, compiler optimization for parallel languages, and high performance computer design. With Moler and Gilbert, he developed the sparse matrix extension of Matlab. He created the NAS CG parallel benchmark. He was a designer of the High Performance Fortran language. At HP, Rob led the development of PICO, a system for synthesis of custom hardware accelerators. His recent work concerns architectural uses of CMOS nanophotonic communication and nonvolatile memory architecture. He is an ACM Fellow, a SIAM Fellow, and was awarded, in 2012, the Career Prize from the SIAM Activity Group in Supercomputing.