下面只有第二题的教学,适用于各届超算比赛
参加比赛主要为了水个奖,顺便带好朋友拿个凭证方便保研,于是临时组了一个小队伍,感谢蔡zx,朱yn,赵yf,李jh在比赛期间的付出,最后也是如愿拿了个国二吧,算是圆满结束
总的来说,这个比赛想拿奖并不难,我们组认真搞的时间也就五六天,期间也是要上课什么的,大部分程序和文章都是晚上写的,最后一两天也是熬大夜了。要冲刺国一进线下的话,还是得要认真花时间搞,因为里面的一些题很花时间,需要租服务器去跑,搭环境也很折磨,更别说自己改代码调试了
还要感谢一个中石油的素未蒙面的好兄弟哈,找他要他们当时的proposal免费给我们了,这里也我们组也一致同意把我们的proposal放在互联网供大家参考吧(虽然是一坨屎),如果能帮到大家那最好啦


Linpack之HPL测试
安装HPL之前需要的配置
1.GCC/Fortran编译器
$ sudo yum install gcc
$ sudo yum install gcc-gfortran
2.BLAS/CBLAS库
- 在 home 目录下创建文件夹,并切换:
mkdir ~/prepare && cd ~/prepare - 下载 blas-3.8.0.tgz:
wget http://www.netlib.org/blas/blas-3.8.0.tgz - 解压包:
tar -xzf blas-3.8.0.tgz - 切换目录:
cd BLAS-3.8.0 - 编译生成 blas_LINUX.a:
make - 链接 .o 文件生成 libblas.a 文件:
ar rv libblas.a *.o - 切换到 prepare 目录:
cd ~/prepare - 下载 cblas.tgz:
wget http://www.netlib.org/blas/blast-forum/cblas.tgz - 解压包:
tar -xzf cblas.tgz - 切换目录:
cd CBLAS - 将第 5 步产生的 .a 文件拷贝到当前目录:
cp ~/prepare/BLAS-3.8.0/blas_LINUX.a ./ - 修改 Makefile.in 文件中的 BLLIB:
vim Makefile.in:
BLLIB = ~/prepare/BLAS-3.8.0/blas_LINUX.a
编译:make
测试运行:./testing/xzcblat1
如若在make时遇到如下问题

修改源代码:
CALL STEST1(SNRM2TEST(N,SX,INCX),STEMP(1),STEMP,SFAC)
CALL STEST1(SASUMTEST(N,SX,INCX),STEMP(1),STEMP,SFAC)
3.MPICH并行环境
- 切换目录:
cd /home/prepare - 下载 mpich-3.2.1.tar.gz:
wget http://www.mpich.org/static/downloads/3.2.1/mpich-3.2.1.tar.gz - 解压安装包:
tar -xzf mpich-3.2.1.tar.gz - 切换到主目录:
cd mpich-3.2.1 - 设置安装路径:
./configure(此处可能会遇到错误) - 编译:
make - 安装:
sudo make install - 查看前面工作是否成功:
which mpicc && which mpiexec - 创建目录:
mkdir machinefile - 测试运行:
mpiexec -f machinefile -n 3 hostname && mpiexec -n 5 -f machinefile ./examples/cpi
在./configure时遇到错误configure: error: The Fortran compiler gfortran will not compile files that call the same routine with arguments of different types.
export FFLAGS="-fallow-argument-mismatch"
export FCFLAGS="-fallow-argument-mismatch"
在./configure时遇到错误configure: error: Aborting because C++ compiler does not work. If you do not need a C++ compiler, configure with --disable-cxx
yum install gcc gcc-c++
最终测试结果如下显示,即为成功

HPL测试
- 切换目录:
cd ~/prepare - 复制文件:
sudo cp CBLAS/lib/* /usr/local/lib - 复制文件:
sudo cp BLAS-3.8.0/blas_LINUX.a /usr/local/lib - 下载 hpl-2.3.tar.gz:
wget http://www.netlib.org/benchmark/hpl/hpl-2.3.tar.gz - 解压包:
tar -xzf hpl-2.3.tar.gz - 切换目录:
cd hpl-2.3 - 复制文件:
cp setup/Make.Linux_PII_CBLAS ./ - 复制文件:
sudo cp include/* /usr/local/include - 打开 Make.top 文件:
vim Make.top,做如下修改:
arch = Linux_PII_CBLAS
打开 Makefile 文件:vim Makefile,做如下修改:
arch = Linux_PII_CBLAS
打开 Make.Linux_PII_CBLAS 文件:vim Make.Linux_PII_CBLAS,做如下修改:
ARCH = Linux_PII_CBLAS
TOPdir = ~/prepare/hpl-2.3
MPdir = /usr/local
MPlib = $(MPdir)/lib/libmpich.so
LAdir = /usr/local/lib
LAlib = $(LAdir)/cblas_LINUX.a $(LAdir)/blas_LINUX.a
CC = /usr/local/bin/mpicc
LINKER = /usr/local/bin/mpif77
- 编译:
make arch=Linux_PII_CBLAS - 运行测试:
cd bin/Linux_PII_CBLASmpirun -np 4 ./xhpl > HPL-Benchmark.txt
- 查看结果:

Linpack之HPCG测试
- 切换目录:
mkdir ~/prepare && cd ~/prepare - 下载 HPCG:
git clone https://github.com/hpcg-benchmark/hpcg.git - cd 到 setup:
cd hpcg/setup - 修改 Make.Linux_MPI:
vim Make.Linux_MPI
MPdir = /usr/local
CXX = /usr/local/bin/mpicxx
- 创建 build 文件夹:
mkdir build && cd build - 设置安装环境:
../../configure Linux_MPI - 开始安装:
make - 运行测试:
cd bin && mpirun -np 8 ./xhpcg
最终测试结果如下



Comments | NOTHING