pghysels / STRUMPACK

Structured Matrix Package (LBNL)
http://portal.nersc.gov/project/sparse/strumpack/
Other
167 stars 41 forks source link

Including ButterflyPACK #106

Open mh1git opened 1 year ago

mh1git commented 1 year ago

Hello,

I have built BLAS, LAPACK, SCALAPACK, ButterflyPACK. I am able to get STRUMPACK to recognize BLAS, LAPACK, SCALAPACK but it can't find ButterflyPACK. Here are my build scripts.

Can you please help?

NOTE1 : I built SCALAPACK as a static library. As a result I had to build ButterflyPACK as a static library as well. NOTE2 : I am not certain where ButterflyPACK_DIR needs to point due to the fact there are actually 4 ButterflyPACK precision based static libraries. I tried several places. The path set below causes a CMake configuration error. I tried pointing to the actual static library location (commented out and also given at the end of this log) and STRUMPACK doesn't find ButterflyPACK at all then.

STRUMPACK my_build.sh

#############################

!/bin/bash

rm -rf build rm -rf install mkdir build mkdir install

cd build

export METIS_DIR=$(HOME)/local export ButterflyPACK_DIR=/home/mark.horn/Development/ButterflyPACK/ButterflyPACK/install

$(HOME)/Development/CMake/cmake-3.26.3-linux-x86_64/bin/cmake ../ \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=../install \ -DSTRUMPACK_USE_OPENMP=ON \ -DTPL_BLAS_LIBRARIES="$(HOME)/Development/LAPACK/lapack-3.11/build/lib/libblas.so" \ -DTPL_LAPACK_LIBRARIES="$(HOME)/Development/LAPACK/lapack-3.11/build/lib/liblapack.so" \ -DTPL_SCALAPACK_LIBRARIES="$(HOME)/Development/ScaLAPACK/scalapack-2.2.0/build/lib/libscalapack.a" \ -DTPL_ENABLE_BPACK=ON \

make -j all make install

make examples -j all make tests -j all make test # can fail on login nodes

make install -j all make examples -j all #############################

Here is my ButterflyPACK build script which appears to work (produces 4 precision based static libraries in build/lib64

ButterflyPACK my_build.sh

#############################

!/bin/bash

sh PrecisionPreprocessing.sh

rm -rf build rm -rf install mkdir build mkdir install

cd build

$(HOME)/Development/CMake/cmake-3.26.3-linux-x86_64/bin/cmake ../ \ -DCMAKE_Fortran_FLAGS="" \ -DCMAKE_CXX_FLAGS="" \ -DTPL_BLAS_LIBRARIES="$(HOME)/Development/LAPACK/lapack-3.11/build/lib/libblas.so" \ -DTPL_LAPACK_LIBRARIES="$(HOME)/Development/LAPACK/lapack-3.11/build/lib/liblapack.so" \ -DTPL_SCALAPACK_LIBRARIES="$(HOME)/Development/ScaLAPACK/scalapack-2.2.0/build/lib/libscalapack.a" \ -DBUILD_SHARED_LIBS=OFF \ -DCMAKE_Fortran_COMPILER=mpif90 \ -DCMAKE_CXX_COMPILER=mpicxx \ -DCMAKE_C_COMPILER=mpicc \ -DCMAKE_INSTALL_PREFIX=../install \ -DCMAKE_BUILD_TYPE=Release

make -j all make install -j all #############################

ButterflyPACK Libraries built

~/Development/ButterflyPACK/ButterflyPACK/build/lib64/libcbutterflypack.a ~/Development/ButterflyPACK/ButterflyPACK/build/lib64/libdbutterflypack.a ~/Development/ButterflyPACK/ButterflyPACK/build/lib64/libsbutterflypack.a ~/Development/ButterflyPACK/ButterflyPACK/build/lib64/libzbutterflypack.a

mh1git commented 1 year ago

I found the issue. I fixed my scripts in the above comment so that others may find it useful.

No further help needed.

pghysels commented 1 year ago

Indeed, to get STRUMPACK to find ButterflyPACK, you set ButterflyPACK_DIR to the directory specified as CMAKE_INSTALL_PREFIX while configuring ButterflyPACK, and then make sure to do a make install for ButterflyPACK.