MOLPRO并行编译教程

    技术2022-05-19  16

    MOLPRO并行编译教程

    今天继续为大家奉献上molpro2006.1版本的编译经历,希望对各位坛友有帮助。

    编译过程时,建议以管理员root帐号登录,避免很多因为权限所导致的错误。,编译过程中,很多问题都可能是权限原因导致的,稍微注意一下就没问题了。在编译完毕以后再修改权限,让用户可以执行就ok了准备工作:

    1、molpro想要并行,需要Global Arrays(以下简称ga)工具,该工具是免费软件,可以在其主页http://www.emsl.pnl.gov/docs/global/填个申请单,下载最新版本。目前最新的正式版本是4.0.8。

    2、编译molpro需要PGI编译器6.0版本以上或intel ifort编译器9.0以上以及cmkl或者mkl函数库。intel ifort和mkl可以在intel网站http://www.intel.com/cd/software/products/apac/zho/download/eval/232977.htm上填写个email地址注册下载免费评估版本。

    Global Arrays下载后文件为ga-4-0-8.tgz,在/home下

    tar -zxvf ga-4-0-8.tgz

    解压得到ga-4-0-8文件夹,编译有多种方式,可以选择tcgmsg或mpi等,需要根据自己集群的具体系统和网络情况来选择,与molpro合用一般情况下推荐tcgmsg,只要按如下编译即可,简单稳定:

    cd ga-4-0-8

    make TARGET=LINUX64(TARGET= 的选项有很多种选择)我的CPU和系统都是64位的,所以写的是LINUX64

    等几分钟,会提示编译成功,在ga-4-0-8的库文件夹lib下会生成一个LINUX64文件夹,在ga-4-0-8根目录下还有个tcgmsg文件夹,其下ipcv4.0文件夹下的parallel文件为并行执行文件,可以用它执行ga下global/testing/test.x的测试文件:

    ./home/ga-4-0-8/tcgmsg/ipcv4.0/parallel /home/ga-4-0-8/global/testing/test.x

    运行成果,则说明ga编译成功。(好的开始是成功的一半,呵呵)

    intel ifort和mkl下载后都是tgz文件,用tar –zxvf 解压后分别得到相应的文件夹,分别运行其目录下的安装文件install,按图示输入相应的选择以及下载时的序列号就ok了,比较简单。

    或者如果下载安装的是pgi编译器的rpm安装包的话,直接rpm –ivh xxxxx.rpm安装就ok了

    万事俱备,只欠东风了

    在集群登录账户根目录下建立.molpro文件夹,注意前边有个点,将molpro2006的license文件token拷贝到该文件夹下

    拷贝molpro2006源文件到某个目录,我是拷贝到/home/gauss下的,解压molpro2006源文件的压缩包

    tar –zxvf molpro2006.1.tar.gz

    cd molpro2006.1

    ./configure –i8 –mpp –largefiles –em64t –ifort

    其中-i8是使用64位积分文件,molpro可以使用更多的活性空间轨道

    -mpp是编译并行版本,-largefiles是使用大于2GB的临时文件,-em64t或者-x86_64是CPU类型,如果是amd的cpu,可以使用-amd64,-ifort是使用intel ifort编译器,或也可以使用-pgf来指定使用pgi fortun编译器,我试过都可以。

    输入上述命令,敲回车后,屏幕会提示给出刚才安装的mkl或者cmkl函数库的路径,这个时候系统会给定一个默认的路径,应该就是你刚才安装的路径,如果无误,直接再按回车就行(我下次再截图给各位)

    此后有两个选项关于lapack函数库位置和ga的并行方式,按默认的就可以,再后就是给出ga的库文件路径:

    /home/ga-4-0-8/lib/LINUX64 注意大小写哦,linux操作系统大小写是严格区分的

    接着提示输入并行程序位置

    /home/ga-4-0-8/tcgmsg/ipcv4.0/parallel

    之后按默认设置就可以了

    其中提示输入编译生成的运行文件和库文件的存放路径,默认是/usr/local/bin和/usr/local/lib,可以按自己的需求修改,我就修改成/home/gauss/molpro2006.1/bin/molpro-mpp-linux-i8-x86_64和/home/gauss/molpro2006.1/lib

    设置就ok了

    然后在/home/gauss/molpro2006.1目录下输入

    make

    依机器情况,等待编译结束,编译完成后在刚才输入的/home/gauss/molpro2006.1/bin/molpro-mpp-linux-i8-x86_64文件夹下会生成相应的执行程序和相关配置文件molpro.rc

    vi /home/gauss/molpro2006.1/bin/molpro-mpp-linux-i8-x86_64/molpro.rc 根据自己的具体情况修改临时文件的存放目录(-D –I –W 选项),并行运行使用的内存总数(-G选项)和单个CPU使用的内存(-m选项),注意内存数的单位是word,不是bit,1word=8bit

    编辑用户根目录下的.bashrc或者.bash_profile文件,加入下面一行语句:

    export PATH=$PATH: /home/gauss/molpro2006.1/bin/molpro-mpp-linux-i8-x86_64(这里输入自己刚才设置的存放执行程序的路径)

    然后再用下面的命令让其生效:

    source .bashrc 或者 source .bash_profile

    注意用root帐号修改molpro2006.1文件夹权限,让用户可以有权限执行。

    在用户目录下执行测试文件

    Molpro –n 2 try.dat

    -n为CPU进程选项,2代表使用2个CPU进程

    用top命令看一下进程,有2个molpro进程和一个parallel并行控制进程就对了

    单机多进程并行大功告成

    但要多机并行,还得设置无密码rsh登录才行,否则会出现连接拒绝而出错。rsh在高斯多机并行的时候也是需要的,当然高斯还可以使用ssh。

    设置无密码rsh登录:

    1、检测每台机器上的rsh配置[root@mzyy01 root]# rpm -aq |grep rshrsh-0.17-25rsh-server-0.17-25如果没有server,需要安装rsh-server,可以在http://rpm.pbone.net/index.php3?stat=3&search=rsh-server&srodzaj=3上选择相应操作系统的rsh-server下载安装:rpm -ivh rsh-server-0.17-25.rpm

    2、修改/etc/xinetd.d/rshrexec ,rlogin脚本文件,将其中的disable = yes修改为disable = no

    创建/etc/hosts.equiv文件,该文件给出各个计算节点的完整计算机名或者ip地址也行,如果用计算机名,一定要写完整,而且不能用别名,否则不能实现无密码rsh登录,所以最好用ip地址,例如:10.255.255.23410.255.255.23510.255.255.23610.255.255.237

    3、启动rsh server/etc/init.d/xinetd restart

    Ok,搞定,可以切换到非root帐号,用[ft=,,][ft=,,Times]rsh


    最新回复(0)