Ubuntu下OpenFOAM跨节点并行的配置

CFD工作者和爱好者经常需要在多节点上进行并行计算,那么对应OpenFOAM跨多个节点的并行计算需要配置哪些呢?这个配置过程较为复杂,小编通过实战经验总结了配置过程,希望可以帮助到大家。具体的配置过程如下:
在主机和辅机上创建相同的用户,并在该用户下配置openFoam的环境变量,进行openFoam软件安装,openFoam环境配置需注意将openFoam的环境变量加到下图中的位置或前面,否者在非交互性的ssh远程命令执行时不会配置openFoam的环境变量。
#2:配置hosts和interfaces
在主机和辅机的机器上安装sshserver和ssh client,然后进行网络配置。
首先,获取主机和辅机上的网址,如下图所示。
然后将主机上和辅机上的hostname和网址写到每台机器的/etc/hosts文件中,如下图所示
其后,修改/etc/network下的interfaces文件设置静态ip,由:
改为:
然后执行sudo /etc/init.d/networking restart命令
执行ssh-keygen –t rsa或ssh-keygen–t dsa命令会在/home/用户/.ssh目录下生成一对公钥(id_rsa.pub)和私钥(id_rsa),然后执行:
cp/home/用户/.ssh/id_dsa.pub /home/用户/.ssh/authorized_keys
将公钥拷到authorized_keys。
其后将主机上的公钥拷到各台辅机上:
ssh-copy-id 用户@openfoam1
有关ssh免密登录的详细配置可以参考 http://blog.csdn.net/longyinyushi/article/details/50984445
在有一个主机和多个辅机的时候,可以只在主机上装OpenFoam和openMPI compilers,然后挂载到各辅机上,算例的执行也可挂载到辅机上就避免了文件的复制。
要实现以上功能,首先得在主机上执行:
sudoapt-get install nfs-kernel-server nfs-common命令
在辅机上执行:
sudoapt-get install nfs-common
在辅机上创建OpenFoam文件夹,并将文件权限改为777
mkdir-p OpenFoam
chmod777 OpenFoam
在主机上也创建openFoam文件夹,并将文件权限改为777
mkdir-p OpenFoam
chmod777 OpenFoam
然后编辑主机/etc下的exports文件,在最后一行中加入:
/home/用户/OpenFoam 辅机hostname(rw,sync,fsid=0,crossmnt,no_subtree_check)
其后,重启nfs服务器,输入命令:
sudo/etc/init.d/nfs-kernel-server restart
在各辅机上安装挂载主机OpenFoam文件夹,输入命令:
sudomount -t nfs openfoam2:/home/用户/OpenFoam/home/用户/OpenFoam
将所有的openFoam文件都拷到主机的OpenFoam文件夹下(应该要改一下配置环境),
然后将修改OpenFoam文件夹的权限:
sudo-R chmod 777 OpenFoam
修改各辅机上的/etc下的fstab文件可以自动挂载主机上OpenFoam文件夹:
sudopico /etc/fstab
在最后一行中添加:
Openfoam2:/home/用户/OpenFoam /home/用户/OpenFoam nfs user, rw,auto 0 0
1、 首先网格文件生成
2、 执行decomposePar命令,拆分网格
3、 编辑hostfile文件,其格式为:
openfoam1cpu=2
openfoam2 cpu=2
4、 执行mpirun -np 4--hostfile machines interFoam –parallel命令
即可在不同机器上并行计算,等计算完成后,最后执行reconstructPar命令重组网格。
并行中核数的占用情况是先将hostfile文件中的第一个机器的核数用完以后,再用第二台机器的核数
内容来自公众号:EASYCAE云计算平台

工程师必备
- 项目客服
- 培训客服
- 平台客服
TOP
