1.话说scalapck还是可以运行在异构平台上的,虽然效率目前未知,但是设计时有考虑这个异构的问题,证据如下
http://netlib.org/scalapack/
scalapack_install.pdf 其中的2.4 Run the PBLAS Test Suite
Testing instructions with MPICH on a network of workstations
Then, to run the executable, you will use the command mpirun. For example,
mpirun -np <number of processes> <executable>
where <executable> is replaced by xspblas1tst, and so on.
If the network of work-stations is heterogeneous, you will need to specify the -p4pg option and supply a text filecontaining the names of the machines and the locations of the executables to which you willspawn tasks. Refer to the mpirun manpage for complete details.
2.运行scalapack测试程序
mpirun 与mpiexec是不同的,使用mpiexec可以在一个机器上运行多个进程,mpirun则失败
duanple@duanple-desktop:~$ mpirun -n 2 ./xclu
totalnum=2 numhosts=1
there are not enough hosts on which to start all processes
duanple@duanple-desktop:~$ mpiexec -n 2 ./xclu
ScaLAPACK Ax=b by LU factorization.
'MPI Machine'
Tests of the parallel complex single precision LU factorization and solve.
The following scaled residual checks will be computed:
Solve residual
3.scalapack移植到cell平台
如果单纯的交叉编译,可以很容易的把blas编译成功,但如果要编译lapack,因为它要运行一些文件比如
/bin/sh: ./testlsame:无法执行二进制文件
/bin/sh: ./testslamch:无法执行二进制文件
进行测试,就不太容易了。所以需要直接早cell平台上编译好lapack scalapack,然后拷贝到intel的集成开发工具里供使用。
mpi也是如此,单纯的链接库可以,但是针对cell的mpirun是无法在intel上运行的。
评论