Peridigm 安装教程(含视频)
Peridigm安装是依赖Trilinos,Trilinos是一个C++高性能开发平台,内置有很多高性能数值计算库(并行矩阵求解等)与通用库(时间、文件操作等)。Trilinos会依赖hdf5、netcdf、boost,netcdf会依赖hdf5,其中hdf5与netcdf是大数据存储所用的库,因此会用到MPI并行。安装顺序如下:
- openmpi
- boost
- hdf5
- netcdf
- trilinos
- peridigm
记得安装yaml
一下一一结合视频介绍安装注意事项。
https://www.bilibili.com/video/BV1sN411d7km?from=search&seid=4419788739514747608
安装openmpi
./configure --prefix=/home/jin/openmpi
make -j 4
sudo make install
安装boost
正常官网下载安装,boost用的自带的项目构建工具,自行修改安装路径:
# Run the Boost bootstrap script to generate b2
./bootstrap.sh
# Compile and install Boost using the Boost's bjam build system
./b2 install --prefix=/home/jin/boost
安装hdf5
正常官网下载安装,自行修改安装路径:
# Set environment variables for MPI compilers
export CC=mpicc
export CXX=mpicxx
export FC=mpif90
export F77=mpif77
# Configure HDF5
./configure --prefix=/home/jin/hdf5 --enable-parallel
# Make and install HDF5
make -j 4
sudo make install
安装NetCDF
修改include/netcdf.h文件:
#define NC_MAX_DIMS 65536
#define NC_MAX_ATTRS 8192
#define NC_MAX_VARS 524288
#define NC_MAX_NAME 256
#define NC_MAX_VAR_DIMS 8
正常安装,自行修改安装路径:
# Configure NetCDF
./configure --prefix=/usr/local/netcdf --enable-parallel--enable-netcdf-4 --disable-v2 --disable-fsync --disable-dap
# Make, test, and install NetCDF
make -j 8
make check
make install
安装Trilinos
通过cmake构建,进入到源码路径,自行修改cmake参数:
mkdir build
cd build
cmake -D CMAKE_INSTALL_PREFIX:PATH=/home/jin/trilinos \
-D MPI_BASE_DIR:PATH="/home/jin/openmpi/" \
-D CMAKE_CXX_FLAGS:STRING="-O2 -std=c++11 -pedantic -ftrapv -Wall -Wno-long-long" \
-D CMAKE_BUILD_TYPE:STRING=RELEASE \
-D Trilinos_WARNINGS_AS_ERRORS_FLAGS:STRING="" \
-D Trilinos_ENABLE_ALL_PACKAGES:BOOL=OFF \
-D Trilinos_ENABLE_Teuchos:BOOL=ON \
-D Trilinos_ENABLE_Shards:BOOL=ON \
-D Trilinos_ENABLE_Sacado:BOOL=ON \
-D Trilinos_ENABLE_Epetra:BOOL=ON \
-D Trilinos_ENABLE_EpetraExt:BOOL=ON \
-D Trilinos_ENABLE_Ifpack:BOOL=ON \
-D Trilinos_ENABLE_AztecOO:BOOL=ON \
-D Trilinos_ENABLE_Amesos:BOOL=ON \
-D Trilinos_ENABLE_Anasazi:BOOL=ON \
-D Trilinos_ENABLE_Belos:BOOL=ON \
-D Trilinos_ENABLE_ML:BOOL=ON \
-D Trilinos_ENABLE_Phalanx:BOOL=ON \
-D Trilinos_ENABLE_Intrepid:BOOL=ON \
-D Trilinos_ENABLE_NOX:BOOL=ON \
-D Trilinos_ENABLE_Stratimikos:BOOL=ON \
-D Trilinos_ENABLE_Thyra:BOOL=ON \
-D Trilinos_ENABLE_Rythmos:BOOL=ON \
-D Trilinos_ENABLE_MOOCHO:BOOL=ON \
-D Trilinos_ENABLE_TriKota:BOOL=OFF \
-D Trilinos_ENABLE_Stokhos:BOOL=ON \
-D Trilinos_ENABLE_Zoltan:BOOL=ON \
-D Trilinos_ENABLE_Piro:BOOL=ON \
-D Trilinos_ENABLE_Teko:BOOL=ON \
-D Trilinos_ENABLE_SEACASIoss:BOOL=ON \
-D Trilinos_ENABLE_SEACAS:BOOL=ON \
-D Trilinos_ENABLE_SEACASBlot:BOOL=ON \
-D Trilinos_ENABLE_Pamgen:BOOL=ON \
-D Trilinos_ENABLE_EXAMPLES:BOOL=OFF \
-D Trilinos_ENABLE_TESTS:BOOL=ON \
-D TPL_ENABLE_HDF5:BOOL=ON \
-D HDF5_INCLUDE_DIRS:PATH="/home/jin/hdf5/include" \
-D HDF5_LIBRARY_DIRS:PATH="/home/jin/hdf5/lib" \
-D TPL_ENABLE_Netcdf:BOOL=ON \
-D TPL_Netcdf_Enables_Netcdf4:BOOL=ON \
-D Netcdf_INCLUDE_DIRS:PATH=/home/jin/netcdf/include \
-D Netcdf_LIBRARY_DIRS:PATH=/home/jin/netcdf/lib \
-D TPL_ENABLE_MPI:BOOL=ON \
-D TPL_ENABLE_BLAS:BOOL=ON \
-D TPL_ENABLE_LAPACK:BOOL=ON \
-D TPL_ENABLE_Boost:BOOL=ON \
-D Boost_INCLUDE_DIRS:PATH=/home/jin/boost/include \
-D Boost_LIBRARY_DIRS:PATH=/home/jin/boost/lib \
-D CMAKE_VERBOSE_MAKEFILE:BOOL=OFF \
-D Trilinos_VERBOSE_CONFIGURE:BOOL=OFF \
..
make -j 4
sudo make install
安装peridigm
mkdir build
cd build
cmake -D CMAKE_INSTALL_PREFIX:PATH=/home/jin/Peridigm \
-D CMAKE_BUILD_TYPE:STRING=Release \
-D Trilinos_DIR:PATH=/home/jin/trilinos/lib/cmake/Trilinos/ \
-D CMAKE_C_COMPILER:STRING=/home/jin/openmpi/bin/mpicc \
-D CMAKE_CXX_COMPILER:STRING=/home/jin/openmpi/bin/mpicxx \
-D BOOST_ROOT=/home/jin/boost/ \
-D CMAKE_CXX_FLAGS:STRING="-O2 -Wall -std=c++11 -pedantic -Wno-long-long -ftrapv -Wno-deprecated" \
..
make -j 4
make test
make install