Generating energy-efficient code for parallel applications specified by streaming task graphs with dynamic elements

Sebastian Litzinger, J. Keller
{"title":"Generating energy-efficient code for parallel applications specified by streaming task graphs with dynamic elements","authors":"Sebastian Litzinger, J. Keller","doi":"10.1145/3380536.3380544","DOIUrl":null,"url":null,"abstract":"Streaming task graphs are a high-level construct used to specify parallel applications operating on streams of data, and energy-efficient code meeting data throughput requirements can be generated automatically. Tasks can be parallel themselves, so that two levels of parallelism are present. Normally, the task graph structure is assumed to be static, so that static schedulers can be used to map the (parallel) tasks onto a parallel platform to minimize energy consumption for given throughput. We propose a formulation that introduces dynamic elements into the task graph structure, thus allowing to specify applications that can adapt their behavior at runtime, e. g. activating another filter task depending on data quality. This in turn necessitates a runtime system that can re-map tasks in case of a dynamic change of the task structure. We provide the core of such a runtime system together with a task mapper that is able to work incrementally, i. e. that can re-use results from previous mappings when computing a new mapping in case of task addition, change or removal, thus minimizing runtime overhead. We evaluate our prototype implementation with a set of streaming task graphs and compare our results to an optimal static scheduler based on integer linear programming. We find that our prototype is able to meet throughput requirements with < 3.5% energy overhead on average compared to the optimal scheduler.","PeriodicalId":127938,"journal":{"name":"Proceedings of the Eleventh International Workshop on Programming Models and Applications for Multicores and Manycores","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2020-02-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the Eleventh International Workshop on Programming Models and Applications for Multicores and Manycores","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3380536.3380544","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1

Abstract

Streaming task graphs are a high-level construct used to specify parallel applications operating on streams of data, and energy-efficient code meeting data throughput requirements can be generated automatically. Tasks can be parallel themselves, so that two levels of parallelism are present. Normally, the task graph structure is assumed to be static, so that static schedulers can be used to map the (parallel) tasks onto a parallel platform to minimize energy consumption for given throughput. We propose a formulation that introduces dynamic elements into the task graph structure, thus allowing to specify applications that can adapt their behavior at runtime, e. g. activating another filter task depending on data quality. This in turn necessitates a runtime system that can re-map tasks in case of a dynamic change of the task structure. We provide the core of such a runtime system together with a task mapper that is able to work incrementally, i. e. that can re-use results from previous mappings when computing a new mapping in case of task addition, change or removal, thus minimizing runtime overhead. We evaluate our prototype implementation with a set of streaming task graphs and compare our results to an optimal static scheduler based on integer linear programming. We find that our prototype is able to meet throughput requirements with < 3.5% energy overhead on average compared to the optimal scheduler.
为具有动态元素的流任务图指定的并行应用程序生成高能效代码
流任务图是一种高级结构,用于指定在数据流上操作的并行应用程序,并且可以自动生成满足数据吞吐量需求的节能代码。任务本身可以并行,因此存在两层并行性。通常,假设任务图结构是静态的,因此可以使用静态调度器将(并行)任务映射到并行平台上,以最小化给定吞吐量的能耗。我们提出了一个将动态元素引入任务图结构的公式,从而允许指定可以在运行时调整其行为的应用程序,例如根据数据质量激活另一个过滤器任务。这反过来又需要一个运行时系统,它可以在任务结构发生动态变化的情况下重新映射任务。我们提供了这样一个运行时系统的核心,以及一个能够增量工作的任务映射器,也就是说,在任务添加、更改或删除的情况下,在计算新映射时可以重用以前映射的结果,从而最大限度地减少运行时开销。我们用一组流任务图来评估我们的原型实现,并将我们的结果与基于整数线性规划的最优静态调度器进行比较。我们发现,与最优调度器相比,我们的原型能够以平均< 3.5%的能量开销满足吞吐量需求。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约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学术官方微信
小红书