前言
本文用於總結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