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

Armando Castañeda, Miguel Piña
{"title":"Fully Read/Write Fence-Free Work-Stealing with Multiplicity","authors":"Armando Castañeda, Miguel Piña","doi":"10.4230/LIPIcs.DISC.2021.16","DOIUrl":null,"url":null,"abstract":"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. \nOne 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. CompareS however, Put uses fences among Write instructions, and Steal uses Compare&Swap and fences among Read instructions. \nThis 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.","PeriodicalId":89463,"journal":{"name":"Proceedings of the ... International Symposium on High Performance Distributed Computing","volume":"11 1","pages":"16:1-16:20"},"PeriodicalIF":0.0000,"publicationDate":"2020-08-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"8","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the ... International Symposium on High Performance Distributed Computing","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.4230/LIPIcs.DISC.2021.16","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 8

Abstract

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. CompareS 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.
完全读/写无围栏工作窃取与多样性
窃取工作是一种以分布式方式实现动态负载平衡的流行技术。在这种方法中,每个进程拥有一组必须执行的任务。集合的所有者可以在其中放置任务,也可以从中获取任务并执行它们。当一个进程的任务耗尽时,它不是处于空闲状态,而是成为一个小偷,从受害者那里窃取任务。因此,窃取工作的算法提供了三个高级操作:Put和Take,它们只能由所有者调用,而Steal可以由窃贼调用。设计窃取工作算法的主要目标之一是使Put和Take尽可能简单有效。不幸的是,事实证明,在标准异步模型中,任何窃取工作的算法都必须使用昂贵的写后读同步模式或原子读-修改-写指令(例如,compare, Put在写指令之间使用栅栏,而Steal在读指令之间使用comparare&swap和栅栏)。本文考虑具有多重性的偷工问题,即每个任务至少被一个操作占用,要求任何进程最多只能提取一个任务一次。考虑了三种版本的松弛,并在标准异步模型中提出了完全的读/写算法,它们都没有读后写同步模式;最后一种算法也是完全自由的。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信