Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
WilleBell opened this issue Dec 13, 2023 · 10 comments · Fixed by #3056
Open

Comments

@WilleBell
Copy link
Contributor

WilleBell commented Dec 13, 2023

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
Copy link
Contributor Author

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

@appolloford
Copy link
Contributor

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
Copy link
Contributor

appolloford commented Dec 14, 2023

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)

@surak
Copy link
Contributor

surak commented Dec 20, 2023

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

@boegel boegel modified the milestones: 5.0, next release (4.9.0) Dec 29, 2023
@boegel
Copy link
Member

boegel commented Dec 29, 2023

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...

@surak
Copy link
Contributor

surak commented Dec 29, 2023

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

@appolloford
Copy link
Contributor

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

@boegel
Copy link
Member

boegel commented Jan 3, 2024

@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
Copy link
Member

boegel commented Jan 3, 2024

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

@appolloford
Copy link
Contributor

appolloford commented Jan 9, 2024

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
4 participants