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

    • 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编译安装教程
    • MOLPRO安装使用说明
    • nciplot安装说明
    • ovito安装说明(windows+linux)
    • swash编译安装教程
      • 简介
      • 编译环境
      • 编译方法
        • 加载编译环境
        • 编译
      • 运行
        • 普通运行
        • 在天河系统上运行
    • UV-CDAT 安装教程
    • VASP编译安装教程
    • 如何使用WRF
    • VASP6.x编译安装教程
  • 工具软件

  • 常用语言环境

  • 使用进阶

  • 软件中心
  • 应用软件
mrzhenggang
2018-03-08
目录

swash编译安装教程

# 简介

SWASH是一个通用的数值计算工具,用于模拟非稳态、非流体静力学的、自由表面的或旋转的流动,以及以及由波浪、潮汐、浮力或风力驱动的沿海水域的运输现象。

官网地址:传送门 (opens new window); 源码下载:传送门 (opens new window)。

# 编译环境

串行版需要fortran编译器,多线程版本需要支持openmp,MPI版本需要具备mpi编译环境。

# 编译方法

本文给出使用intel2013编译器和mpich并行编译器编译的基本步骤:

# 加载编译环境

不同的平台,编译器的安装及加载方式不同,在此给出最常见的加载方式:

source /opt/intel/composer_xe_2013.0.079/bin/iccvars.sh intel64
source /opt/intel/composer_xe_2013.0.079/bin/ifortvars.sh intel64
source /opt/intel/composer_xe_2013.0.079/mkl/bin/mklvars.sh intel64
1
2
3

说明:

  • 前两行为加载icc(包括icpc等)及ifort编译器。使用source命令,加载编译器安装路径下的的sh脚本,并给出intel64参数,表明是64位操作系统。
  • 第三行与之前的类似,加载intel的MKL数学库,因为接下来会用到它。注意修改为自己的intel编译器路径。
export PATH=/usr/local/mpi-intel2013/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/mpi-intel2013/lib:$LD_LIBRARY_PATH
1
2

说明:

  • 第一行为使用 export 命令,声明环境变量 PATH ,它是用来寻找可执行命令路径的环境变量。先给出mpich的安装路径下的bin目录,然后在用 “$” 符号引用 PATH 变量。意味着给 PATH 变量增加一个搜索路径,这样子就能找到我们需要的例如 mpif90命令了。
  • 第二行与第一行类似, LD_LIBRARY_PATH 声明的是加载动态库的路径。 注意修改为自己的mpi编译器路径。

# 编译

tar zxvf swash-4.0.1.tar.gz  
cd swash
make config
make mpi
chmod +x swashrun
1
2
3
4
5

编译完成后会生成一个名为swash.exe的可执行文件。

# 运行

# 普通运行

准备好输入文件,如test.sws,a13stwav.bot。

/path/to/swash/swashrun -input test -mpi 12 > swashout
1

说明:

参数 含义
/path/to/swash/swashrun swashrun脚本的路径和名称
-input test 输入文件的名称,注意没有sws后缀
-mpi 12 使用12个cpu核并行
> swashout 将屏幕输入重定向到swashout文件

# 在天河系统上运行

因为天河系统使用了自主高速网络互联以及slurm作业调度系统,故默认的mpirun变为了yhrun命令,所以需要手动修改一下swashrun脚本,并结合作业调度系统运行。

修改swashrun脚本

# 第50行
if test -f $dir/mpirun; then # 修改前
if test -f $dir/yhrun; then # 修改后
# 第109行
mpirun -np $npmpi -machinefile machinefile swash.exe  # 修改前
yhrun -n $npmpi swash.exe  # 修改后
# 第114行
mpirun -p $npmpi swash.exe # 修改前
yhrun -p $npmpi swash.exe # 修改后
1
2
3
4
5
6
7
8
9

编写作业提交脚本

编写一个作业提交脚本,名为runswash.sh

#!/bin/bash
# ------------------------------------------------------------------------
# change these parameters for each jobs as your need
nodenum=2   # node number
cpuspernode=12   # cpu number per node
partition="debug"  # partition : debug (only for test, just can run 30mis) or TH_NEW1
input="test"  # input file 
logfile="swashout" # log file 
SWASHROOT="/vol-th/software/swash/4.0.1" # change only once for your install directory
# ------------------------------------------------------------------------                     
export PATH=$SWASHROOT:$PATH
#
exe="swashrun-th"
#
totalcpus=$[ $nodenum * $cpuspernode ]
#
# create a submit script file
subScript="sub.sh"
#
# rename sub.sh
if [ -f $subScript ];then
    mv $subScript ${subScript}-bak
fi
#
# create sub.sh
\cat > $subScript << EOF
#!/bin/bash
echo "Partition is $partition"
echo "totalcpus is $totalcpus"
#
# write hostlist
yhrun -N $nodenum -n $totalcpus -p $partition hostname | sort -n | uniq > .hostlist
#
# reame machinefile
if [ -f machinefile ];then
    mv machinefile machinefile-bak
fi
# create machinefile
cat .hostlist | while read line;
do
    echo \$line:$cpuspernode >> machinefile
done
#
# swashrun
$exe -input $input -mpi $totalcpus > $logfile 
EOF
#
# submit job
yhbatch -N $nodenum -n $totalcpus -p $partition $subScript
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49

提交任务 由于将该任务所需的信息均已在脚本中提供,故仅需要提交该脚本即可。

sh runswash.sh
1
ovito安装说明(windows+linux)
UV-CDAT 安装教程

← ovito安装说明(windows+linux) UV-CDAT 安装教程→

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