User Tools

Site Tools


skill-tree:use:3:b

USE3 Building of Parallel Programs

Building programs that run on an HPC system requires some thought into software, compiling, linking and running.

Requrements

Learning objectives

  • Build parallel programs, e.g. via open sources packages.
  • Run parallel programs in an HPC environment.
  • Use a compiler and to assess the effects of optimization switches available for the relevant compilers (e.g. GNU, Intel).
  • Use a linker and to assess the effects of linker specific options and environment variables (e.g. -L and LIBRARYPATH, -rpath and LDRUN_PATH).
  • Configure the relevant settings (e.g. by setting compiler and linker options), which determine how the application ought to be built with regard to the parallelization technique(s) used (e.g. OpenMP, MPI).
  • Use software building environments like make, Autotools, CMake.
  • Run parallel programs in an HPC environment.
  • Use a compiler and to assess the effects of optimization switches available for compilers commercially available (e.g. PGI, NAG).
  • Use efficient open-source libraries (e.g. OpenBLAS, FFTW) or highly optimized vendor libraries (e.g. Intel-MKL, IBM-ESSL).
  • Configure the relevant settings (e.g. by setting compiler and linker options), which determine how the application ought to be built with regard to the parallelization technique(s) used (e.g. OpenACC, C++ AMP).
  • Use the profile guided optimization (PGO) technique.
  • Use software building environments like Scons, Waf, make, Autotools, CMake.

Subskills

skill-tree/use/3/b.txt · Last modified: 2024/09/11 12:30 by 127.0.0.1