Skip to content

Commit

Permalink
regenerate after: update Dan's talk
Browse files Browse the repository at this point in the history
  • Loading branch information
gshen42 committed Apr 16, 2024
1 parent 5ae0c87 commit 811308d
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 4 deletions.
16 changes: 14 additions & 2 deletions index.xml
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,9 @@
</tr>

<tr>
<td>April 12</td>
<td><a href="#april-12">April 12</a></td>
<td>Dan Plyukhin</td>
<td><em>TBD</em></td>
<td>Ozone: Fully Out-of-Order Choreographies</td>
</tr>

<tr>
Expand Down Expand Up @@ -125,6 +125,18 @@

<p>He is based in the compiler teams at Arm in Cambridge where he assists engineers with finding bugs and deploying automated concurrency testing as part of an EPSRC grant. Luke’s opinions are his own and Arm does not endorse his work.</p>

<h2 id="april-12">April 12</h2>

<p><strong>Speaker:</strong> Dan Plyukhin</p>

<p><strong>Title:</strong> Ozone: Fully Out-of-Order Choreographies</p>

<p><strong>Abstract:</strong> Choreographic programming is a paradigm for writing distributed applications. It allows programmers to write a single program, called a choreography, that can be compiled to generate correct implementations of each process in the application. Although choreographies provide good static guarantees, they can exhibit high latency when messages or processes are delayed. This is because processes in a choreography typically execute in a fixed, deterministic order, and cannot adapt to the order that messages arrive at runtime. In non-choreographic code, programmers can address this problem by allowing processes to execute out of order – for instance by using futures or reactive programming. However, in choreographic code, out-of-order process execution can lead to serious and subtle bugs, called communication integrity violations (CIVs).</p>

<p>In this paper, we develop a model of choreographic programming for out-of-order processes that guarantees absence of CIVs and deadlocks. As an application of our approach, we also introduce an API for safe non-blocking communication via futures in the choreographic programming language Choral. The API allows processes to execute out of order, participate in multiple choreographies concurrently, and to handle unordered or dropped messages as in the UDP transport protocol. We provide an illustrative evaluation of our API, showing that out-of-order execution can reduce latency by overlapping communication with computation.</p>

<p><strong>Bio:</strong> Dan works as a postdoc at the University of Southern Denmark and is receiving his PhD from the University of Illinois at Urbana-Champaign (UIUC). He is the author of the UIGC library for Akka, which provides fault-tolerant resource management for distributed actor systems. Dan’s research focuses on making distributed reactive applications easier to write and reason about.</p>

<hr />

<p><a href="../">Archive</a></p>
Expand Down
16 changes: 14 additions & 2 deletions lsd-seminar/2024sp/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -227,9 +227,9 @@ <h1 itemprop="name">Languages, Systems, and Data Seminar (Spring 2024)</h1>
</tr>

<tr>
<td>April 12</td>
<td><a href="#april-12">April 12</a></td>
<td>Dan Plyukhin</td>
<td><em>TBD</em></td>
<td>Ozone: Fully Out-of-Order Choreographies</td>
</tr>

<tr>
Expand Down Expand Up @@ -306,6 +306,18 @@ <h2 id="april-5">April 5</h2>

<p>He is based in the compiler teams at Arm in Cambridge where he assists engineers with finding bugs and deploying automated concurrency testing as part of an EPSRC grant. Luke&rsquo;s opinions are his own and Arm does not endorse his work.</p>

<h2 id="april-12">April 12</h2>

<p><strong>Speaker:</strong> Dan Plyukhin</p>

<p><strong>Title:</strong> Ozone: Fully Out-of-Order Choreographies</p>

<p><strong>Abstract:</strong> Choreographic programming is a paradigm for writing distributed applications. It allows programmers to write a single program, called a choreography, that can be compiled to generate correct implementations of each process in the application. Although choreographies provide good static guarantees, they can exhibit high latency when messages or processes are delayed. This is because processes in a choreography typically execute in a fixed, deterministic order, and cannot adapt to the order that messages arrive at runtime. In non-choreographic code, programmers can address this problem by allowing processes to execute out of order &ndash; for instance by using futures or reactive programming. However, in choreographic code, out-of-order process execution can lead to serious and subtle bugs, called communication integrity violations (CIVs).</p>

<p>In this paper, we develop a model of choreographic programming for out-of-order processes that guarantees absence of CIVs and deadlocks. As an application of our approach, we also introduce an API for safe non-blocking communication via futures in the choreographic programming language Choral. The API allows processes to execute out of order, participate in multiple choreographies concurrently, and to handle unordered or dropped messages as in the UDP transport protocol. We provide an illustrative evaluation of our API, showing that out-of-order execution can reduce latency by overlapping communication with computation.</p>

<p><strong>Bio:</strong> Dan works as a postdoc at the University of Southern Denmark and is receiving his PhD from the University of Illinois at Urbana-Champaign (UIUC). He is the author of the UIGC library for Akka, which provides fault-tolerant resource management for distributed actor systems. Dan’s research focuses on making distributed reactive applications easier to write and reason about.</p>

<hr />

<p><a href="../">Archive</a></p>
Expand Down
1 change: 1 addition & 0 deletions themes/academic
Submodule academic added at 8d596f

0 comments on commit 811308d

Please sign in to comment.