多核处理器上的并行程序新方法:解放ILP与功能编程

需积分: 10 3 下载量 187 浏览量 更新于2024-07-17 收藏 2.51MB PDF 举报
本文探讨了"计算机结构并行化程序的替代方法的研究",针对多核处理器环境下的并行编程提出了创新思路。相较于传统的操作系统API,如OpenMP和MPI,作者提出了一种新的并行化方法,这种方法更加适合现代多核处理器的架构。这种方法的核心在于并行化硬件和定制的编程风格,它特别强调了指令级并行(Instruction-Level Parallelism, ILP)的利用和控制。 作者构建了一个多核设计,每个核心被设计为支持多线程,且具备创建新线程的能力。编程模式基于函数式编程,这意味着在每次函数调用时,硬件会自动创建一个并发线程,从而释放ILP。这种设计消除了函数调用之间的体系结构依赖性和函数返回后的延迟,有助于提高性能。 文章详细介绍了如何应用此方法来优化常见的计算任务,如总和减少、矩阵乘法和排序,这些操作在并行环境下表现出了随着数据规模增加而增强的并行性。研究者还对这种方法进行了性能测量,结果显示其提供的内核数量可达数千级别,这得益于ILP随着数据增大而提升的潜力。 此外,本文对比了提出的并行化方法与pthread的并行化技术,指出以下几点优势:首先,作者的方法提供了确定性的并行执行,使得代码调试更加容易;其次,与线程管理相关的缺陷在他们的设计中得到了改进;第三,他们的并行性是隐式的,这意味着程序员无需显式地声明并行区域,这增加了代码的简洁性和可读性;最后,他们的方法不仅并行化函数,也并行化循环,进一步增强了程序的并行性能。 这项工作为在多核处理器上高效并行化程序提供了一种新颖且实用的策略,其优点包括释放ILP、易于理解和调试的隐式并行性,以及针对多核架构的优化设计。这对于优化现代嵌入式系统和其他高性能计算场景具有重要意义。