easybuild-easyblocks icon indicating copy to clipboard operation
easybuild-easyblocks copied to clipboard

Latest suitesparse easyblock modified library paths and doesn't install CSparse libs

Open WilleBell opened this issue 1 year ago • 10 comments

Latest suitesparse easyblock modified library paths and doesn't install CSparse libs which might cause installations that depend on SuiteSparse to fail, installation of those should be modified to find the libraries. But the issue of the missing CSparse library remains. Why was this lib removed in #3004? @appolloford

Installations that depend on SuiteSparse and might fail if not modified: AUGUSTUS CVXOPT Trilinos PETSc igraph Octave OpenSees DOLFIN FreeFEM Yade ARPACK++ pyGIMLi

WilleBell avatar Dec 13 '23 13:12 WilleBell

Installation of PETSc fails. Path to libs can be fixed but it also requires the CSparse lib.

WilleBell avatar Dec 13 '23 14:12 WilleBell

Hi, I found some description from the SuiteSparse README

CSparse     a concise sparse matrix package, developed for my
            book, "Direct Methods for Sparse Linear Systems",
            published by SIAM.  Intended primarily for teaching.
            Note that the code is (c) Tim Davis, as stated in the book.
            For production, use CXSparse instead.  In particular, both
            CSparse and CXSparse have the same include filename: cs.h.
            This package is used for the built-in DMPERM in MATLAB.
            author: Tim Davis

CXSparse    CSparse Extended.  Includes support for complex matrices
            and both int or long integers.  Use this instead of CSparse
            for production use; it creates a libcsparse.so (or *dylib on
            the Mac) with the same name as CSparse.  It is a superset
            of CSparse.  Any code that links against CSparse should
            also be able to link against CXSparse instead.
            author: Tim Davis, David Bateman

CSparse looks like the only one which is not installed by cmake. Although I don't see a libcsparse.so from CXSparse (libcxsparse.so instead), I guess it does this intentionally to avoid some potential conflict with CXSparse. I am wondering whether the softwares in the list can be linked to CXSparse instead? Otherwise, I may copy those CSparse libs manually.

appolloford avatar Dec 14 '23 11:12 appolloford

At least for PETSc-3.19.2-foss-2022b.eb. I can successfully install that without CSpase. (require editing petsc easyblock)


Success: AUGUSTUS/3.5.0-foss-2022b CVXOPT-1.3.1-foss-2022a.eb (require revising path in easyconfig)

appolloford avatar Dec 14 '23 16:12 appolloford

Not to forget that there are extensions on R which depend on suitesparse. We took upstream suitesparse.py because we had an old one pre-suitesparse 6. We have 7.1.0

surak avatar Dec 20 '23 16:12 surak

Not to forget that there are extensions on R which depend on suitesparse. We took upstream suitesparse.py because we had an old one pre-suitesparse 6. We have 7.1.0

Which extensions are that? We don't have SuiteSparse listed as dependency in upstream R easyconfigs...

boegel avatar Dec 29 '23 10:12 boegel

@SebastianAchilles can you paste the commented-out extensions of our R? I’m on vacations right now and don’t have access to Gitlab

surak avatar Dec 29 '23 10:12 surak

Some easyconfigs need to be updated as well, such as CVXOPT-1.3.1-foss-2022a.eb. I have not checked all of them since there is a long list. I guess some of them will be archived soon. I am not sure whether I should update them at this moment.

from develop branch

./r/R-INLA/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb
./i/igraph/igraph-0.9.4-foss-2021a.eb
./i/igraph/igraph-0.9.5-foss-2021b.eb
./t/Trilinos/Trilinos-13.4.1-foss-2022a.eb
./t/Trilinos/Trilinos-12.12.1-intel-2017b-Python-2.7.14.eb
./t/Trilinos/Trilinos-12.12.1-foss-2019b-Python-3.7.4.eb
./t/Trilinos/Trilinos-12.12.1-foss-2017b-Python-2.7.14.eb
./t/Trilinos/Trilinos-12.12.1-intel-2018a-Python-3.6.4.eb
./t/Trilinos/Trilinos-13.4.1-foss-2022a-zoltan.eb
./t/Trilinos/Trilinos-12.12.1-foss-2018a-Python-3.6.4.eb
./s/S4/S4-1.1.1-20180610-foss-2017b.eb
./a/ARPACK++/ARPACK++-2018.03.26_find-deps.patch
./a/ARPACK++/ARPACK++-2018.03.26-foss-2017b.eb
./a/AUGUSTUS/AUGUSTUS-3.4.0-foss-2021b.eb
./a/AUGUSTUS/AUGUSTUS-3.4.0-foss-2020b.eb
./a/AUGUSTUS/AUGUSTUS-3.3-foss-2018a.eb
./a/AUGUSTUS/AUGUSTUS-3.3.3-intel-2019b.eb
./a/AUGUSTUS/AUGUSTUS-3.3.3-foss-2019b.eb
./a/AUGUSTUS/AUGUSTUS-3.3.2-intel-2018b-Python-2.7.15.eb
./a/AUGUSTUS/AUGUSTUS-3.5.0-foss-2022b.eb
./a/AUGUSTUS/AUGUSTUS-3.2.3-intel-2017a-Python-2.7.13.eb
./a/AUGUSTUS/AUGUSTUS-3.5.0-foss-2022a.eb
./a/AUGUSTUS/AUGUSTUS-3.3.2-foss-2017b-Python-2.7.14.eb
./a/AUGUSTUS/AUGUSTUS-3.3.2-intel-2017a-Python-2.7.13.eb
./a/AUGUSTUS/AUGUSTUS-3.4.0-foss-2021a.eb
./a/AUGUSTUS/AUGUSTUS-3.4.0-foss-2020a.eb
./a/AUGUSTUS/AUGUSTUS-3.3.2-intel-2019a.eb
./a/AUGUSTUS/AUGUSTUS-3.3.2-intel-2017b-Python-2.7.14.eb
./f/FreeFem++/FreeFem++-3.58-foss-2017b-downloaded-deps.eb
./f/FreeFem++/FreeFem++-3.61-1-intel-2018a-downloaded-deps.eb
./f/FreeFem++/FreeFem++-3.60-intel-2018a-downloaded-deps.eb
./f/FreeFEM/FreeFEM-4.5-foss-2019b-Python-3.7.4.eb
./o/OpenSees/OpenSees-3.2.0-add_Makefile_def_parallel.patch
./o/OpenSees/OpenSees-3.2.0-add_Makefile_def_sequential.patch
./o/OpenSees/OpenSees-3.2.0-intel-2020a-Python-3.8.2.eb
./o/OpenSees/OpenSees-3.2.0-intel-2020a-Python-3.8.2-parallel.eb
./o/Octave/Octave-4.0.3-intel-2016b.eb
./o/Octave/Octave-4.2.1-intel-2017a.eb
./o/Octave/Octave-5.1.0-foss-2019a.eb
./o/Octave/Octave-6.2.0-foss-2020b.eb
./o/Octave/Octave-4.2.2-foss-2018a.eb
./o/Octave/Octave-4.2.1-foss-2018a.eb
./o/Octave/Octave-7.1.0-foss-2021b.eb
./o/Octave/Octave-4.0.0-foss-2016a.eb
./o/Octave/Octave-4.4.1-foss-2018b.eb
./o/Octave/Octave-4.2.1-intel-2016b.eb
./o/Octave/Octave-4.2.1-intel-2017a-mt.eb
./o/Octave/Octave-5.1.0-foss-2019b.eb
./c/CVXOPT/CVXOPT-1.1.9-intel-2017a-Python-2.7.13.eb
./c/CVXOPT/CVXOPT-1.2.1-intel-2018a-Python-3.6.4.eb
./c/CVXOPT/CVXOPT-1.2.6-foss-2020b.eb
./c/CVXOPT/CVXOPT-1.1.9-fix-setup-py.patch
./c/CVXOPT/CVXOPT-1.2.3-foss-2019a.eb
./c/CVXOPT/CVXOPT-1.2.4-intel-2019b-Python-3.7.4.eb
./c/CVXOPT/CVXOPT-1.2.3-intel-2018b-Python-3.6.6.eb
./c/CVXOPT/CVXOPT-1.2.6-foss-2021a.eb
./c/CVXOPT/CVXOPT-1.2.1-fix-setup-py.patch
./c/CVXOPT/CVXOPT-1.3.1-foss-2022a.eb
./c/CVXOPT/CVXOPT-1.3.1_fix-setup-py.patch
./d/DOLFIN/DOLFIN-2018.1.0.post1-foss-2018a-Python-3.6.4.eb
./d/DOLFIN/DOLFIN-2019.1.0.post0-foss-2019b-Python-3.7.4.eb
./d/DOLFIN/DOLFIN-1.6.0_fix-SuiteSparse-4.3.patch
./y/Yade/Yade-2018.02b-intel-2018a-Python-2.7.14.eb
./p/PETSc/PETSc-3.12.4-foss-2020a-Python-3.8.2.eb
./p/PETSc/PETSc-3.7.2-intel-2016a-Python-2.7.11.eb
./p/PETSc/PETSc-3.12.4-intel-2019b-Python-2.7.16.eb
./p/PETSc/PETSc-3.18.4-intel-2021b.eb
./p/PETSc/PETSc-3.7.5-intel-2016b-downloaded-deps.eb
./p/PETSc/PETSc-3.9.3-foss-2018a.eb
./p/PETSc/PETSc-3.11.1-intel-2019a-Python-3.7.2.eb
./p/PETSc/PETSc-3.12.4-foss-2019b-Python-3.7.4.eb
./p/PETSc/PETSc-3.15.1-intel-2021a.eb
./p/PETSc/PETSc-3.11.0-foss-2018b-downloaded-deps.eb
./p/PETSc/PETSc-3.8.3-foss-2017b-downloaded-deps.eb
./p/PETSc/PETSc-3.12.4-intel-2020a-Python-3.8.2.eb
./p/PETSc/PETSc-3.9.3-intel-2018a.eb
./p/PETSc/PETSc-3.19.2-foss-2022b.eb
./p/PETSc/PETSc-3.7.3-foss-2016a-Python-2.7.11.eb
./p/PETSc/PETSc-3.9.1-foss-2018a-downloaded-deps.eb
./p/PETSc/PETSc-3.14.4-foss-2020b.eb
./p/PETSc/PETSc-3.14.4-intel-2020b.eb
./p/PETSc/PETSc-3.11.1-foss-2019a-Python-3.7.2.eb
./p/PETSc/PETSc-3.15.1-foss-2021a.eb
./p/PETSc/PETSc-3.17.4-foss-2022a.eb
./p/PETSc/PETSc-3.12.4-intel-2019b-Python-3.7.4.eb
./p/pyGIMLi/pyGIMLi-20160803-foss-2016a-Python-3.5.1.eb
./p/pyGIMLi/pyGIMLi-20160803-foss-2016a-Python-2.7.11.eb

appolloford avatar Dec 29 '23 18:12 appolloford

@appolloford Updating any easyconfigs using a deprecated toolchain is a useless effort, since those are archived in the 5.0.x branch already. Now that we have the 2023b version of the common toolchains set in stone, anything older than 2021a (GCC 10.3.0) is deprecated; see also https://docs.easybuild.io/policies/toolchains

Are these the easyconfigs that have a dependency on SuiteSparse? No changes are needed for PETSc-3.19.2-foss-2022b.eb imho, installing that works just fine with the updated PETSc easyblock?

boegel avatar Jan 03 '24 08:01 boegel

CVXOPT is definitely broken, fails with:

cc1: fatal error: /software/SuiteSparse/5.13.0-foss-2022a-METIS-5.1.0/SuiteSparse_config/SuiteSparse_config.c: No such file or directory

boegel avatar Jan 03 '24 08:01 boegel

Yes, the list is simply showing the easyconfigs with SuiteSparse dependency. PETSc and Trilinos easyconfigs should work fine with the new easyblock. I had a quick look on igraph, AUGUSTUS, Octave, and CVXOPT easyconfigs, which having toolchain later than 2021a, and it seems CVXOPT is the only one need updates. I will test them to make sure them work and probably also modify the CVXOPT easyblock.

appolloford avatar Jan 09 '24 00:01 appolloford