ソースコードからのビルド

ParaViewはソースコードからビルドすることも可能である。特に、MPICH2による並列処理、可視化結果のベクターグラフィック形式での出力(EPS、SVGなど※バージョン3.98.0以降では標準機能で出力可能)、MesaやMantaなど外部のレンダリングライブラリとの連携が必要な場合は、ソースコードからのビルドが必須である。ここではLinux環境向けに、代表的なビルドオプションであるPython・MPICH2・GL2PSを有効にしつつ、ParaViewをビルドする手順を紹介する。なお、OSはCentOS 5.3(gccバージョン4.1.2)および6.2(gccバージョン4.4.6)、ParaViewは3.14.1を対象とする。CentOSのインストール設定はSoftware Development Workstationを推奨する。

PythonおよびNumPyのビルド

ParaView 3.14.1はPython(バージョン2系)によるスクリプト処理が可能である。ParaViewで実行されるPythonには、数学関数ライブラリNumPyが組み込まれている必要がある。ParaView自体はPythonなしでもビルド可能であるが、Pythonつきでビルドしておいた方が後々便利である。なお、各Linuxディストリビューション向けに配布されているビルド済みのPythonを利用することも可能であるため、特別な事情がなければこれらをインストールする方が簡便である。

まずCentOS 5系の場合に限り、zlibおよびzlib-develを用意しておく必要がある。これらはパッケージ管理ツールyumでインストールすればよい。

su
yum install zlib zlib-devel
exit

ソースコードをビルドするためのコンパイラを指定する。Intel Compilerはビルドに失敗する場合が多く、gccを利用した方が安全である。

export CC=gcc
export CXX=g++

Pythonのソースコードを入手し、展開する。ここではバージョン2.7.3の場合を例示する。

wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz
tar xzvf Python-2.7.3.tgz

Pythonのビルドを開始する前に、設定を行う。ここで、Modules/Setupの463行目のコメントアウトを外しておく必要がある。

cd Python-2.7.3
./configure --prefix=/usr/local/python-2.7.3 --enable-shared
vi Modules/Setup +463 #remove comment-out

Pythonの初期設定が完了したらmakeを行う。make installを実行する場合は管理者権限が必要である。また、Python実行用のシンボリックリンクを作成しておくと便利である。

make
#make test
su
make install
ln -s /usr/local/python-2.7.3/bin/python /usr/local/bin/python
exit

この時点では、おそらくビルドしたばかりのPythonを実行することができない。共有ライブラリを認識させるため、ldconfigを実行する必要がある。すべての作業は管理者権限で実行する必要がある。

su
vi /etc/ld.so.conf #add /usr/local/python-2.7.3/lib
/sbin/ldconfig
exit

最後に、インストールされたPythonのバージョンを確認しておく。ここでバージョン2.7.3以外が表示された場合は、ldconfigが正しく実行されていない恐れがある。

python -V

続いて、NumPyのソースコードを入手する。NumPyはPythonと別個にアップデートされるため、あらかじめ最新バージョンを確認しておいた方がよい。ここでは、バージョン1.6.1をインストールする場合について紹介する。

wget http://sourceforge.net/projects/numpy/files/NumPy/1.6.1/numpy-1.6.1.tar.gz
tar xzvf numpy-1.6.1.tar.gz

ここで/usr/localの直下以外にPythonをインストールしていた場合、環境変数CFLAGSを修正しておく必要がある。

export CFLAGS="-L/usr/local/python-2.7.3/lib"

NumPyの設定およびインストールは、setup.pyで行う。setup.pyを実行する際は、NumPyのインストール対象となるPythonを選択する。

cd numpy-1.6.1
python setup.py build
su
python setup.py install
exit

以上でPythonおよびNumPyのインストールは完了である。Pythonエディタ上で以下のコードを実行し、エラーが表示されなければOKである。

import numpy
numpy.show_config()

Qtのビルド

ParaViewのユーザインタフェースはアプリケーションフレームワークQtで構築されている。ParaView 3.14.1はQt4.7以降との相性が悪いため、ここではバージョン4.6.4をビルドする。

CentOS 5系の場合に限り、libXext-develをインストールしておく必要がある。

su
yum install libXext-devel
exit

Qtのソースコードを入手する。

wget ftp://ftp.trolltech.no/qt/source/qt-everywhere-opensource-src-4.6.4.tar.gz
tar xzvf qt-everywhere-opensource-src-4.6.4.tar.gz

Qtのインストール先を指定する。

cd qt-everywhere-opensource-src-4.6.4
./configure -prefix /usr/local/qt-4.6.4

Qtをmakeする。ここではgmakeを利用する。

gmake
su
gmake install
exit

CMakeのビルド

ParaViewをビルドするために必要な、クロスプラットフォーム向けMakeツールCMakeをビルドする。なお、CMakeはKitwareによって提供されている。

CentOS 5系の場合に限り、ncurses-develをインストールしておく必要がある。これを怠ると、ccmakeがインストールされない。

su
yum install ncurses-devel
exit

CMakeのソースコードを入手する。CMakeのバージョンは、ダウンロード時点での最新版で支障ないと思われる。ここではバージョン2.8.8の場合を例示する。

wget http://www.cmake.org/files/v2.8/cmake-2.8.8.tar.gz
tar xzvf cmake-2.8.8.tar.gz

CMakeをmakeする。ここではgmakeを利用する。後の作業性向上のため、シンボリックリンクも作成しておく。

cd cmake-2.8.8
./configure --prefix=/usr/local/cmake-2.8.8
gmake
su
gmake install
ln -s /usr/local/cmake-2.8.8/bin/cmake /usr/local/bin/cmake
ln -s /usr/local/cmake-2.8.8/bin/ccmake /usr/local/bin/ccmake
exit

MPICH2のビルド

並列計算ライブラリMPICH2をビルドする。まず、ソースコードを入手する。

wget http://www.mcs.anl.gov/research/projects/mpich2/downloads/tarballs/1.4.1p1/mpich2-1.4.1p1.tar.gz
tar xzvf mpich2-1.4.1p1.tar.gz

MPICH2をmakeする。

./configure --enable-shared --prefix=/usr/local/mpich2-141p1
make
su
make install
exit

ParaViewのビルド

ParaView本体をビルドする。

CentOS 5系の場合に限り、事前に必要なライブラリをインストールしておく。

su
yum install dbus-devel glib2-devel gstreamer-devel gstreamer-plugins-base-devel gtk2-devel libXt-devel
exit

ParaViewのソースコードを入手する。

wget http://www.paraview.org/files/v3.14/ParaView-3.14.1-Source.tar.gz
tar xzvf ParaView-3.14.1-Source.tar.gz

CMakeは実行ディレクトリにインストールファイルを展開するので、作業ディレクトリを用意しておく。

mkdir ParaView-bin
cd ParaView-bin

ccmakeを実行する。ccmakeは、Makefileの生成ツールCMakeの設定を行うためのCUIツールである。

ccmake ../ParaView-3.14.1-Source

キーボードのcキーを押してConfigureを実行する。
キーボードの上下キーで変更したい項目を選択し、Enterキーを押すと設定が変更できる。
また、以下の設定は通常モードで表示されない項目が多いため、tキーを押してアドバンストモードに変更しておく。

まず表1に示す通り、ParaViewのインストールディレクトリを決定し、PythonおよびMPICH2を有効にする。

表1 ccmakeの基本設定
オプション
CMAKE_INSTALL_PREFIX /usr/local/paraview-3.14.1
PARAVIEW_ENABLE_PYTHON ON
PARAVIEW_USE_MPI ON

ここで一旦キーボードのcキーを押し、configureを実行する。BUILD_SHARED_LIBSオプションが自動的にONになったことを確認しておくこと。

続いて表2に示す通り、MPICH2など残りの設定を行う。

表2 ccmakeの追加設定
オプション
MPIEXEC /usr/local/mpich2-141/bin/mpiexec
MPI_CXX_COMPILER /usr/local/mpich2-141/bin/mpicxx
MPI_CXX_LIBRARIES /usr/local/mpich2-141/lib/libmpichcxx.so;/usr/local/mpich2-141/lib/libmpich.so;/usr/local/mpich2-141/lib/libopa.so;/usr/local/mpich2-141/lib/libmpl.so;/usr/lib64/librt.so;/usr/lib64/libpthread.so
MPI_CXX_LINK_FLAGS -Wl,-rpath -Wl,/usr/local/mpich2-141/lib
MPI_C_COMPILER /usr/local/mpich2-141/bin/mpicc
MPI_C_LIBRARIES /usr/local/mpich2-141/lib/libmpich.so;/usr/local/mpich2-141/lib/libopa.so;/usr/local/mpich2-141/lib/libmpl.so;/usr/lib64/librt.so;/usr/lib64/libpthread.so
MPI_C_LINK_FLAGS -Wl,-rpath -Wl,/usr/local/mpich2-141/lib
MPI_EXTRA_LIBRARIES /usr/local/mpich2-141/lib/libmpich.so;/usr/local/mpich2-141/lib/libopa.so;/usr/local/mpich2-141/lib/libmpl.so;/usr/lib64/librt.so;/usr/lib64/libpthread.so
MPI_LIBRARY /usr/local/mpich2-141/lib/libmpichcxx.so
VTK_USE_GL2PS ON
PYTHON_INCLUDE_DIR /usr/local/python-2.7.3/include/python2.7
PYTHON_LIBRARY /usr/local/python-2.7.3/lib/libpython2.7.so
QT_QMAKE_EXECUTABLE /usr/local/bin/qmake
QT_QTWEBKIT_INCLUDE_DIR /usr/local/include/QtWebKit
QT_QTWEBKIT_LIBRARY_RELEASE /usr/local/lib/libQtWebKit.so
VTK_MPIRUN_EXE /usr/local/mpich2-1.4.1p1/bin/mpirun

再びキーボードのcキーを押し、configureを実行する。MPIの設定が正しく行われていれば、MPI_CXX_INCLUDE_PATHおよびMPI_C_INCLUDE_PATHが自動的に設定される。

すべての設定が正しく完了したことを確認の上、キーボードのgキーを押す。Makefileが生成され、ccmakeが終了する。

ParaViewをmakeする。3GHz程度のCPUで数時間要するので、気長に待つ。

make
su
make install

このままではParaViewが共有ライブラリを参照できないので、ldconfigを実行する。

vi /etc/ld.so.conf #add /usr/local/qt-4.6.4/lib /usr/local/mpich2-1.4.1p1/lib
/sbin/ldconfig
exit

以上でParaViewのビルドは完了である。

タグ: , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*