ConDRust: Scalable Deterministic Concurrency from Verifiable Rust Programs
SAT/SMT-solvers and model checkers automate formal verification of sequential programs. Formal reasoning about scalable concurrent programs is still manual and requires expert knowledge. But scalability is a fundamental requirement of current and future programs.
Sequential imperative programs compose statements, function/method calls and control flow constructs. Concurrent programming models provide constructs for concurrent composition. Concurrency abstractions such as threads and synchronization primitives such as locks compose the individual parts of a concurrent program that are meant to execute in parallel. We propose to rather compose the individual parts again using sequential composition and compile this sequential composition into a concurrent one. The developer can use existing tools to formally verify the sequential program while the translated concurrent program provides the dearly requested scalability.
Following this insight, we present ConDRust, a new programming model and compiler for Rust programs. The ConDRust compiler translates sequential composition into a concurrent composition based on threads and message-passing channels. During compilation, the compiler preserves the semantics of the sequential program along with much desired properties such as determinism.
Our evaluation shows that our ConDRust compiler generates concurrent deterministic code that can outperform even non-deterministic programs by up to a factor of three for irregular algorithms that are particularly hard to parallelize.
Wed 19 JulDisplayed time zone: Pacific Time (US & Canada) change
15:30 - 17:00 | ECOOP 3: DistributionResearch Papers at Amazon Auditorium (Gates G20) Chair(s): Elisa Gonzalez Boix Vrije Universiteit Brussel | ||
15:30 15mTalk | Synthetic Behavioural Typing: Sound, Regular Multiparty Sessions via Implicit Local Types Research Papers Sung-Shik Jongmans Open University of the Netherlands; CWI, Francisco Ferreira Royal Holloway, University of London DOI | ||
15:45 15mTalk | Asynchronous Multiparty Session Type Implementability is Decidable – Lessons Learned from Message Sequence Charts Research Papers Felix Stutz MPI-SWS DOI | ||
16:00 15mTalk | Dynamically Updatable Multiparty Session Protocols Research Papers DOI | ||
16:15 15mTalk | Designing Asynchronous Multiparty Protocols with Crash-Stop Failures Research Papers Adam D. Barwell University of St Andrews and University of Oxford, Ping Hou University of Oxford, Nobuko Yoshida University of Oxford, Fangyi Zhou Imperial College London DOI Pre-print | ||
16:30 15mTalk | ConDRust: Scalable Deterministic Concurrency from Verifiable Rust Programs Research Papers Felix Suchert Center for Advancing Electronics Dresden, TU Dresden, Lisza Zeidler Composable Operating Systems Group, Barkhausen Institute, Dresden, Jeronimo Castrillon TU Dresden, Germany, Sebastian Ertel Composable Operating Systems Group, Barkhausen Institute, Dresden DOI | ||
16:45 15mTalk | Information Flow Analysis for Detecting Non-Determinism in Blockchain Research Papers Luca Olivieri Ca’ Foscari University of Venice, Vincenzo Arceri University of Parma, Italy, Luca Negrini Ca’ Foscari University of Venice, Corvallis S.r.l., Fabio Tagliaferro CYS4 Srl, Pietro Ferrara Università Ca' Foscari, Venezia, Italy, Agostino Cortesi Università Ca' Foscari Venezia, Fausto Spoto U. Verona DOI |