|
|
对高手来说这个不算什么,不过小弟也是第一次那么做,见谅。。。
安装缘由:CPU是INTEL的,经常要用fortran和C编译一些科学计算程序,INTEL的编译器,INTEL的数学库配上INTEL CPU,那个效率不是一般的高。
没法用INTEL官方提供的install.sh安装,提示说不知道版本号(Arch的rolling release也有不方便的地方,唉),只能自己动手,丰衣足食了。
首先,安装rpmextract(root下):然后,将下载下来的tarball解压,将所有的rpm包集中到一个目录下(Fortran + C),然后- for i in *.rpm; do rpmextract.sh $i; done
复制代码 目录下多了一个opt,这个就是INTEL编译器的默认安装目录了。将opt/intel整个mv到/opt下,再在/opt/intel下建立一个licenses目录,将下载软件包的时候申请到的.lic文件复制到licenses下。INTEL允许非商业用户免费申请Linux下的license。当然,不提供支持和升级。我申请了N次了,从9.0到现在的11.0,呵呵。
INTEL的编译器软件自带执行脚本和初始化脚本,不过,里面的安装目录项全部都是<INSTALLDIR>或者<installdir>,需要自己修改。从11.0开始,INTEL的目录结构发生了很大变化。以前都是一个编译器一个子目录,现在都混在一起了,晕。
自己写了一个modify脚本,专门干这个修改工作的。- #!/bin/bash
- #moddir=${PWD#/home/fmying/l_cproc_p_11.0.081/l_cproc_p_11.0.081/32}
- moddir="\/opt\/intel\/Compiler\/11.0\/081"
- for fil in `find -type f -iname '*.sh' -or -type f -iname '*.csh' -or -type f -iname 'ifort' -or -type f -iname 'icc' -or -type f -name 'idb'`
- do
- sed s/\<INSTALLDIR\>/$moddir/ $fil > tmp
- chmod +x tmp
- mv tmp $fil
- done
- for fil in `find -type f -iname 'mkl*.sh' -or -type f -iname 'mkl*.csh'`
- do
- sed s/$moddir/"$moddir\/mkl"/ $fil > tmp
- chmod +x tmp
- mv tmp $fil
- done
- moddir="\/opt\/intel\/Compiler\/11.0\/081\/ipp\/ia32"
- sed s/\<installdir\>/$moddir/ ./ipp/ia32/tools/env/ippvars32.sh > tmp
- chmod +x tmp
- mv tmp ./ipp/ia32/tools/env/ippvars32.sh
- moddir="\/opt\/intel\/Compiler\/11.0\/081\/ipp\/em64t"
- sed s/\<installdir\>/$moddir/ ./ipp/em64t/tools/env/ippvarsem64t.sh > tmp
- chmod +x tmp
- mv tmp ./ipp/em64t/tools/env/ippvarsem64t.sh
复制代码 由于我同时安装了32位和64位的编译器(64位的copy到实验室用),所以里面同时有针对ia32和em64t的操作。
先转移到适当的目录- cd /opt/intel/Compiler/11.0/081
复制代码 然后就可以了。大功告成。
在.bashrc下加入:- . /opt/intel/Compiler/11.0/081/bin/iccvars.sh ia32
- . /opt/intel/Compiler/11.0/081/bin/ifortvars.sh ia32
复制代码 就可以使用32位的编译器了。要使用em64t的,只需要将ia32摆成intel64就可以了。要想使用MKL(INTEL公司的LAPACK数学库,线性代数运算用),还需要加入- . /opt/intel/Compiler/11.0/081/mkl/tools/environment/mklvars32.sh
复制代码 使用em64t的,将mklvars32.sh改成mklvarsem64t.sh。
经测试,运行正常。 |
|