構造解析ことはじめ/03 プログラムのインストール

Intel Compiler Vine4 Vine5  

パッケージの取得  

Intelのサイトからパッケージを取得します。かなりわかりにくいのですが、根気よく探します。
2009年春頃からますます探しにくくなりました。Intel Software Networkの検索ボックスでnon-commercialというキーワードで検索してたどり着きました。もちろん非商用使用に限りますが。

ここでAcceptした後、対象となるソフトウェアの一覧が表示されますので、必要なパッケージをクリックするとメールアドレスを登録画面に移行します。そこでメールアドレスを登録すればダウンロードページに進みます。プログラムを使用するためには登録したアドレスに送られてくるシリアル番号が必要となります。

インストール Ver.11 Vine4 Vine5  

2008年11月頃にver.11が出たようですので試してみました。
ちょっとだけドキュメントを読んでみたところAtomおよびCore i7に対応しているようです。

aptでのインストール  

プログラムのインストール  

インストール方法はVer.10とほとんど変わりませんが、インストーラが高機能になり少々手順が増えています・・・

% tar zxvf l_cproc_p_11.1.046_ia32.tgz
% cd l_cproc_p_11.1.046_ia32
% su
# ./install.sh

あとは画面の手順に従えばOK。今回のC++パッケージにはMath Kernel Library(MKL)などいろいろ入っていますが、このMKLを使用してCCP4Intel Compilerでビルドしたい場合はインストールしておきましょう(CCP4/Advancedインストール)。よくわからなければTypical Installで問題ないと思います。Fortranも同様です。

ユーザーごとの設定ファイル  

Intel Compilerを使う場合はログイン時に環境設定をする必要があります。bashの場合は.bashrc、tcshの場合は.cshrcを編集します。

.bashrc
# for Intel Compiler
source /opt/intel/Compiler/11.1/046/bin/iccvars.sh ia32    <-- C++の設定
source /opt/intel/Compiler/11.1/046/bin/ifortvars.sh ia32  <-- Fortranの設定
.csrhc
# for Intel Compiler
source /opt/intel/Compiler/11.1/046/bin/iccvars.csh ia32   <-- C++の設定
source /opt/intel/Compiler/11.1/046/bin/ifortvars.csh ia32 <-- Fortranの設定

Math Kernel Libraryのバージョン  

2010-05-25

AMBER8のインストール時に苦労したのですが、Intel Math Kernel Library (MKL)のバージョンによって挙動が異なることがあるようです(私はMKLを使用したプログラミングをしたことがないので詳細はよくわかりません)。そのため、使用するCPUなどの関係でコンパイラの特定のバージョンを使いたいが、MKLのバージョンは変えたくない、というようなときはMKLを単独でインストールします。特に、Intel Compiler 11.xではディフォルト設定でMKLも同時にインストールされるため注意する必要がありそうです。Intel CompilerとMKLのバージョンの関係は以下の通り。

CompilerMKL
11.010.1
11.110.2

AMBER8ではMKL 10.1と10.2間においてmake testの挙動が異なりました。MKL関係で挙動がおかしいと感じた場合、このことを考慮に入れておくと問題が回避できると思います。異なるバージョンを共存させる場合、ダイナミックリンクにすると依存関係が複雑になるのでスタティックリンクにしてください。

ロケールがEUCの時の文字化け -- Vine4  

Vine Linuxでは標準のロケールがEUC(ja_JP.eucJP)になっていますが、Intel CompilerのメッセージカタログはUTF-8しか用意されていません。これだと文字化けして鬱陶しいのでロケールがEUCの場合は英語メッセージが出力されるようにしてみます。
メッセージカタログは/opt/intel/Compiler/11.0/074/以下の、

これらのディレクトリに格納されています。このディレクトリ中のja_JPがUTF-8のメッセージカタログになっています。そのため環境変数LANG=ja_JP.eucJPの場合このディレクトリが参照されてしまうようです。そこで、ja_JP.eucJPをen_USにリンクしてしまいます。

# cd /opt/intel/Compiler/11.0/074/lib/ia32/locale
# ln -s en_US ja_JP.eucJP

というようにシンボリックリンクを張ればja_JP.eucJPの時en_USが参照されるようになります。またはja_JPをja_JP.UTF-8に変更しても同様の効果が得られると思います。
メッセージカタログをコンバートすれば一番いいと思いますが、標準のmsgfmt/msgunfmtではcatという形式には対応していないのでできません・・・なんかいい方法はないものでしょうかねぇ。

インストール Ver.10  

プログラムのインストール  

ファイルが取得できたらインストールは簡単です。

% tar zxvf l_cc_p_10.1.015.tar.gz
% cd l_cc_p_10.1.015
% su
# ./install.sh

これでインストールが可能です。デバッガのインストールはお好みでどうぞ。Fortranも同様の手順です。
なお、Ver.9の頃はsuでrootになってから作業をするとエラーが出ましたがsudoで行った場合、問題ありませんでした。もしエラーが起こった場合は試してみてください。

ユーザーごとの設定ファイル  

Intel Compilerを使う場合はログイン時に環境設定をする必要があります。bashの場合は.bashrc、tcshの場合は.cshrcを編集します。

.bashrc
# for Intel Compiler
source /opt/intel/cc/10.1.015/bin/iccvars.sh     <-- C++の設定
source /opt/intel/fc/10.1.015/bin/ifortvars.sh   <-- Fortranの設定
.csrhc
# for Intel Compiler
source /opt/intel/cc/10.1.015/bin/iccvars.csh    <-- C++の設定
source /opt/intel/fc/10.1.015/bin/ifortvars.csh  <-- Fortranの設定

ファイルを編集後、ターミナルを開き直して、

% icc
icc: command line error: no files specified; for help type "icc -help"

となれば使用可能です。

 

もし、すべてのユーザーで使うようなプログラムをIntel Compilerでコンパイルする場合は共有ライブラリディレクトリの設定が必要となるのでld.so.confに以下の一行を追加します。

/opt/intel/cc/10.1.015/lib

追加したらldconfigを実行します。

# ldconfig