Auf dem Cluster gibt es zwei verschiedene Compiler für C- und C++-Programme: die Gnu Compiler Collection (GCC) und den Intel-Compiler.
Eine gute Ressource für Einsteiger in die C-Programmierung ist zum Beispiel die Website cprogramming.com.
Es gibt außerdem weitere Tools zur Software-Entwicklung, die nicht auf dieser Seite gelistet sind. Zum Beispiel kann Totalview zum parallelen Debugging genutzt werden. Verschiedene Intel-Tools zur Performance-Analyse und Optimierung stehen außerdem zur Verfügung.
GCC-Compiler
Der GCC-Compiler ist in mehreren Versionen installiert. Es bietet sich allerdings an, die Version 9.3.0 zu verwenden, die im Rahmen von OpenHPC installiert ist, von Betriebssystem-Seite ist aber zusätzlich die Version 8.3.1 verfügbar. Erstere ist auch standardmäßig als Modul gnu9
geladen. Deren Dokumentation findet sich hier. Weitere Versionen sind eventuell verfügbar und können mit module avail
beziehungsweise mit module spider gnu
gelistet werden.
Der Befehl zum Aufrufen des C-Compilers ist gcc
, für den C++-Compiler g++
.
Zusätzlich zum Compiler enthält GCC auch den GNU Debugger (gdb), der in der Version 8.2.12 installiert ist. Der Befehl für den Debugger ist gdb
.
Nachfolgend ist beispielhaft das Laden des GCC-Moduls und die Abfrage der Version des C-Compilers dargestellt:
$ module load gnu9
$ gcc --version
gcc (GCC) 9.3.0
Copyright (C) 2019 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.
Intel-Compiler
Auf dem Cluster ist das Intel Parallel Studio und das Intel® oneAPI Toolkit installiert.
Intel Parallel Studio
Intel Parallel Studio beinhaltet den Intel-Compiler in der Version 19.1.3 und zusätzlich ist die ältere Version 19.0.5. Die installierten Versionen können mittels module spider intel
angezeigt werden.
Der Befehl zum Aufrufen des Compilers ist icc
für den C-Compiler sowie icpc
für den C++-Compiler. Nachfolgend ist beispielhaft das Laden des Intel-Moduls und die Abfrage der Version des Intel-Compilers dargestellt:
$ module load intel
$ icc --version
icc (ICC) 19.1.3.304 20200925
Copyright (C) 1985-2020 Intel Corporation. All rights reserved.
In diesem Beispiel wurde das Modul ohne Angabe der Compilerversion geladen. Damit wird der vom ZIMT eingestellte Standardwert für dieses Modul verwendet (dieser ist bei einem module avail
mit (D)
gekennzeichnet).
Intel oneAPI Toolkit
Die Releases 2022.2.0 und 2023.1 sind installiert.
$ module avail oneapi
------------------------- /cm/shared/omni/modulefiles --------------------------
oneapi/2022.2.0 oneapi/2023.1 (L,D)
Der Befehl zum Aufrufen des Compilers icx
.
$ module load oneapi
$ icx --version
Intel(R) oneAPI DPC++/C++ Compiler 2023.1.0 (2023.1.0.20230320)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /cm/shared/omni/apps/oneapi/2023.1/compiler/2023.1.0/linux/bin-llvm
Configuration file: /cm/shared/omni/apps/oneapi/2023.1/compiler/2023.1.0/linux/bin-llvm/../bin/icx.cfg