HPC환경에서 NVIDIA GPU를 이용하여 server측에서 렌더링 하여 데이터를 보내주기 위해서는
egl-mpi버전을 사용해야 한다. 그런데, 바리너리 패키지는 정상적으로 작동하지 않으므로,
소스코드를 이용하여 컴파일 해보자.
의존성 정리
Paraview egl 버전을 사용하기 위해서는 gcc 13.3이 필요하며,
이에 따른 openmpi, vtk 모두 gcc 13.3으로 컴파일 되어야 한다.
gcc 13.3이 모듈로 설치되어 있다는 가정하에,
먼저, openmpi cmake는
../configure \
--prefix=/opt/apps/openmpi/5.0.10-gcc13.3 \
CC=gcc \
CXX=g++ \
FC=gfortran \
--enable-shared \
--enable-static \
--with-pmix \
--with-hwloc \
--disable-debug
모듈로 만들어주고,
그 다음으로 vtk cmake는
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/opt/apps/vtk/9.6.0-gcc13.3-ompi5.0.10 \
-DCMAKE_C_COMPILER=mpicc \
-DCMAKE_CXX_COMPILER=mpicxx \
-DVTK_GROUP_ENABLE_MPI=YES \
-DVTK_MODULE_ENABLE_VTK_ParallelMPI=YES \
-DVTK_USE_MPI=ON \
-DVTK_OPENGL_HAS_EGL=ON \
-DVTK_USE_X=OFF \
-DVTK_BUILD_TESTING=OFF \
-DVTK_BUILD_EXAMPLES=OFF \
-DBUILD_SHARED_LIBS=ON \
-DVTK_WRAP_PYTHON=OFF
make
make -j $(nproc)
우선 PARAVIEW의 github 주소는 아래와 같다.
git clone https://gitlab.kitware.com/paraview/paraview.git
원하는 버전으로 체크아웃
$ git checkout v5.13.2
Note: switching to 'v5.13.2'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:
git switch -c <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at 0803be5a07 Update version number to 5.13.2
업데이트
git submodule update --init --recursive
디렉토리 구조
~/Downloads/paraview
├── CMakeLists.txt
├── Clients/
├── VTK/
└── paraview_build/
먼저 모듈 로드
module load gcc/15.2.0
module load openmpi/5.0.10-gcc15.2
OpenGL
sudo apt update
sudo apt install \
libglvnd-dev \
libegl1 \
libegl1-mesa-dev \
libgl1-mesa-dev \
libgles2-mesa-dev
sudo apt install libnvidia-gl-590
확인
$ ldconfig -p | grep -E "EGL|OpenGL"
libOpenGL.so.0 (libc6,x86-64) => /lib/x86_64-linux-gnu/libOpenGL.so.0
libOpenGL.so (libc6,x86-64) => /lib/x86_64-linux-gnu/libOpenGL.so
libEGL_nvidia.so.0 (libc6,x86-64) => /lib/x86_64-linux-gnu/libEGL_nvidia.so.0
libEGL_mesa.so.0 (libc6,x86-64) => /lib/x86_64-linux-gnu/libEGL_mesa.so.0
libEGL.so.1 (libc6,x86-64) => /lib/x86_64-linux-gnu/libEGL.so.1
libEGL.so (libc6,x86-64) => /lib/x86_64-linux-gnu/libEGL.so
모듈세팅
$ module list
Currently Loaded Modules:
1) gcc/13.3.0 2) openmpi/5.0.10-gcc13.3 3) vtk/9.6.0-gcc13.3-ompi5.0.10
Cmake
cmake -GNinja \
-DCMAKE_C_COMPILER=mpicc \
-DCMAKE_CXX_COMPILER=mpicxx \
-DCMAKE_PREFIX_PATH="/opt/apps/vtk/9.6.0-gcc13.3-ompi5.0.10" \
-DPARAVIEW_USE_MPI=ON \
-DPARAVIEW_USE_PYTHON=ON \
-DPARAVIEW_USE_QT=OFF \
-DVTK_OPENGL_HAS_EGL=ON \
-DVTK_USE_X=OFF \
-DVTK_DEFAULT_RENDER_WINDOW_OFFSCREEN=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/opt/apps/paraview/5.13.2-gcc13-ompi5.0.10 \
..
Compile
ninja -j 10
개삽질인 듯
바이너리 배포판, ParaView-5.13.2-egl-MPI-Linux-Python3.10-x86_64 압축풀고 써도 될 듯.
단 nvidia-smi는 client 접속 후 체크
$ nvidia-smi
Mon Mar 23 13:56:03 2026
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 590.48.01 Driver Version: 590.48.01 CUDA Version: 13.1 |
+-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA T400 4GB Off | 00000000:03:00.0 Off | N/A |
| 38% 29C P8 N/A / 31W | 6MiB / 4096MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| 0 N/A N/A 456642 G ./bin/pvserver 1MiB |
+-----------------------------------------------------------------------------------------+'PARA VIEW' 카테고리의 다른 글
| Force Chain 그리기 (0) | 2026.03.23 |
|---|---|
| Cleint Option Setting (0) | 2026.03.23 |
| VTK build with AOCC (0) | 2025.05.03 |
| VTK Compile on NURION (0) | 2025.04.09 |
| VTK build w/ intelOneAPI (1) | 2025.01.29 |