@(toc)
Intel Parallel编译器(icc icpc ifort)Linux系统安装配置
本篇文章主要讲解在linux系统centos7.5/centos7.9版本中,Intel编译器的安装、环境导入、并行库调用以及在不同centos版本中安装时缺少32位库的解决方案等内容。
一、★Intel编译器定义
Intel Parallel Studio XE Cluster版C/C++ Fortran编译器,是一种主要针对Inetl平台的高性能编译器,可用于开发复杂且要进行大量计算的C/C++、Fortran程序。
Intel编译器编译C和C++源程序的编译命令分别为icc和icpc;编译Fortran源程序的命令为ifort。icpc命令使用与icc命令相同的编译器选项,利用icpc编译时将后缀为.c和.i的文件看作为C++文件;而利用icc编译时将后缀为.c和.i的文件则看作为C文件。用icpc编译时,总会链接C++库;而用icc编译时,只有在编译命令行中包含C++源文件时才链接C++库。
在Intel数学库(Intelmath)中的许多函数针对Intel微处理器相比针对非Intel微处理器做了非常大的优化处理。
二、★安装环境说明
操作系统:centos7.5(已配置离线YUM源)
Centos7.9_YUM源离线配置链接操作权限:具有root或sudo权限
INTEL软件安装版本: l_ccompxe_2011.4.191 / l_fcompxe_2011.4.191
Intel软件包含文件:
Intel® C++ Compiler XE 12.0 Update 4 for Linux*
Intel® Debugger 12.0 Update 4 for Linux*
Intel® Math Kernel Library 10.3 Update 4 for Linux* OS
Intel® Integrated Performance Primitives 7.0 Update 4 for Linux* OS
Intel® Threading Building Blocks 3.0 for Linux, Update 7Intel® Fortran Compiler XE 12.0 Update 4 for Linux*
Intel® Debugger 12.0 Update 4 for Linux*
Intel® Math Kernel Library 10.3 Update 4 for Linux* OSIntel_fortran下载链接:Intel® Fortran Compiler XE 12.0
Intel_icc/icpc下载链接:Intel® C++ Compiler XE 12.0第一部分
Intel® C++ Compiler XE 12.0第二部分
三、★Intel编译器安装
3.1 确认selinux状态
# 临时修改selinux状态
getenforce # 查看selinux状态,确保状态是Disabled或permissive
setenforce 0 # 临时设置selinux状态为permissive
# 永久修改selinux状态,需要重启系统生效
sed -e 's/SELINUX=.*/SELINUX=disabled/g' /etc/sysconfig/selinux
注意! 确保selinux的状态是permissive或disabled,否则会出现无法安装的状态
3.2 安装C/C++编译器
# 软件版本:l_ccompxe_2011.4.191.zip
zip -F l_ccompxe_2011.4.191.zip --out l_ccompxe_2011.4.191-tmp.zip #分卷解压的命令
unzip l_ccompxe_2011.4.191-tmp.zip
cd l_ccompxe_2011.4.191
chmod +x install.sh
chmod +x pset/32e/install.32e
chmod +x pset/chklic/32e/chklic
chmod +x pset/activation/install_fnp.sh
./install.sh
注意! chmod +x 4个命令并不是必须执行的,需要执行的情况是软件在windows系统中解压后又压缩导入linux系统中,在linux系统解压后会出现一些可执行文件的执行权限的丢失,导致安装的时候出现Permission denied的错误,无法安装,这个时候才需要执行chmod +x 文件名的命令
step1:选择1放弃检测
step2:如果安装过,保留了license文件,就选1,否则第一次安装选4
step3:选择2,使用license文件:NCOM_L_CMP_CPP_N5D5-W47FLRPC.lic
step4:指定NCOM_L_CMP_CPP_N5D5-W47FLRPC.lic 文件所在的绝对路径
step5:如果路径正确,NCOM_L_CMP_CPP_N5D5-W47FLRPC.lic文件没有问题,就会出现激活成功
step6:如果选择Intel默认安装路径就选择1,如果想指定安装路径选择2,并输入指定安装绝对路径
3.3 安装ifort编译器
# 软件版本: l_fcompxe_2011.4.191
tar -zxvf l_fcompxe.tar.gz
cd l_fcompxe_2011.4.191
chmod +x install.sh
chmod +x pset/32e/install.32e
chmod +x pset/chklic/32e/chklic
./install.sh
注意! chmod +x 这几个命令并不是必须的执行的,需要执行的情况是软件在windows系统中解压后又压缩,导入linux系统中,在linux系统解压后会出现一些可执行文件的执行权限的丢失,导致安装的时候出现Permission denied的错误,无法安装,这个时候才需要执行chmod +x 文件名的命令
Intel fortran编译器和3.2节编译C++/C编译器是一样的方法,只要注意最后的安装路径要选择一样的路径,也就是说C++/C选择了默认安装路径,这里也要选择默认安装路径。
四、★Intel编译器环境导入
# shell环境为:bash
$ vim ~/.bashrc #增加如下内容,保存退出
source /opt/intel/composerxe-2011.4.191/bin/compilervars.sh intel64 #如果采用默认安装就是这个路径
# shell环境为:csh/tcsh
$ vim ~/.bashrc #增加如下内容,保存退出
source /opt/intel/composerxe-2011.4.191/bin/compilervars.csh intel64 #如果采用默认安装就是这个路径
source ~/.bashrc # 立即生效
注意! 如果需要在32位的系统中进行环境导入的话,只需要把intel64替换成ia32
五、★Intel环境查看及并行库调用
# 查看icc/icpc/ifort编译是否指向正确路径
which icc
which icpc
which ifort
具体mpich/openmpi并行编译调用,请看作者另两篇文章:
Mpich_linux-centos7.9系统下最全编译安装调用
OpenMPI_linux-centos7.9系统源码编译安装调用
六、★安装错误说明
安装inter编译器时,出现libstdc++ 32位的库没有安装,导致无法安装成功。具体解决方法有以下三种情况
6.1联网状态
yum install -y libstdc++.i686
6.2 断网离线状态,且centos系统版本在7.5及以下
# 已配置离线yum源
yum install -y libstdc++.i686
6.3 断网离线状态,且centos系统版本是7.6及以上
# 寻找一台版本相同的操作系统,注意一定要相同。
yumdownloader libstdc++.i686 --resolve --destdir=指定下载路径
# 此命令是下载libstdc++.i686包及依赖的包,下载路径地址根据自己情况设定
cd /home/longdaidai/libstdc++_32 # 这里假定路径为/home/longdaidai/libstdc++_32
ls -l
# 查看下载内容,总共有12个rpm包,把以上下载的rpm包全部导入到无法联网的主机中/home/longdaidai/local_yum/Packages
# 这里/home/longdaidai/local_yum/Packages路径为离线主机YUM源的包配置地址
#切换回不能联网的主机
cd /home/longdaidai/local_yum
rm -rf repodata
createrepo . #注意后面的点,不要丢掉
yum clean all
yum makecache
yum install -y libstdc++.i686
rpm -qa | grep libstdc++ # 如果出现libstdc++-4.8.5-36.el7.i686,说明安装成功
注意! 在离线状态下,系统为centos7.6以上的版本,即使配置了离线yum源,也不能直接安装libstdc++.i686 32位的库,因为在官方的版本中7.6以上版本的yum源码包中取消了libstdc++.i686 32位库的安装包。
七、★最后
以上内容都是经过实战验证过的,本次用来安装的intel版本较低,在高版本的安装过程中,安装过程大体一致。如果你在离线状态下安装,非常建议在centos7.5及以下安装,这样即使不能联网,只要配置好离线YUM源就可以避开libstdc++32位缺失的问题。
(●’◡’●)最后感谢屏幕另一端你的支持。