LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1706|回复: 15

ArchLinux下手动安装INTEL编译器

[复制链接]
发表于 2009-3-20 05:42:57 | 显示全部楼层 |阅读模式
对高手来说这个不算什么,不过小弟也是第一次那么做,见谅。。。

安装缘由:CPU是INTEL的,经常要用fortran和C编译一些科学计算程序,INTEL的编译器,INTEL的数学库配上INTEL CPU,那个效率不是一般的高。
没法用INTEL官方提供的install.sh安装,提示说不知道版本号(Arch的rolling release也有不方便的地方,唉),只能自己动手,丰衣足食了。

首先,安装rpmextract(root下):
  1. pacman -S rpmextract
复制代码
然后,将下载下来的tarball解压,将所有的rpm包集中到一个目录下(Fortran + C),然后
  1. 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脚本,专门干这个修改工作的。
  1. #!/bin/bash
  2. #moddir=${PWD#/home/fmying/l_cproc_p_11.0.081/l_cproc_p_11.0.081/32}
  3. moddir="\/opt\/intel\/Compiler\/11.0\/081"
  4. 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'`
  5. do
  6.     sed s/\<INSTALLDIR\>/$moddir/ $fil > tmp
  7.     chmod +x tmp
  8.     mv tmp $fil
  9. done
  10. for fil in `find -type f -iname 'mkl*.sh' -or -type f -iname 'mkl*.csh'`
  11. do
  12.     sed s/$moddir/"$moddir\/mkl"/ $fil > tmp
  13.     chmod +x tmp
  14.     mv tmp $fil
  15. done
  16. moddir="\/opt\/intel\/Compiler\/11.0\/081\/ipp\/ia32"
  17. sed s/\<installdir\>/$moddir/ ./ipp/ia32/tools/env/ippvars32.sh > tmp
  18. chmod +x tmp
  19. mv tmp  ./ipp/ia32/tools/env/ippvars32.sh
  20. moddir="\/opt\/intel\/Compiler\/11.0\/081\/ipp\/em64t"
  21. sed s/\<installdir\>/$moddir/ ./ipp/em64t/tools/env/ippvarsem64t.sh > tmp
  22. chmod +x tmp
  23. mv tmp ./ipp/em64t/tools/env/ippvarsem64t.sh
复制代码
由于我同时安装了32位和64位的编译器(64位的copy到实验室用),所以里面同时有针对ia32和em64t的操作。
先转移到适当的目录
  1. cd /opt/intel/Compiler/11.0/081
复制代码
然后
  1. sh modify
复制代码
就可以了。大功告成。
在.bashrc下加入:
  1. . /opt/intel/Compiler/11.0/081/bin/iccvars.sh ia32
  2. . /opt/intel/Compiler/11.0/081/bin/ifortvars.sh ia32
复制代码
就可以使用32位的编译器了。要使用em64t的,只需要将ia32摆成intel64就可以了。要想使用MKL(INTEL公司的LAPACK数学库,线性代数运算用),还需要加入
  1. . /opt/intel/Compiler/11.0/081/mkl/tools/environment/mklvars32.sh
复制代码
使用em64t的,将mklvars32.sh改成mklvarsem64t.sh。
经测试,运行正常。
发表于 2009-3-20 05:53:39 | 显示全部楼层
yaourt -S icc
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-20 05:59:48 | 显示全部楼层
谢谢。还以为要申请license的东西不会在aur下的呢。看来是debian和SuSE的影响太深了。。。
里面有64位的么?
其实装这个东西就是为了复制给实验室的64位机用的。我自己有v10的,已经够用了。
实验室的机子的SELINUX被设置成了permissive,连普通用户都没法装。安装的时候提示说要禁掉SELINUX。机子是系里统一管理的,我可不敢禁掉SELINUX。
还有一点奇怪的:aur上的icc 和 ifort的版本显示11.0.074-2,怎么就out of date了呢?最新版本也才11.0.081,不算旧吧?
回复 支持 反对

使用道具 举报

发表于 2009-3-20 07:33:04 | 显示全部楼层
好像不是最新的就outofdate鸟
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-20 09:17:16 | 显示全部楼层
晕。。。
我国内实验室的服务器装的还是9.0的呢,唉。。。
不过感觉自己全手动装一下还是很有好处的。
有些东西原来不关心的,只要pacman -S或者apt-get install就搞定的,现在必须自己关心自己想办法了。
至少对shell脚本的编写还是有小帮助的
下一步打算把gausssum弄上,可以的话,搞个PKGBUILD。
好像在aur里面都没有这个软件。
Gausssum是针对科学计算程序Gaussian的结果处理编写的程序,对我们真的很重要的。
回复 支持 反对

使用道具 举报

发表于 2009-3-20 10:06:15 | 显示全部楼层
11.0.074 < 11.0.081
回复 支持 反对

使用道具 举报

发表于 2009-3-20 14:54:50 | 显示全部楼层
楼主原来是在国外搞科研的啊。佩服。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-20 17:52:19 | 显示全部楼层
算了,没必要佩服,也是讨口饭吃。。。
回复 支持 反对

使用道具 举报

发表于 2009-3-20 18:32:34 | 显示全部楼层
Aur里一直有icc的pkgbuild.

不过我用icc编译出来的mplayer会有问题.
回复 支持 反对

使用道具 举报

发表于 2009-3-20 19:37:16 | 显示全部楼层
楼主,能不能换个头像?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表