当前位置: X-MOL 学术Sustain. Comput. Inform. Syst. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
An energy-efficient queuing mechanism for latency reduction in multi-threading
Sustainable Computing: Informatics and Systems ( IF 4.5 ) Pub Date : 2020-11-02 , DOI: 10.1016/j.suscom.2020.100462
Rohitshankar Mishra , Ishfaq Ahmad , Akshaya Sharma

Energy-efficient mechanisms for reducing the latency in queuing of multiple threads running on multi-core chips have been a topic of great interest. This is because not only is a high latency undesirable, but it also collectively exacerbates the energy consumption. For lowering latency, one can use techniques such as lock-free algorithms, but they keep threads spinning, incurring high CPU usage, which in turn consumes higher energy. Common blocking synchronization primitives such as mutual exclusion locks or semaphores may be more energy-efficient, but their performance can be poor because they incur high latency. This paper proposes a new approach that combines a lock-free algorithm with resource efficiency of blocking synchronization primitives. The algorithm, named eLCRQ, is implemented as queueing scheme that uses the lightweight Linux Futex system call to construct a block-when-necessary layer on top of the popular lock-free LCRQ. The algorithm judiciously uses the block-when-necessary principle, which results in a close to lock-free performance under contention. For no-contention conditions, we use the Futex System call for conditional blocking instead of spinning in a retry loop. The advantage of this scheme is that it releases the CPU, allowing it to perform other tasks without wasting its energy on useless spinning. We analyzed the performance of our scheme on a heterogeneous platform and with varying levels loads. We also compared the proposed scheme with other well-known IPC mechanisms under various settings. Our experimental results illustrate that eLCRQ-spin achieves better latency and higher energy reduction.



中文翻译:

一种节能的排队机制,可减少多线程中的延迟

减少在多核芯片上运行的多线程排队的等待时间的节能机制一直是人们非常关注的话题。这是因为不仅不希望有高等待时间,而且还会加剧能耗。为了降低延迟,可以使用诸如无锁算法之类的技术,但是它们会使线程旋转,从而导致较高的CPU使用率,从而消耗更多的能量。诸如互斥锁或信号灯之类的通用阻塞同步原语可能更节能,但它们的性能可能很差,因为它们会导致高延迟。本文提出了一种新方法,该方法将无锁算法与阻止同步原语的资源效率相结合。该算法名为eLCRQ,作为一种排队方案而实现,该方案使用轻量级Linux Futex系统调用在流行的无锁LCRQ之上构造一个必要时的块层。该算法明智地使用必要时分块原理,在争用条件下产生接近无锁的性能。对于无竞争条件,我们使用Futex System调用进行条件阻塞,而不是在重试循环中旋转。这种方案的优势在于它释放了CPU,从而使其能够执行其他任务,而不会在无用的旋转上浪费精力。我们分析了该方案在异构平台和不同级别负载下的性能。我们还将提议的方案与其他在各种设置下的IPC机制进行了比较。我们的实验结果表明,eLCRQ自旋可实现更好的延迟和更高的能耗降低。

更新日期:2020-11-27
down
wechat
bug