Dear EasyBuild experts, Firstly, thank you for your very nice work!
I'm trying to compile PySCF with the following *.eb file: easyblock = 'CMakeMakeCp' name = 'PySCF' version = '2.0.0a' versionsuffix = '-Python-%(pyver)s' homepage = 'http://www.pyscf.org' description = "PySCF is an open-source collection of electronic structure modules powered by Python." toolchain = {'name': 'foss', 'version': '2020b'} source_urls = ['https://github.com/pyscf/pyscf/archive/'] sources = ['v%(version)s.tar.gz'] checksums = ['20f4c9faf65436a97f9dfc8099d3c79b988b0a2c5374c701fbe35abc6fad4922'] builddependencies = [('CMake', '3.18.4')] dependencies = [ ('Python', '3.8.6'), ('SciPy-bundle', '2020.11'), # for numpy, scipy ('h5py', '3.1.0'), ('qcint', '4.0.6', versionsuffix), ('libxc', '5.1.3'), ('XCFun', '2.1.1'), ] start_dir = 'pyscf/lib' separate_build_dir = True configopts = "-DBUILD_LIBCINT=OFF -DBUILD_LIBXC=OFF -DBUILD_XCFUN=OFF " prebuildopts = "export PYSCF_INC_DIR=$EBROOTQCINT/include:$EBROOTLIBXC/lib && " files_to_copy = ['pyscf'] sanity_check_paths = { 'files': ['pyscf/__init__.py'], 'dirs': ['pyscf/data', 'pyscf/lib'], } sanity_check_commands = ["python -c 'import pyscf'"] modextrapaths = {'PYTHONPATH': '', 'PYSCF_EXT_PATH': ''} moduleclass = 'chem' Even if the module is created, I am having troubles by running it in a node different from master. In particular, when I load the module and ran the code, it goes all OK: module load chem/PySCF/2.0.0a-foss-2020b-Python-3.8.6 python from pyscf import gto, scf mol = gto.M(atom='H 0 0 0; H 0 0 1') mf = scf.RHF(mol).run() but when I try to run it on a node different from the master, I get: Python 3.8.6 (default, Jun 1 2021, 16:43:49) [GCC 10.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> from pyscf import gto, scf >>> mol = gto.M(atom='H 0 0 0; H 0 0 1') >>> mf = scf.RHF(mol).run() Illegal instruction (core dumped) As far as I read in different places, it seems to be related to the different architectures of our master and slaves nodes. If I execute grep flags -m1 /proc/cpuinfo | cut -d ":" -f 2 | tr '[:upper:]' '[:lower:]' | { read FLAGS; OPT="-march=native"; for flag in $FLAGS; do case "$flag" in "sse4_1" | "sse4_2" | "ssse3" | "fma" | "cx16" | "popcnt" | "avx" | "avx2") OPT+=" -m$flag";; esac; done; MODOPT=${OPT//_/\.}; echo "$MODOPT"; } on the slaves I get: -march=native -mssse3 -mfma -mcx16 -msse4.1 -msse4.2 -mpopcnt -mavx -mavx2 whereas on the master node we have: -march=native -mcx16 I tried to compile PySCF by adding these lines to my *.eb file: configopts += "-DBUILD_FLAGS='-march=native -mssse3 -mfma -mcx16 -msse4.1 -msse4.2 -mpopcnt -mavx -mavx2' " configopts += "-DCMAKE_C_FLAGS='-march=native -mssse3 -mfma -mcx16 -msse4.1 -msse4.2 -mpopcnt -mavx -mavx2' " configopts += "-DCMAKE_CXX_FLAGS='-march=native -mssse3 -mfma -mcx16 -msse4.1 -msse4.2 -mpopcnt -mavx -mavx2' " configopts += "-DCMAKE_FORTRAN_FLAGS='-march=native -mssse3 -mfma -mcx16 -msse4.1 -msse4.2 -mpopcnt -mavx -mavx2'" but in that case the code does not run on master and neither in slaves. I'm sorry if it is a stupid question. I am far from being a system admin... Thanks a lot for your help. Dr. Agustín Aucar Institute for Modeling and Innovative Technologies - Argentina