当前位置:首页 » 编程软件 » HPL编译detail

HPL编译detail

发布时间: 2022-08-21 21:39:41

Ⅰ hpl编译出错,是不是make文件的问题

高级语言的编译出错,原因有很多种。可以是源程序中的程序错误,也可以是 makefile 文件的本身编写规则写得不对,都会导致在 make makefile 文件时出现错误。因为 makefile 对编写 makefile 文件的规则、以及编译、连接的先后顺序是很严格的,至于说到底是哪一种类型的错误,那就需要仔细检查源程序、以及 makefile 文件了。

Ⅱ ubuntu benchmark怎么进行测试

一、Linpack简介
Linpack是国际上最流行的用于测试高性能计算机系统浮点性能的benchmark。通过对高性能计算机采用高斯消元法求解一元N次稠密线性代数方程组的测试,评价高性能计算机的浮点性能。

Performance Linpack,也叫高度并行计算基准测试,它对数组大小N没有限制,求解问题的规模可以改变,除基本算法(计算量)不可改变外,可以采用其它任何优化方法。前两种测试运行规模较小,已不是很适合现代计算机的发展。
HPL 是针对现代并行计算机提出的测试方式。用户在不修改任意测试程序的基础上,可以调节问题规模大小(矩阵大小)、使用CPU数目、使用各种优化方法等等来执 行该测试程序,以获取最佳的性能。HPL采用高斯消元法求解线性方程组。求解问题规模为N时,浮点运算次数为(2/3 * N^3-2*N^2)。因此,只要给出问题规模N,测得系统计算时间T,峰值=计算量(2/3 * N^3-2*N^2)/计算时间T,测试结果以浮点运算每秒(Flops)给出。HPL测试结果是TOP500排名的重要依据。

二、Linpack安装与测试
1. Linpack安装条件:
在安装HPL之前,系统中必须已经安装了编译器、并行环境MPI以及基本线性代数子方程(BLAS)或矢量图形信号处理库(VSIPL)两者之一。

在Ubuntu下,使用apt-get安装gfortran,mpich2,每个计算节点都需要安装
安装完后,可先使用mpicc编译helloworld验证mpi集群是否工作正常

hpl linpack缺省配置是使用atlas的库,所以这里我们安装ATLAS
参考http://blog.sina.com.cn/s/blog_708532ea0100m8nt.html

根据atlas的安装文档, 首先要switch off cpu throttling.首先安装cpufrequtils和cpufreqd这两个包, 也许还要安装powernowd包

从http://sourceforge.net/projects/math-atlas/files/下载atlas
cd ATLAS
mkdir build
cd build
../configure
make

编译没有问题的话会在lib目录下生成几个静态库

2. 安装与编译Linpack:
第一步,从www.netlib.org/benchmark/hpl 网站上下载HPL包hpl.tar.gz并解包

cd hpl-2.1
cp setup/Make.Linux_PII_CBLAS_gm Make.x86_64
vi Make.x86_64

修改下列配置:
ARCH = x86_64
TOPdir = $(HOME)/projects/hpl-2.1

LAdir = $(HOME)/projects/ATLAS/build/lib
LAinc =
LAlib = $(LAdir)/libcblas.a $(LAdir)/libatlas.a

然后开始编译:
make arch=x86_64
如果出现符号找不到的问题,请检查LAlib的库的位置

cd bin/x86_64
在这个目录下生成了两个文件, HPL.dat是linpack计算的配置文件, xhpl是测试程序

这里有关于HPL.dat的配置说明:
http://blog.csdn.net/yosoqoo/article/details/3563349
其中几个重要的参数(必须针对集群环境修改)
1 # 表示只做一次计算,使用下面的第一个数
100000 30 34 35 Ns #矩阵大小,为了测试性能,一般取N*N*8 ~ 内存总量,集群时考虑总内存量

1 # of NBs
192 2 3 4 NBs #分块大小,经验值192
4 1 4 Ps # PxQ 应该等于整个集群的进程数,一般等于cpu核数
16 4 1 Qs # P 一般<=Q

如果是单机,可以运行mpiexec -n 64 ./xhpl来看一下是否工作正常。
对于集群,首先需要保证所有机器的可以相互使用ssh无密码登录(比如要从s1登录到s2,需要把s1上的.ssh/id_rsa.pub内容拷贝到s2的.ssh/authorized_keys里。
然后创建mpi_hosts文件,内容就是集群内各机器名称,每个机器一行。

在每个机器上,都需要有相同的用户,以及同样的hpl-2.1路径和文件HPL.data,xhpl程序

运行mpiexec -n 64 -f mpi_hosts, ./xhpl

注意:
1. 矩阵不能太小,要保证矩阵数据可以占用大量内存,运行时可以free来查看内存使用量,用top,然后按1来查看cpu每个核的使用情况
2. 节点间数据传输量比较大,应该使用万兆网络,否则网络会成为瓶颈。
3.本文只是为了验证,并不是为了优化benchmark。如果要达到更好的benchmark数值,应该使用优化的blas库,比如intel的mkl。intel的mkl本身就带了linpack测试程序

热点内容
华为平板怎么储存服务器文件 发布:2025-02-06 12:49:21 浏览:479
php查询结果数组 发布:2025-02-06 12:31:05 浏览:714
怎样把照片压缩打包 发布:2025-02-06 12:15:19 浏览:496
如何编译java文件 发布:2025-02-06 12:05:58 浏览:237
九九乘法编程 发布:2025-02-06 12:05:05 浏览:519
台式机忘记开机密码怎么办 发布:2025-02-06 11:58:01 浏览:871
android刷新按钮 发布:2025-02-06 11:57:17 浏览:586
存储过程有输入参数和输出参数 发布:2025-02-06 11:55:32 浏览:99
成绩评选算法 发布:2025-02-06 11:42:51 浏览:997
数据库测试数据 发布:2025-02-06 11:31:05 浏览:824