Compilers and Languages for HPC

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
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
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
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
mpishShell-like scripting language that simplifies usage of MPI
RmpiMPI extension for the statistical package R