The ASC project is a research collaboration between Harvard University and Boston University to create a powerful, practical automatic parallelization runtime.

Traditional automatic parallelization techniques are not keeping pace with the widespread growth in parallelism in computing. ASC is a research project that studies an alternative approach to autoparallelism.

Rather than compiling sequential programs into parallel programs, our approach arises from the simple observation that the execution of a sequential deterministic program on its input data traces out a unique path through the state space of execution. If we could somehow partition that complete path into multiple smaller subpaths, then we could take advantage of all available processors to execute each subpath in parallel.

Of course we cannot in general know this partition ahead of time. However, as execution proceeds we combine the subpaths seen thus far with records of previous execution into updates sent to learning algorithms. The learning algorithms then issue predictions for starting points of future subpaths. From each predicted starting point we optimistically execute forward a short path, placing the result in a large-scale cache memory. The more of these short paths that turn out to be subpaths of the actual complete path, the more automatic parallel speedup we get.

To learn more about these ideas, a good introduction is the RICON '13 talk given by Prof. Margo Seltzer, followed by our short HOTPAR '12 paper that introduces the idea, then our SYSTOR '13 paper that details our large-scale computational cache, and finally our longer ASPLOS '14 paper that presents the complete system in detail.

We have also specialized these ideas to domains with interesting structure not present in the general program execution setting, as in our Speculative Parallel Molecular Dynamics Journal of Chemical Theory and Computation (JCTC) '16 paper and our Speculative Parallel Markov Chain Monte Carlo Uncertainty in Artificial Intelligence (UAI) '14 paper.


Learning Problem

Conference & Journal Publications

Workshop Publications

Technical Notes


This material is based upon work supported by the National Science Foundation under Grant No. CCF-1438983, a Graduate Research Fellowship under Fellow ID 2012116808, CAREER awards under ID CNS-1254029 and CNS-1012798, by the National Institutes of Health under Award Number 1R01LM010213-01, and by a Google Faculty Research Award. This research was awarded resources at the Argonne Leadership Computing Facility under the INCITE program, which is supported by the Office of Science of the U.S. Department of Energy under contract DE-AC02-06CH11357.