Sam Westrick

swgoodestric (luck@) cs (.) crobotsmu (.) edu

GHC 9116
Computer Science Department
Carnegie Mellon University
Pittsburgh, PA

I am a post-doc at Carnegie Mellon University, working with Umut Acar on parallel programming languages and parallel algorithms. Check out my blog, and come find me elsewhere on the web: Mastodon, Twitter, GitHub.

News: We have two papers accepted at POPL'24! See paper list below.

News: I am the 2023 recipient of the SIGPLAN Reynolds Doctoral Dissertation Award.

News: On August 12th, 2022, I successfully defended my Ph.D. thesis.

MPL

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 performance, in terms of both space and time. 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 --

Ph.D. Thesis

(John C. Reynolds Doctoral Dissertation Award) Efficient and Scalable Parallel Functional Programming Through Disentanglement
Sam Westrick.
Carnegie Mellon University, August 2022.
[pdf] [abstract] [award info]

Publications

Automatic Parallelism Management
Sam Westrick, Matthew Fluet, Mike Rainey, and Umut A. Acar.
POPL 2024.
[pdf] [abstract]

DisLog: A Separation Logic for Disentanglement
Alexandre Moine, Sam Westrick, and Stephanie Balzer.
POPL 2024.
[pdf] [abstract]

Efficient Parallel Functional Programming with Effects
Jatin Arora, Sam Westrick, and Umut A. Acar.
PLDI 2023.
[pdf] [abstract] [dl.acm]

WARDen: Specializing Cache Coherence for High-Level Parallel Languages
Michael Wilkins, Sam Westrick, Vijay Kandiah, Alex Bernat, Brian Suchy, Enrico Armenio Deiana, Simone Campanoni, Umut A. Acar, Peter Dinda, and Nikos Hardavellas.
CGO 2023.
[abstract] [dl.acm]

(Distinguished Paper)
Entanglement Detection With Near-Zero Cost
Sam Westrick, Jatin Arora, and Umut A. Acar.
ICFP 2022.
[pdf] [abstract] [dl.acm]

Parallel Block-Delayed Sequences
Sam Westrick, Mike Rainey, Daniel Anderson, and Guy E. Blelloch.
PPoPP 2022.
[pdf] [abstract] [dl.acm]

(Distinguished Paper)
Provably Space-Efficient Parallel Functional Programming
Jatin Arora, Sam Westrick, and Umut A. Acar.
POPL 2021.
[pdf] [abstract] [dl.acm]

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

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

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

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

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

Preprints

DePa: Simple, Provably Efficient, and Practical Order Maintenance for Task Parallelism
Sam Westrick, Larry Wang, and Umut A. Acar.
2022.
[abstract] [arxiv]

Talks

Teaching

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

Mentoring

I have had the opportunity to be a mentor for both undergraduate and graduate-level research:

Professional Service

Collaborators

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, Peter Dinda, Nikos Hardavellas, Simone Campanoni, Mike Wilkins, Brian Suchy, Enrico Deiana, Pascal Costanza, Alexandre Moine, Yongshan Ding, and many others.

Other

I've been playing music my whole life, and nearly ended up becoming a professional tuba player. (Here's me in 2013, not long before I switched majors to computer science.)

Nowadays, I like to keep up with music by learning covers (e.g. Dean Town by Vulfpeck), composing (e.g. this and this), and doing other silly stuff.

I wrote the music for Maracaibo Digital, the online version of the Maracaibo board game. Some snippets: 1, 2.

I wrote some of the code (AI for bot opponents, and random board generation) for Hexicon, a mobile word-game.