并行高斯源代码编译方法
2009-05-21 15:02
本着学习、研究的态度,经过几昼夜的尝试和努力,终于在集群上成功编译了64位并行版高斯,现将编译过程写出来与大家共享:
1. 安装pgi编译器,这个是高斯的编译器,机器上必须安装。可以从网上下个rpm的安装包,rpm包的安装很容易,在安装包目录下输入:rpm –ivh filename.rpm (filename.rpm为rpm包的文件名) 2. 解压高斯源文件和linda文件。假设你的高斯源代码包和linda分别为g03XXX.tar.gz和OPTLINDA.TAZ ,以root用户登陆机器(我是为了避免编译时出现权限限制,但得到的文件都属于root用户和组,需要在最后改过来就可以了),将其拷贝到共享目录/share/apps下(这个目录是我自己集群的共享目录,在主节点上的真实路径为/export/apps,但共享出去的时候用的是别名/share/apps,一般集群现在都这样??)下面的目录都是以我为例的,安装时请自己改成实际目录 然后用如下命令: cd /share/apps 特别注意,后续安装都在该路径下,千万不能是/export/apps,虽然指向的是一样的内容,但因为是以/share/apps共享给子节点的,如果用cd /export/apps,然后再安装编译的话,一些参数和环境变量都会是/export/apps,而子节点只有共享的/share/apps目录,因此编译成功了子节点也会因为找不到路径而无法运行任务的。我一开始没有意识的这个问题,编译成功了但总是无法运行,浪费了好几天时间,后来实在没办法,挨个文件检查,查看环境变量,看到/export/apps才突然意识到。 再接着输命令: /bin/csh #进入 c shell setenv g03root “/share/apps” #设置高斯的安装目录为 /share/apps cd $g03root #进入高斯的安装目录 cat g03XXX.tar.gz | zcat | tar xvf - # 解压缩文件,假设在当前目录下得到g03文件夹 cd g03 tar –zxvf OPTLINDA.TAZ # 得到linda7.1-amd64文件夹,文件夹下有一个opteron-linux-I8文件夹(一会要用到),再下一层目录是bin和lib 3. 建立linda的符号链接linda7.1: ln –s linda-amd64 linda7.1 #这里非常重要,一定要和正确的linda版本链接。朋友借我测试的高斯源码包下原来还有个linda-ia32的文件夹,而且链接linda7.1也是已经有的,我就没注意多看,编译完成后每次到并行l302.exel的时候就自动退出不算了(我的道路可真曲折啊,55555。。。),我怎么也找不到原因,尝试多次都不成功,又耽搁了两天时间。后来实在没了耐了,到高斯目录下挨个文件查看(命苦啊)。才发现还有个linda-ia32的文件夹,而且linda7.1是和该文件夹链接在一起的。才恍然大悟,集群机器都是intel em64t的,结果装了个32位的linda,自然不行了。然后就删了linda7.1,再重新建立。 同样删除已有文件链接ntsnet flc 和 clc,然后再建链接 ln –s linda7.1/opteron-linux-I8/bin/ntsnet ntsnet ln –s linda7.1/opteron-linux-I8/bin/flc flc ln –s linda7.1/opteron-linux-I8/bin/clc clc 4. 开始安装编译,前面工作做好了以下就简单了 bsd/install make -f bsd/i386.make clean make -f gau.makefile source bsd/g03.login bsd/bldg03 >& bldg03.log & 等待十几、二十分钟左右,就ok了,你会看到好多exe和exel结尾的文件。呵呵,那就对了。 5. 修改文件夹属性 cd /share/apps chgrp –Rf g03 g03 #更改用户组,我自己集群的高斯用户组为 g03 chown –Rf g03 g03 #更改用户 6. 最后修改用户环境变量 假设用户名为newbie 属于高斯用户组,进如其home目录,修改 cd /home/newbie vi .bash_profile 在最后添加如下内容(以bsh为例): g03root="/share/apps " #注意,不能填 /export/apps GAUSS_SCRDIR=”scrdir” #scrdir为临时文件目录,设不设都行,不设置的话可以不要这行如果不设置,默认是提交高斯任务的路径 export g03root GAUSS_SCRDIR #如果上面没设置GAUSS_SCRDIR,这里也不要 . $g03root/g03/bsd/g03.profile #前面有个点 . 修改保存后输入: source .bash_profile 搞定!! 可以开始计算了!:) 强调一下: 国内高斯没有源码(这是为什么呢?歧视我们?)所以我答应朋友不把源码给别人。所以信守承诺,没法给大家,算是遗憾吧。 |