<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
<span style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px; background-color: rgb(255, 255, 255);" class="">This
 is an announcement of Adrian Lehmann's MS Presentation</span><br aria-hidden="true" style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px;" class="">
<span style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px; background-color: rgb(255, 255, 255);" class="">===============================================</span><br aria-hidden="true" style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px;" class="">
<span style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px; background-color: rgb(255, 255, 255);" class="">Candidate:
 Adrian Lehmann</span><br aria-hidden="true" style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px;" class="">
<br aria-hidden="true" style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px;" class="">
<span style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px; background-color: rgb(255, 255, 255);" class="">Date:
 Friday, March 31, 2023</span><br aria-hidden="true" style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px;" class="">
<br aria-hidden="true" style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px;" class="">
<span style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px; background-color: rgb(255, 255, 255);" class="">Time: 
 2 pm CST</span><br aria-hidden="true" style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px;" class="">
<br aria-hidden="true" style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px;" class="">
<span style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px; background-color: rgb(255, 255, 255);" class="">Location:
 JCL 390</span><br aria-hidden="true" style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px;" class="">
<br aria-hidden="true" style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px;" class="">
<span style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px; background-color: rgb(255, 255, 255);" class="">M.S.
 Paper Title: Automatically parallelizing Diderot programs on CUDA targets</span><br aria-hidden="true" style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px;" class="">
<br aria-hidden="true" style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px;" class="">
<span style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px; background-color: rgb(255, 255, 255);" class="">Abstract:
 Diderot is a domain-specific language to perform scientific visualizations. </span><br aria-hidden="true" style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px;" class="">
<span style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px; background-color: rgb(255, 255, 255);" class="">Its
 programs are structured largely like bulk-synchronous parallelism. In this pattern, multiple strands (often also called treads) run one update step in isolation, followed by a single global reduction step (similar to MapReduce).</span><br aria-hidden="true" style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px;" class="">
<span style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px; background-color: rgb(255, 255, 255);" class="">Currently,
 a compiler exists that transforms Diderot programs, along with the domain-specific operations, into C++.</span><br aria-hidden="true" style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px;" class="">
<span style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px; background-color: rgb(255, 255, 255);" class="">The
 compiler supports targeting both sequential and parallel CPU execution models.</span><br aria-hidden="true" style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px;" class="">
<span style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px; background-color: rgb(255, 255, 255);" class="">However,
 given the programming model's parallel nature, adding GPU support to Diderot's compiler is a natural step.</span><br aria-hidden="true" style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px;" class="">
<br aria-hidden="true" style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px;" class="">
<span style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px; background-color: rgb(255, 255, 255);" class="">Our
 work fills this gap. </span><br aria-hidden="true" style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px;" class="">
<span style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px; background-color: rgb(255, 255, 255);" class="">We
 add support for automatically parallelizing Diderot applications by modifying the compiler to be able to generate CUDA code. </span><br aria-hidden="true" style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px;" class="">
<span style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px; background-color: rgb(255, 255, 255);" class="">We
 propose three strategies to schedule CUDA threads.</span><br aria-hidden="true" style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px;" class="">
<span style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px; background-color: rgb(255, 255, 255);" class="">One
 that closely follows the BSP model, one that runs strands to completion (assuming no reduction steps are needed), and one that builds on a work queue.</span><br aria-hidden="true" style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px;" class="">
<span style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px; background-color: rgb(255, 255, 255);" class="">We
 also propose a permutation mechanism for stochastic load distribution to mitigate strand divergence.</span><br aria-hidden="true" style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px;" class="">
<span style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px; background-color: rgb(255, 255, 255);" class="">We
 also create variants that utilize CUDA unified memory, an API to move memory pages between system and GPU memory.</span><br aria-hidden="true" style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px;" class="">
<br aria-hidden="true" style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px;" class="">
<span style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px; background-color: rgb(255, 255, 255);" class="">In
 benchmarks, we see speedups of 60-500x, where the queue-based approach outperforms other approaches.</span><br aria-hidden="true" style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px;" class="">
<span style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px; background-color: rgb(255, 255, 255);" class="">Further,
 we see differences in the performance of our approaches between benchmarks.</span><br aria-hidden="true" style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px;" class="">
<span style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px; background-color: rgb(255, 255, 255);" class="">We
 observe that permutation performance is highly dependent on the benchmark structure and the homogeneity of strand execution.</span><br aria-hidden="true" style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px;" class="">
<span style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px; background-color: rgb(255, 255, 255);" class="">Furthermore,
 we conclude that in our test, CUDA unified memory leads to a significant performance penalty for benchmarks with fewer strands while greatly simplifying the produced code.</span><br aria-hidden="true" style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px;" class="">
<br aria-hidden="true" style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px;" class="">
<span style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px; background-color: rgb(255, 255, 255);" class="">Advisors:
 John Reppy</span><br aria-hidden="true" style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px;" class="">
<br aria-hidden="true" style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px;" class="">
<span style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px; background-color: rgb(255, 255, 255);" class="">Committee
 Members: John Reppy, Hank Hoffmann, and Ravi Chugh</span><br aria-hidden="true" style="caret-color: rgb(36, 36, 36); color: rgb(36, 36, 36); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.666666984558105px;" class="">
</body>
</html>