EVENT DETAILS
Modern hardware is parallel and is increasingly relying on parallel programming to achieve
both performance and energy efficiency. However, today's parallel programming places a disproportionate burden on developers, requiring them to design and fine-tune parallel execution strategies across diverse hardware platforms and varying program inputs. I postulate that optimizing compilers can relieve developers from this burden by automatically reasoning about parallel execution strategies while also enforcing correctness properties. Achieving high parallel performance across modern hardware requires selecting an effective parallel execution plan, including how and where parallelism should be expressed and implemented. To automate this selection process, I introduce the Parallel-Semantics Program Dependence Graph (PS-PDG), a compiler abstraction
that captures developer-encoded parallel semantics alongside compiler-derived analysis. PS-PDG
enables compilers to override suboptimal execution plans with superior alternatives. While static
execution-plan selection is effective for regular workloads, irregular and input-sensitive applica
tions require runtime adaptation of parallel granularity. To address this challenge, I introduce the
Heartbeat Compiler (HBC), a compilation system that automatically translates high-level fork
join parallelism into binaries capable of dynamically controlling task granularity through heartbeat
scheduling to eliminate the need for manual task-size tuning. Beyond performance, parallel C++
applications also face severe memory-safety risks arising from operations on data collections, in
cluding iterator invalidation. These bugs are difficult for existing tools to detect precisely and
become even harder to diagnose under nondeterministic thread interleavings. To address this chal
lenge, I introduce Ledger, a data collection-oriented static analyzer that provides high-precision
detection of invalidation vulnerabilities in programs that operate on complex data collections.
TIME Wednesday June 3, 2026 at 2:00 PM - 4:00 PM
LOCATION mudd 3501, Mudd Hall ( formerly Seeley G. Mudd Library) map it
ADD TO CALENDAR&group= echo $value['group_name']; ?>&location= echo htmlentities($value['location']); ?>&pipurl= echo $value['ppurl']; ?>" class="button_outlook_export">
CONTACT Jensen Smith jensen.smith@northwestern.edu
CALENDAR Department of Computer Science (CS)