Charles E. Leiserson Massachusettes Institute of Technology
Adaptively parallel programs can grow and shrink depending upon the availability of processor resources. Adaptive parallelism creates a host of system issues, especially if we want to insulate the programmer from the vagaries of his computing environment. How should adaptively parallel file I/O be specified by a programmer and implemented by the system? By what mechanisms should adaptively parallel processes communicate, and how should this communication be specified linguistically? How can multiple adaptively parallel processes be scheduled fairly and efficiently? What performance guarantees can adaptively parallel system mechanisms provide? How should adaptively parallel codes be debugged? This research investigates both empirical and theoretical answers to these questions.
The Cape system will provide a prototype implementation of a computing environment for adaptively parallel multithreaded programs. Cape will leverage the multithreaded programming system provided by Cilk, a faithful extension of the C programming language, which has been developed at MIT. Cape will allow Cilk programs to run in an adaptively parallel fashion transparently without any programmer intervention. Cape will incorporate provably good algorithms for scheduling, file I/O, and interprocess communication, providing theoretical guarantees of efficiency.
An adaptively parallel multithreaded computing environment will enable flexible and irregular applications to fully exploit the next generation of computer systems.