Gang scheduling istn‘t worth it ...yet

本文探讨了Gang调度(一种严格的coscheduling形式)在并发系统中的应用,指出其在精细同步、负载均衡、延迟敏感工作负载等特定条件下可能提高性能。然而,当处理器数量与gang不匹配或工作负载不满足这些条件时,可能会导致效率降低和资源浪费。实验表明,Gang调度在低延迟和多重要任务并行时的优势更为明显,而在其他情况下,简单的调度策略可能更优。
摘要由CSDN通过智能技术生成

Gang scheduling istn’t worth it yet

  • coordinated scheduling:
    Coscheduling is the principle for concurrent systems of scheduling related processes to run on different processors at the same time (in parallel). There are various specific implementations to realize this.
    在调度的时候,尽量将相关联的进程同时调度。如果在进程需要进行通信的时候,某些线程没有在调度,因此会被阻塞等待与其他线程互动。这样会导致在每个时间片顶多进行一次互动,会降低吞吐率,造成高延迟.

使用 coscheduling技术,如果有些线程没有和协同的集合同时调度,导致阻塞的部分异常进程,称之为“碎片(fragement)”。

  • gang scheduling就是coscheduling的一种变种,他严格要求没有碎片产生。

1 Introduction

通用的操作系统,在gang scheduling的收益很少。

在这篇文章中,关注SPMD (a single program, multiple data ) 模型,数据被划分到多个线程上进行处理。SPMD 广泛用于 OpenMP 、numerical libraries、MapReduce

2 Background and related work

gang scheldung 可以从两方面减少同步的开销:

  1. gang scheduling 同时调调度,使得所有线程同时到达同步点
  2. 使用busy waiting,减少了上期阿文切换的时间。降低等待时间。

gang scheduling 也有一些缺点:
当处理器的数量,和gang不匹配的时候,会造成碎片,导致处理器的利用不足。

在 gang scheduling 中,收益确实很少,还要满足一系列的限制。

3 Conditions for useful gang scheduling

要想 gang scheduling 别其他的调度性能更好,需要满足以下的几个条件:

  • fine-grained synchronization,
    good load balancing of work,
  • latency-sensitive workloads,
  • multiple important parallel workloads,
  • a need to adapt under changing conditions.

在这些条件之外还需要一些假设:

  1. 必有多个任务参与竞争,否则调度器发挥不了作用
  2. 线程必须是要进行同步的,否则就不需要等待了,拿了是否被同时调度就没有影响。
  3. blocking的开销,要比自旋等待的开销大。

3.1 Experimental environment

workload

20221126135414

使用同步循环,有固定的及那个 interval 和最大差值 variance,在实验中gangs 总是匹配可用的cores数

3.2 Fine-grained synchronization

We first

同时运行两个 BARRIER 应用程序。因为要满足有task竞争的条件。
在一个 BARRIER 程序中,改变 interval 进行一系列的实验。 另一个作为竞争背景程序,interval 设为 0.

20221126201343

在同步间隔为40us的时候gang scheduling 优势就减少了,同步间隔到50ms的时候,几乎没有优势了

3.3 Good load-balancing of work

工作量最好时均衡的,如果使用 busy-wait 等待的时间过长,还不如block 可以将处理器空出来给其的进程用。

如果一组线程中的工作量不均衡,会导致一些线程的等待时间过长,造成效率降低。
20221126202201

3.4 Latency-sensitive workload

如果负载完全不关心响应时间或完成时间,而只关心吞吐率,那他的性能甚至不如一些简单的算法比如FIFO ,完全没有线程切换的开销,

进行了两组实验,每组实验都运行两个 BARRIER 程序,运行10秒:

  • 分成两段 5s batch运行,5s运行一种程序
  • 两个程序同时运行

batch 方式运行的吞吐率更高,比gang scheduling高了了 1.5%。
采用时间片,将调度的额外开销与 交互与响应的需求 进行tradeoff。

3.5 Multiple important parallel workloads

gang scheduling 优于基于优先级的调度的一个必要条件是,对多个并行程序感兴趣。如果只关注一个重要的程序,进行优先级排序,足够保证该程序的所有部分都并行。

20221126204937

3.6 Bursty, adaptive workloads

空间划分调度:需求在长时间内是静态的,可以将固定数量的硬件分配给应用程序

事实上,如果工作负载的粒度和系统中的cores 是相匹配的,空间划分比gang 调度新能更好,省去了上下文切换开销。

但是如果有很多负载是突发性的,如果不能预先分配CPU给进程,就要进行频繁的重新划分,才能进行空间划分调度。

但是很难探查和重新调配未利用的资源。

因此,我们认为突发的负载是有利于gang scheduling进行的必要条件。

4 Future application workloads

使用假想的交互式负载,并满足上述的条件,和 Linux 默认调度程序进行比较.

an interactive network monitoring application that employs data stream
clustering to analyze incoming TCP streams, looking for packets clustering around a specific attribute suggesting
an attack.

20221126205904

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值