<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>