Κεντρικά διαθέσιμο¶
Παρακάτω μπορείτε να βρείτε το διαθέσιμο λογισμικό στην υπερυπολογιστική συστοιχία του ΑΠΘ "Αριστοτέλης".
Το λογισμικό που προστίθεται και συντηρείται, ανήκει στις παρακάτω κατηγορίες:
- Κεντρικά διαθέσιμο λογισμικό του ΑΠΘ που αδειοδοτείται με δυναμικές άδειες.
- GNU, Intel compilers
- Interpreted Γλώσσες προγραματισμού (όπως
Python,R,Julia) - Εργαλεία ανάπτυξης λογισμικού (όπως
Jupyter,Rstudio,Spyder) - Διαθέσιμο λογισμικό από το EESSI (
European Environment for Scientific Software Installations) - Επιστημονικές εφαρμογές και εργαλεία, εφόσον υποβληθεί αίτημα
Προσοχή!
Αν επιθυμείτε την εγκατάσταση πολλαπλών λογισμικών, παρακαλούμε υποβάλετε μία ενιαία αίτηση που να τα περιλαμβάνει όλα. Αποφύγετε την υποβολή ξεχωριστών αιτήσεων για κάθε λογισμικό.
H κεντρική εγκατάσταση λογισμικού στον Αριστοτέλη γίνεται είτε με RPM πακέτα ή με το εργαλείο spack το οποίο είναι ένας package manager για υπερυπολογιστικές υποδομές.
Αίτηση για εγκατάσταση λογισμικού
Εάν επιθυμείτε την εγκατάσταση κάποιου λογισμικού που δεν εμφανίζεται στις
παρακάτω λίστες ή στο διαθέσιμο λογισμικό του EESSI
μπορείτε να συμπληρώσετε τη σχετική φόρμα αίτησης λογισμικού.
Παρακαλούμε σημειώστε ότι μπορείτε να εγκαταστήσετε στον προσωπικό σας λογαριασμό:
R packagesPython packagesσε virtual environments- Λογισμικό που μπορεί να εγκατασταθεί χωρίς να απαιτούνται διαχειριστικά δικαιώματα
Εισαγωγή στη χρήση 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")