负载平衡非均匀并行计算

Xinghui Zhao, Nadeem Jamali
{"title":"负载平衡非均匀并行计算","authors":"Xinghui Zhao, Nadeem Jamali","doi":"10.1145/2541329.2541337","DOIUrl":null,"url":null,"abstract":"Dynamic load balancing is critical in achieving high performance in parallel systems, especially for applications with unpredictable workloads. Traditional load balancing approaches -- such as work-sharing and work-stealing -- often assume that the computations can be divided into smaller computations based on some granularity. These approaches do not scale when the computations are not dividable and their sizes are highly variant. In this paper, we present a novel approach -- founded in the Actor model known for its programmability -- for dynamically load-balancing non-uniform parallel computations. Specifically, our approach is to explicitly reason about resource requirements and commitments at run-time in order to make fine-grained scheduling decisions. We prototype our approach by extending an efficient Java implementation of Actors, ActorFoundry. We have also implemented a tuner which dynamically balances the resources used by the computations vs. those used by the reasoning mechanism, essentially balancing the quality of scheduling against the resources needed for achieving it. We propose a new benchmark -- the Unbalanced Cobwebbed Tree (UCT) -- to fairly compare our approach to existing approaches, which captures the non-uniform nature of computations. Experimental results show that despite the higher overhead of providing Actors' programmability features, for a diverse enough set of computations, our approach outperforms both work-sharing and work-stealing approaches, and shows better scalability.","PeriodicalId":287804,"journal":{"name":"Workshop on Programming based on Actors, Agents, and Decentralized Control","volume":"45 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2013-10-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"6","resultStr":"{\"title\":\"Load balancing non-uniform parallel computations\",\"authors\":\"Xinghui Zhao, Nadeem Jamali\",\"doi\":\"10.1145/2541329.2541337\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Dynamic load balancing is critical in achieving high performance in parallel systems, especially for applications with unpredictable workloads. Traditional load balancing approaches -- such as work-sharing and work-stealing -- often assume that the computations can be divided into smaller computations based on some granularity. These approaches do not scale when the computations are not dividable and their sizes are highly variant. In this paper, we present a novel approach -- founded in the Actor model known for its programmability -- for dynamically load-balancing non-uniform parallel computations. Specifically, our approach is to explicitly reason about resource requirements and commitments at run-time in order to make fine-grained scheduling decisions. We prototype our approach by extending an efficient Java implementation of Actors, ActorFoundry. We have also implemented a tuner which dynamically balances the resources used by the computations vs. those used by the reasoning mechanism, essentially balancing the quality of scheduling against the resources needed for achieving it. We propose a new benchmark -- the Unbalanced Cobwebbed Tree (UCT) -- to fairly compare our approach to existing approaches, which captures the non-uniform nature of computations. Experimental results show that despite the higher overhead of providing Actors' programmability features, for a diverse enough set of computations, our approach outperforms both work-sharing and work-stealing approaches, and shows better scalability.\",\"PeriodicalId\":287804,\"journal\":{\"name\":\"Workshop on Programming based on Actors, Agents, and Decentralized Control\",\"volume\":\"45 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2013-10-27\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"6\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Workshop on Programming based on Actors, Agents, and Decentralized Control\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/2541329.2541337\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Workshop on Programming based on Actors, Agents, and Decentralized Control","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2541329.2541337","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 6

摘要

动态负载平衡对于在并行系统中实现高性能至关重要,特别是对于具有不可预测工作负载的应用程序。传统的负载平衡方法——例如工作共享和工作窃取——通常假设计算可以根据某些粒度划分为更小的计算。当计算不可除且其大小变化很大时,这些方法无法扩展。在本文中,我们提出了一种新颖的方法——建立在以其可编程性而闻名的Actor模型中——用于动态负载平衡非均匀并行计算。具体来说,我们的方法是在运行时明确地推断资源需求和承诺,以便做出细粒度的调度决策。我们通过扩展Actors的一个高效Java实现ActorFoundry来实现我们的方法原型。我们还实现了一个调优器,它可以动态地平衡计算使用的资源和推理机制使用的资源,从本质上平衡调度的质量和实现调度所需的资源。我们提出了一个新的基准——不平衡蛛网树(UCT)——来公平地将我们的方法与现有的方法进行比较,后者捕获了计算的非均匀性。实验结果表明,尽管提供actor的可编程特性的开销较高,但对于足够多样化的计算集,我们的方法优于工作共享和工作窃取方法,并显示出更好的可扩展性。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
Load balancing non-uniform parallel computations
Dynamic load balancing is critical in achieving high performance in parallel systems, especially for applications with unpredictable workloads. Traditional load balancing approaches -- such as work-sharing and work-stealing -- often assume that the computations can be divided into smaller computations based on some granularity. These approaches do not scale when the computations are not dividable and their sizes are highly variant. In this paper, we present a novel approach -- founded in the Actor model known for its programmability -- for dynamically load-balancing non-uniform parallel computations. Specifically, our approach is to explicitly reason about resource requirements and commitments at run-time in order to make fine-grained scheduling decisions. We prototype our approach by extending an efficient Java implementation of Actors, ActorFoundry. We have also implemented a tuner which dynamically balances the resources used by the computations vs. those used by the reasoning mechanism, essentially balancing the quality of scheduling against the resources needed for achieving it. We propose a new benchmark -- the Unbalanced Cobwebbed Tree (UCT) -- to fairly compare our approach to existing approaches, which captures the non-uniform nature of computations. Experimental results show that despite the higher overhead of providing Actors' programmability features, for a diverse enough set of computations, our approach outperforms both work-sharing and work-stealing approaches, and shows better scalability.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
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学术文献互助群
群 号:481959085
Book学术官方微信