Galaxy icon indicating copy to clipboard operation
Galaxy copied to clipboard

stand up MPM on Frontera

Open pnav opened this issue 4 years ago • 9 comments

Get MPM code running on Frontera as a basis for in situ integration

pnav avatar Jan 28 '21 18:01 pnav

I have ran CB-Geo MPM on Frontera. The instructions on how to get MPM running for LoneStar5 works for Frontera too (https://mpm.cb-geo.com/#/user/run/hpc/tacc-ls5). Except for the VTK libraries. VTK libraries are still not available as a module on Frontera. The workaround for now is to do:

setenv VTK_LOCATION=/work/01197/semeraro/frontera/VTK/VTKBinary

kks32 avatar Jan 28 '21 19:01 kks32

thanks, I was wondering to do about the vtk workaround. I'll continue taking a look.

andrewsolis avatar Jan 28 '21 20:01 andrewsolis

It also looks like eigen is no longer maintained on bitbucket and is now maintained inside gitlab. https://gitlab.com/libeigen/eigen

andrewsolis avatar Jan 28 '21 20:01 andrewsolis

I have ran CB-Geo MPM on Frontera. The instructions on how to get MPM running for LoneStar5 works for Frontera too (https://mpm.cb-geo.com/#/user/run/hpc/tacc-ls5). Except for the VTK libraries. VTK libraries are still not available as a module on Frontera. The workaround for now is to do:

setenv VTK_LOCATION=/work/01197/semeraro/frontera/VTK/VTKBinary

Thanks Krishna! Regrettably it is not happy with my build of KaHIP.. any ideas? I notice your KaHIP is from Feb 2020, perhaps there's been some incompatible drift? It appears MPM wants three KaHIP sub-specs now, rather than just a root.

CC=icc CXX=icpc cmake -DBOOST_ROOT=$TACC_BOOST_DIR -DBOOST_INCLUDE_DIRS=$TACC_BOOST_INC -DCMAKE_BUILD_TYPE=Release -DEIGEN3_INCLUDE_DIR=$TACC_EIGEN_INC -DKAHIP_LIBRARIES=/scratch1/00401/pnav/dev/KaHIP/build/libinterface.so -DKAHIP_INCLUDE_DIRS=/scratch1/00401/pnav/dev/KaHIP/build -DKAHIP_TEST_RUNS=/scratch1/00401/pnav/dev/KaHIP/build/interface_test -DVTK_LOCATION=$TACC_VTK_DIR ..
-- The CXX compiler identification is Intel 19.1.0.20200306
-- Check for working CXX compiler: /opt/intel/compilers_and_libraries_2020.1.217/linux/bin/intel64/icpc
-- Check for working CXX compiler: /opt/intel/compilers_and_libraries_2020.1.217/linux/bin/intel64/icpc -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Boost: /opt/apps/intel19/python3_7/boost/1.72/lib/cmake/Boost-1.72.0/BoostConfig.cmake (found version "1.72.0") found components: filesystem system 
-- Found MPI_CXX: /opt/intel/compilers_and_libraries_2020.1.217/linux/mpi/intel64/lib/libmpicxx.so (found version "3.1") 
-- Found MPI: TRUE (found version "3.1")  
-- The C compiler identification is Intel 19.1.0.20200306
-- Check for working C compiler: /opt/intel/compilers_and_libraries_2020.1.217/linux/bin/intel64/icc
-- Check for working C compiler: /opt/intel/compilers_and_libraries_2020.1.217/linux/bin/intel64/icc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- HDF5: Using hdf5 compiler wrapper to determine CXX configuration
-- Found HDF5: /usr/lib64/libhdf5_cpp.so;/usr/lib64/libhdf5.so;/usr/lib64/libsz.so;/usr/lib64/libz.so;/usr/lib64/libdl.so;/usr/lib64/libm.so (found version "1.8.12") found components:  CXX HL 
-- Found OpenMP_C: -qopenmp (found version "5.0") 
-- Found OpenMP_CXX: -qopenmp (found version "5.0") 
-- Found OpenMP: TRUE (found version "5.0")  
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE  
-- Found MKL: /opt/intel/compilers_and_libraries_2020.1.217/linux/mkl/include  
-- Checking for package 'KaHIP'
CMake Error at cmake/FindPackageHandleStandardArgs.cmake:137 (message):
  KaHIP could not be found/configured.  (missing: KAHIP_LIBRARIES)
Call Stack (most recent call first):
  cmake/FindPackageHandleStandardArgs.cmake:377 (_FPHSA_FAILURE_MESSAGE)
  cmake/FindKaHIP.cmake:140 (find_package_handle_standard_args)
  CMakeLists.txt:106 (find_package)


-- Configuring incomplete, errors occurred!
See also "/scratch1/00401/pnav/dev/mpm/build/CMakeFiles/CMakeOutput.log".

pnav avatar Jan 28 '21 20:01 pnav

The situation with VTK is this. VTKpython only works with version 3.8 or higher of python3 (it works fine with 2.7). We have python3.8.2 on frontera, however, it requires gcc9.1 (which we have). I have a gcc9.1/python3.8.2 version of vtk built. It is installed in ~semeraro/rpminstall. One can access it via module use ~semeraro/rpminstall and load it like a module. Alternatively there exists /work/01197/semeraro/VTK/VTKBinary38 and VTKBinary27 which contain vtk built against python3.8 and python2.7 respectively. I have hesitated to install vtk in a system location due to the whacky dependencies for python3. Im happy to build a non python version in a system location if you folks need it. All this is on frontera

semeraro avatar Jan 28 '21 20:01 semeraro

thanks @andrewsolis for pointing out that there's a magic build script in the KaHIP project. That worked! MPM successfully configured.

pnav avatar Jan 28 '21 21:01 pnav

@kks32 I was able to configure and compile mpm, but I'm not sure if it is built with VTK. When I try and change the VTK_DIR option in ccmake to either the VTKBinary27 or VTKBinary38 directory it tries to re-configure but then shows that for the variable VTK_DIR it is not found, yet I can generate and call make to build mpm. Does this mean that it is built without VTK? I assume VTk is optional for mpm but for this usecase it is necessary.

UPDATE : I was able to build with VTK successfully, thanks @semeraro .

andrewsolis avatar Jan 28 '21 22:01 andrewsolis

I have added the steps to compile mpm with VTK on Frontera: https://mpm.cb-geo.com/#/user/run/hpc/tacc-frontera

Here's the single script to do the same.

module load boost hdf5
cd $WORK && git clone https://gitlab.com/libeigen/eigen.git
cd $WORK && git clone https://github.com/KaHIP/KaHIP && \
   cd KaHIP && sh ./compile_withcmake.sh 
git clone https://github.com/cb-geo/mpm-benchmarks.git
git clone https://github.com/cb-geo/mpm.git && cd mpm
export CC=icc
export CXX=icpc
mkdir build && cd build &&  cmake -DBOOST_INCLUDE_DIRS=$TACC_BOOST_INC -DCMAKE_BUILD_TYPE=Release -DEIGEN3_INCLUDE_DIR=$WORK/eigen -DKAHIP_ROOT=$WORK/KaHIP -DVTK_DIR=/work/01197/semeraro/frontera/VTK/VTKBinary/ ..
make -j

@pnav We can now close this issue?

kks32 avatar Feb 15 '21 19:02 kks32

I found SWR was not properly loaded before, which lead to failure at linker level. Here is the updated set of instructions: https://mpm.cb-geo.com/#/user/run/hpc/tacc-frontera

module load boost hdf5 swr/20.0.5
export LD_LIBRARY_PATH=$TACC_SWR_LIB:$LD_LIBRARY_PATH
cd $WORK && git clone https://gitlab.com/libeigen/eigen.git
cd $WORK && git clone https://github.com/KaHIP/KaHIP && \
   cd KaHIP && sh ./compile_withcmake.sh 
cd $WORK
git clone https://github.com/cb-geo/mpm.git
git clone https://github.com/cb-geo/mpm-benchmarks.git benchmarks
export CC=icc
export CXX=icpc
cd mpm && mkdir build && cd build &&  cmake -DBOOST_INCLUDE_DIRS=$TACC_BOOST_INC -DCMAKE_BUILD_TYPE=Release -DEIGEN3_INCLUDE_DIR=$WORK/eigen -DKAHIP_ROOT=$WORK/KaHIP -DVTK_ROOT=/work/01197/semeraro/frontera/VTK/VTKBinary/ ..
make -j

kks32 avatar Mar 15 '21 21:03 kks32