Compilers and Languages for HPC
- Comparison of Compiler Options (intel vs. pgi vs. gcc)
- GNU Compiler Collection
- Intel Compilers
- Intel oneAPI
- Julia for HPC
- LLVM
- NAG Fortran Compiler
- Portland Group Compiler
- Python on HPC systems
- The Fortran Programming Language
Using compilers on compute nodes
Compute nodes are diskless. Therefore the OS image is kept small, and much of the programming environment (like devel packages and headers) is missing there. Usually, build your software on login nodes!
If you still wish to compile/build software on compute nodes, you can try to load modules to setup your build environment. Still, we cannot warrant this to work under all circumstances!
Programming Languages | ||
---|---|---|
Language | Short description | |
C, C++ | C is a versatile language targetted at systems programming, but also used for scientific data processing. C++ defines an extension of C that is more application-centric due to availability of powerful object-oriented, generic and other programming paradigms. | |
Intel Compiler, GNU GCC, Portland Group Compilers, LLVM | ||
Fortran | Programming language targeted at massive data processing and number crunching in the area of scientific computing. See the linked article for compiler support. All compiler suites mentioned for C/C++ also contain a Fortran compiler. | |
Intel Compiler, GNU GCC, Portland Group Compilers, LLVM | ||
Java | Object oriented, portable and powerful programming language for business applications, but also increasingly used in other areas. | |
Python | Interpreted, high-level, general-purpose programming language. | |
Julia | JIT compiled, multi-paradigm, general-purpose programming language (LLVM based) | |
Development Environments | ||
Eclipse CDT | IDE (Integrated Development Environment) for Java/C/C++/Fortran | |
Intel Parallel Studio XE | Intel programming environment that comes in three flavors and is comprised of
All components are available on LRZ's HPC system. For licensing on the campus please consult the relevant document. | |
Programming Tools | ||
Product | Short description | |
Doxygen | Semi-automatic generation of HTML or PDF Documentation from (possibly annotated) source code | |
Eclipse CDT | IDE (Integrated Development Environment) for C/C++/Fortran/Java | |
Forcheck | Tool for static analysis of Fortran code | |
PAPI | Performance Application Programming Interface: Evaluate hardware performance counters | |
Valgrind | Tool for correctness checking of programs (memory management, threading, etc.) that uses a virtual execution environment | |
Parallel Programming | Languages, Libraries and Tools for parallel programming | |
SVN (Subversion) | Software for source code versioning | |
git | Software for source code versioning | |
Debuggers (interactive and batch) | ||
Product | Short description | |
gdb | GNU debugger | |
(x)pgdgb | PGI debugger | |
ddt | Allinea DDT (mainline debugging tool on LRZ HPC systems) | |
totalview | Rogue Wave Totalview (support expires in late 2015) | |
Scripting | ||
Product | Short description | |
Rmpi | MPI extension for the statistical package R |