CentOS 7上安装PGI 2017编译器

1. 安装PGI编译器

在PGI的官方网站的右上角,有一个社区免费版(Community Edition)的下载链接(GET PGI FOR FREE),根据操作系统选择合适的版本即可。  

需要注意的是,在安装前务必对下载文件进行MD5码校验,下载网页上提供了安装包的MD5验证码,校验正确之后再进行安装,Linux系统下可以使用命令。

安装手册也一并提供,位于下载网页下方的“Documentation"--->"PGI Installation Guide“,根据操作系统可以找到详细的安装步骤。

Additional Resources

Installation Guides

安装过程中,需要注意:Any changes to your gcc compilers requires you to reinstall your PGI compilers.   也就是说,GCC编译器一旦有任何修改(包括更新、加载新的依赖等操作),就需要重新安装PGI编译器。

在CentOS7 x64系统上安装完成之后,对程序进行编译测试。

Makefile的全文如下:

CentOS 7上安装PGI 2017编译器
 1 PROGRAM    = main
 2 RM         = rm -f
 3 CC         = gcc
 4 F77        = pgf90
 5 #F77FLAGS  = -g 
 6 F77FLAGS   = -g -fast
 7 
 8 SOURCES.f  = main.f
9 10 11 12 SOURCES = ${SOURCES.f} 13 OBJECTS = ${SOURCES.f:%.f=%.o} 14 15 16 17 18 19 20 all: ${PROGRAM} 21 22 ${PROGRAM}: ${SOURCES} ${OBJECTS} 23 ${F77} ${F77FLAGS} -o ${PROGRAM} ${OBJECTS} 24 25 clean: 26 ${RM} ${OBJECTS}
CentOS 7上安装PGI 2017编译器

如果此时编译程序 $ make all ,则会报错如下:  

f77 -f -o moda.o moda.f 
make: f77: Command not found
make: *** [moda.o] Error 127

在终端中查询f77这个命令,确实不存在,而pgf90命令则是存在的:

CentOS 7上安装PGI 2017编译器
$ f77 -v
bash: f77: command not found...
$ pgf90 -V

pgf90 17.4-0 64-bit target on x86-64 Linux -tp haswell
PGI Compilers and Tools
Copyright (c) 2017, NVIDIA CORPORATION.  All rights reserved.
CentOS 7上安装PGI 2017编译器

2. 更新环境变量

为了使 f77 命令能链接到 PGI 编译器的程序中,需要设置环境变量并更新。这里,为了方便理解,我们用一个名为 FC 的变量来替代 f77,让 FC 指向 pgf90 命令。

首先,编辑环境变量文件

$ vi ~/.bashrc

在文件尾部加上以下PGI相关的环境变量:

# setting for PGI complier, edit by She
export PGI=/opt/pgi/linux86-64/17.4
export MANPATH=$MANPATH:$PGI/man
export LM_LICENSE_FILE=/opt/pgi/license.dat
export PATH=$PATH:$PGI/bin 
export FC=$PGI/bin/pgf90

更新环境变量: $ source ~/.bashrc 

之后,再次测试编译程序,则上一个错误已经消失。