A Parallel Skeleton Library for Multi-core Clusters

A Parallel Skeleton Library for Multi-core Clusters
复制标题

DOI:
10.1109/icpp.2009.18
复制
发表时间:
2009-09
期刊:
2009 International Conference on Parallel Processing
影响因子:
--
通讯作者:
Yuki Karasawa;H. Iwasaki
Yuki Karasawa;H. Iwasaki
中科院分区:
其他
文献类型:
--
作者:
Yuki Karasawa;H. Iwasaki

文献摘要

相似文献

平行骨架库是平行计算的集合,这些计算在平行程序中抽象通用和重复的模式,并掩盖并行行为作为骨骼。它使用户可以通过编写合适的骨架来开发并行程序,就像是顺序的程序一样。但是,许多用于分布式环境的现有并行骨架库未考虑多核CPU的潜在性能,因为它们在每个节点(计算机)具有单核CPU的前提下运行。为了解决此问题,本文提出了用于多核群集的平行骨架库的设计和实现。拟议的图书馆采用了两阶段的动态任务调度策略;第一个是节点中的,第二个是核心。这种调度策略使库能够适当平衡节点和内核之间的负载。该库还动态融合了连续的骨骼调用,以降低控制流量的成本并增加数据的位置。通过使用C ++语言的模板技术,在称为Sketo的平行骨架库中从头开始实现了所提出的骨骼。我们确认我们的实施是通过各种基准有效的。
A parallel skeleton library is a collection of parallel computations that abstract generic and recurring patterns within parallel programs and conceal parallel behaviors as skeletons. It enables users to develop parallel programs as if they were sequential ones by composing suitable skeletons. However, many existing parallel skeleton libraries for distributed environments do not take into account the potential performance of multi-core CPUs, because they operate under the premise that each node (computer) has a single-core CPU. To resolve this problem, this paper proposes the design and implementation of a parallel skeleton library for multi-core clusters. The proposed library adopts a two-stage dynamic task scheduling strategy; the first is among nodes and the second is among cores. This scheduling strategy enables the library to appropriately balance the load both between nodes and cores. The library also dynamically fuses successive skeleton calls to reduce the cost of control flows and increase the locality of data. The proposed skeletons are implemented from scratch for matrices within a parallel skeleton library called SkeTo by using the template techniques in C++ language. We confirmed that our implementation was efficient through various benchmarks.