加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

A Practical Approach to Exploiting Coarse-Grained Pipeline P

发布时间:2020-12-13 20:19:20 所属栏目:百科 来源:网络整理
导读:出版信息: Conference: 40th IEEE/ACM International Symposium on Microarchitecture Author: William Thies,Vikram Chandrasekhar,Saman Amarasinghe Year: 2007 p.p.: 356 ~ 368 内容总结: 文章寻求一种将老旧的C程序并行化的办法。文章的办法是让程序

出版信息:

Conference: 40th IEEE/ACM International Symposium on Microarchitecture

Author: William Thies,Vikram Chandrasekhar,Saman Amarasinghe

Year: 2007

p.p.: 356 ~ 368


内容总结:

文章寻求一种将老旧的C程序并行化的办法。文章的办法是让程序员在程序中加入提示符,而提示符是以宏的形式定义的,用途是把一个循环内的工作分阶段地并行化。

当任务分好阶段后,就通过不同的读写通道,将任务分发到不同的管道去做,然后再把结果回收。具体细节暂时还没有看懂。

实验的对象是流文件,比如MP3、MPEG2

贡献:

1. 展示了在流应用(Stream Application)的类中,用流水化做并行是很稳定的。在执行时的通信在程序的执行过程中通常会得到保持。

2. 定义了简单的API,用于指出程序中潜在的可流水线并行化的区域。这种API与传统的OpenMP相比,充当了流水线式并行化的基础抽象作用。

3. 提供了一个在Valgrind上实现的程序动态分析工具,这个工具用于在老旧C程序中跟踪消费者/生产者的关系。它还可以输出应用程序的流图(Stream Graph),可用于验证和驳倒程序员用上面所说的API所提议的并行处理方案。最后,他还可以提供语句级的详细跟踪,以及一套宏,用于自动化的并行化。

4. 将上面的成果应用到不同的流应用(如MP3解码)以及3个SPEC的benchmarks,能提取出有意义的流图,加速比在4核处理器上达到2.78。

感想:

这篇文章提供的方法与工具,可以让程序或者算法的原作者通过少量的提示符对程序进行并行化,而工具的提供者不需要深入到算法内部,在理解算法后再把程序重新改写。可以说,它达到了半自动化的目标。

可是文章提供的内容仅在一个多核处理器上测试,即在共享存储地址的机制下测试,这对于机器集群以及超级计算机这种存储地址分开、通过网络连接的体系架构,显然是需要改进的。

但是我们现在的知识储备并不足以完全读懂这篇文章,所以即使这是一个好的方案,也需要继续去学习,才能获得其中的真秘。

需要补习的内容:

1. 编译原理

2. 程序静态分析、动态分析

3. 并行编程模式(至少要知道什么是流水线模式pipeline pattern)

4. 这个领域相关的文章,以及文章之间的异同点

2011-05-16,22:59:14

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读