I am currently interested in the problem of efficiently implementing high-level data-parallel languages such as NESL on distributed-memory MIMD machines, and hope to propose a thesis on this topic within the next year. The target systems will range from general-purpose workstations connected by Ethernet and a software library such as PVM or MPI, through dedicated clusters with FDDI or ATM interconnects, up to supercomputers such as the CM-5 and Cray T3D. All of these systems are characterized by a message-passing communication system that has a high latency and low bandwidth when compared to the shared memory system of conventional vector supercomputers, and RISC processors whose performance is significantly affected by cache misses. Efficiently implementing a high-level data-parallel language on these systems will require some combination of (at least) instruction fusing, data layout and data communication optimizations, and run-time decisions. I also hope to characterize the different parameters and tradeoffs involved, and target a generalized message-passing system, so that the compiler can be easily ported across a range of machines. This proposed implementation of an optimizing back-end compiler for distributed-memory MIMD machines can be thought of as complementing Jay Sipelstein's work on generalized data-layout optimizations, and Marco Zagha's work on proving that shared-memory vector machines aren't dead.
The paper that best summarizes our work so far is Implementation of a Portable Nested Data-Parallel Language, by Guy E. Blelloch, Siddhartha Chatterjee, Jonathan C. Hardwick, Jay Sipelstein, and Marco Zagha, pp 102-111, in the proceedings of PPoPP 1993 (a longer version is in CMU-CS-93-112). This and other SCANDAL papers can be found via the SCANDAL home page that I maintain on the World-Wide Web.