Fully Read/Write Fence-Free Work-Stealing with Multiplicity

08/10/2020
by   Armando Castañeda, et al.
0

Work-stealing is a popular technique to implement dynamic load balancing in a distributed manner. In this approach, each process owns a set of tasks that have to be executed. The owner of the set can put tasks in it and can take tasks from it to execute them. When a process runs out of tasks, instead of being idle, it becomes a thief to steal tasks from a victim. Thus, a work-stealing algorithm provides three high-level operations: Put and Take, which can be invoked only by the owner, and Steal, which can be invoked by a thief. One of the main targets when designing work-stealing algorithms is to make Put and Take as simple and efficient as possible. Unfortunately, it has been shown that any work-stealing algorithm in the standard asynchronous model must use expensive Read-After-Write synchronization patterns or atomic Read-Modify-Write instructions (e.g. Compare Swap or Test Set), which may be costly in practice. Thus, prior research has proposed idempotent work-stealing, a relaxation for which there are algorithms with Put and Take devoid of Read-Modify-Write atomic instructions and Read-After- Write synchronization patterns; however, Put uses fences among Write instructions, and Steal uses Compare Swap and fences among Read instructions. This paper considers work-stealing with multiplicity, a relaxation in which every task is taken by at least one operation, with the requirement that any process can extract a task at most once. Three versions of the relaxation are considered and fully Read/Write algorithms are presented in the standard asynchronous model, all of them devoid of Read-After-Write synchronization patterns; the last algorithm is also fully fence-free.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
03/06/2022

Election in Fully Anonymous Shared Memory Systems: Tight Space Bounds and Algorithms

This article addresses election in fully anonymous systems made up of n ...
research
03/26/2021

Extending Classic Paxos for High-performance Read-Modify-Write Registers

In this work we provide a detailed specification of how we extended and ...
research
05/12/2022

Modular Baskets Queue

A modular version of the baskets queue of Hoffman, Shalev and Shavit is ...
research
08/31/2023

The Synchronization Power of Auditable Registers

Auditability allows to track all the read operations performed on a regi...
research
10/08/2018

Optimal Memory-Anonymous Symmetric Deadlock-Free Mutual Exclusion

The notion of an anonymous shared memory (recently introduced in PODC 20...
research
08/30/2020

Low-Depth Parallel Algorithms for the Binary-Forking Model without Atomics

The binary-forking model is a parallel computation model, formally defin...
research
03/28/2019

Mutex-based Desanonymization of an Anonymous Read/Write Memory

Anonymous shared memory is a memory in which processes use different nam...

Please sign up or login with your details

Forgot password? Click here to reset