论文部分内容阅读
在过去十年里,随着众多领域并行计算需求的迅速增长而硬件又受到摩尔定律的严重制约,多核CPU现在被越来越多的应用于并行计算机中,于是基于多核处理器的并行程序设计技术也就成为了一种必然的发展趋势。此外,过去专用于图形处理的GPU也不再专用,因其具有大量的并行计算单元,使它在处理并行计算方面具有突出优势,正是其强大的并行计算能力引起了计算机科学家们的广泛关注,现在它几乎已不成文的成了重量级计算引擎的代名词。在经历了单核、多核的技术革新之后,异构计算正在成为当今打破并行计算程序性能瓶颈的又一突破技术,不同类型体系结构的设备都能被它有效地联系起来,实现协同工作,相互利用,一起完成程序计算。CUDA和OpenCL都是基于CPU+GPU模式的GPGPU异构计算,CUDA是NVIDIA提出的一种适用于通用并行计算的计算架构,而OpenCL则是一个专门为由CPU,GPU或其他体系结构类型的处理器组成的异构平台编写程序的框架。本文首先介绍了并行计算机体系结构,对并行计算机的结构、访存和设计模型进行了叙述与分析。接着对基于分布式存储和共享存储的并行编程模型的异同进行了对比。通过自己搭建的Linux机群,着重实现了在基于Linux系统平台上的MPI+OpenMP混合编程,证实了由节点间的消息传递和节点内的共享存储混合编程相对于单一编程模式有更好的加速比。最后利用OpenCL实现了矩阵相乘算法实践,完成了异构编程实验。