• GRAPES不同平台移植思路总结


    前言

    本文用于总结GRAPES模式在不同平台移植的思路及步骤。不同计算平台架构(PowerPC vs IA、32 bit vs 64 bit)、编译器各有不同(xl,intel,pgi,gcc),移植时需要一步一步进 行修改,保证正确性前提再开始优化。

    1. 查看新平台环境

    查看新平台环境包括:平台架构,多少位的,编译器是什么,所需软件是否已安装,如干 gmake,以及模式所需外部库netcdf等。

    • 查看平台 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文件里方便查错。

    1
    
    ./compile.sh INTEL >log 2>&1

    编译完成后,vi打开log文件,查找log中是否有error、Error等字眼。如有,查看其错误 说明,修改。

    3. 正确性验证

    编译成功后,运行程序,进行正确性验证。正确性验证方法如下:

    • 多转几次,验证结果是否一致,检验浮点计算的一致性
    • 输出数据或绘图,与原平台结果比较。可能有差异,但应很小。
    • 输出数据是否符合实际物理意义

    4. 优化

    正确性验证后,开始对编译优化,查看编译器帮助,查看优化等级说明,最好选择在保证 正确性前提下最大优化,一般是 -O2-O3

    编译后最好再次验证下。

  • 相关阅读:
    C#学习三之几个关键字Static,ref&out,get&set,readonly
    C#学习二之浅析var类型和enum枚举类型
    C#学习一之HelloWorld
    泛型(二)
    泛型(一)
    JavaScript 使用
    JavaScript
    C# 自定义控件制作和使用实例(winform)
    ThinkPHP 参数绑定原理
    处理jQuery append加入的元素 绑定事件无效的方法
  • 原文地址:https://www.cnblogs.com/Parallel-Life/p/3174195.html
Copyright © 2020-2023  润新知