24小时热门版块排行榜    

CyRhmU.jpeg
查看: 4368  |  回复: 12
【奖励】 本帖被评价5次,作者精神的飞行者增加金币 3.8

精神的飞行者

新虫 (小有名气)


[资源] GAMESS version May 1 linux64 Gfortran+MKL编译详细过程

GAMESS官方网站http://www.msg.ameslab.gov/gamess/注册邮箱以后下载版本为GAMESS version May 1, 2012 R2 for 64 bit IA64x86_64 under Linux with Intel compilers的程序包。(经过试验,版本为GAMESS version May 1, 2012 R2 for 64 bit (x86_64 compatible) under Linux with gnu compilers的程序包也可以在配置相同的机器上进行安装,测试结果完全相同)我们的操作系统环境为Red Hat 5.4,Intel Fortran的版本为ifort 13.0.0,其中带有mkl数学库,利用数学库可以使运算速度得到提升,GAMESS的安装涉及到Fortran编译器和数学库的信息。
注意,GAMESS的脚本均使用csh的shell,没有csh则需要安装。

安装过程:(主要参照程序目录/machines中的readme.unix说明)

1、        解压:
zcat  gamess-current.tar.gz  |  tar  -xvf  -
产生gamess目录,子目录中包括
source      源代码,FORTRAN语言,少部分为C语言
ddi         Distributed Data Interface (DDI) 并行计算,C语言
object      初始为空,存放编译过程中产生的 .o文件
tests        测试文件
machines    /unix目录下存放脚本文件的备份
tools       工具程序
graphics     画图程序
misc        备注信息

2、        config:
确认系统信息(64-bit Linux)、machine target(sockets或mpi,一般均设置为sockets)、FORTRAN编译器、数学库
./config
按照提示回答问题
please enter your target machine name:
输入linux64(uname –a命令可以用来查看系统信息)
GAMESS directory?
回车使用默认目录
GAMESS build directory?
回车使用默认目录
Version?
回车使用默认的版本号00(也可以修改为其他数值,这一次我统一设置为默认值)
Please enter your choice of FORTRAN:
输入gfortran
Please enter only the first decimal place, such as 4.1 or 4.6:
输入4.1(gfortran版本号,可以使用gfortran –v命令查看)(输入后,提示Alas, your version of gfortran does not support REAL*16,  so relativistic integrals cannot use quadruple precision. Other than this, everything will work properly. gfortran版本影响相对论计算积分的精确度)
   Enter your choice of 'mkl' or 'atlas' or 'acml' or 'none':
输入mkl(设置数学库)
   MKL pathname?
输入/opt/intel/mkl或者/opt/intel/composerxe/mkl(数学库安装路径)
   MKL version (or 'skip')?
输入skip
   回车可以在/tools目录下生成激活程序actvte.x
   communication library ('sockets' or 'mpi')?
输入sockets
   Do you want to try LIBCCHEM?  (yes/no):
输入no
   
   config完成后信息会被收集在install.info文件里

3、        compddi
/gamess/ddi目录下编辑DDI并行计算
cd  /gamess/ddi
./compddi  >&  compddi.log  &
mv  ddikick.x  ..
libddi.a文件必须保存在/gamess/ddi目录下,而ddikick.x必须保存在/gamess目录下

4、        compall
cd  ..
./compall  >&  compall.log  &

编译/source目录里所有的源代码,编译后的 .o 文件存放在/object目录里。vi compall.log查看出错情况。注意在我们的机器上,在config步骤里设置使用gfortran进行编译则不会出错,但是如果设置使用ifort(我们的版本是ifort 13.0.0),在编译trnstn.o文件时出错:“: catastrophic error: **Internal compiler error: segmentation violation signal raised** Please report this error along with the circumstances in which it occurred in a Software Problem Report.  Note: File and line given may not be explicit cause of this error.
compilation aborted for trnstn.f (code 1)”,其他文件的编译都是正常的,用时约15分钟。这个错误在于ifort编译器,编译GAMESS时最好使用12.0.0之前版本的ifort。

5、lked
./lked  games  00  >&  lked.log  &
产生gamess.00.x,其中数字00为自己设定的版本号。接下来,在configure  'rungms' 成功之后即可做并行计算。

6、编辑rungms
在/gamess目录下设置目录/scr/zcy(其中,scr为程序推荐使用的名称,zcy为用户自己设定)。
mkdir  scr
cd  scr
mkdir  zcy
vi  rungms
对第63、64、65行进行编辑,分别设定SCR目录,用于存放较大的临时文件;设定USERSCR目录,用于存放较小的supplementary output文件;设定GAMESS的安装路径。另外第69行可以设定计算使用的CPU数量。
set SCR=/scr/$USER改为
set SCR=/home/zhaochuanyu/gamess/scr/zcy
set USERSCR=~$USER/scr改为
set USERSCR=/home/zhaochuanyu/gamess/scr
set GMSPATH=/u1/mike/games改为
set GMSPATH=/home/zhaochuanyu/gamess
保存修改

7、运行runall,测试安装是否正确
   ./runall  00  >&  runall.log  &
这是GAMESS内置的测试程序,使用/tests/standard目录下的47个输入文件进行计算。在输出结果*.log文件所在的目录下(照这里的安装方法即/gamess目录),运行:
./tests/standard/checktst
即可利用GAMESS内置的检验程序对计算结果进行检查,结果显示“All jobs terminated normally, now checking detailed numerical results”“All 47 test results are correct!”,表明安装过程无误,计算结果正确。

8、并行计算的设置
   vi  rungms
   在306行左右“if ($NCPUS > 6) set NCPUS=6”之上的位置上加一行“case  localhost.localdomain:”,其中“localhost.localdomain:”是运行命令hostname之后得到的结果。
   这部分设置要求读懂rungms脚本的意思,在涉及并行计算的部分将本机的信息加上去。在做并行计算的时候可以在命令行中加入所需进程的数目,也可以在rungms脚本中的“set NCPUS=”处修改进程数。在我们的机器中,目前所能使用的最大进程数为6,受脚本的控制,修改脚本应该可以继续增大并行进程数。另外,经过测试,使用./tests/standard/ 目录下的例子进行并行计算,5、23、25、27、32、39、42、45、46、47不能正常进行,这一点在GAMESS文档3_Test Examples中有说明,部分计算是不能做并行的。



参考信息:
http://muchong.com/bbs/viewthread.php?tid=4597596&fpage=1
http://hi.baidu.com/sobereva/item/f32f0fe84b51220f570f1dc3
http://hi.baidu.com/sobereva/item/f724e964a789ac2768105bd7
http://wiki.klniu.com/zh/GAMESS(US)
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

叶芸莱

木虫 (初入文坛)


★★★★★ 五星级,优秀推荐

感谢楼主,安装一次未成功,能否私下发点gamess的输入文件生成和gamess命令的介绍?
2楼2013-05-20 11:17:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

精神的飞行者

新虫 (小有名气)


引用回帖:
2楼: Originally posted by 叶芸莱 at 2013-05-20 11:17:28
感谢楼主,安装一次未成功,能否私下发点gamess的输入文件生成和gamess命令的介绍?

不用谢,我也是新手,发这篇完全是为了带着感激的心情弥补一下我之前在网上找到的一些安装说明的小漏洞。gamess我还没有开始系统的学习,你想要的这些我建议下载官网提供的documentation,另外一些比较小的问题可以到gamess的google group去提问,那里的氛围很好的。Good luck!
3楼2013-05-20 22:00:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hee_csu

金虫 (著名写手)


★★★★★ 五星级,优秀推荐

技术帖,顶上去
4楼2013-07-25 14:54:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hee_csu

金虫 (著名写手)


请问楼主,我是按你的步骤来的,但是在测试时出现问题,exam01.log的内容如下:
----- GAMESS execution script 'rungms' -----
This job is running on host 502
under operating system Linux at Thu Jul 25 12:57:56 EDT 2013
Available scratch disk space (Kbyte units) at beginning of the job is
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda10           128307916  14658516 107131692  13% /
GAMESS temporary binary files will be written to /home/yonghui/Downloads/gamess/scr/hyh
GAMESS supplementary output files will be written to /home/yonghui/Downloads/gamess/scr
Copying input file exam01.inp to your run's scratch directory...
cp tests/standard/exam01.inp /home/yonghui/Downloads/gamess/scr/hyh/exam01.F05
unset echo
/home/yonghui/Downloads/gamess/ddikick.x /home/yonghui/Downloads/gamess/gamess.00.x exam01 -ddi 1 1 502 -scr /home/yonghui/Downloads/gamess/scr/hyh

Distributed Data Interface kickoff program.
Initiating 1 compute processes on 1 nodes to run the following command:
/home/yonghui/Downloads/gamess/gamess.00.x exam01

TCP connect error: Unknown error message.
TCP connect error: return value errno=43
DDI Process 0: error code 911
TCP: Connect failed. 502 -> 502:59999.
ddikick.x: Timed out while waiting for DDI processes to check in.
ddikick.x: Fatal error detected.
The error is most likely to be in the application, so check for
input errors, disk space, memory needs, application bugs, etc.
ddikick.x will now clean up all processes, and exit...
ddikick.x: Sending kill signal to DDI processes.
ddikick.x: Execution terminated due to error(s).
unset echo
----- accounting info -----
Files used on the master node 502 were:
-rw-r--r--. 1 yonghui yonghui 1136 Jul 25 12:57 /home/yonghui/Downloads/gamess/scr/hyh/exam01.F05
ls: No match.
ls: No match.
ls: No match.
Thu Jul 25 12:58:57 EDT 2013
0.263u 0.081s 1:01.36 0.5%        0+0k 0+24io 0pf+0w

请问怎么解决?非常感谢!
5楼2013-07-25 17:07:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

精神的飞行者

新虫 (小有名气)


引用回帖:
5楼: Originally posted by hee_csu at 2013-07-25 17:07:54
请问楼主,我是按你的步骤来的,但是在测试时出现问题,exam01.log的内容如下:
----- GAMESS execution script 'rungms' -----
This job is running on host 502
under operating system Linux at Thu Jul 25 1 ...

不好意思,这个错误我以前没有遇到过,现在不能解答。我建议你可以把这些错误信息发到GAMESS的google group中,可能会有帮助,尝试成功了有时间把解决方法发出来,这样以后的人就轻松一些了。祝好。
6楼2013-07-26 12:41:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hee_csu

金虫 (著名写手)


引用回帖:
6楼: Originally posted by 精神的飞行者 at 2013-07-26 12:41:02
不好意思,这个错误我以前没有遇到过,现在不能解答。我建议你可以把这些错误信息发到GAMESS的google group中,可能会有帮助,尝试成功了有时间把解决方法发出来,这样以后的人就轻松一些了。祝好。...

谢谢,我已经发到GAMESS的google group中。不过,我这儿网络不给力,很难上到GAMESS的google group。期待答案中......
7楼2013-07-26 16:50:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hee_csu

金虫 (著名写手)


在服务器上解决了这个问题,采用了http://forums.gentoo.org/viewtopic-p-7199174.html上alphamaennchen的方法:
put
127.0.0.1 HOSTNAME
with HOSTNAME name of the pc
to /etc/hosts
即,在/etc/hosts文件的第一行中 127.0.0.1 后面加上服务器主机名。

注:查看服务器主机名的命令为:hostname。

但在个人机上没解决。
8楼2013-07-26 17:31:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hxd_yi

金虫 (小有名气)


★★★★★ 五星级,优秀推荐

很好很强大的帖子。我再补充一下
用ifort作为编译器的时候,由于csh这个shell有一个bug,遇到if这两个词就会自动判定为词法单元if,而不解析后面的ort,所以,在用ifort的时候,必须给所有的case后面的ifort加上引号,把case ifort改为case “ifort"即可。
参考:http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=573457

[ Last edited by hxd_yi on 2013-12-4 at 10:48 ]
9楼2013-12-04 10:44:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

精神的飞行者

新虫 (小有名气)


引用回帖:
9楼: Originally posted by hxd_yi at 2013-12-04 10:44:53
很好很强大的帖子。我再补充一下
用ifort作为编译器的时候,由于csh这个shell有一个bug,遇到if这两个词就会自动判定为词法单元if,而不解析后面的ort,所以,在用ifort的时候,必须给所有的case后面的ifort加上引 ...

谢谢,我又学到很有用的一招!
10楼2013-12-05 11:04:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

duan2013

木虫 (小有名气)


★★★ 三星级,支持鼓励

对我这样的菜鸟很有用,只是可能是我电脑的原因,尝试了多次,不断百度,发现还要修改kernel.shmmax,ddi才正常工作。
11楼2014-09-24 10:00:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ZqCSky

铁杆木虫 (著名写手)


★★★★★ 五星级,优秀推荐

写的很详细。

另外我安装的时候发现 mkl,不太好找直接使用atlas数学库

安装的时候,注意添加可执行权限 chmod u+x

对atlas 创建软连接 掩藏版本号
12楼2015-03-09 16:27:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ZqCSky

铁杆木虫 (著名写手)


引用回帖:
5楼: Originally posted by hee_csu at 2013-07-25 17:07:54
请问楼主,我是按你的步骤来的,但是在测试时出现问题,exam01.log的内容如下:
----- GAMESS execution script 'rungms' -----
This job is running on host 502
under operating system Linux at Thu Jul 25 1 ...

你没有添加 可执行权限

cd  tests/standard/scripts
chmod u+x *
13楼2015-03-09 16:30:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 精神的飞行者 的主题更新
☆ 无星级 ★ 一星级 ★★★ 三星级 ★★★★★ 五星级
普通表情 高级回复(可上传附件)
信息提示
请填处理意见