超算小站 超算小站
首页
  • 注册账号
  • 登录系统
  • 熟悉系统
  • 配置环境
  • 数据管理
  • 作业管理
  • 集群软件环境:

    • 01.编译环境
    • 02.基础库
    • 03.应用软件
    • 04.工具软件
    • 05.常用语言环境
    • 06.使用进阶
  • 入门课程

    • 01.超算历史
    • 02.VPN登录
    • 03.Mobaxterm工具
    • 04.Linux基本命令
    • 05.Module环境变量管理工具
    • 06.Vim文本编辑器使用
    • 07.Slurm作业管理系统
HPC&AI
  • 01.登录问题
  • 02.编译问题
  • 03.作业问题
  • 04.存储和数据问题
  • 05.GPU问题
资料下载
归档
关于我
🚀试用
首页
  • 注册账号
  • 登录系统
  • 熟悉系统
  • 配置环境
  • 数据管理
  • 作业管理
  • 集群软件环境:

    • 01.编译环境
    • 02.基础库
    • 03.应用软件
    • 04.工具软件
    • 05.常用语言环境
    • 06.使用进阶
  • 入门课程

    • 01.超算历史
    • 02.VPN登录
    • 03.Mobaxterm工具
    • 04.Linux基本命令
    • 05.Module环境变量管理工具
    • 06.Vim文本编辑器使用
    • 07.Slurm作业管理系统
HPC&AI
  • 01.登录问题
  • 02.编译问题
  • 03.作业问题
  • 04.存储和数据问题
  • 05.GPU问题
资料下载
归档
关于我
🚀试用
  • 编译环境

  • 基础库

  • 应用软件

    • alamode 编译安装教程
    • ANGSD 编译安装教程
    • BEAST安装使用教程
    • BerkeleyGW-2.1 安装教程
    • COMSOL安装教程
    • CP2K编译安装教程
    • gromacs编译安装教程
    • jfeff安装说明
    • LAMMPS编译安装教程
    • MIgcm编译安装教程
      • 简介
      • 下载
      • 编译
        • 依赖说明
        • 配置环境
        • 生成makefile
        • 执行make命令
      • 配置运行环境
      • 提交任务测试
    • MOLPRO安装使用说明
    • nciplot安装说明
    • ovito安装说明(windows+linux)
    • swash编译安装教程
    • UV-CDAT 安装教程
    • VASP编译安装教程
    • 如何使用WRF
    • VASP6.x编译安装教程
  • 工具软件

  • 常用语言环境

  • 使用进阶

  • 软件中心
  • 应用软件
mrzhenggang
2020-11-30
目录

MIgcm编译安装教程

# MITgcm 安装说明

# 简介

麻省技术研究所的环流模式,模拟大尺度海洋环流。

  • 主页 http://mitgcm.org/ (opens new window)

  • 最新版手册 http://mitgcm.org/public/r2_manual/latest/ (opens new window)

# 下载

MITgcm_c66b.tar.gz 02-Dec-2016 00:14 115M

地址:

  • http://mitgcm.org/download/MITgcm_c66b.tar.gz (opens new window)

# 编译

# 依赖说明

编译mitgcm需要如下环境:

  1. intel / gnu compiler
  2. mpi compiler
  3. netcdf
  4. *lapack库

# 配置环境

# 1. intel / gnu compiler

我们使用系统安装好的Intel2013编译器,加载方式为:

module add Intel_compiler/13.0
1

# 2. mpi compiler

我们使用系统安装好的 mpich 编译器,加载方式为:

module add MPI/mpich/intel2013
1

# 3.netcdf

我们使用系统安装好的、与上述编译器配套的netcdf版本,加载方式为:

module add netcdf/4.4
module add hdf5/1.8.11 # 因为netcdf4默认需要hdf5
1
2

# 4.lapack(默认不需要)

我们使用系统安装好的lapack版本,加载方式为:

module add lapack/3.8.0
1

# 生成makefile

以用户的一个test_code为例,进行说明。

(1)添加genmake2命令搜索路径

我们找到解压缩后的MITgcm_c66b/tools文件夹,里面有一个gmake2命令。我们将该命令所在路径添加到PATH环境变量中。

cd MITgcm_c66b/tools 		# 使用cd命令进入解压缩的tools文件夹(自己找一下)
export PATH=`pwd`:$PATH 	# 执行export命令把当前文件夹添加到PATH环境变量中
1
2

提示

对于LAPACK而言,默认是开启了SKIP_LAPACK_CHECK=t选项,跳过检查。如果想打开,需要修改genmake2命令中的内容:

# comment this line out to enable lapack test
# SKIP_LAPACK_CHECK=t
1
2

然后在下面的配置文件中添加LAPACK库相关的内容。

此处我们可以忽略这个Can we create LAPACK-enabled binaries... no的问题

(2)进入算例文件夹

cd test_code 	# 用户自己知道在哪
ls 				# 列出文件, 比如会显示: build code run 等文件夹
cd build 		# 进入build文件夹
1
2
3

(3)创建编译配置文件

我们以解压后的MITgcm_c66b/tools/build_options目录中linux_ia32_ifort11文件为模板,进行修改,创建适合于当前编译环境下的配置文件linux_config_th1a,文件内容如下:

#!/bin/bash
MPI="true"
CC="mpicc"
FC="mpif77"
F90C="mpif90"
LINK="$F90C -shared-intel -no-ipo"
DEFINES='-DALLOW_USE_MPI -DALWAYS_USE_MPI -DWORDLENGTH=4 -DNML_TERMINATOR'
F90FIXEDFORMAT='-fixed -Tf'
EXTENDED_SRC_FLAG='-132'
GET_FC_VERSION="--version"
OMPFLAG='-openmp'
CPP='cpp -traditional -P'
NOOPTFLAGS='-O0 -g'
NOOPTFILES=''
PROCF='-xHost'
CFLAGS="-O3 -ip -m64 -no-offload -fno-alias -ansi-alias -override-limits $PROCF"
FFLAGS="$FFLAGS -m64 -convert big_endian -assume byterecl -mcmodel=medium -shared-intel -no-offload -fno-alias -ansi-alias -override-limits $PROCF"
F90FLAGS="$FFLAGS"
F90OPTIM=$"-O2 -align -ip -fp-model source $PROCF"
INCLUDEDIRS=''
INCLUDES=''
LIBS=''
INCLUDES='-I/vol-th/software/io_tools/netcdf/mpi/4.1.2/lib/include'
LIBS='-L/vol-th/software/io_tools/netcdf/mpi/4.1.2/lib -lnetcdff -lnetcdf'
INCLUDES="$INCLUDES -I/vol-th/software/io_tools/hdf5/mpi/1.8.11/include"
LIBS="$LIBS -L/vol-th/software/io_tools/hdf5/mpi/1.8.11/lib -lhdf5_hl -lhdf5"
LIBS="$LIBS -lpthread"
MPI_INC_DIR='/usr/local/mpi-intel2013/include'
INCLUDES="$INCLUDES -I$MPI_INC_DIR"
INCLUDEDIRS="$INCLUDEDIRS $MPI_INC_DIR"
LIBS="$LIBS -L$MPI_INC_DIR -lmpich"
MPIINCLUDEDIR="$MPI_INC_DIR"
LIBS="$LIBS -L/vol-th/software/libraries/lapack/3.8.0/lib64 -llapack -lblas" # lapack on
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

提示

linux_amd64_ifort_mpich_th1a 文件放在build文件夹即可。放别的文件夹也行,一会儿能找到就行。

(4)使用genmake2命令创建makefile

genmake2 -mods=../code -mpi -of=./linux_config_th1a
1

说明:

  1. gmake2是生成makefile的命令,如果找不到该命令,可以参考上文将程序所在路径添加到PATH环境变量中,或者找到后在使用时给出绝对路径。
  2. -modes=../code指明源码路径位置。通常算例目录结构为build code run 这几个文件夹放一起。
  3. -mpi指明编译mpi版本
  4. -of=./linux_config_th1a指明使用当前目录下的linux_config_th1a`脚本当做配置文件

# 执行make命令

生成makefile文件后,我们执行编译命令:

make depend
make -j 12
1
2

经过耐心等待,编译完成后会生成名为mitgcmuv的可执行文件

# 配置运行环境

由于编译完成的可执行程序需要在运行时寻找动态库,因此我们可以选择:

(1)将相关动态库的路径写入~/.bashrc文件,这样每次启动就可以自动加载。但是这样可能会在多用户多种库版本需求是造成冲突,因此不十分推荐。

(2)将相关动态库的路径写入任务提交脚本,这样就保证了多个任务之间的独立性。

相关库路径内容如下:

LUSTRE=`echo $HOME  | awk -F / '{print $2}'`
export LD_LIBRARY_PATH=/$LUSTRE/software/io_tools/netcdf/mpi/4.1.2/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/$LUSTRE/software/io_tools/hdf5/mpi/1.8.11/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/$LUSTRE/intel2013_lib:/vol-th/lib:$LD_LIBRARY_PATH
1
2
3
4

# 提交任务测试

以上步骤完成后,我们可以开始进行算例测试了。

我们编写一个提交脚本文件sub.sh,内容类似:

#!/bin/bash
# mitgcm
export PATH=/path/to/case/build:$PATH # !!! 需要修改为刚才编译的build文件夹
# libs
LUSTRE=`echo $HOME  | awk -F / '{print $2}'`
export LD_LIBRARY_PATH=/$LUSTRE/software/io_tools/netcdf/mpi/4.1.2/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/$LUSTRE/software/io_tools/hdf5/mpi/1.8.11/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/$LUSTRE/intel2013_lib:/vol-th/lib:$LD_LIBRARY_PATH
# run
yhrun -N 2 -n 24 -p debug mitgcmuv
1
2
3
4
5
6
7
8
9
10

说明:

  1. 请按需要调整最后一行命令。-N节点数,-n总核数,-p运行分区名。详情请参考用户手册提交作业部分。

注意

  1. 请注意修改脚本的相关路径,否则找不到可执行程序
  2. 不同算例编译时就确定了需要的核数,例如nPx*nPy= 24,请使用相同的核数进行提交运行

然后使用yhbatch命令提交作业:

yhbatch -N 2 -n 24 -p debug mitgcmuv
1

成功提交后,可以使用yhq命令查看作业状态,可以在提交目录查看如STDOUT.0000等文件,检查运行结果。

LAMMPS编译安装教程
MOLPRO安装使用说明

← LAMMPS编译安装教程 MOLPRO安装使用说明→

Theme by Vdoing | Copyright © 2015-2024 Zheng Gang | MIT License | 津ICP备2021008634号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×