Cilkmem: Algorithms for Analyzing the Memory High-Water Mark of Fork-Join Parallel Programs
Tim Kaler, William Kuszmaul, Tao B. Schardl, Daniele Vettorel

TL;DR
Cilkmem is a tool that analyzes deterministic Cilk programs to determine their worst-case memory usage across all parallel executions, employing new algorithms that are efficient and reveal hidden memory issues.
Contribution
The paper introduces Cilkmem, a novel tool with two algorithms for accurately and efficiently computing the memory high-water mark in fork-join parallel programs.
Findings
Cilkmem's exact algorithm has a 1.54x overhead on average for 128 processors.
The approximation algorithm has a 1.36x overhead, independent of processor count.
Cilkmem identified a previously unknown memory issue in a large image-alignment program.
Abstract
Software engineers designing recursive fork-join programs destined to run on massively parallel computing systems must be cognizant of how their program's memory requirements scale in a many-processor execution. Although tools exist for measuring memory usage during one particular execution of a parallel program, such tools cannot bound the worst-case memory usage over all possible parallel executions. This paper introduces Cilkmem, a tool that analyzes the execution of a deterministic Cilk program to determine its -processor memory high-water mark (MHWM), which is the worst-case memory usage of the program over \emph{all possible} -processor executions. Cilkmem employs two new algorithms for computing the -processor MHWM. The first algorithm calculates the exact -processor MHWM in time, where is the total work of the program. The second algorithm…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Optimization and Search Problems · Distributed systems and fault tolerance
