基于四种并行计算模式的自然对数底并行计算方法

时间:2022-05-03 05:49:21

基于四种并行计算模式的自然对数底并行计算方法

摘要:通过讨论自然对数底e 计算的并行结构,分别实现了Window 多线程、OpenMP、MPI 和OpenCL 四种语言计算e值。其中前三种是基于CPU 的并行模式,openCL基于GPU 的并行模式。根据数值实验的结果,分析了各种并行计算模式的优缺点。

关键词:并行计算;OpenMP ;OpenCL;GPU;MPI;自然对数

中图分类号:TP312 文献标识码:A 文章编号:1009-3044(2013)14-3415-05

1 概述

e作为数学常数,是自然对数函数的底数。它就像圆周率π和虚数单位i,是数学中最重要的常数之一,也是第一个被获证为超越数的非故意构造的数。自然对数底e是数学分析中使用非常广泛的无理数之一,它在金融、数学等领域[1-2]有着重要的应用。

对于自然对数底的计算,尚晓明[3]介绍了三种在教学中的常见的计算方法,而张新仁,徐化忠[4]介绍了计算机串行计算自然对数底的方法和实现。虽然自然对数底的值已经内置在很多的计算软件中,但是对于自然对数底的并行计算方法缺少相关的介绍。对自然对数底进行并行结构分析,不仅可以了解这一重要的数学常数,还可以分析不同的并行计算模式的优缺点。

2 e值计算算法分析

对于自然对数底e的计算公式有很多,在文中只讨论一种计算公式(1)。

2.1 串行算法分析

2.2 并行算法分析

考虑到式(1)的结构特点,它是由有限个多项式构成,在计算上有一定的独立性,结合多CPU 的架构,在这里讨论两种计算e值的并行算法。

2.2.1 多项式分段并行算法

循环并行化是使用OpemMP来并行化程序的重要部分,它是并行区域编程的一个特例。使用parallel for编译指导语句能将for循环中的工作分配到一个线程组中,而每个线程组中的每一个线程将完成循环中的一部分。对于算法3.2.2,还可以利用openMP 的编译指导语parallel for 进行简化。这样可以简化程序,方便串行程序到并行程序的转换。

3.3 MPI实现

3.4 OpenCL实现

随着GPGPU在超级计算环境中的日益普及,它在应用领域表现出优秀的性能功效比和性价比优势。OpenCL作为GPGPU的并行语言的一种,OpenCL [6]是一个为异构平台编写程序的框架,此异构平台可由CPU,GPU 或其他类型的处理器组成。OpenCL基于kerels函数运行,执行时也是拷贝复制执行模式。参考上面三种语言的并行实现计算自然对数底e,可以很快的得到所对应Kernel函数,在kernels中要注意合理利用线程ID号来分配多项式的起始位置。

4 分析与讨论

上文中,我们分析了自然对数底e 的并行计算结构和具体语言实现。为了分析四种并行计算语言的优缺点,我们在特定的设备(AMD 2*1)上进行数值试验。由于自然对数底E 的计算精度不是关注的重点,在这里不考虑计算机的精度截断(即计算机精度不够,导致无用计算)。

4.1 两种并行算法比较

5 结论

本文通过自然对数底e值并行计算的四种语言实现,分析了四种并行语言的实现特点和计算优势。由实验结果可以看出,CPU 和GPU 的并行计算还是有一定差异的,需要根据各自的特点进行协调配合,可达到更好的计算效率。

参考文献:

[1] 陈仁政.不可思议的e[M].北京:科学出版社,2005:1-88.

[2] BRIAN J M.e:数中之大师[J].余敏安,译.数学译林.2007(3):213-226.

[3] 尚晓明.超越数π与e的计算方法及其应用[J].焦作大学学报,2012(1):73-74.

[4] 张新仁,徐化忠.自然对数的近似计算[J].山东电大学报,2012(3):64.

[5] 多核系列编写组.多核程序设计[M].北京:清华大学出版社,2007.

[6] Benedict R.Gaster Lee Howes David R.Kaeli. OpenCL 异构计算[M].北京:清华大学出版社,2012.

上一篇:基于蛋白质相互作用界面的比对算法研究 下一篇:Cookies安全问题探讨