Programmers tend to think of parallel programming as a problem of dividing up computation, but often the most difficult part is the placement and movement of data. As machines become more complex and hierarchical, describing what to do with the data is increasingly a first-class programming concern. Legion is a programming model and runtime system for describing hierarchical organizations of both data and computation at an abstract level. A separate mapping interface allows programmers to control how data and computation are placed onto the actual memories and processors of a specific machine. This talk will present the design of Legion, the novel issues that arise in both the design and implementation, and experience with applications.

Bio: Alex Aiken is a Professor and the current Chair of Computer Science at Stanford. Alex received his Bachelors degree in Computer Science and Music from Bowling Green State University in 1983 and his Ph.D. from Cornell University in 1988. Alex was a Research Staff Member at the IBM Almaden Research Center (1988-1993) and a Professor in the EECS department at UC Berkeley (1993-2003) before joining the Stanford faculty in 2003. His research interest is in areas related to programming languages. He is an ACM Fellow, a recipient of Phi Beta Kappa's Teaching Award, and a former National Young Investigator.