Compilers and Languages for HPC

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
LanguageShort 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
JavaObject oriented, portable and powerful programming language for business applications, but also increasingly used in other areas.
PythonInterpreted, high-level, general-purpose programming language.
JuliaJIT compiled, multi-paradigm, general-purpose programming language (LLVM based)
Development Environments
Eclipse CDTIDE (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
ProductShort description
DoxygenSemi-automatic generation of HTML or PDF Documentation from (possibly annotated) source code
Eclipse CDTIDE (Integrated Development Environment) for C/C++/Fortran/Java
ForcheckTool for static analysis of Fortran code
PAPIPerformance Application Programming Interface: Evaluate hardware performance counters
ValgrindTool for correctness checking of programs (memory management, threading, etc.) that uses a virtual execution environment
Parallel ProgrammingLanguages, Libraries and Tools for parallel programming
SVN (Subversion)Software for source code versioning
gitSoftware for source code versioning
Debuggers (interactive and batch)
ProductShort description
gdbGNU debugger
(x)pgdgbPGI debugger
ddtAllinea DDT (mainline debugging tool on LRZ HPC systems)
totalviewRogue Wave Totalview (support expires in late 2015)
Scripting
ProductShort description
RmpiMPI extension for the statistical package R