本文介绍为在笔记本、台式单机和集群服务器上进行QuantumATK MPI并行计算必须安装配置的MPI并行环境。
从2017版开始,QuantumATK集成了Intel MPI运行环境,更好的分配MPI和OpenMP并行,推荐用户使用;不再需要参考此文安装MPI。
QuantumATK可以在常见架构的多核工作站、笔记本电脑和集群上进行并行计算,不同的硬件、不同的并行度都会让计算效率得到不同的提升。 推荐的最佳并行方案是在多个多核节点上进行并行计算,不同计算类型(ATK-DFT、ATK-SE、ATK-Classical、ATK-FHIaims)可选择不同的并行策略。
进行MPI并行计算需要软件license中有Slave支持。用户需要购买并行所需的Slave数。
QuantumATK的MPI并行计算需要用户自行安装MPICH。在Windows系统上,MPICH已经随安装包提供并安装。在Linux系统上推荐安装最新版的MPICH 3.x;其他与与MPICH兼容的MVAPICH2和Intel MPI也能用。
QuantumATK支持以下几种MPICH2的进程管理器:
ATK并行计算不支持OpenMPI。
在Windows系统上,MPICH已经随安装包提供并安装。请进行以下操作以使用MPICH。
如果系统内安装了MPICH(推荐MPICH2 1.4以上或MPICH 3.x版本)或Intel MPI 或MVAPICH2,可以尝试直接使用。以Linux系统下的MPICH2为例,用户可以用mpich2version
命令获得MPICH的版本信息。
如果系统中没有MPICH,则用户可以自行安装,方法是:
tar zxf mpich-3.0.4.tar.gz
;cd mpich-3.0.4
./configure
,默认安装路径为/usr/local
,如果需要修改安装路径为/home/username/mpich-3.0.4
,则:./configure –prefix=/home/username/mpich-3.0.4
make
;make install
。/home/username/mpich-3.0.4/bin
添加在环境变量PATH
中;将/home/username/mpich-3.0.4/lib
添加在LD_LIBRARY_PATH
中,方法是将以下行添加在.bashrc或PBS脚本中:export PATH=/home/username/mpich-3.0.4/bin:$PATH export LD_LIBRARY_PATH=/home/username/mpich-3.0.4/lib:$LD_LIBRARY_PATH
ssh-keygen -t dsa
cd ~/.ssh cat id_dsa.pub >> authorized_keys chmod 600 authorized_keys
测试是否可以不用密码ssh到其他节点。
这里所说的集群为个人自行搭建的简单集群,没有队列系统等,采用手动提交任务的方式运行计算。
在个人账户的主目录下创建一个名为machinefile
的文件,文件内容为每行一个节点的主机名:
host1 host2 host3 host4
运行以下命令:
mpiexec -n 4 -f machinefile hostname
输出结果为各节点的主机名。
若以上安装都正确无误,则可以进行QuantumATK的并行测试。下载测试脚本test_mpi.py(QuantumATK安装目录的examples/atkpython下也有类似的脚本)到主目录:
import platform, time, random node = platform.node() time.sleep(random.random()) if processIsMaster(): print "Master : %s" % node else: print "Slave : %s" % node
并用下面命令运行:
mpiexec -n 4 -f machinefile atkpython ~/test_mpi.py