Disentanglement: Provably Efficient Parallel Functional Programming
, Carnegie Mellon University
Date: Wednesday, March 10, 2021
Time: 3:00 PM to 4:00 PM Note: all times are in the Eastern Time Zone
Location: https://mit.zoom.us/meeting/register/tJUrdOqopj8uHdO4gUyVMnfglOFEqIye_Je0 (Registration required, if you haven't registered for this series before)
Event Type: Seminar
Host: Julian Shun, MIT CSAIL
Contact: Julian Shun, email@example.com
Speaker URL: http://www.cs.cmu.edu/~swestric/
firstname.lastname@example.org, email@example.com, firstname.lastname@example.org, email@example.com
TALK: Disentanglement: Provably Efficient Parallel Functional Programming
Researchers have argued for decades that functional programming can greatly simplify writing parallel programs, for example by controlling side-effects and avoiding race-conditions. However, parallel functional programs have historically performed poorly in comparison to their imperative counterparts. The primary reason is that functional programs allocate memory at a high rate, which only grows with parallelism, causing traditional memory management techniques to buckle under the increased demand for memory.
In this talk, I identify a memory property called disentanglement and show that it emerges naturally in race-free parallel programs. To exploit disentanglement for improved efficiency, I describe how to integrate memory management with thread scheduling, ultimately enabling each processor to allocate memory and perform GC independently and in parallel. This approach yields a provably efficient GC policy: for any race-free program with R* sequential live memory, execution on P processors with GC requires O(P R*) memory in total, and only O(P R*) additional work. We implemented these techniques in the MPL compiler, and our experimental results show good performance and scalability. With respect to a sequential baseline, MPL uses only 1-5x additional memory while obtaining 12-51x speedup on 70 cores. In a small sorting competition, MPL is 50% faster than Go and nearly 2x faster than Java while using comparable space.
Sam Westrick is a PhD student at Carnegie Mellon University, advised by Umut Acar. His research focuses on developing provably efficient and practical implementation techniques for parallel programming languages. He is the lead developer of the MPL compiler for Parallel ML, which is currently being used at CMU to help teach parallel programming to 500+ students every year.
IMPORTANT NOTE FOR ATTENDEES: If you have already registered for the Fast Code Seminars on Zoom since July 27, 2020, please use the Zoom link that you have received. This link will stay the same for subsequent Fast Code seminars this semester. Zoom does not recognize a second registration, and will not send out the link a second time. If you have any problems with registration, please contact firstname.lastname@example.org by 1:30pm on the day of the seminar, so that we can try to resolve it before the seminar begins.
Algorithms & Theory, Programming Languages & Software
Created by Julian J. Shun at Wednesday, March 03, 2021 at 8:30 PM.