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: 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
Efficient and Scalable Parallel Functional Programming Through Disentanglement
Carnegie Mellon University
August 2022
[pdf]
[abstract]

Publications
(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
-
(Keynote)
Efficient and Scalable Parallel Functional Programming Through Disentanglement
@ ML Workshop, September 2022
[video] [abstract] [slides] -
Entanglement Detection With Near-Zero Cost
@ ICFP, September 2022
[video] [abstract] [slides] -
How to Thrive as a PhD Student
@ PLMW, September 2022
[slides] -
Parallel Block-Delayed Sequences
@ PPoPP, April 2022
[video] [abstract] [slides] -
Efficient and Scalable Parallel Functional Programming Through
Disentanglement
@ Stanford, March 2022
@ Cornell, April 2022
[abstract] [slides] -
Disentanglement: Provably Efficient Parallel Functional Programming
@ MIT Fast Code Seminar, March 2021
[video] [abstract] [slides] -
Disentanglement in Nested-Parallel Programs
@ POPL, January 2020
[video] [abstract] [slides] -
Efficient Parallel Functional Programming with
Hierarchical Memory Management
@ RIT, June 2019
[abstract] [slides] -
Brief Announcement: Parallel Dynamic Tree Contraction via
Self-Adjusting Computation
@ SPAA, July 2017
[abstract] [slides]
Teaching
I have been a teaching assistant for the following courses at Carnegie Mellon:
-
15-210: Parallel and Sequential Data Structures and Algorithms
(Semesters S20, S19, F18, S16, F15, S15, F14, S14, F13) -
15-122: Principles of Imperative Computation
(Summer Sessions N14, M14, N13, M13)
Mentoring
I have had the opportunity to be a mentor for both undergraduate and graduate-level research:
- 2019-2020: Lawrence Wang, undergraduate research
-
2018-2019: Rohan Yadav, undergraduate thesis
(now PhD candidate at Stanford) -
2018-2020: Yue Yao, master's thesis
(now PhD student at CMU) -
2018: Yifan Qiao, CMU Summer research intern
(now PhD student at UCLA)
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, 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'm currently working on writing music for Maracaibo Digital, the online version of the Maracaibo board game. Some sneak peaks: 1, 2.
I wrote some of the code (AI for bot opponents, and random board generation) for Hexicon, a mobile word-game.