本ソフトウェアはインストールが難しいことでも知られている.本項ではその解説を中心に進めていきたい.
インストールの環境はLinux 64bit環境を想定しているが,対応しているOSであればインストールの方法は大きく変わらない.
そのため,本項では,Linux 64bit環境以外での変更点もいくつか解説を行うことにする.

注意としてmulticore版(複数ノードを用いない単一ノードのみの並列計算版)のNAMDを導入する場合は既にコンパイルされたバイナリをダウンロードして解凍するという方法が最も簡単である.

NAMDのソースコードもしくはコンパイル済みのバイナリは以下のURLからダウンロードすることが出来る.

http://www.ks.uiuc.edu/Development/Download/download.cgi?PackageName=NAMD

ソースからインストールする場合はSource Codeを,それ以外の場合は該当するアーキテクチャのリンクをクリックすれば良い.
Linux 64bitでMPI版をインストールする場合や,該当する項目のないOSの場合はソースコードからコンパイルすることとなる.
また,ダウンロードにはユーザー登録が必要であるため,UsernameとPasswordを入力しContinue with registration or downloadを
クリック,所属や用途等の情報を入力してユーザー登録を行うと良い.

ソースコードもしくはバイナリをダウンロードしてきたら解凍を行う.恐らくTar ballになっているはずなので以下のコマンドを
コンソール上のダウンロードしたファイルが置かれているディレクトリで実行する.

$tar -xvf ダウンロードしたファイル名

HPCクラスタ等にインストールする場合は圧縮されたものをscp等のコマンドを使用して目的のコンピュータに送ると良い.
バイナリをダウンロードして解凍した場合はインストール完了である.namd2(NAMDを実行するコマンド)を認識出来るようにPATHへの
追加を忘れずに.

以下はソースからコンパイルする場合の解説となる.NAMDはバージョンによってC++コンパイラの互換切りがあるため,
コンパイラのバージョンには注意すべし.参考として今回はNAMD2.11のMPIバージョンのインストールを前提に話を進めていく.

ソースコードからコンパイルする場合,NAMDのインストールは主に2つのステップに分かれる.

  1. Charm++ /Converseのビルド
  2. NAMDのインストール

Charm++ /Converseのビルド

※注意:charm-6.7.0のビルドには使用するC++コンパイラがオプションC++0xもしくはC++11に対応している必要がある.
それ以前のバージョンのコンパイラではビルド中にエラーが発生する.NAMD2.9同梱のCharmではこの現象は起こらないため
ビルド可能である.

始めに解凍したNamd2.11のディレクトリに移動する.
移動したディレクトリにcharm-6.7.0.tarが存在する筈なので以下のコマンドを実行して解凍する.

tar -xvf charm-6.7.0.tar

解凍したディレクトリ(charm-6.7.0)に移動し,以下のコマンドを実行する.

./build charm++ mpi-linux-x86_64 --with-production

使用するMPIの存在するディレクトリを指定する場合(–with-productionを使用しない場合)

./build charm++ mpi-linux-x86_64 --basedir MPICHライブラリ等の存在するディレクトリ

上記で上手く行かない場合,筆者の経験的には

./build charm++ mpi-linux-x86_64 gcc --with-production

のようなオプションを追加して実行すると上手く行く場合がある(これはcharmのデフォルトのビルドがiccで行われるがiccのバージョンが古く非対応であり,なおかつgccのバージョンが新しくg++がc++0xもしくはc++11オプション対応であった場合にgccを使ってビルドすることでエラーを避けた例).

NAMDのインストール

NAMDのインストールは主に以下のステップとなる.

  1. fftwのダウンロードと解凍
  2. tclのダウンロードと解凍
  3. 使用しているアーキテクチャの選択(主にarchディレクトリにおいて)
  4. インストール用のディレクトリの作成
  5. ビルド&インストール
fftw & tclのダウンロード

namd2.11のディレクトリに移動し,以下のコマンドを実行することによりfftwとtclをダウンロードし,解凍を行う.

wget http://www.ks.uiuc.edu/Research/namd/libraries/fftw-linux-x86_64.tar.gz
tar xzf fftw-linux-x86_64.tar.gz
mv linux-x86_64 fftw
wget http://www.ks.uiuc.edu/Research/namd/libraries/tcl8.5.9-linux-x86_64.tar.gz
tar xzf tcl8.5.9-linux-x86_64.tar.gz
mv tcl8.5.9-linux-x86_64 tcl
アーキテクチャ周りに関する設定

大体以下の通りである

  1. Make.charmを編集
  2. arch/Linux-x86_64-MPI-pathcc.archの編集

最初にMake.charmの編集を行う.

# Set CHARMBASE to the top level charm directory.
# The config script will override this setting if there is a directory
# called charm-6.7.0 or charm in the NAMD base directory.

#CHARMBASE = /Projects/namd2/charm-6.7.0
CHARMBASE = .rootdir/charm-6.7.0

#今回の変更点は/Projects/となっている部分を.rootdirに変更したことのみである.

次にarchディレクトリに移動し,Linux-x86_64-MPI-pathcc.archを編集する.使用しているアーキテクチャが異なる場合は該当する
ファイルの編集を行う.

NAMD_ARCH = Linux-x86_64
#CHARMARCH = mpi-linux-x86_64-pathcc
CHARMARCH = mpi-linux-x86_64

#Charm-6.7.0でビルドした際に作成されたディレクトリ名を用いる.変更点は上記一点のみ

FLOATOPTS= -lpathfortran -O3 -CG:local_fwd_sched=on -LNO:opt=0 -OPT:unroll_times_max=8:div_split=ON:roundoff=2
CXX = pathCC -m64 -fPIC -DSOCKLEN_T=socklen_t -I$(CHARM_LOC)/include 
CXXOPTS = $(FLOATOPTS) -OPT:alias=typed
CXXNOALIASOPTS = $(FLOATOPTS) -OPT:alias=restrict
CC = pathcc -m64 -fPIC
COPTS = $(FLOATOPTS) -OPT:alias=typed
config(ビルド用のディレクトリの作成)

以下のコマンドを実行

./config Linux-x86_64-g++ --charm-arch mpi-linux-x86_64

–charm-archはcharm-6.7.0ディレクトリ内にビルドの際に作成されたディレクトリ名を指定する.例えばmpi-linux-x86_64-gcc-gfortranの場合は

./config Linux-x86_64-g++ --charm-arch mpi-linux-x86_64-gcc-gfortran

である.

また,iccを用いる場合は

./config Linux-x86_64-icc --charm-arch mpi-linux-x86_64

のように指定する.

make(インストール)

先程のconfigで作成されたディレクトリに移動し,以下のコマンドを実行する.

make
make release

エラーが吐き出されなければインストール成功である.
どこからでも呼び出せるようにPATHに追加するのをお忘れなく.

参考文献
https://www.ks.uiuc.edu/Research/namd/2.11/notes.html