計算用のPCを交換するということで、PentiumII + RedHat9という構成のPCが、Pentium4 3.2GHzに交換されることになった。しかし買ってきたマザボがシリアルATAがデフォルトというもので、ちゃんと起動しなかった。じゃぁRedHatもなくなったし、Debianでも入れるかということで、Debian Sargeをインストール。計算用と銘打っているのでIntelコンパイラでも入れるかと思いたち、インストールを試みた。
まずは、IntelからライセンスとRPMパッケージを取得する。Free Software for Linux Open Source Developersというページから取得できる。
RPMは、Debianではどうしようもないので、alienでdebパッケージに変換する。
~$ fakeroot alien intel-icc8-8.1-023.i386.rpm
で、rootになってインストール
/home/chome# dpkg --install intel-icc8_8.1-24_i386.deb
すると/opt/intel_cc_80/にインストールされる。
/opt/intel_cc_80/bin$ file * | grep text Errormatch.txt: ASCII text, with CRLF line terminators icc: Bourne shell script text executable icc.cfg: ASCII text iccvars.csh: Tenex C shell script text executable iccvars.sh: Bourne shell script text executable icpc: Bourne shell script text executable icpc.cfg: ASCII text uninstall.sh: Bourne shell script text executable
icc、iccver.csh、iccver.sh、icpcはシェルスクリプトだが、<INSTALLDIR>というのがあってちゃんと動かない。RPMでインストールした時はRPMによってインストールディレクトリに置換されるのだろう。
そこで、INSTALLDIRという変数を定義して、<INSTALLDIR>を$INSTALLDIRに置換することにした。patchは以下の通り。
あとはPATH、MANPATH、LD_LIBRARY_PATHを設定すればOK。私の.bashrcには次のような記述がある。
# for Intel C++/Fortran Compiler INTEL_CC=/opt/intel_cc_80 INTEL_FC=/opt/intel_fc_80 PATH=$PATH:$INTEL_CC/bin:$INTEL_FC/bin LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$INTEL_CC/lib:$INTEL_FC/lib MANPATH=$MANPATH:$INTEL_CC/man:$INTEL_FC/man export PATH export MANPATH export LD_LIBRARY_PATH
はじめに"Hello World"ありき。ということで、
#include <iostream>
int main(){
std::cout<< "Hello World"<< std::endl;
return 0;
}
を、hello.ccに書いてコンパイルしてみる。
$ icc hello.cc -I/opt/intel_cc_80/include/c++ -cxxlib-icc $ ./a.out Hello World
うまくいった。
DebianにIntel C++/Fortran Compilerをインストールした。IntelからはRPMで配布されるため、alienでdebパッケージに変換し、シェルスクリプト中の<INSTALLDIR>を$INSTALLDIRに置換し、INSTALLDIRという変数を宣言することで対応した。