跳到正文

THE JOURNAL / FIELD NOTES

SMP in Linux

SMP in Linux - 1 这是我在LUGTongji做的关于SMP的讲座PPT。

SMP in Linux - 2 我的部分主要关于高性能计算及未来计算机体系结构部分。

SMP in Linux - 3 为了实现高性能计算,使用过很多种方法。

SMP in Linux - 4 但是遗憾的是,种种原因使得,并不是增加CPU就能够提高性能。

SMP in Linux - 5 这是多年以来典型的单处理机架构。在这种架构上,提升主频能够显著改善程序执行速度。

SMP in Linux - 6 这是典型的SMP架构。SMP架构有很多致命的缺陷使得其扩展性不高。主要原因是多CPU对FSB的竞争。

SMP in Linux - 7 这是Intel Duo Core架构,也是一种紧耦合SMP。

SMP in Linux - 8 这是为了解决SMP各种缺点的一种架构,NUMA。介于SMP和Cluster之间。

SMP in Linux - 9 这是高性能计算架构Computing Cluster。

SMP in Linux - 10 下面介绍一些高性能计算的发展趋势。

SMP in Linux - 11 NUMA克服了SMP的主要缺点。

SMP in Linux - 12 高性能计算中CPU和内存瓶颈。

SMP in Linux - 13 Intel研究院的技术展望。

SMP in Linux - 14 网络传输瓶颈的解决。

SMP in Linux - 15 下面是关于2.6 Linux对于SMP的实现介绍。

SMP in Linux - 16 早期版本Linux对于SMP的支持不足。

SMP in Linux - 17 2.6 Linux每个CPU使用一对任务队列进行CFS调度。

SMP in Linux - 18 当Active队列中某进程用完时间片,将重算时间片,加入到同级别Expired队列尾部。

SMP in Linux - 19 当某个优先级任务队列为空时,简单交换同级别的两个队列指针。

SMP in Linux - 20 调度器的工作就相对简单,只需要安装优先级降低方向,寻找非空的任务队列,然后取得第一个任务指向即可。

SMP in Linux - 21 Linux使用5个32位字构成位图,组织140个优先级(末20个浪费)。

SMP in Linux - 22 某CPU进行调度时,只需要锁两个运行队列即可,而不是整个内核。

SMP in Linux - 23 2.6 Linux调度器还有很多其他特性。

SMP in Linux - 24 SMP调度器可以进行负载均衡。拉方案是把其他处理机上的任务平衡到本处理机。

SMP in Linux - 25 但同时,Linux进行了诸多限制。

SMP in Linux - 26 迁移顺序。种种限制,Linux倾向于尽量不做负载均衡。

SMP in Linux - 27 推方案是主动将任务转移到其他处理机的转移方案。

SMP in Linux - 28 内核使用一个实时进程进行迁移。

SMP in Linux - 29 NUMA的负载均衡更加复杂。

SMP in Linux - 30 Q & A

SMP in Linux - 31 Thanks