English
Related papers

Related papers: Libfork: portable continuation-stealing with stack…

200 papers

Approximation via sampling is a widespread technique whenever exact solutions are too expensive. In this paper, we present techniques for an efficient parallelization of adaptive (a. k. a. progressive) sampling algorithms on multi-threaded…

Distributed, Parallel, and Cluster Computing · Computer Science 2019-03-25 Alexander van der Grinten , Eugenio Angriman , Henning Meyerhenke

We study the performance power of software combining in designing persistent algorithms and data structures. We present Bcomb, a new blocking highly-efficient combining protocol, and built upon it to get PBcomb, a persistent version of it…

Distributed, Parallel, and Cluster Computing · Computer Science 2023-02-27 Panagiota Fatourou , Nikolaos D. Kallimanis , Eleftherios Kosmas

Porting applications to new hardware or programming models is a tedious and error prone process. Every help that eases these burdens is saving developer time that can then be invested into the advancement of the application itself instead…

Distributed, Parallel, and Cluster Computing · Computer Science 2016-11-07 Erik Zenker , Benjamin Worpitz , René Widera , Axel Huebl , Guido Juckeland , Andreas Knüpfer , Wolfgang E. Nagel , Michael Bussmann

Many Internet of Things and embedded projects are event-driven, and therefore require asynchronous and concurrent programming. Current proposals for C++20 suggest that coroutines will have native language support. It is timely to survey the…

Software Engineering · Computer Science 2019-06-11 Bruce Belson , Jason Holdsworth , Wei Xiang , Bronson Philippa

It is well known that modern functional programming languages are naturally amenable to parallel programming. Achieving efficient parallelism using functional languages, however, remains difficult. Perhaps the most important reason for this…

Programming Languages · Computer Science 2018-02-20 Adrien Guatto , Sam Westrick , Ram Raghunathan , Umut Acar , Matthew Fluet

Stack Long Short-Term Memory (StackLSTM) is useful for various applications such as parsing and string-to-tree neural machine translation, but it is also known to be notoriously difficult to parallelize for GPU training due to the fact that…

Computation and Language · Computer Science 2019-04-09 Shuoyang Ding , Philipp Koehn

An increasingly large number of HPC systems rely on heterogeneous architectures combining traditional multi-core CPUs with power efficient accelerators. Designing efficient applications for these systems has been troublesome in the past as…

Distributed, Parallel, and Cluster Computing · Computer Science 2017-03-02 E. Calore , A. Gabbana , J. Kraus , S. F. Schifano , R. Tripiccione

Persistent Memory (PM) makes possible recoverable applications that can preserve application progress across system reboots and power failures. Actual recoverability requires careful ordering of cacheline flushes, currently done in two…

Distributed, Parallel, and Cluster Computing · Computer Science 2019-09-02 Swapnil Haria , Mark D. Hill , Michael M. Swift

Recent work showed that compiling functional programs to use dense, serialized memory representations for recursive algebraic datatypes can yield significant constant-factor speedups for sequential programs. But serializing data in a…

Programming Languages · Computer Science 2021-07-02 Chaitanya Koparkar , Mike Rainey , Michael Vollmer , Milind Kulkarni , Ryan R. Newton

Naive backpropagation through time has a memory footprint that grows linearly in the sequence length, due to the need to store each state of the forward propagation. This is a problem for large networks. Strategies have been developed to…

Distributed, Parallel, and Cluster Computing · Computer Science 2018-06-05 Navjot Kukreja , Jan Hückelheim , Gerard J. Gorman

We study the inherent space requirements of shared storage algorithms in asynchronous fault-prone systems. Previous works use codes to achieve a better storage cost than the well-known replication approach. However, a closer look reveals…

Distributed, Parallel, and Cluster Computing · Computer Science 2015-07-21 Alexander Spiegelman , Yuval Cassuto , Gregory Chockler , Idit Keidar

The scaling of large language models (LLMs) is currently bottlenecked by the rigidity of distributed programming. While high-performance libraries like CuBLAS and NCCL provide optimized primitives, they lack the flexibility required for…

Pipeline Parallelism (PP) serves as a crucial technique for training Large Language Models (LLMs), owing to its capability to alleviate memory pressure from model states with relatively low communication overhead. However, in long-context…

Machine Learning · Computer Science 2025-04-22 Zhouyang Li , Yuliang Liu , Wei Zhang , Tailing Yuan , Bin Chen , Chengru Song , Di Zhang

The difficulty of developing reliable parallel software is generating interest in deterministic environments, where a given program and input can yield only one possible result. Languages or type systems can enforce determinism in new code,…

Operating Systems · Computer Science 2010-02-01 Amittai Aviram , Bryan Ford

Work-stealing is a widely used technique for balancing irregular parallel workloads, and most modern runtime systems adopt lock-free work-stealing deques to reduce contention and improve scalability. However, existing algorithms are…

Distributed, Parallel, and Cluster Computing · Computer Science 2026-03-09 Raja Sai Nandhan Yadav Kataru , Danial Davarnia , Ali Jannesari

Modern datacenter applications are prone to high tail latencies since their requests typically follow highly-dispersive distributions. Delivering fast interrupts is essential to reducing tail latency. Prior work has proposed both OS- and…

Distributed, Parallel, and Cluster Computing · Computer Science 2023-11-14 Lisa , Li , Nikita Lazarev , David Koufaty , Yijun Yin , Andy Anderson , Zhiru Zhang , Edward Suh , Kostis Kaffes , Christina Delimitrou

Since the advent of parallel algorithms in the C++17 Standard Template Library (STL), the STL has become a viable framework for creating performance-portable applications. Given multiple existing implementations of the parallel algorithms,…

Distributed, Parallel, and Cluster Computing · Computer Science 2024-02-12 Ruben Laso , Diego Krupitza , Sascha Hunold

Non-volatile random access memory (NVRAM) offers byte-addressable persistence at speeds comparable to DRAM. However, with caches remaining volatile, automatic cache evictions can reorder updates to memory, potentially leaving persistent…

Distributed, Parallel, and Cluster Computing · Computer Science 2021-08-20 Yuanhao Wei , Naama Ben-David , Michal Friedman , Guy E. Blelloch , Erez Petrank

Pipeline is a fundamental parallel programming pattern. Mainstream pipeline programming frameworks count on data abstractions to perform pipeline scheduling. This design is convenient for data-centric pipeline applications but inefficient…

Distributed, Parallel, and Cluster Computing · Computer Science 2022-02-03 Cheng-Hsiang Chiu , Tsung-Wei Huang , Zizheng Guo , Yibo Lin

C is the lingua franca of programming and almost any device can be programmed using C. However, programming mod-ern heterogeneous architectures such as multi-core CPUs and GPUs requires explicitly expressing parallelism as well as…