The widespread availability of large multicore computers in the cloud has given engineers and scientists unprecedented access to large computing platforms. Traditionally, high-end computing solutions have been developed and used by only a small community, as these solutions rely on expensive and specialized computing environments. The emergence of large-scale cloud computing providers, however, has democratized access to large-scale (although not necessarily HPC-scale) computing power, which can now be rented on-demand with just a credit card.
The complexity of parallel programming, however, has made it more difficult for even expert programmers to develop high-quality multicore software systems. For average programmers, developing parallel programs that are debuggable, correct, and performant is a daunting challenge. This thesis is concerned with the development of programming technologies that reduce the complexity of parallel programming to make it easier for average programmers to exploit the capabilities of multicore hardware.
I contend that realizing the full potential of the multicore revolution requires the development of programming technologies that make it easier to write quality code --- code that has a simple understandable structure and performs well in practice. I use the term programming technologies broadly: these include parallel algorithms, data structures, optimization techniques, and profiling tools.
Along these ends, this thesis presents 8 artifacts that advance the state-of-the-art in the domains of parallel algorithms, systems for scientific computing, and tools for optimizing application-specific performance objectives beyond runtime. Although the emphasis and domain of these artifacts vary, they each involve a discovery of a way to tame complexity in software systems without compromising, in fact, usually enhancing, its theoretical guarantees and real-world performance.
Thesis Supervisor: Prof. Charles Leiserson
To attend this defense, please contact the doctoral candidate at tfk at mit dot edu