English
Related papers

Related papers: Session-Based Programming for Parallel Algorithms:…

200 papers

We build on a fine-grained analysis of session-based interaction as provided by the linear logic typing disciplines to introduce the SAM, an abstract machine for mechanically executing session-typed processes. A remarkable feature of the…

Programming Languages · Computer Science 2024-01-22 Luís Caires , Bernardo Toninho

Making threaded programs safe and easy to reason about is one of the chief difficulties in modern programming. This work provides an efficient execution model for SCOOP, a concurrency approach that provides not only data race freedom but…

Distributed, Parallel, and Cluster Computing · Computer Science 2015-07-28 Scott West , Sebastian Nanz , Bertrand Meyer

Evaluating how well a whole system or set of subsystems performs is one of the primary objectives of performance testing. We can tell via performance assessment if the architecture implementation meets the design objectives. Performance…

Distributed, Parallel, and Cluster Computing · Computer Science 2022-09-15 Donald Ene Vincent Ike Anireh

The large variety of production implementations of the message passing interface (MPI) each provide unique and varying underlying algorithms. Each emerging supercomputer supports one or a small number of system MPI installations, tuned for…

Distributed, Parallel, and Cluster Computing · Computer Science 2023-09-15 Amanda Bienz , Derek Schafer , Anthony Skjellum

Message aggregation is often used with a goal to reduce communication cost in HPC applications. The difference in the order of overhead of sending a message and cost of per byte transferred motivates the need for message aggregation, for…

Distributed, Parallel, and Cluster Computing · Computer Science 2024-11-07 Kavitha Chandrasekar , Laxmikant Kale

This paper presents a comprehensive comparison of three dominant parallel programming models in High Performance Computing (HPC): Message Passing Interface (MPI), Open Multi-Processing (OpenMP), and Compute Unified Device Architecture…

Distributed, Parallel, and Cluster Computing · Computer Science 2025-06-19 Nizar ALHafez , Ahmad Kurdi

Asynchronous programming has appeared as a programming style that overcomes undesired properties of concurrent programming. Typically in asynchronous models of programming, methods are posted into a post list for latter execution. The order…

Programming Languages · Computer Science 2015-01-06 Mohamed A. El-Zawawy

For several decades, the CPU has been the standard model to use in the majority of computing. While the CPU does excel in some areas, heterogeneous computing, such as reconfigurable hardware, is showing increasing potential in areas like…

Hardware Architecture · Computer Science 2021-04-21 Carl-Johannes Johnsen , Alberte Thegler , Kenneth Skovhede , Brian Vinter

The increasing complexity of HPC architectures and the growing adoption of irregular scientific algorithms demand efficient support for asynchronous, multithreaded communication. This need is especially pronounced with Asynchronous…

Distributed, Parallel, and Cluster Computing · Computer Science 2025-08-27 Jiakun Yan , Marc Snir , Yanfei Guo

Scale-out parallel processing based on MPI is a 25-year-old standard with at least another decade of preceding history of enabling technologies in the High Performance Computing community. Newer frameworks such as MapReduce, Hadoop, and…

Distributed, Parallel, and Cluster Computing · Computer Science 2017-07-18 Brandon L. Morris , Anthony Skjellum

This paper improves the session typing theory to support the modelling and verification of processes that implement federated learning protocols. To this end, we build upon the asynchronous ``bottom-up'' session typing approach by adding…

Logic in Computer Science · Computer Science 2026-03-27 Ivan Prokić , Simona Prokić , Silvia Ghilezan , Alceste Scalas , Nobuko Yoshida

In mainstream programming languages such as Java, a common way to enable concurrency is to manually introduce explicit concurrency constructs such as multi-threading. In multi-threaded programs, managing synchronization between threads is a…

Software Engineering · Computer Science 2019-08-01 Ayesha Sadiq , Yuan-Fang Li , Li Li , Sea Ling , Ijaz Ahmed

In some models of parallel computation, jobs are split into smaller tasks and can be executed completely asynchronously. In other situations the parallel tasks have constraints that require them to synchronize their start and possibly…

Distributed, Parallel, and Cluster Computing · Computer Science 2025-12-17 Brenton Walker , Markus Fidler

Writing efficient hybrid parallel code is tedious, error-prone, and requires good knowledge of both parallel programming and multithreading such as MPI and OpenMP, resp. Therefore, we present a framework which is based on a job model that…

Distributed, Parallel, and Cluster Computing · Computer Science 2018-07-03 Ralf-Peter Mundani , Marko Ljucović , Ernst Rank

We introduce process-oriented programming as a natural extension of object-oriented programming for parallel computing. It is based on the observation that every class of an object-oriented language can be instantiated as a process,…

Programming Languages · Computer Science 2014-07-22 Edward Givelberg

Asynchronous programming models (APM) are gaining more and more traction, allowing applications to expose the available concurrency to a runtime system tasked with coordinating the execution. While MPI has long provided support for…

Distributed, Parallel, and Cluster Computing · Computer Science 2021-12-23 Joseph Schuchart , Philipp Samfass , Christoph Niethammer , José Gracia , George Bosilca

Much of the software we use in everyday life consists of distributed components (running on separate cores or even computers) that collaborate through communication (by exchanging messages). It is crucial to develop robust methods that can…

Logic in Computer Science · Computer Science 2024-03-04 Bas van den Heuvel

On the way to Exascale, programmers face the increasing challenge of having to support multiple hardware architectures from the same code base. At the same time, portability of code and performance are increasingly difficult to achieve as…

Distributed, Parallel, and Cluster Computing · Computer Science 2022-06-14 Thomas Heller , Hartmut Kaiser , Patrick Diehl , Dietmar Fey , Marc Alexander Schweitzer

We strive to use session type technology to prove behavioural properties of fault-tolerant distributed algorithms. Session types are designed to abstractly capture the structure of (even multi-party) communication protocols. The goal of…

Logic in Computer Science · Computer Science 2017-05-05 Manuel Adameit , Kirstin Peters , Uwe Nestmann

Multiparty session types are designed to abstractly capture the structure of communication protocols and verify behavioural properties. One important such property is progress, i.e., the absence of deadlock. Distributed algorithms often…

Logic in Computer Science · Computer Science 2024-02-14 Kirstin Peters , Uwe Nestmann , Christoph Wagner