在Ubuntu18.04上编译SWASH模型
在Ubuntu18.04上编译SWASH模型
- SWASH模型
- 编译准备
- 源代码下载
- Intel Fortran Compiler安装
- MPICH库安装
- 其它
- 编译代码
本文内容参考了用户Mr.ZhengGang的blog ,有兴趣的朋友请到大佬的博客(Mr.ZhengGang–构建HPC生态)上了解更详细的内容。
SWASH模型
SWASH是由Delft大学开发,用于模拟非静压条件下的水动力/波浪运动的数值模型。
模型适用于非稳态、静压/非静压、自由表面的或旋转的流动,以及以及由波浪、潮汐、浮力或风力驱动的沿海水域的运输现象(盐度、温度、悬沙)。
编译准备
这里选择IVF+MPICH的配置,编译并行版的SWASH代码。
Linux系统下Swash的编译过程也可参考:swash编译安装教程。
源代码下载
SOURCEFORGE主页: SWASH home page.
源代码下载:SWASH 7.01
(现更新至swash-7.01版)
Intel Fortran Compiler安装
首先执行以下命令
sudo apt-get update
sudo apt-get install gcc-c++
以升级库并安装 gcc 环境
之后到官网下载 Intel Fortran Compiler parallel studio xe并解压(建议选择2013及以上的版本)。
之后打开解压后的文件夹,输入以下命令
./install.sh
之后按步骤进行安装。本人习惯将其安装于 /opt/intel/parallel_studio_xe_2018 这样的目录下。
安装完成后进入安装文件夹下的bin文件夹,检查icc、icpc、ifort等是否存在。
输入命令:vim ~/.bashrc 进入bash文件,在最后加上:
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
MPICH库安装
安装MPICH库的方法有:
- [推荐]直接用sudo apt-get install mpich 安装
- 去官网下载MPHICH,解压并编译安装
此处不再介绍方法2,仅考虑上述方法1;在安装完成后,用 mpich --version 检查mpich的版本。之后在终端中输入:
export PATH=/usr/bin:$PATH
#大致就是修改.bashrc文件,在最后一行添加上面那句命令,但是注意命令里的路径需要修改。
以添加环境变量。(附上Linux系统中修改环境变量的教程)
其它
SWASH代码包中还有perl脚本。不过一般的Linux系统中都装有perl库,所以不必额外安装。
编译代码
在终端中进入swash源代码所在的文件夹,输入make可查看所有 make指令
This Makefile supports the following:
make config -- makes machine-dependent macros include file
make ser -- makes the serial swash.exe executable
make omp -- makes the OpenMP swash.exe executable
make mpi -- makes the MPI swash.exe executable
make doc -- makes the SWASH documentation (PDF)
make clean -- removes compiled objects and modules
make clobber -- removes compiled objects, modules and swash.exe
make cleandoc -- removes all SWASH documents
首先输入make config以形成新的macro.inc文件。打开该文件我们可以看到
##############################################################################
# IA32_Intel/x86-64_Intel: Intel Pentium with Linux using Intel compiler 17.
##############################################################################
F90_SER = ifort
F90_OMP = ifort
# if appropriate, use mpiifort of Intel instead
F90_MPI = mpif90
FLAGS_OPT = -O2
FLAGS_MSC = -W0 -assume byterecl -traceback -diag-disable 8290 -diag-disable 8291 -diag-disable 8293
FLAGS90_MSC = $(FLAGS_MSC)
FLAGS_SER =
FLAGS_OMP = -qopenmp
FLAGS_MPI =
INCS_SER =
INCS_OMP =
INCS_MPI =
LIBS_SER =
LIBS_OMP =
LIBS_MPI =
OUT = -o
EXTO = o
MAKE = make
RM = rm -f
swch = -unix -impi
看到注释 #if appropriate, use mpiifort of Intel instead;这意味着如果要编译SWASH的并行版本,可将上述macro.inc文件中的 F90_MPI = mpif90 改成 F90_MPI = mpiifort 后保存,继而完成后续的编译。
接下来,我们将通过make ser(非并行)或make mpi(并行)生成 swash.exe。
以并行版本为例,在修改并保存macro.inc文件后,输入make mpi,几分钟后,终端的显示如下:
(图示为阿里云Ubuntu18.04的终端界面)
图中红框内容表示swash.exe已经编译。
在文件夹中可看到编译生成的swash.exe。
之后使用swashrun指令即可运行swash程序。
在Ubuntu18.04上编译SWASH模型相关推荐
- 在Windows10上编译SWASH模型
在Windows10上编译SWASH模型 SWASH模型简介 编译准备 源代码下载 Microsoft Visual Studio安装 Intel Visual Fortran安装 Perl安装 MP ...
- Ubuntu18.04上编译并跑通VINS-Fusion
VINS-Fusion github 地址:GitHub - HKUST-Aerial-Robotics/VINS-Fusion: An optimization-based multi- ...
- 在Ubuntu18.04上编译安装NTL
这篇文章介绍一下NTL库的编译安装过程,也包含测试程序来帮助检查是否已经安装成功 由于NTL库需要依赖GMP库,所以需要先完成GMP的安装,可以参考我的文章「Ubuntu安装GMP」 首先要在http ...
- 【FFmpeg】FFmpeg5.1在ubuntu18.04上编译
[目录]郭老二博文之:图像视频汇总 1.FFmpeg5.1源码下载 https://github.com/FFmpeg/FFmpeg/tree/release/5.1 2.配置 ./configure ...
- 20221218解决在Ubuntu18.04下编译Firefly的Core-3588J出现lz4的问题
20221218解决在Ubuntu18.04下编译Firefly的Core-3588J出现lz4的问题 2022/12/18 15:37 解决方法:编译最新的lz4的dev分支! https://wi ...
- 【python初级】 Ubuntu18.04上升级pip
[python初级] Ubuntu18.04上升级pip 1.背景 2.pip3升级 3.示例 1.背景 我们使用pip安装模块的时候经常提示安装失败,经常由于pip版本太老造成. 为什么要升级pip ...
- Ubuntu14.04上编译指定版本的protobuf源码操作步骤
Google Protobuf的介绍可以参考 http://blog.csdn.net/fengbingchun/article/details/49977903 ,这里介绍在Ubuntu14.04上 ...
- ubuntu18.04上安装ffmpeg
ubuntu18.04上安装ffmpeg 下载ffmpeg wget https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-amd64-static.t ...
- 在32位Ubuntu 10.04上编译Android 2.3
在32位Ubuntu 10.04上编译Android 2.3 http://www.ylmf.net/ubuntu/tips/2011021722700.html 本人在Ubuntu 10.04系统 ...
最新文章
- Codeforces 1110G Tree-Tac-Toe (博弈论)
- a - 数据结构实验之串一:kmp简单应用_中高级面试必备:快速入门数据结构和算法
- 修改网站首页批处理_几个神奇的批处理,万事不求人!
- 数据库事务、存储过程、函数以及触发器之间的区别和联系
- Web流程图绘制使用raphael
- GNS3(eNSP)和VMWare搭建网络学习环境
- Java开发入门与实战!打印杨辉三角java代码
- Java开发心得:HttpServletRequest基本功能
- 计算机网络 考研复试常见题汇总
- asp.net接受表单验证格式后再提交数据_药物临床试验数据管理与统计分析的计划和报告指导原则...
- 5二十五项反措——防止机网协调事故
- 计算广告学(Computational Advertising)概述学习
- [Android]bp侧gerrit提交不上去时,删除编译生成的二进制文件
- 论文笔记:基于特征选择与增量学习的非侵入式电动自行车充电辨识方法
- 常用C++库及测试程序
- 神经网络提取图片特征,神经网络算法识别图像
- 摄像头模组 Golden Sample
- vector容器的动态分配空间
- 使用OpenCV实现一个文档自动扫描仪
- 链家地产-Java工程师面试