A Haskell Auto-Parallelizer for Distributed Computing
summary
A Haskell auto-parallelizer prototype parses main to an AST, builds a data-dependency graph and schedules pure-function calls to remote workers over a simple network layer, treating each source line-as-job granularity. Benchmarks on large random matrix multiply/add show coarse-grain tasks approach shared-memory speedups while fine-grain runs collapse from serialization overhead. Current prototype omits monadic side effects, has limited higher-order and no fault tolerance, requires manual serialization/localization interfaces, and suggests binary formats, task coalescing and straggler mitigation as next steps.
AI-written summary · about
chapters (9)
- 0:00Introduction
- 1:51Motivating question
- 3:56Pure functions in Haskell
- 5:43Architecture and data graph
- 7:50Job granularity
- 9:35Limitations
- 10:38Matrix multiplication experiments
- 13:54Future directions
- 14:58Q&A
related talks
01h 07mThe Asynchronous C++ Parallel Programming Model
19mPurrrfectly parallel, purrrfectly distributed
01h 32mDistributed functional programming
03h 42mFull workshop
10mGraph Based Pipeline Parallelism
22mProgramming the worldwide elastic supercomputer with Unison
19mSTRADS-AP: Simplifying Distributed Machine Learning Programming without Introducing a New Programming Model
31mFunction-Passing Style Typed, Distributed Functional Programming
