A View of the Parallel Computing Landscape

1. 出版信息

Publication:  Communications of the ACM, 2009, Vol. 52

Author: Krste Asanovic, Rastislav Bodik, et. al

Year: Oct. 2009

p.p.: 56 ~ 67

 

2. 内容简介

1. 介绍了并行编程技术的发展史以及必要性,主要观点与“The free lunch is over”基本一致;

2. 以一座桥(配图好像是金门大桥。。)作为比喻,开展了全文的论述:一个桥的塔是Hardware,另一边塔是Application,连接这两个东西的是Software Span;

3. 总体介绍了UC Berkley的Par Lab的基本情况与任务,通读全文,基本上是要做Hardware、Application以及Software Span的愿景;

4. 在介绍每一个子部分时,简述了现有设施与方案的不足;并提出了他们的想法,包括建立软硬件以及应用方面的研究。

5. 着重介绍了Software Span中的想法。主要是要建立一个框架,把基础设施搭好,应用开发程序员只关心他们领域内的工作。总的来说此框架分为两层,分别叫做Effeciency Layer与Proficiency Layer。前者位于下层,供受过训练的程序员使用,在该层会开发一些并行的基础设施与高效基本算法,提供接口给上层的程序员使用。而应用开发的程序员不需要关心如何并行(因为Effeciency Layer已经做好),只需要在Proficiency Layer工作,使用下层已经做好的基础设施,主要关注于领域,去开发他们想要的应用。文章说,这种框架使得应用开发程序员并不需要去碰难搞的并行的东西,从而实现快速应用开发;

6. 着重介绍了Autotuning。优化工作可能包括NUMA、Padding、矢量化、Loop Unrolling、Prefetching、指令压缩等等。文章说在传统的模式下,针对某一平台、某一CPU的优化工作通常是手工去做的,这样的效果可能很好,但是过程却很麻烦,最关键的地方是这样的工作是不可移植的。即使对于相同平台的相同CPU,机器环境不同也会使优化效果得不到最优化,所以他们就提出了Autotuning的概念。具体的做法是针对某一个电脑,用程序不断去对应用进行不断测试,利用搜索的方法为不同的应用(甚至应用内的不同部分)找出最佳的调节方案。比如说对于某一应用,发现prefetching是最佳的,那么这个应用就采用prefetching;而对于另一个应用,可能SIMD策略表现最好,这个应用就采用SIMD。文章认为通过自动搜索,可以减轻程序员的负担,减少优化的时间,并且获得可能比人工优化更好的效果。

7. 介绍了他们准备做的应用以及硬件,这方面没有仔细看;

8. 简介了其他几所大学以及研究机构在并行化工作方面的方向与重点。

 

3. 贡献

1. 给读者呈现了一个并行化工作全局的视图,包括软硬件与应用方面;

2. 主张以应用为中心,与领域专家一起开展研究工作,并阐述了这样做的原因与好处。

 

4. 感想

1. 这篇文章是从业界的角度写的一篇高抽象级的文章,提供了一个完整的视图,并不包含细致的研究工作;

2. 文章主张全方位地开展新研究,包括软硬件与应用方面。可是在软件方面的道路主张开发一种新的领域语言,在硬件方面又提出了一点专有要求,这样的做法可能不具有移植性。就是说,可能最终产品在Berkley这一套体系里面运作良好,但是离开了这个体系可能性能不会很高。

 

5. 高亮选段

1. The Par Lab will be driven top-down, applications first, then software, and finally hardware.

2. Automatic parallelism doesn’t work. Compilers are great at low-level scheduling decisions but can’t discover new algorithms to exploit concurrency.

3. Programmers in high-performance computing have shown that explicit technologies (such as MPI and OpenMP) can be made to work but too often require heroic effort untenable for most commercial software vendors.

4. Truly useful patterns are not invented but mined from successful software applications.

5. Computational and structural patterns can be hierarchically composed to define an application’s high-level software architecture, but a complete pattern language for application design must at least span the full range, from high-level architecture to detailed software implementation and tuning. 

6. In our approach, productivity is addressed in a productivity layer that uses a common composition and coordination language to glue together the libraries and programming frameworks produced by the efficiency-layer programmer. Efficiency is principally handled through an efficiency layer that is targeted for use by expert parallel programmers.

7. In a programming framework the customization is performed only at specified points that are harmonious with the style embodied in the original design pattern.

8. Frameworks include libraries, code generators, and runtime systems that assist programmers with implementation by abstracting difficult portions of the computation and incorporating them into the framework itself.

9. Basing frameworks on pervasive design patterns will help make parallel frameworks broadly applicable. 

10. The sin is not lack of success but lack of effort.

 

6. 未来工作

1. 看UC Berkley的研究(有另一篇文章);

2. 学习OpenMP(与本文无关,是想了解隐式并行化);

3. 看survey。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值