Hi,
I’m attempting to set up psi4 on a uk national hpc archer2 but have encountered problems with eigen3. I’ve been using psi4 with a conda environment fine but now need for workflow reasons to build it separately in a python virtual environment to make use of the pre-installed venv site packages mainly mpi4py as part of highthroughput studies.
I performed the following steps yesterday:
module load PrgEnv-gnu
module load cray-python
python -m venv --system-site-packages /xx/xx/xx/xx/psi4_compiliation/pyenvs/cspy-venv
source /xx/xx/xx/xx/psi4_compiliation/pyenvs/cspy-venv/bin/activate
python -m pip install --upgrade pip
module load eigen/3.4.0
module load boost/1.81.0
git clone etc
cd psi4
cmake -S. -Bbuild -DENABLE_PCMSolver=ON -DLAPACK_LIBRARIES="/opt/cray/pe/libsci/default/GNU/9.1/x86
_64/lib/libsci_gnu_mp.so" -DCMAKE_PREFIX_PATH ="/work/y07/shared/libs/core/eigen/3.4.0/include"
cd build
cmake --build . -j 4
and have the following modules loaded:
1) craype-x86-rome 6) bolt/0.8 11) cray-dsmml/0.2.2 16) cp2k/cp2k-8.2.0
2) libfabric/1.12.1.2.2.0.0 7) epcc-setup-env 12) cray-mpich/8.1.23 17) eigen/3.4.0
3) craype-network-ofi 8) load-epcc-module 13) PrgEnv-gnu/8.3.3 18) boost/1.81.0
4) perftools-base/22.12.0 9) gcc/11.2.0 14) cray-fftw/3.3.10.3
5) xpmem/2.5.2-2.4_3.30__gd0f7936.shasta 10) craype/2.7.19 15) mkl/2023.0.0
I receive the below error when I follow those steps after the last one resulting it failing to compile:
CMake Warning at CMakeLists.txt:100 (find_package):
By not providing "FindEigen3.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "Eigen3", but
CMake did not find one.
Could not find a package configuration file provided by "Eigen3" with any
of the following names:
Eigen3Config.cmake
eigen3-config.cmake
Add the installation prefix of "Eigen3" to CMAKE_PREFIX_PATH or set
"Eigen3_DIR" to a directory containing one of the above files. If "Eigen3"
provides a separate development package or SDK, be sure it has been
installed.
CMake Error at CMakeLists.txt:120 (message):
C++ API cannot be built without Eigen3; configure (via CMake) and install
Eigen3 and add the install prefix to CMAKE_PREFIX_PATH, or add
-DREQUIRE_CXX_API=OFF to the CMake command line if the C++ API is not
required
-- Configuring incomplete, errors occurred!
Inside the eigen/3.4.0/include folder are the below files:
-rw-r--r-- 1 cse y07 216 Aug 18 2021 signature_of_eigen3_matrix_library
drwxr-sr-x 3 cse y07 4096 Oct 14 2021 unsupported/
drwxr-xr-x 3 cse y07 4096 Oct 14 2021 Eigen/
As I’m using the loaded module I don’t have an Eigen3Config.cmake
file to point towards with Eigen3_DIR and am confused what the best way to proceed would be?
I’m relatively inexperienced when it comes to compiling code so apologies if I’m missing something simple. I was wondering if there was somewhere I could add a find_path()
in a cmake file to hard code point towards the eigen3 module directory?
Thank you for any help with this
Jay