首页> 外文期刊>Parallel Computing >Load-balancing for load-imbalanced fine-grained linear pipelines
【24h】

Load-balancing for load-imbalanced fine-grained linear pipelines

机译:负载平衡用于负载 - 不平衡的细粒度线性管道

获取原文
获取原文并翻译 | 示例

摘要

Pipelining is a well-known technique to overlap loop iterations by partitioning the loop body into a sequence of stages. A large class of programs can be expressed as linear pipelines if data dependences only flow from earlier to later stages. Various pipelining techniques have been explored but reconciling load balancing and efficient execution is still a challenge for two main reasons. First, partitioning of the loop body into stages that lead to load-balancing may depend on the data set as well as system properties, e.g., number of cores. Second, the configuration of the runtime system is far from obvious.In this article, we present Pipelight, a technique that achieves load-balancing for linear pipelines. Pipelight relies on a way of mapping stages onto threads that simplifies partitioning and enables the design of a lightweight algorithm for dynamic scheduling. Furthermore, Pipelight introduces a concurrent data structure that exploits the properties of data dependences presented in linear pipelines to provide efficient communication and synchronization. This data structure simplifies the configuration of the runtime system and makes Pipelight a practical solution. The evaluation on a 44-core system shows the efficiency of Pipelight for a set of programs selected from widely-used collections. Although Pipelight simplifies parallelization of linear pipelines, it performs similarly to the most efficient properly configured state-of-the-art technique. The price paid for the benefits of Pipelight is additional overhead for finegrained loops. However, this overhead can be amortized successfully with chunking. To make Pipelight a promising solution, we propose a directive-based transformation for Pipelight, which is developed in a prototype source-to-source compiler. Consequently, Pipelight is an efficient and practical solution to achieve load-balancing for fine-grained linear pipelines. (C) 2019 The Authors. Published by Elsevier B.V.
机译:流水线是一种众所周知的技术,通过将循环体划分为一系列级来重叠循环迭代。如果数据依赖于早期阶段,则可以将大类程序表示为线性管道。已经探索了各种流水线技术,但调整负载平衡和有效执行仍然是两种主要原因的挑战。首先,将循环体分隔为导致负载平衡的阶段可以取决于数据集以及系统属性,例如核心数。其次,运行时系统的配置远非明显。在本文中,我们提出了一种实现线性管道的负载平衡的技术。 Pipelight依赖于在简化分区的线程上映射阶段的方式,并启用用于动态调度的轻量级算法。此外,Pipelight引入了一种并发数据结构,该结构利用线性管道中呈现的数据依赖性的属性来提供有效的通信和同步。此数据结构简化了运行时系统的配置,并使管道成为实际解决方案。 44核系统的评估显示了从广泛使用的集合中选择的一组程序的管道效率。虽然管道简化了线性管道的并行化,但它与最有效地配置的最先进技术类似地执行。对潜水工福利支付的价格是精细循环的额外开销。但是,这种开销可以用块成功摊销。为了使管道提出有希望的解决方案,我们提出了一种基于指令的管道转换,它是在原型源到源代码编译器中开发的。因此,管道是一种高效实用的解决方案,可以实现细粒度线性管道的负载平衡。 (c)2019年作者。由elsevier b.v出版。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号