zoukankan      html  css  js  c++  java
  • 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

    编译后最好再次验证下。

  • 相关阅读:
    TP5.1 查看具体版本
    require(): open_basedir restriction in effect. 解决方法
    解决php -v查看到版本于phpinfo()打印的版本不一致问题
    Session机制详解
    c# 获取项目的根目录
    会修电脑不会修收音机?-闲聊设计模式原则
    CSV格式数据如何导入SqlServer?
    CSV格式数据如何导入MySQL?
    反射—程序员的快乐 -08
    策略模式 是一种好策略 -07
  • 原文地址:https://www.cnblogs.com/Parallel-Life/p/3174195.html
Copyright © 2011-2022 走看看