Dear George, Thanks for your response. A few days ago, I tried to compile the code in a slave node, but it didn't solve the problem...
Best, Agustín El mié, 2 jun 2021 a las 11:41, George Tsouloupas (<g.tsoulou...@cyi.ac.cy>) escribió: > Hi, > > In a similar situation we ended up just building the software on the > "older" cpu (i.e. the "slave" in your case) > > G. > > > George Tsouloupas, PhD > HPC Facility Technical Director > The Cyprus Institute > tel: +357 22208688 > > On 6/2/21 4:22 PM, Agustín Aucar wrote: > > 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 > >