Scalable Load-Balancing Concurrent Queues in Modern Many-Core Architectures

Scalable Load-Balancing Concurrent Queues in Modern Many-Core Architectures
复制标题

现代多核架构中的可扩展负载平衡并发队列

DOI:
--
复制
发表时间:
2019
期刊:
影响因子:
--
通讯作者:
Caleb Lehman
Caleb Lehman
中科院分区:
--
文献类型:
--
作者:
Caleb Lehman

文献摘要

被引文献

相似文献

随着计算平台的核心数量不断增加,为了充分利用可用资源,支持细粒度任务的并行运行时系统变得越来越必要。这种基于任务的并行运行时系统的一个关键特性是能够在可用内核之间均匀、快速地平衡工作。我们通过研究XTask来强调这一点,XTask是一个基于XQueue的定制并行运行时系统,它是一种新颖的无锁并发排队系统,具有宽松的排序语义,旨在实现数百个并发线程的可伸缩性。我们演示了原始XQueue设计中缺乏适当的负载平衡,并提出了几种改进负载平衡的解决方案。我们还在两个示例工作负载上评估了相应的性能改进,即斐波那契数的计算和Cholesky分解的计算。最后,我们比较了几个版本的XTask以及流行的OpenMP运行时系统的几个实现的性能。
As the core counts of computing platforms continue to rise, parallel runtime systems with support for very fine-grained tasks become increasingly necessary to fully utilize the available resources. A critical feature of such task-based parallel runtime systems is the ability to balance work evenly and quickly across available cores. We highlight this by studying XTask, a custom parallel runtime system based on XQueue, which is a novel lock-less concurrent queuing system with relaxed ordering semantics that is geared to realizing scalability to hundreds of concurrent threads. We demonstrate the lack of adequate load balancing in the original XQueue design and present several solutions for improving load balancing. We also evaluate the corresponding improvements in performance on two sample workloads, computation of Fibonacci numbers and computation of Cholesky factorization. Finally, we compare the performance of several versions of XTask along with several implementations of the popular OpenMP runtime system.