前言
本文用于总结GRAPES模式在不一样平台移植的思路及步骤。不一样计算平台架构(PowerPC vs IA、32 bit vs 64 bit)、编译器各有不一样(xl,intel,pgi,gcc),移植时须要一步一步进 行修改,保证正确性前提再开始优化。架构
1. 查看新平台环境
查看新平台环境包括:平台架构,多少位的,编译器是什么,所需软件是否已安装,如干 gmake,以及模式所需外部库netcdf等。app
- 查看平台
uname -a
- 编译器
which compiler-name
,好比AIX的xlf90,intel的ifort,PGI的pgf90 - netcdf库
which nc-config
,若是没有,本身到官网上下个本身装,这里要注意的 是安装netcdf的编译器要与模式使用的相同。若是存在,则用nc-config -a
查看 安装它所用的编译器以及之后使用它时连接库格式
2. 正确性移植
移植要保证正确性,对照原来平台的配置文件中各编译选项,查找新平台编译器功能相同 的编译选项。须要注意如下几个方面的编译选项:优化
- 32 bit or 64 bit
- 保证浮点计算一致性编译选项
- IO的大端、小端选择,big_endian or little_endian
- 外部数学库,文件读写库netcdf
基本配置好了,编译程序。通常将编译输出到一个log文件里方便查错。spa
1
|
./compile.sh INTEL >log 2>&1 |
编译完成后,vi打开log文件,查找log中是否有error、Error等字眼。若有,查看其错误 说明,修改。code
3. 正确性验证
编译成功后,运行程序,进行正确性验证。正确性验证方法以下:编译器
- 多转几回,验证结果是否一致,检验浮点计算的一致性
- 输出数据或绘图,与原平台结果比较。可能有差别,但应很小。
- 输出数据是否符合实际物理意义
4. 优化
正确性验证后,开始对编译优化,查看编译器帮助,查看优化等级说明,最好选择在保证 正确性前提下最大优化,通常是 -O2
或 -O3
。数学
编译后最好再次验证下。it