アットウィキロゴ

インストール

原文ページはこちら


MPBとほぼ同じく、Meep導入の労力はほとんどが前提条件となるパッケージの導入に割かれます。 これにはUnixシステムへのソフトウェアインストールの知識が必要となります。

(WindowsにおいてもCygwinのようなUnix互換環境を利用することでMeepをインストールすることが可能なはずです。 しかしながら、私たちはWindowsを使用していないのでこれを試したことはありません)

並列化スーパーコンピュータにMeepを導入するにあたって、次のことに注意してください。

  • ほとんどのスパコンには複数のコンパイラがインストールされており、個々のライブラリが異なるコンパイラでコンパイルされています。 MeepはC++で記述されており、異なるコンパイラでコンパイルされたC++のコードを混在させることはほぼ不可能です。 特定のベンダーによるコンパイラを選び、一貫してそれを使い続けてください!


GNU/Linuxへのインストール

ほとんどの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へのインストール

MacOS Xはその基本構造がUnixであるため、原理的にはほかの全てのUnixと同様にMeepおよび必要環境をコンパイル・インストールすることができます。 しかし、依存関係やその他子細を管理してくれるMacPortsパッケージを使えばより簡単に解決できるでしょう。 (これには管理者権限が必要です)

はじめに以下のことをしてください。

  • Appleが提供する開発・コンパイラパッケージであるXcodeを、Apple Xcodeウェブページからインストールします。
  • MacPortsウェブサイトにアクセスし、インストラクションに従ってMacPortsをダウンロード・インストールしてください。
  • Meepの必要環境をコンパイル・インストールするためにターミナル上で以下のコマンドを実行してください。 (最初に他のものの多くをインストールするため、これはGNU Fortranコンパイラのように、完了するまでしばらく時間がかかる場合があります)
    sudo port -v selfupdate
    sudo port -v install atlas guile16 hdf5-18 libpng fftw-3
    (sudoコマンドはパスワードの入力を要求しますが、これは通常のログインパスワードであり、また管理者権限のあるアカウントである必要があります) その後、MacPortsがGuileヘッダファイルの名前と設定ユーテリティを変更してしまうことに起因する問題を修正する必要があります。 (この問題のため、Guileを利用してコンパイルされたすべてのプログラムについてソースレベルを変更しなくてはなりません) (ヒント:Guileの互換性のない複数のバージョンをサポートする必要がある場合、標準的な名前の下に異なるディレクトリに分けて配置します) 標準名へのリンクを作成するため、以下のコマンドを実行します。
    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インストールの基本

インストールパス

まず、Unixにソフトウェアをインストールする際に大事なこと、特に標準でない場所にインストールする際のことについて復習しておきましょう。 (この問題は何もMeepに限ったことではありませんが、ユーザーにとっては非常に混乱を招きやすい話題であります)

本ソフトウェアを含む、後述のソフトのほとんどは標準では"/usr/local"ディレクトリ下にインストールされます。 例えばライブラリは"/usr/local/lib"に、プログラムは"/usr/local/bin"などにインストールされることになります。 ルート権限がない場合、"$HOME/install"ディレクトリにインストールする必要があります("/install"はホームディレクトリのサブディレクトリです)。 後述のプログラムのほとんどはGNU-style configureスクリプトを利用しており、恐らくはプログラムに対し次のような設定をすることになるでしょう。

./configure --prefix=$HOME/install

"$HOME/install/lib"などのディレクトリは必要に応じて自動的に作成されます。

設定のパス

実行のパス(ライブラリ共有)

Fortranによる小技

コンパイラの選択

GNU/Linux・BSDバイナリパッケージ

BLASとLAPACK(推奨)

BLAS

LAPACK

Harminv(推奨)

GNU Guile(推奨)

libctl(推奨)

MPI(並列マシン)

HDF5(推奨)

Meep

開発者のためのMeep

タグ:

+ タグ編集
  • タグ:
最終更新:2013年10月30日 16:19