Module load for multiple python packages

Hi everyone! I’m trying to load the following packages:
python
numpy, scipy (SciPy-bundle)
sympy
mosek

On yggdrasil if I try:
ml GCC/11.2.0 OpenMPI/4.1.1 Python/3.7.2 SciPy-bundle/2019.03
then I don’t get any error message. However when I add sympy, i.e.
ml GCC/11.2.0 OpenMPI/4.1.1 Python/3.7.2 SciPy-bundle/2019.03 sympy/1.9
then it gives

Lmod has detected the following error:  These module(s) or extension(s) exist but cannot be
loaded as requested: "SciPy-bundle/2019.03", "Python/3.7.2"
   Try: "module spider SciPy-bundle/2019.03 Python/3.7.2" to see how to load the module(s).

On baobab actually already the first command (no sympy) gives this same error.

In general I’m a bit confused about dependencies in module. Different packages request different GCC and MPI versions. Not sure how it can all line up. Also, already when just trying to load the newest SciPy-bundle on yggdrasil (with GCC nad OpenMPI versions given by module spider)
module load GCC/11.3.0 OpenMPI/4.1.4 SciPy-bundle/2022.05
it says

Lmod has detected the following error:  These module(s) or extension(s) exist but cannot be
loaded as requested: "UCX/1.12.1"
   Try: "module spider UCX/1.12.1" to see how to load the module(s).

Looking into module spider, I see that it needs GCCcore/11.3.0. Adding it to the loaded packages just gives the same error message!!

Could someone help in how I can load these packages? Earlier versions are also fine.
Thanks in advance!
Tamas

Hi @Tamas.Krivachy

I don’t get the same errors than you, maybe you loaded other modules ?

There are different version of module that are compiled with different version of GCC/GCCcore But what you need to know is that only one version of a module can be loaded.

So you need to align the version of all your module to match the dependencies

Example:

(yggdrasil)-[alberta@cpu025 ~]$ ml spider sympy/1.9
    You will need to load all module(s) on any one of the lines below before the "sympy/1.9" module is available to load.

      GCC/11.2.0  OpenMPI/4.1.1

In this case SciPy-bundle/2021.10 is more appropriate because it’s the same module dependencies

(yggdrasil)-[alberta@cpu025 ~]$ ml spider SciPy-bundle/2021.10
    You will need to load all module(s) on any one of the lines below before the "SciPy-bundle/2021.10" module is available to load.

      GCC/11.2.0  OpenMPI/4.1.1

For the UCX issue it’s not scipy-bundle the problem but OpenMPI/4.1.4:

if you load module one by one you will see that OpenMPI/4.1.4 is not working on Yggdrasil:

(yggdrasil)-[alberta@cpu025 ~]$ ml purge
(yggdrasil)-[alberta@cpu025 ~]$ module load GCC/11.3.0 
(yggdrasil)-[alberta@cpu025 ~]$ module load  OpenMPI/4.1.4
Lmod has detected the following error:  These module(s) or extension(s) exist but cannot be loaded as requested: "UCX/1.12.1"
   Try: "module spider UCX/1.12.1" to see how to load the module(s).

So I will check why there is this behavior on yggdrasil.

Hi @Tamas.Krivachy,

The issue is solved, you can now use OpenMPI/4.1.4 with UCX/1.12.1 on yggdrasil.

Please let me know if everything is good on your side :slight_smile:

Hi @Adrien.Albert ,

Thanks for the fix and clarification!

Like this, SciPy-bundle and sympy can be loaded together.

I would also have liked to use Mosek, for which the dependancies don’t match with what I just loaded. (If I understand correctly we would need to install a newer Mosek which matches these GCC and OpenMPI modules).
But anyway, now I’m trying with Gurobi, that seems like a good fit! So probably no need to install anything new.

Best,
Tamas

Hi, New software installed: Mosek version 9.3.20