User Tools

Site Tools


skill-tree:use:3:b

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
skill-tree:use:3:b [2020/07/19 21:35] lucyskill-tree:use:3:b [2025/04/16 18:30] (current) – external edit 127.0.0.1
Line 1: Line 1:
-# USE3-B Building of Parallel Programs +# USE3 Building of Parallel Programs 
-# Background + 
-Aim +Building programs that run on an HPC system requires some thought into software, compiling, linking and running. 
-# Outcomes + 
-  * Build parallel programs, e.g. via open sources packages. +## Requrements 
-  * 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). +* [[skill-tree:use:1:b]] 
-  * Use a linker and to assess the effects of linker specific options and environment variables (e.g. -L and LIBRARY_PATH, -rpath and LD_RUN_PATH). +* [[skill-tree:use:2:b]] 
-  * 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.+## Learning Outcomes 
 + 
 +* 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 LIBRARY_PATH, -rpath and LD_RUN_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:2:b]] 
-  * [[skill-tree:use:3:i]] 
skill-tree/use/3/b.1595187353.txt.gz · Last modified: 2020/07/19 21:35 by lucy