![1](https://lizheng.me/wp-content/uploads/2008/04/1.png)
这是我在LUGTongji做的关于SMP的讲座PPT。
![2](https://lizheng.me/wp-content/uploads/2008/04/2.png)
我的部分主要关于高性能计算及未来计算机体系结构部分。
![3](https://lizheng.me/wp-content/uploads/2008/04/3.png)
为了实现高性能计算,使用过很多种方法。
![4](https://lizheng.me/wp-content/uploads/2008/04/4.png)
但是遗憾的是,种种原因使得,并不是增加CPU就能够提高性能。
![5](https://lizheng.me/wp-content/uploads/2008/04/5.png)
这是多年以来典型的单处理机架构。在这种架构上,提升主频能够显著改善程序执行速度。
![6](https://lizheng.me/wp-content/uploads/2008/04/6.png)
这是典型的SMP架构。SMP架构有很多致命的缺陷使得其扩展性不高。主要原因是多CPU对FSB的竞争。
![7](https://lizheng.me/wp-content/uploads/2008/04/7.png)
这是Intel Duo Core架构,也是一种紧耦合SMP。
![8](https://lizheng.me/wp-content/uploads/2008/04/8.png)
这是为了解决SMP各种缺点的一种架构,NUMA。介于SMP和Cluster之间。
![9](https://lizheng.me/wp-content/uploads/2008/04/9.png)
这是高性能计算架构Computing Cluster。
![10](https://lizheng.me/wp-content/uploads/2008/04/10.png)
下面介绍一些高性能计算的发展趋势。
![11](https://lizheng.me/wp-content/uploads/2008/04/11.png)
NUMA克服了SMP的主要缺点。
![12](https://lizheng.me/wp-content/uploads/2008/04/12.png)
高性能计算中CPU和内存瓶颈。
![13](https://lizheng.me/wp-content/uploads/2008/04/13.png)
Intel研究院的技术展望。
![14](https://lizheng.me/wp-content/uploads/2008/04/14.png)
网络传输瓶颈的解决。
![15](https://lizheng.me/wp-content/uploads/2008/04/15.png)
下面是关于2.6 Linux对于SMP的实现介绍。
![16](https://lizheng.me/wp-content/uploads/2008/04/16.png)
早期版本Linux对于SMP的支持不足。
![17](https://lizheng.me/wp-content/uploads/2008/04/17.png)
2.6 Linux每个CPU使用一对任务队列进行CFS调度。
![18](https://lizheng.me/wp-content/uploads/2008/04/18.png)
当Active队列中某进程用完时间片,将重算时间片,加入到同级别Expired队列尾部。
![19](https://lizheng.me/wp-content/uploads/2008/04/19.png)
当某个优先级任务队列为空时,简单交换同级别的两个队列指针。
![20](https://lizheng.me/wp-content/uploads/2008/04/20.png)
调度器的工作就相对简单,只需要安装优先级降低方向,寻找非空的任务队列,然后取得第一个任务指向即可。
![21](https://lizheng.me/wp-content/uploads/2008/04/21.png)
Linux使用5个32位字构成位图,组织140个优先级(末20个浪费)。
![22](https://lizheng.me/wp-content/uploads/2008/04/22.png)
某CPU进行调度时,只需要锁两个运行队列即可,而不是整个内核。
![23](https://lizheng.me/wp-content/uploads/2008/04/23.png)
2.6 Linux调度器还有很多其他特性。
![24](https://lizheng.me/wp-content/uploads/2008/04/24.png)
SMP调度器可以进行负载均衡。拉方案是把其他处理机上的任务平衡到本处理机。
![25](https://lizheng.me/wp-content/uploads/2008/04/25.png)
但同时,Linux进行了诸多限制。
![26](https://lizheng.me/wp-content/uploads/2008/04/26.png)
迁移顺序。种种限制,Linux倾向于尽量不做负载均衡。
![27](https://lizheng.me/wp-content/uploads/2008/04/27.png)
推方案是主动将任务转移到其他处理机的转移方案。
![28](https://lizheng.me/wp-content/uploads/2008/04/28.png)
内核使用一个实时进程进行迁移。
![29](https://lizheng.me/wp-content/uploads/2008/04/29.png)
NUMA的负载均衡更加复杂。
![30](https://lizheng.me/wp-content/uploads/2008/04/30.png)
Q & A
![31](https://lizheng.me/wp-content/uploads/2008/04/31.png)
Thanks
Hi :
Your ppt file style is so cool. Could you tell me what style that you used?
Do you use office power point to create it ?
Do you use any pattern or create by your self?
I ready need it. Could tell me or mail me ? Thank you so much.
My email: antoniocheng@gmail.com