A compiler is a program which translates a program source code to an executable machine code. As the machine code is hardware and operating system dependant, machine vendors usually offer a suitable compiler for their hardware.
Furthermore different compilers are needed for the different programming languages. The Compute-Cluster User's Guide describes all installed compilers in detail.
Offered Programming Languages
Java is a widely used programming language, but due to performance issues in most cases not suited for high performance computing.
The quality of a compiler and the use of suiting compiler flags greatly effect the execution speed of a program. Often a lot of money is invested into hardware, where it would be more cost efficient to invest in better software, e.g. compilers or operating systems. Furthermore often to little effort is spend on choosing the right optimization compiler flags.
Adept programming can greatly enhance the execution speed of a program, which e.g. requires knowledge in:
cost of different program constructs (e.g. creating objects, string comparison)
layout of data structures (e.g. arrays in C and in Fortran)
hardware design (size and layout of caches, Pipelining)
optimization abilities of the compiler (vercorisation, inlining, loop unrolling)
Further hints can be found in the tuning section of the Compute-Cluster User's Guide.
Do not hesitate to contact the HPC Team in case of any questions.