Sam Westrick

swestricgood luck

GHC 9219
Computer Science Department
Carnegie Mellon University
Pittsburgh, PA

I am a Ph.D. student at Carnegie Mellon University, advised by Umut Acar. My research focuses on parallel algorithms and programming languages. Check out my blog!


I lead development of mpl ("maple"), 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 --


Provably Space-Efficient Parallel Functional Programming
Jatin Arora, Sam Westrick, and Umut A. Acar.
POPL 2021.
[pdf] [abstract]

Parallel Batch-Dynamic Trees via Change Propagation
Umut A. Acar, Daniel Anderson, Guy E. Blelloch, Laxman Dhulipala, and Sam Westrick.
ESA 2020.
[pdf] [info] [abstract]

Disentanglement in Nested-Parallel Programs
Sam Westrick, Rohan Yadav, Matthew Fluet, and Umut A. Acar.
POPL 2020.
[pdf] [info] [abstract]

Fairness in Responsive Parallelism
Stefan K. Muller, Sam Westrick, and Umut A. Acar.
ICFP 2019.
[pdf] [info]

Hierarchical Memory Management for Mutable State
Adrien Guatto, Sam Westrick, Ram Raghunathan, Umut A. Acar, and Matthew Fluet.
PPoPP 2018.
[pdf] [info] [arxiv]

Brief Announcement: Parallel Dynamic Tree Contraction via Self-Adjusting Computation
Umut A. Acar, Vitaly Aksenov, and Sam Westrick.
SPAA 2017.


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.



I have been a teaching assistant for the following courses at Carnegie Mellon: