SPLASH2并行测试程序

来源:互联网 发布:网盘看视频软件 编辑:程序博客网 时间:2024/06/06 05:03

SPLASH2

1992年,斯坦福大学推出了Stanford ParalleL Applications for SHared memory(SPLASH),1995年SPLASH第二版问世,被称为SPLASH-2。SPLASH-2使用C语言,由12个程序组成,使用PThread并行方式。

SPLASH-2包含4个核心程序:

  1. Cholesky:用于将一个稀疏矩阵拆分成一个下三角矩阵和它的转置的积;
  2. FFT:用于计算快速傅里叶变换;
  3. Radix:是分配存储地址的算法;
  4. LU:用于将一个稀疏矩阵拆分成一个下三角矩阵和一个上三角矩阵的积

另外还包含:

  1. Ocean:用于通过海洋的边缘的海流模拟整个海洋的运动;
  2. Radiosity:用于模拟光线在不同场景下的光影现象;
  3. Barnes: 用于模拟一个三维多体系统(例如星系);
  4. Raytrace:用于模拟光线的路径;

以及BARNS、FMM、Volrend、Water-Nsquared总共8个其他应用程序。

然而,SPLASH2确实太老了。其官方主页www-flash.stanford.edu/apps/SPLASH根本无法打开。以至没啥更好的资料。甚至连原始的SPLASH2程序都下载不了,好在http://kbarr.net/splash2上找到个作者提供的,解压时会提示一定问题,但是无关痛痒不影响使用。我这里也提供一份本地下载。

 

The Modified SPLASH-2

改善旧的SPLASH2,使其使用更现代的编程方法。具体的就是使用新版Pthread的一些并行编程方法,如Barrier。具体的更改可以看http://www.capsl.udel.edu/splash/ChangeLog.html。

使用方法:

  1. 下载原始SPLASH-2包,(地址见上文). 并解压到相应目录。
  2. 下载补丁。网址:http://www.capsl.udel.edu/splash/Download.html,本地下载,将它放入SPLASH-2解压后的目录中,并解压缩。
  3. 打补丁。命令:patch -p1<splash2-modified.patch
  4. 删除补丁文件splash2-modified.patch.
  5. 按照具体情况编辑splash2/codes/Makefile.config文件,尤其要检查里面关于splash程序包的路径是否正确。
  6. 在splash2/codes/null_macro文件夹中有三个宏:c.m4.null,c.m4.null.POSIX,c.mu.null.POSIX_BARRIER,具体选用哪个宏,在Makefile中指定。

其中第一个宏是将程序串行执行。后面两个都是支持并行运行的,其中最后一个支持栅栏同步。

  1. 命令:make开始对每个程序进行编译。
  2. 注意:其它的程序通过make编译良好,但在apps中有一个radiosity在编译时,必须先编译它下面的两个子文件夹。
  3. 其中每个分程序的运行都可以使用-h选项来查看需要哪些参数。例如 FFT –h,就可以得到如下结果:

Command line options:                                                 

-mM : M = even integer; 2**M total complex data points transformed.  

-pP : P = number of processors; Must be a power of 2.                 

-nN : N = number of cache lines.                                    

-lL : L = Log base 2 of cache line length in bytes.                 

-s : Print individual processor timing statistics.                 

-t : Perform FFT and inverse FFT. Test output by comparing the    

integral of the original data to the integral of the data     

that results from performing the FFT and inverse FFT.        

-o : Print out complex data points.                               

-h : Print out command line options.        

SPLASH-2有四个内核程序和8个应用程序。其中应用程序在运行的时候,必须在命令后加上输入文件,里面有样本范例。


转载自:寂寞巷 的博客


原创粉丝点击