兩款fortran編譯器,輕量級開源的gfortran,intel出產的全能型ifort
在占用內存很高的大型程序時,除了需要足夠物理內存的計算機,還需要全能型的編譯器。intel出產的ifort編譯器安裝過程如下
官方網址及其介紹 https://software.intel.com/content/www/us/en/develop/tools/oneapi/all-toolkits.html#gs.0im67z
我安裝的是基礎組件(base toolkit)和高性能組件(high-performance toolkit)。
基礎組件安裝過程:
命令行輸入下載 wget https://registrationcenter-download.intel.com/akdlm/irc_nas/17769/l_BaseKit_p_2021.2.0.2883.sh
輸入命令運行安裝腳本 sudo bash l_BaseKit_p_2021.2.0.2883.sh
勾選:intel oneAPI Math kernel library 和 intel distribution for gdb
默認安裝路徑為 /opt/intel/oneapi/
跳過IDE設置 eclipse IDE configuration
高性能組件安裝過程:
命令行輸入下載 wget https://registrationcenter-download.intel.com/akdlm/irc_nas/17764/l_HPCKit_p_2021.2.0.2997.sh
輸入命令運行安裝腳本 sudo bash l_HPCKit_p_2021.2.0.2997.sh
勾選:intel MPI Library和 intel Fortran compiler
默認安裝路徑為 /opt/intel/oneapi/
跳過IDE設置 eclipse IDE configuration
環境變量配置:
echo -e "\n\n## oneAPI configuration \nsource /opt/intel/oneapi/setvars.sh\n" >> ~/.bashrc
source ~/.bashrc
ifort -v; mpiifort -v
備注:
如果wsl中安裝了anaconda的話,最好用vim把oneapi的環境配置放在anaconda環境配置之前,否則每次在激活conda的虛擬環境之間,需要重新source一遍才行。
可以將文件 /opt/intel/oneapi/setvars.sh 中的echo行進行注釋,避免每次打開終端的時候都會顯示一些內容。
編譯fortran程序的語句:ifort -g -mcmodel=medium program.f -o a.out; ./a.out 其中選項 -g 用於程序調試,報錯時可以返回內存地址。 選項 -mcmodel=medium 用於擴大程序所需的內存,避免因數組過大而導致的報錯。