I lead development of
an open-source compiler for Parallel ML which extends Standard ML with
fork-join parallelism. The
mpl compiler generates executables
with excellent multicore runtime performance. At Carnegie Mellon University,
we are using
mpl to help teach parallel programming to over 500
students each year.
Check out the project on GitHub or try it out now with Docker:
$ docker pull shwestrick/mpl $ docker run -it shwestrick/mpl /bin/bash ...# examples/bin/primes @mpl procs 4 --
Brief Announcement: Parallel Dynamic Tree Contraction via
Umut A. Acar, Vitaly Aksenov, and Sam Westrick.
I'm fortunate to have worked with all sorts of incredible people, including Umut Acar, Guy Blelloch, Matthew Fluet, Stefan Muller, Stephanie Balzer, Daniel Anderson, Laxman Dhulipala, Mike Rainey, Rohan Yadav, Jatin Arora, Ram Raghunathan, Adrien Guatto, Yue Yao, Lawrence Wang, Yue Niu, and many others.
Disentanglement in Nested-Parallel Programs
POPL, January 2020
[video] [abstract] [slides]
Efficient Parallel Functional Programming with
Hierarchical Memory Management
RIT, June 2019
I have been a teaching assistant for the following courses at Carnegie Mellon: