In recent years, programming languages have added many syntactic constructs for asynchronous programming. One of the most popular patterns is async/await, which allows programmers to write code using imperative constructs which can be scheduled by an asynchronous runtime.
Dataflow programming languages (such as Hydroflow) offer many opportunities to improve performance with compiler optimizations. However, this programming model remains unfamiliar to developers used to imperative constructs. Existing work has explored the problem of translating between imperative code and dataflow. But much of this work has been focused on optimizations within a synchronous task (e.g. the parallelization of memory operations).
In this abstract, we present a framework mapping direct-style asynchronous functions to dataflow graphs. As a concrete implementation of this framework, we present a compiler which transforms async Rust functions into Hydroflow dataflows. Our approach allows for optimizations across asynchronous tasks (e.g. batching and vectorization).
Thu 23 JanDisplayed time zone: Mountain Time (US & Canada) change
13:20 - 14:40 | |||
13:20 13mTalk | System $F^\omega$ with Coherent Implicit Resolution Student Research Competition Eugene Flesselle EPFL | ||
13:33 13mTalk | Efficient Strong Simulation of High-level Quantum Gates Student Research Competition | ||
13:46 13mTalk | The Store-Order Consistency Testing Problem for C-like Memory Models Student Research Competition Grace Tan National University of Singapore | ||
14:00 13mTalk | Wanco: WebAssembly AOT Compiler that supports Live Migration Student Research Competition Raiki Tamura Kyoto University | ||
14:13 13mTalk | Optimizing Asynchronous Rust with Hydroflow Student Research Competition Ryan Alameddine University of California, Berkeley | ||
14:26 13mTalk | Property Testing Trace Languages Student Research Competition Jed Koh Jin Keat National University of Singapore |