Μετάβαση στο περιεχόμενο

Κεντρικά διαθέσιμο

Παρακάτω μπορείτε να βρείτε το διαθέσιμο λογισμικό στην υπερυπολογιστική συστοιχία του ΑΠΘ "Αριστοτέλης".

Το λογισμικό που προστίθεται και συντηρείται, ανήκει στις παρακάτω κατηγορίες:

Προσοχή!

Αν επιθυμείτε την εγκατάσταση πολλαπλών λογισμικών, παρακαλούμε υποβάλετε μία ενιαία αίτηση που να τα περιλαμβάνει όλα. Αποφύγετε την υποβολή ξεχωριστών αιτήσεων για κάθε λογισμικό.

H κεντρική εγκατάσταση λογισμικού στον Αριστοτέλη γίνεται είτε με RPM πακέτα ή με το εργαλείο spack το οποίο είναι ένας package manager για υπερυπολογιστικές υποδομές.

Αίτηση για εγκατάσταση λογισμικού

Εάν επιθυμείτε την εγκατάσταση κάποιου λογισμικού που δεν εμφανίζεται στις παρακάτω λίστες ή στο διαθέσιμο λογισμικό του EESSI μπορείτε να συμπληρώσετε τη σχετική φόρμα αίτησης λογισμικού.

Παρακαλούμε σημειώστε ότι μπορείτε να εγκαταστήσετε στον προσωπικό σας λογαριασμό:

Εισαγωγή στη χρήση modulefiles

Τα λογισμικά/εφαρμογές γίνονται διαθέσιμα με τη χρήση modulefiles. Για παράδειγμα όταν κάνουμε login στη συστοιχία η έκδοση του gcc compiler (μεταγλωττιστή) που είναι διαθέσιμη είναι η 11.4.1-3:

# gcc --version
gcc (GCC) 11.4.1 20231218 (Red Hat 11.4.1-3)
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Η έκδοση αυτή ονομάζεται "έκδοση συστήματος".

Για να κάνουμε διαθέσιμη στο περιβάλλον χρήσης (στη γραμμή εντολών) μία άλλη έκδοση θα πρέπει να φορτώσουμε πρώτα το αντίστοιχο modulefile, π.χ. για να χρησιμοποιήσουμε την έκδοση 13.2.0:

# module load gcc/13.2.0
# gcc --version
gcc (Spack GCC) 13.2.0
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Παρατηρούμε στην έξοδο της gcc --version ότι η έκδοση είναι η 13.2.0 και όχι αυτή του συστήματος (11.4.1-3). Αν θέλουμε να δούμε ποιές εκδόσεις του πακέτου/λογισμικού gcc είναι διαθέσιμες θα πρέπει να τρέξουμε την εντολή module avail gcc, π.χ.:

# module avail gcc

------------ /mnt/apps/aristotle/site/share/spack/lmod/linux-centos7-x86_64/Core -------------
    gcc/8.2.0    gcc/9.2.0    gcc/9.4.0-eewq4j6    gcc/12.2.0-fhg4pj2    gcc/12.2.0    gcc/13.2.0-nbog6z2

  Where:
   D:  Default Module

Use "module spider" to find all possible modules.
Use "module keyword key1 key2 ..." to search for all possible modules matching any of the
"keys".

Στην έξοδο της τελευταίας εντολής παρατηρούμε ότι η default έκδοση είναι η 12.2.0, άρα αν καλέσουμε module load gcc χωρίς να καθορίσουμε κάποια συγκεκριμένη έκδοση θα ενεργοποιηθεί η έκδοση 12.2.0 όπως φαίνεται και στο παρακάτω πλαίσιο:

# module load gcc
# gcc --version
gcc (Spack GCC) 12.2.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Δομή modulefiles

Τα περισσότερα πακέτα λογισμικού που είναι κεντρικά εγκατεστημένα στη συστοιχία έχουν γίνει compile με έναν ή περισσότερους compilers (π.χ. με gcc και με intel). Ομοίως (και ένα επίπεδο παρακάτω) μία παράλληλη εφαρμογή μπορεί να έχει γίνει compile χρησιμοποιώντας περισσότερες από μία mpi υλοποιήσεις (π.χ. και με openmpi και με intel-mpi).

Κατα συνέπεια η δομή των modulefiles που είναι διαθέσιμα είναι ιεραρχική, δηλαδή οι βιβλιοθήκες ή εφαρμογές που έχουν γίνει compile με ένα συγκεκριμένο compiler φαίνονται ως διαθέσιμες με την module avail μόνο αφότου έχουμε φορτώσει στο περιβάλλον το δεδομένο compiler.

Στο πρώτο επίπεδο της ιεραρχίας βρίσκονται οι compilers. Κατόπιν login είναι τα μόνα λογισμικά διαθέσιμα προς χρήση:

# module avail
Terminal Output
----- /mnt/apps/aristotle/site/share/spack/lmod/linux-centos7-x86_64/Core ------
gcc/8.2.0     gcc/9.4.0-eewq4j6     gcc/12.2.0            intel-oneapi-compilers/2022.0.2-sygdcrc          intel/20.0.2  nvhpc/23.11-do7ymsa
gcc/9.2.0     gcc/12.2.0-fhg4pj2    gcc/13.2.0-nbog6z2    intel/19.0.5                            (L,D)    llvm/5.0.2-2l7hn3a

Στο δεύτερο επίπεδο βρίσκονται οι περισσότερες εφαρμογές. Για να τις δούμε ως διαθέσιμα modulefiles θα πρέπει πρώτα να φορτώσουμε ένα compiler, π.χ.:

# module load intel/19.0.5
# module avail
Terminal Output
- /mnt/apps/aristotle/site/share/spack/lmod/linux-centos7-x86_64/intel/19.0.5 --
   autoconf/2.69           hwloc/1.11.9                openmpi/3.1.2
   automake/1.16.1         hwloc/1.11.11        (D)    openmpi/3.1.3
   axel/2.16.1             jasper/1.900.1              openmpi/3.1.4   (D)
   bison/3.4.2             libjpeg-turbo/1.5.90        openssl/1.0.2o
   boost/1.70.0            libpng/1.6.34               openssl/1.1.1d  (D)
   bzip2/1.0.8             libpng/1.6.37        (D)    perl/5.26.2
   cgal/4.13               libtool/2.4.6               perl/5.30.0     (D)
   cmake/3.9.6             libxml2/2.9.8               pkgconf/1.4.2
   cmake/3.12.3            libxml2/2.9.9        (D)    pkgconf/1.6.3   (D)
   cmake/3.15.4     (D)    m4/1.4.18                   python/3.3.5
   curl/7.63.0             miniconda2/4.5.11           readline/7.0
   diffutils/3.6           miniconda3/4.5.11           readline/8.0    (D)
   diffutils/3.7    (D)    mpfr/4.0.2                  slurm/17-11-8-1
   expat/2.2.9             nasm/2.13.03                sqlite/3.30.1
   fontsproto/2.1.3        ncurses/6.1                 tar/1.32
   gmake/4.2.1             numactl/2.0.11              xz/5.2.4
   gmp/6.1.2               numactl/2.0.12       (D)    zlib/1.2.11
   help2man/1.47.11        openblas/0.3.7

--- /mnt/apps/aristotle/site/share/spack/lmod/linux-centos7-x86_64/Core ---
gcc/8.2.0    gcc/9.4.0-eewq4j6     gcc/12.2.0            intel-oneapi-compilers/2022.0.2-sygdcrc          intel/20.0.2          nvhpc/23.11-do7ymsa
gcc/9.2.0    gcc/12.2.0-fhg4pj2    gcc/13.2.0-nbog6z2    intel/19.0.5                            (L,D)    llvm/5.0.2-2l7hn3a

Κάποιες εφαρμογές που είναι παράλληλες (αξιοποιούν τη χρήση μίας mpi βιβλιοθήκης) βρίσκονται σε τρίτο επίπεδο, π.χ. οι βιλβιοθήκες hdf5:

# module load openmpi/3.1.3
# module avail
Terminal Output
------ /mnt/apps/aristotle/site/share/spack/lmod/linux-centos7-x86_64/openmpi/3.1.3-q4h4qu4/intel/19.0.5.281 -------
   hdf5/1.8.19    hdf5/1.10.4 (D)    netcdf-fortran/4.4.4    netcdf/4.6.1    regcm/4.4.5.11    regcm/4.7.0 (D)

------------------- /mnt/apps/aristotle/site/share/spack/lmod/linux-centos7-x86_64/intel/19.0.5 --------------------
   autoconf/2.69          fontsproto/2.1.3            miniconda2/4.5.11        perl/5.30.0     (D)
   automake/1.16.1        gmake/4.2.1                 miniconda3/4.5.11        pkgconf/1.4.2
   axel/2.16.1            gmp/6.1.2                   mpfr/4.0.2               pkgconf/1.6.3   (D)
   bison/3.4.2            help2man/1.47.11            nasm/2.13.03             python/3.3.5
   boost/1.70.0           hwloc/1.11.9                ncurses/6.1              readline/7.0
   bzip2/1.0.8            hwloc/1.11.11        (D)    numactl/2.0.11           readline/8.0    (D)
   cgal/4.13              jasper/1.900.1              numactl/2.0.12    (D)    slurm/17-11-8-1
   cmake/3.9.6            libjpeg-turbo/1.5.90        openblas/0.3.7           sqlite/3.30.1
   cmake/3.12.3           libpng/1.6.34               openmpi/3.1.2            tar/1.32
   cmake/3.15.4    (D)    libpng/1.6.37        (D)    openmpi/3.1.3     (L)    xz/5.2.4
   curl/7.63.0            libtool/2.4.6               openmpi/3.1.4     (D)    zlib/1.2.11
   diffutils/3.6          libxml2/2.9.8               openssl/1.0.2o
   diffutils/3.7   (D)    libxml2/2.9.9        (D)    openssl/1.1.1d    (D)
   expat/2.2.9            m4/1.4.18                   perl/5.26.2

----------------------- /mnt/apps/aristotle/site/share/spack/lmod/linux-centos7-x86_64/Core ------------------------
   gcc/5.5.0    gcc/6.4.0    gcc/7.3.0    gcc/8.2.0 (D)    gcc/9.2.0    intel/19.0.5 (L)

Module spider

Για να δούμε ποιά modulefiles θα χρειαστεί πρώτα να φορτώσουμε προκειμένου να κάνουμε μία εφαρμογή διαθέσιμη στο περιβάλλον χρήσης μπορούμε να χρησιμοποιούμε την module spider. Π.χ. για να δούμε ποιές επιλογές έχουμε διαθέσιμες για να "φορτώσουμε" την βιβλιοθήκη fftw (Fastest Fourier Transform in the West) μπορούμε να εκτελέσουμε την εξής εντολή:

# module spider fftw/3.3.8
Terminal Output
-------------------------------------------------------------------------------------------
  fftw: fftw/3.3.8
-------------------------------------------------------------------------------------------

    You will need to load all module(s) on any one of the lines below before the "fftw/3.3.8" m
odule is available to load.

      gcc/6.4.0  openmpi/3.1.3
      gcc/7.3.0  openmpi/3.1.3
      gcc/8.2.0  openmpi/3.1.3
      gcc/9.2.0  openmpi/3.1.4

    Help:
      FFTW is a C subroutine library for computing the discrete Fourier
      transform (DFT) in one or more dimensions, of arbitrary input size, and
      of both real and complex data (as well as of even/odd data, i.e. the
      discrete cosine/sine transforms or DCT/DST). We believe that FFTW, which
      is free software, should become the FFT library of choice for most
      applications.

Βλέπουμε ότι η συγκερκιμένη βιβλιοθήκη (fftw/3.3.8) υπάρχει τέσσερις φορές εγκατεστημένη και για να την φέρουμε στο περιβάλλον χρήσης θα πρέπει να φορτώσουμε πρώτα ένα συνδυασμό του gcc και του openmpi, π.χ.:

# module load gcc/9.2.0  openmpi/3.1.4
# module load fftw/3.3.8

Επιπλέον, χρησιμοποιώντας την εντολή module spider μπορούμε να εντοπίσουμε τις διαθέσιμες εκδόσεις ενός module.

# module spider python
Terminal Output
-----------------------------------------------------------------
  python:
-----------------------------------------------------------------
     Versions:
        python/3.7.0
        python/3.7.4
        python/3.7.6
        python/3.7.7
        python/3.7.12-f7pslve
        python/3.7.12-jzuctbb
        python/3.7.12-4tsv54n
        python/3.7.12-7a464zq
        python/3.8.6-a23pddp
        python/3.8.6
        python/3.9.10-a7dicda
        python/3.9.10-b7gg4hu
        python/3.9.10-fb7xssq
        python/3.9.10-ilba5wi
        python/3.9.10-mru6vyi
        python/3.9.10-qujth4g
        python/3.9.10-qz3dwle
        python/3.9.10-ve54vyn
        python/3.10.8-cidwh6y
        python/3.10.8-d22ngxi
        python/3.10.8-uyv7glf
        python/3.10.8-vpowkao
        python/3.10.10-abxdifo
        python/3.10.10-liiyhzc
        python/3.10.10-lufnu2b
        python/3.10.10-tuelrzc
        python/3.11.6-wkl2rma
     Other possible modules matches:
        py-gitpython  py-ipython  py-ipython-genutils  py-meson-python  py-python-dateutil  py-scientificpython  py-wxpython

--------------------------------------------------------------------
  To find other possible module matches execute:

      $ module -r spider '.*python.*'

-------------------------------------------------------------------
  For detailed information about a specific "python" package (including how to load the modules) use the module's full name.
  Note that names that have a trailing (E) are extensions provided by other modules.
  For example:

     $ module spider python/3.11.6-wkl2rma

-------------------------------------------------------------------

Στην συνέχεια, για να δούμε με ποιον τρόπο μπορούμε να ενεργοποιήσουμε το module μίας συγκεκριμένης έκδοσης, μπορούμε να χρησιμοποιήσουμε την module spider ως εξής:

# module spider python/3.11.6-wkl2rma
Terminal Output
---------------------------------------------------------------------
  python: python/3.11.6-wkl2rma
--------------------------------------------------------------------

    You will need to load all module(s) on any one of the lines below before the "python/3.11.6-wkl2rma" module is available to load.

      gcc/13.2.0-nbog6z2

    Help:
      The Python programming language.

Επομένως, για να ενεργοποιήσουμε το module της python/3.11.6 μπορούμε να τρέξουμε την παρακάτω εντολή:

# module load gcc/13.2.0-nbog6z2 python/3.11.6-wkl2rma

Module show

Για να δούμε πώς διαμορφώνει το περιβάλλον ένα module, μπορούμε να χρησιμοποιήσουμε την εντολή module show. Για παράδειγμα:

# module load gcc/12.2.0
# module show py-scipy
Terminal Output
---------------------------------------------------------------------------------------------------------
   /mnt/apps/aristotle/site/share/spack/lmod/linux-centos7-x86_64/gcc/12.2.0/py-scipy/1.11.3-2zqskki.lua:
--------------------------------------------------------------------------------------------------------
whatis("Name : py-scipy")
whatis("Version : 1.11.3")
whatis("Target : x86_64")
whatis("Short description : Fundamental algorithms for scientific computing in Python.")
help([[Name   : py-scipy]])
help([[Version: 1.11.3]])
help([[Target : x86_64]])
]])
help([[Fundamental algorithms for scientific computing in Python.]])
depends_on("openblas/0.3.23-buakiei")
depends_on("py-numpy/1.24.3-lyes72v")
depends_on("py-pybind11/2.11.0-vhmpdq5")
depends_on("python/3.10.10-abxdifo")
conflict("py-scipy")
prepend_path("LD_LIBRARY_PATH","/mnt/apps/aristotle/site/linux-centos7-x86_64/gcc-12.2.0/py-scipy-1.11.3-2zqskki5skt6mxztgx5sb7n6qef7bcnv/lib")
prepend_path("CMAKE_PREFIX_PATH","/mnt/apps/aristotle/site/linux-centos7-x86_64/gcc-12.2.0/py-scipy-1.11.3-2zqskki5skt6mxztgx5sb7n6qef7bcnv/.")
prepend_path("PYTHONPATH","/mnt/apps/aristotle/site/linux-centos7-x86_64/gcc-12.2.0/py-scipy-1.11.3-2zqskki5skt6mxztgx5sb7n6qef7bcnv/lib/python3.10/site-packages")
setenv("PY_SCIPY_ROOT","/mnt/apps/aristotle/site/linux-centos7-x86_64/gcc-12.2.0/py-scipy-1.11.3-2zqskki5skt6mxztgx5sb7n6qef7bcnv")