原文ページはこちら
MPBとほぼ同じく、Meep導入の労力はほとんどが前提条件となるパッケージの導入に割かれます。 これにはUnixシステムへのソフトウェアインストールの知識が必要となります。
(WindowsにおいてもCygwinのようなUnix互換環境を利用することでMeepをインストールすることが可能なはずです。 しかしながら、私たちはWindowsを使用していないのでこれを試したことはありません)
並列化スーパーコンピュータにMeepを導入するにあたって、次のことに注意してください。
ほとんどのGNU/Linuxディストリビューションにおいて、Meepの必須環境はほとんど導入済みであり、また可能な限りこれらの環境をシステムの利用可能なパッケージを使用してインストールすることを強く奨めます。 コンパイル済みパッケージを利用することは、これらのインストールを心配する必要がなく、貴方の環境に合わせて調整されたパッケージを利用でき、システム更新時にパッケージもまた更新されることを意味します。
BLASおよびLAPACK(あるいはAtlas BLASの一部)、Guile、MPI、そしてHDF5は、そのすべてがほぼ確実にコンパイル済みパッケージとして利用できます。 これらについて注意すべき点として、多くのディストリビューションはパッケージを二分割している点が挙げられます。 一つはライブラリとプログラムのためのメインパッケージであり、もう一つはヘッダファイルやソフトウェア開発に必要な"devel"(デベロップ)パッケージです。 これらは両方をインストールする必要があります。 ゆえに、例えば、guileパッケージ(恐らくインストール済み)と、guil-devまたはguile-develパッケージ(恐らくインストールされていない)の両方が必要となるでしょうし、また同様のことがHDF5などでも言えます。 また、H5utilsユーテリティでh5ファイルをpngファイルにコンパイルするために、libpng-devまたはlibpng-develパッケージをインストールした方がいいかもしれません。
最も容易なインストール方法は、Meepが必要とするコンパイル済みパッケージが導入されたDebian GNU/Linux(またはUbuntu)を利用することです。 Debianにおいて、以下のコマンドを実行すればすべてのパッケージをインストールできます。
| apt-get install meep h5utils |
(ダウンロードも参照してください)
MacOS Xはその基本構造がUnixであるため、原理的にはほかの全てのUnixと同様にMeepおよび必要環境をコンパイル・インストールすることができます。 しかし、依存関係やその他子細を管理してくれるMacPortsパッケージを使えばより簡単に解決できるでしょう。 (これには管理者権限が必要です)
はじめに以下のことをしてください。
|
sudo port -v selfupdate sudo port -v install atlas guile16 hdf5-18 libpng fftw-3 |
|
cd /opt/local/bin sudo ln -s guile16 guile sudo ln -s guile16-config guile-config cd /opt/local/include sudo ln -s guile16 guile sudo ln -s libguile16.h libguile.h |
それでは、Harminv、Libctl、H5utils、そしてMeepパッケージをソースコードからインストールしましょう。 (これらはまだMacPortsパッケージを持っていません) これらは、標準ではその全てを$HOME/Documents/Meepディレクトリに配置し、$HOME/Documents/Meep/installディレクトリにインストールされるものと想定されています。 必要であれば適宜変更してください。
Harminvをダウンロードし、harminvディレクトリに置き、以下のコマンドを実行します。
|
./configure --prefix=$HOME/Documents/Meep/install F77=gfortran-mp-4.3 make make install |
(注:MacPortsの新バージョンがFortranコンパイラの名前を変更した場合、本コマンドおよび以降のコマンドにおいて"gfortran-mp-4.3"を適切な名前に変更して下さい) 同様に、libctlをダウンロードし、libctlディレクトリに置き、以下のコマンドを実行します。
|
./configure --prefix=$HOME/Documents/Meep/install F77=gfortran-mp-4.3 make make install |
h5utilsをダウンロードし、h5utilsディレクトリに置き、以下のコマンドを実行します。
|
./configure CPPFLAGS="-I/opt/local/include" LDFLAGS="-L/opt/local/lib" --prefix=$HOME/Documents/Meep/install make make install |
最後に、Meepをダウンロードし、meepディレクトリに置き、以下のコマンドを実行します。
|
export PATH="$HOME/Documents/Meep/install/bin:$PATH" ./configure CPPFLAGS="-I/opt/local/include -I$HOME/Documents/Meep/install/include" LDFLAGS="-L/opt/local/lib -L$HOME/Documents/Meep/install/lib" --with-libctl=$HOME/Documents/Meep/install/share/libctl --prefix=$HOME/Documents/Meep/install F77=gfortran-mp-4.3 make make install |
これらの手順を完了すれば、meepコマンドによりMeepを実行できるようになります。 新しくターミナルを起動する場合は、前述の"exprt PATH"コマンドを再実行するか、より理想的には引数に"$HOME/.profile"ファイルを追加して実行する必要があるでしょう。 (セルフテストを行いたい場合にはmeepディレクトリで"make check"コマンドを実行できます)
まず、Unixにソフトウェアをインストールする際に大事なこと、特に標準でない場所にインストールする際のことについて復習しておきましょう。 (この問題は何もMeepに限ったことではありませんが、ユーザーにとっては非常に混乱を招きやすい話題であります)
本ソフトウェアを含む、後述のソフトのほとんどは標準では"/usr/local"ディレクトリ下にインストールされます。 例えばライブラリは"/usr/local/lib"に、プログラムは"/usr/local/bin"などにインストールされることになります。 ルート権限がない場合、"$HOME/install"ディレクトリにインストールする必要があります("/install"はホームディレクトリのサブディレクトリです)。 後述のプログラムのほとんどはGNU-style configureスクリプトを利用しており、恐らくはプログラムに対し次のような設定をすることになるでしょう。
| ./configure --prefix=$HOME/install |
"$HOME/install/lib"などのディレクトリは必要に応じて自動的に作成されます。