Edited at

Paraview v5.1.4のインストールとオフスクリーンレンダリング

More than 1 year has passed since last update.


はじめに

本資料は、CentOS 7上で、paraview v5.1.4をインストールし、OSmesaを用いたオフスクリーンレンダリングによって、可視化を行うための資料です。

オフスクリーン可視化のメリットとしては、X window systemやGPU環境に依存せずに可視化を行える点が挙げられます。また、筆者は普段この手順によって、大規模なメッシュを利用した有限要素解析の結果を、リモート環境で可視化するために利用しています。

参考文献は以下の通りです。

ParaView (v5.1.2) のビルド

GPU なしで OpenGL を使う方法


Paraview v5.1.4のインストール


周辺環境のインストール

paraviewをインストールするために、以下のコマンドで周辺環境の整備を行います。

sudo yum -y update

sudo yum -y install boost boost-devel
sudo yum -y install mesa-libGLU mesa-libGLU-devel mesa-libOSMesa-devel


インストールディレクトリの作成

本資料では、

/home/morita/tools

ディレクトリに、コンパイルしたライブラリをインストールすることとします。

また、

/home/morita/paraview_src

ディレクトリに、ソースファイルなどをダウンロードすることとします。


OSmesaのインストール

OSmesaは、mesaのオフスクリーン利用ができるAPIとして知られています。

/home/morita/paraview_src

ディレクトリにおいて、以下のコマンドによって、インストールを行います。

wget https://mesa.freedesktop.org/archive/older-versions/12.x/12.0.3/mesa-12.0.3.tar.gz

tar -xvf mesa-12.0.3.tar.gz
cd mesa-12.0.3
sed -i "/pthread-stubs/d" configure.ac
sed -i "/seems to be moved/s/^/: #/" bin/ltmain.sh

bash autogen.sh --disable-xvmc \

--disable-dri \
--with-dri-drivers= \
--with-gallium-drivers=swrast \
--disable-shared-glapi \
--enable-texture-float \
--disable-egl \
--with-egl-platforms= \
--enable-gallium-osmesa \
--enable-gallium-llvm=yes \
--disable-gles1 \
--disable-gles2 \
--prefix=/home/morita/lib

make install


paraview v5.4.1のインストール

/home/morita/paraview_src

ディレクトリにおいて、以下のコマンドによって、インストールを行います。

cmakeコマンドは、環境によってcmake3コマンドに切り替えます。

git clone https://github.com/Kitware/ParaView.git paraview

cd paraview
git config submodule.VTK.url https://github.com/Kitware/VTK.git
git checkout v5.1.4
git submodule update --init --recursive
cd ..
mkdir build
cd build

cmake -D BUILD_DOCUMENTATION:BOOL=OFF \

-D BUILD_EXAMPLES:BOOL=OFF \
-D BUILD_SHARED_LIBS:BOOL=ON \
-D BUILD_TESTING:BOOL=OFF \
-D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX=/home/morita/tools \
-D PARAVIEW_BUILD_QT_GUI:BOOL=OFF \
-D PARAVIEW_DATA_ROOT=/home/morita/tools \
-D PARAVIEW_ENABLE_COPROCESSING:BOOL=ON \
-D PARAVIEW_INSTALL_DEVELOPMENT_FILES:BOOL=ON \
-D PARAVIEW_USE_VISITBRIDGE:BOOL=ON \
-D PARAVIEW_USE_BOOST:BOOL=ON \
-D OPENGL_INCLUDE_DIR=/home/morita/tools/include \
-D OPENGL_xmesa_INCLUDE_DIR= \
-D OPENGL_gl_LIBRARY= \
-D OPENGL_glu_LIBRARY=/home/morita/tools/lib/libGLU.so \
-D VTK_USE_X:BOOL=OFF \
-D VTK_OPENGL_HAS_OSMESA:BOOL=ON \
-D VTK_DEFAULT_RENDER_WINDOW_OFFSCREEN:BOOL=ON \
-D OSMESA_INCLUDE_DIR=/home/morita/tools/include \
-D OSMESA_LIBRARY=/home/morita/tools/lib/libOSMesa.so \
-D PARAVIEW_ENABLE_PYTHON:BOOL=ON \
-D PYTHON_LIBRARY=/usr/lib64/libpython2.7.so \
-D PYTHON_INCLUDE_DIR=/usr/include/python2.7 \
-D PYTHON_EXECUTABLE=/usr/bin/python \
-D PARAVIEW_USE_MPI:BOOL=OFF \
-D PARAVIEW_ENABLE_FFMPEG:BOOL=OFF \
-D VTK_USE_FFMPEG_ENCODER:BOOL=OFF \
../paraview

make install


オフスクリーンレンダリング


pvbatchの利用

前節でのインストールが完了すると、/home/morita/tools/binディレクトリに、以下のバイナリが生成されていることが確認できます。

paraview-config

pvbatch
pvdataserver
pvpython
pvrenderserver
pvserver
smTestDriver
vtkParseJava-pv5.5
vtkWrapClientServer-pv5.5
vtkWrapHierarchy-pv5.5
vtkWrapJava-pv5.5
vtkWrapPython-pv5.5
vtkWrapPythonInit-pv5.5
vtkkwProcessXML-pv5.5

このうち、筆者が普段利用しているのは、pvbatchバイナリです。このバイナリは、GUI環境のparaviewにおける操作手順をまとめたpythonスクリプトを読み込むことができ、そのスクリプトに記載された手順によってレンダリングを行います。このとき、pythonスクリプトは、GUI環境のparaviewから出力することができます。GIU環境のparaviewは、任意のOSで利用することができますが、GUI環境のparaviewのバージョン番号は、CentOS上にインストールしたparaviewのバージョンと一致していることが重要です。


pythonスクリプトの生成

pythonスクリプトを生成するために、GUI環境のparaviewに付属している、trace機能を利用します。paraviewのツールバーから、Tools > Start traceの順に選択します。

001.png

その後、以下のように、Trace optionsの設定を行います。

002.png

この設定が終わったら、いつものようにGUI環境で可視化を行います。

具体的には、


  • ファイル読み込み

  • 変形図・コンタ図の作成

  • スクリーンショットの保存

を行います。

スクリーンショットの保存までが終わったら、paraviewのツールバーから、Tools > Stop traceの順に選択します。この手順によって、paraviewに新しいウインドウが生成され、自動生成されたpythonスクリプトが表示されます。このpythonスクリプトを、例えばpvbatch.pyとして保存します。

生成されたpythonスクリプトを保存した後は、pythonスクリプトと可視化ファイルをリモートのCentOS環境に転送し、以下のコマンドによって可視化を行います。このとき、pvbatch.pyでは、ローカル環境のパスに基づいて、読み込みファイルと書き出しファイルのパスが記述されているので、リモート環境のディレクトリ構成にあわせて書き換える必要があります。

pvbatch pvbatch.py


展望

展望として、MPI環境におけるインストール、性能評価が挙げられます。