<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<span class="" 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);">This
 is an announcement of Adrian Lehmann's MS Presentation</span><br aria-hidden="true" class="" 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;">
<span class="" 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);">===============================================</span><br aria-hidden="true" class="" 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;">
<span class="" 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);">Candidate:
 Adrian Lehmann</span><br aria-hidden="true" class="" 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;">
<br aria-hidden="true" class="" 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;">
<span class="" 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);">Date:
 Friday, March 31, 2023</span><br aria-hidden="true" class="" 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;">
<br aria-hidden="true" class="" 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;">
<span class="" 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);">Time: 
 2 pm CST</span><br aria-hidden="true" class="" 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;">
<br aria-hidden="true" class="" 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;">
<span class="" 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);">Location:
 JCL 390</span><br aria-hidden="true" class="" 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;">
<br aria-hidden="true" class="" 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;">
<span class="" 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);">M.S.
 Paper Title: Automatically parallelizing Diderot programs on CUDA targets</span><br aria-hidden="true" class="" 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;">
<br aria-hidden="true" class="" 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;">
<span class="" 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);">Abstract:
 Diderot is a domain-specific language to perform scientific visualizations. </span><br aria-hidden="true" class="" 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;">
<span class="" 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);">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" class="" 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;">
<span class="" 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);">Currently,
 a compiler exists that transforms Diderot programs, along with the domain-specific operations, into C++.</span><br aria-hidden="true" class="" 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;">
<span class="" 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);">The
 compiler supports targeting both sequential and parallel CPU execution models.</span><br aria-hidden="true" class="" 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;">
<span class="" 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);">However,
 given the programming model's parallel nature, adding GPU support to Diderot's compiler is a natural step.</span><br aria-hidden="true" class="" 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;">
<br aria-hidden="true" class="" 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;">
<span class="" 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);">Our
 work fills this gap. </span><br aria-hidden="true" class="" 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;">
<span class="" 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);">We
 add support for automatically parallelizing Diderot applications by modifying the compiler to be able to generate CUDA code. </span><br aria-hidden="true" class="" 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;">
<span class="" 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);">We
 propose three strategies to schedule CUDA threads.</span><br aria-hidden="true" class="" 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;">
<span class="" 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);">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" class="" 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;">
<span class="" 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);">We
 also propose a permutation mechanism for stochastic load distribution to mitigate strand divergence.</span><br aria-hidden="true" class="" 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;">
<span class="" 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);">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" class="" 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;">
<br aria-hidden="true" class="" 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;">
<span class="" 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);">In
 benchmarks, we see speedups of 60-500x, where the queue-based approach outperforms other approaches.</span><br aria-hidden="true" class="" 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;">
<span class="" 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);">Further,
 we see differences in the performance of our approaches between benchmarks.</span><br aria-hidden="true" class="" 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;">
<span class="" 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);">We
 observe that permutation performance is highly dependent on the benchmark structure and the homogeneity of strand execution.</span><br aria-hidden="true" class="" 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;">
<span class="" 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);">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" class="" 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;">
<br aria-hidden="true" class="" 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;">
<span class="" 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);">Advisors:
 John Reppy</span><br aria-hidden="true" class="" 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;">
<br aria-hidden="true" class="" 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;">
<span class="" 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);">Committee
 Members: John Reppy, Hank Hoffmann, and Ravi Chugh</span><br class="">
<div class=""><br class="Apple-interchange-newline">
</div>
<br class="">
</body>
</html>