David I. August
Professor in the Department of Computer Science, Princeton University
Visiting Professor in the Department of Electrical Engineering, Columbia University
Affiliated with the Department of Electrical Engineering, Princeton University
Ph.D. May 2000, Department of Electrical and Computer Engineering, University of Illinois at Urbana-Champaign

Office: Computer Science Building Room 209
Email: august@princeton.edu
Phone: (609) 258-2085
Fax: (609) 964-1699


Front Page Publication List (with stats) Curriculum Vitae (PDF) The Liberty Research Group

NOTE:

Please beware of the "Princeton University - Part-Time Research Job" scam. I am not hiring remote research assistants for the Department of Computer Science. Anyone doing so would use a campus address or phone number. Princeton students, please visit the Phish Bowl before responding to unsolicited communication.

Publications

Parcae: A System for Flexible Parallel Execution [abstract] (PDF)
Arun Raman, Ayal Zaks, Jae W. Lee, and David I. August
Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), June 2012.
Accept Rate: 18% (48/255).

Workload, platform, and available resources constitute a parallel program's execution environment. Most parallelization efforts statically target an anticipated range of environments, but performance generally degrades outside that range. Existing approaches address this problem with dynamic tuning but do not optimize a multiprogrammed system holistically. Further, they either require manual programming effort or are limited to array-based data-parallel programs.

This paper presents Parcae, a generally applicable automatic system for platform-wide dynamic tuning. Parcae includes (i) the Nona compiler, which creates flexible parallel programs whose tasks can be efficiently reconfigured during execution; (ii) the Decima monitor, which measures resource availability and system performance to detect change in the environment; and (iii) the Morta executor, which cuts short the life of executing tasks, replacing them with other functionally equivalent tasks better suited to the current environment. Parallel programs made flexible by Parcae outperform original parallel implementations in many interesting scenarios.