Modules & Verfûgbare Software: Unterschied zwischen den Versionen
Aus HPC@HU
(add apache-maven) |
(add hadoop) |
||
Zeile 178: | Zeile 178: | ||
- 3.9.0 gcc/14.1.0 proj/9.4.1 swig/4.2.1 python/3.12.3 | - 3.9.0 gcc/14.1.0 proj/9.4.1 swig/4.2.1 python/3.12.3 | ||
- hadoopp | |||
- 3.4.0 | |||
- hpl | - hpl |
Version vom 21. Juni 2024, 10:10 Uhr
Übersicht & Grundlagen zur Nuzung
Die bereitgestellten Compute-Knoten nutzen Linux, genaugenommen ein OpenSUSE.
HPC-typisch wird zentral Software bereitgestellt. Verfügbare Software wird über eine Modulumgebung geladen.
Welche Software verfügbar ist, lässt sich über module avail
sowie module spider <name>
in Erfahrung bringen.
(Online Anleitung für lmod https://lmod.readthedocs.io/en/latest/010_user.html )
Wir bieten aktuell drei Gruppe von Software an:
- /hu "Von Uns" kompilierte Software welche zentral bereitgestellt wird.
- /all Über EasyBuild ( siehe http://docs.easybuild.io/what-is-easybuild/ ) bereitgestellte Software
- /intel Software welche mit Installer ausgeliefert wurde (wie zum Beispiel Intel OneAPI)
Bei der Auswahl von Software sollte darauf geachtet werden dass die Groß- und Kleinschreibung von Bedeutung ist, sprich gcc ist nicht gleich GCC.
Die finalen Pfade sind aktuell auch nicht endgültig festgelegt und können sich noch verändern.
Ferner wird empfohlen sich nicht auf die Defaults zu verlassen und die Version einer Software explizit auszuwählen.
Anwendungsbeispiel:
Die verfügbaren openmpi Versionen lassen sich mit dem Befehl
module spider openmpi
erfragen
Ist daraufhin die Version erwünscht, lässt sich diese mit dem Befehl
module load openmpi/5.0.3-gcc14.1.0
laden.
Aktuell geladene Module lassen sich mit
module list
anzeigen, während
module purge
alle geladenen Module "entlädt".
Aktuell wird die verfügbare Software noch ausgebaut, wodurch sich die Liste relativ schnell entwickelt. Für einen Überblick der aktuell verfügbaren Software wird gebeten diese direkt auf dem System abzufragen. Vor allem mit EasyBuild installierte Software bringt standardmäßig sehr viele kleine Abhängigkeiten mit.
Einen ersten Überblick über einige der wichtigeren Pakete (als Eigenkompilation) bietet die folgende Liste:
Programmiersprachen
- gcc
- 9.5.0
- 10.5.0
- 11.4.0
- 12.3.0
- 13.2.0
- 14.1.0
- Julia
- 1.10.3
- python
- 3.8.19
- 3.9.19
- 3.10.14
- 3.11.9
- 3.12.3
- QT (opensource)
- 5.15.14
- R
- 4.4.0
Bibliotheken und Tools
- apache-maven
- 3.9.8
- bison
- 3.8.2
- BLIS
- 4.2.0
- block2
- p0.5.3rc13 openmpi/5.0.3 gcc/14.1.0 OpenBLAS/0.3.26
- boost
- 1.85 gcc/13.2.0
- 1.85 gcc/14.1.0
- Cmake
- 3.29.2
- crest
- 3.0.1 cmake/3.29.3 OpenBLAS/0.3.26-gcc13.2.0 openmpi/5.0.3-gcc13.2.0 gcc/13.2.0
- 3.0.1 cmake/3.29.3 OpenBLAS/0.3.26-gcc14.1.0 openmpi/5.0.3-gcc14.1.0 gcc/14.1.0
fftw
- 3.3.0 gcc/14.1.0
- 3.3.0 openmpi/5.0.3 gcc/14.1.0
- lapack
- 3.12.0 gcc/13.2.0
- 3.12.0 gcc/14.1.0
- libflame
- 4.2.0
- miniconda3
- 24.3.0-0
- mpich
- 3.2.0 gcc/12.3.0
- 3.3.0 gcc/12.3.0
- 4.1.3 gcc/12.3.0
- 4.2.1 gcc/14.1.0
- OpenBLAS
- 0.3.26 gcc/13.2.0
- 0.3.26 gcc/14.1.0
- OpenCoarrays
- 2.9.3 mpich/3.3.0 gcc/12.3.0
- 2.10.2 openmpi/5.0.3 gcc/14.1.0
- OpenMPI
- 4.1.6 gcc/13.2.0
- 5.0.3 gcc/13.2.0
- 5.0.3 gcc/14.1.0
- proj
- 9.4.1 gcc/14.1.0
- spglib
- 2.4.0 gcc/14.1.0
- 4.2.1
Software
- gdal
- 3.9.0 gcc/14.1.0 proj/9.4.1 swig/4.2.1 python/3.12.3
- hadoopp
- 3.4.0
- hpl
- v2.3
- ior
- 4.0.0 openmpi/5.0.3 gcc/14.1.0
- ncdu
- 1.20
- OpenFOAM
- 11
- v2312
- ORCA
- 5.0.4
- quantum-espresso
- 7.3.1 OpenBLAS/0.3.26 fftw/3.3.10 penmpi/5.0.3 gcc/14.1.0
- xtb
- 6.7.0 lapack/3.12 OpenBLAS/0.3.26 gcc/13.2.0
- 6.7.0 lapack/3.12 OpenBLAS/0.3.26 gcc/14.1.0
Python
Python wird in vielen Projekten eingesetzt. Die Nutzung von Python ist nicht immer problemfrei, darum gibt es folgend einige Empfehlungen für die Nutzung von Python, welche das Risiko von Problemen sowie die Problembeseitigung erleichtern.
Im Allgemeinen sollten Python Anwendungen in einer virtuellen Umgebung entwickelt und ausgeführt werden. Diese wird nativ von Python unterstützt und ermöglicht es Pakete auf einer bestimmten Version zu halten sowie eventuelle Inkompatibilitäten zwischen verschiedenen Projekten zu vermeiden. Ferner ist es möglich bei Problemen eine virtuelle Umgebung zu löschen und dadurch alte Pakete Rückstandslos zu entfernen. Das ist vor allem interessant da pip
oder pip3
Abhängigkeiten installieren kann, aber im Gegensatz zu typischen Linux-Paketmanagern Abhängigkeiten nicht automatisch deinstallieren kann.
Eine virtuelle Umgebung kann wie folgt erstellt werden (mit einem relativen oder absoluten Pfad):
python -m venv /Pfad/zur/neuen/virtuellen_Umgebung
Mehr dazu auf in der Dokumentation von Python: https://docs.python.org/3/library/venv.html
Sollte es aus bestimmten Gründen nicht möglich sein eine virtuelle Umgebung zu nutzen, kann man mit pip Pakete in einem bestimmten Ordner installieren.
pip3 install --target /Pfad/zum/ZielOrdner
Danach kann der Order zur Variable PYTHONPATH
hinzugefügt werden und wird dann von der Python-Umgebung erkannt.
Die virtuellen Umgebungen sind im Allgemeinen jedoch zu präferieren.
Eine weitere Alternative ist die Nutzung von conda
, welches in der Form von miniconda angeboten wird. Mit conda
lässt sich ebenfalls eine Umgebung erstellen, wobei der Funktionsumfang umfangreicher als bei pip
ist, für eine Umgebung in einem bestimmten Pfad lautet der Befehl dann wir folgt:
conda create --prefix /Pfad/zur/neuen/conda_Umgebung