仓库源文站点原文


layout: post title: GAMESS2013编译使用简记 categories:


2014-02-23 21:14:14 初稿

2014-03-08 12:09:09 修订

编译

  1. 解压 tar -xzvf gamess-current.tar.gz

  2. 环境配置 ./config

    1. 目标平台: 利用uname -a可知, 一般为linux64
    2. 源码路径: 当前路径
    3. 安装路径: 当前路径, 也可使用其他, 如./bin
    4. 版本号: 用作不同版本标识, 默认00
    5. FORTRAN编译器: 根据系统选择. 若使用ifort, 须选择版本
    6. 数学库: 若使用ifort, 则选MKL, 并指定路径如/share/apps/intel/composer_xe_2013.2.146/composer_xe_2013.2.146/mkl.
      若该路径下不存在多个版本MKL, 下一步直接skip
    7. 激活代码编译: 编译actvte.f, 成功, 此程序用于后面编译前源代码的处理
      ifort -o /home/jicun/GMS/tools/actvte.x actvte.f
    8. 网络设置: 并行, 选择mpi
    9. mpi库: 若使用ifort, 可用impi, 并设定路径如/share/apps/intel/impi/4.1.0.030
    10. 使用LIBCCHEM加速MP2和CCSD(T)与否, 须GPU支持. 一般不使用

      配置成功, 会在安装路径内产生install.info和Makefile两个文件, 并提示参看./machines/readme.unix

      实际上, config脚本只适合用于第一次配置环境, 得到install.info和Makefile后, 若想更改设置再次编译, 直接编辑已有的install.info和Makefile即可. 下面是两个文件的内容

      install.info(GMS_MKL_VERNO为12不影响链接时使用MKL 13.0)

      <pre class="line-numbers" data-start="0"><code class="language-bash"># Language: bash #!/bin/csh # compilation configuration for GAMESS # generated on compute1131 # generated at Sat Mar 8 12:22:27 CST 2014 setenv GMS_PATH /home/jicun/GMS setenv GMS_BUILD_DIR /home/jicun/GMS # machine type setenv GMS_TARGET linux64 # FORTRAN compiler setup setenv GMS_FORTRAN ifort setenv GMS_IFORT_VERNO 13 # mathematical library setup setenv GMS_MATHLIB mkl setenv GMS_MATHLIB_PATH /share/apps/intel/composer_xe_2013.2.146/composer\_xe\_2013.2.146/mkl/lib/intel64 setenv GMS_MKL_VERNO 12 # parallel message passing model setup setenv GMS_DDI_COMM mpi setenv GMS_MPI_LIB impi setenv GMS_MPI_PATH /share/apps/intel/impi/4.1.0.030 # LIBCCHEM CPU/GPU code interface setenv GMS_LIBCCHEM false </code></pre>

      若使用sockets, 最后几行改为

      <pre class="line-numbers" data-start="0"><code class="language-bash"># Language: bash # parallel message passing model setup setenv GMS_DDI_COMM sockets </code></pre>

      Makefile

      <pre class="line-numbers" data-start="0"><code class="language-bash"># Language: bash GMS_PATH = /home/jicun/GMS GMS_VERSION = 00 GMS_BUILD_PATH = /home/jicun/GMS include $(GMS_PATH)/Makefile.in </code></pre>
  3. 编译 ./compall >& compall.log. 请耐心.
    ifort的编译选项, 可在comp文件1870行修改,
    可增加-xHost -axAVX -opt_report -static
    优化默认为-O2, 也可使用-O3 -fast, 但须测试

  4. 编译ddi库: cd ddi; ./compddi

  5. 链接 ./lked GAMESS 00 >& lked.log
    静态链接, 可在1393行增加-static-intel
    使用-static可能会选项-lrt冲突, 从而导致链接失败

使用

rungms File.inp #version Ncpu PPN

脚本中需要修改的地方

实际上, rungms脚本为照顾不同系统使用, 添加了很多与系统相关的代码, 若只在特定系统下运行, 可将其他系统相关的代码删除.

IMPI并行时可能的问题