Compilers and Languages for HPC
- Comparison of Compiler Options (intel vs. pgi vs. gcc)
- GNU Compiler Collection
- Intel Compilers
- Intel oneAPI
- Julia for HPC
- NAG Fortran Compiler
- Portland Group Compiler
- Python on HPC systems
- The Fortran Programming Language
Using compilers on compute nodes
Because the operating system on the compute nodes is "diskless", the programming environment is not complete there. Typically you have to compile and link on the login nodes. Also you have to load the following module , if you want to use limited functions of the compilers on the compute nodes
module load slurm_setup
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 | ||
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 | ||
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 | |
mpish | Shell-like scripting language that simplifies usage of MPI | |
Rmpi | MPI extension for the statistical package R |