Difference between revisions of "Development"

From bwHPC Wiki
Jump to: navigation, search
(Software Development and Parallel Programming)
(Development Environments)
 
(38 intermediate revisions by 3 users not shown)
Line 1: Line 1:
== Software Development and Parallel Programming ==
+
== Compiling Software ==
  +
Informations on parallel programming with OpenMP and MPI:
 
  +
Overview of [[Development/General compiler usage|general compiler usage]]
* [[BwHPC_BPG_for_Parallel_Programming]]
 
  +
  +
== Parallel Programming ==
  +
Overview on [[Development/Parallel_Programming | parallel programming with OpenMP and MPI]].
   
 
== Environment Modules ==
 
== Environment Modules ==
Many tools for software development are provided as Modules.
+
Compiler, libraries and development tools are provided as environment modules.
   
 
Required reading to use: [[Environment Modules]]
 
Required reading to use: [[Environment Modules]]
   
== Available Development Tools ==
+
== Available Development Software ==
Visit [https://www.bwhpc.de/software.php https://www.bwhpc.de/software.php]
+
Visit [https://www.bwhpc.de/software.php https://www.bwhpc.de/software.php] select your cluster and
 
* For compiler select <code>Category → compiler</code>
 
* For compiler select <code>Category → compiler</code>
 
* For MPI select <code>Category → mpi</code>
 
* For MPI select <code>Category → mpi</code>
  +
* For libraries select <code>Category → lib</code>
 
* For numerical libraries select <code>Category → numlib</code>
 
* For numerical libraries select <code>Category → numlib</code>
* For further development tools select <code>Category → devel</code>
+
* For further development tools select <code>Category → devel</code>
   
On cluster: <code>module avail <Category></code>
+
On a cluster use: <code>module avail <Category></code>
   
 
== Documentation ==
 
== Documentation ==
Availabe documentation:
+
Availabe documentation for environment modules:
* <code>module help</code> (See section: [[Environment_Modules#module_help]])
+
* <code>module help</code>
* examples in <code>$SOFTNAME_EXA_DIR</code> (See section: [[Environment_Modules#module_help]])
+
* examples in <code>$SOFTNAME_EXA_DIR</code>
* additional docu in this wiki (See below)
+
* additional docu in this wiki
   
 
== Documentation in the Wiki ==
 
== Documentation in the Wiki ==
Software modules with additional documentation here in the wiki:
+
Environment modules for software development and parallel programming with additional documentation here in the wiki:
  +
=== Compiler and Debugger ===
* [[GCC]]
 
* [[GDB]]
+
* [[Development/GCC|GCC]]
* [[Intel_Compiler]]
+
* [[Development/GDB|GDB]]
  +
* [[Development/Intel_Compiler|Intel Compiler]]
* [[GSL]]
 
  +
* [[FFTW]]
 
  +
=== Development Tools ===
* [[MKL]]
 
  +
* [[Development/Score-P|Score-P]]:<br />Tracing of OpenMP-, MPI- and GPU-parallel applications for Vampir and other performance analysis tools.
* [[Conda]]
 
  +
* [[Development/Vampir_and_VampirServer|Vampir and VampirServer]]:<br />Highly scalable Performance Analysis of OpenMP-, MPI- and GPU-parallel applications.
* [[Vampir_and_VampirServer]]
 
  +
* [[Development/Pahole|Pahole]]:<br />Analyse data structures for cache-line alignment and (un)necessary holes that increase data structure size
* [[Score-P]]
 
  +
* [[Development/Valgrind|Valgrind]]:<br />Very valuable framework with multiple tools, e.g. to detect memory access errors
  +
* Forge:<br />Tools for debugging (arm DDT) and performance analysis (arm MAP)
  +
  +
=== Libraries and Numerical Libraries ===
  +
* [[Development/GSL|GSL]]
  +
* [[Development/FFTW|FFTW]]
  +
* [[Development/MKL|MKL]]
  +
=== Development Environments ===
  +
* [[Development/Conda|Conda]]
  +
* [[Development/Containers|Containers]]

Latest revision as of 00:16, 15 March 2023

1 Compiling Software

Overview of general compiler usage

2 Parallel Programming

Overview on parallel programming with OpenMP and MPI.

3 Environment Modules

Compiler, libraries and development tools are provided as environment modules.

Required reading to use: Environment Modules

4 Available Development Software

Visit https://www.bwhpc.de/software.php select your cluster and

  • For compiler select Category → compiler
  • For MPI select Category → mpi
  • For libraries select Category → lib
  • For numerical libraries select Category → numlib
  • For further development tools select Category → devel

On a cluster use: module avail <Category>

5 Documentation

Availabe documentation for environment modules:

  • module help
  • examples in $SOFTNAME_EXA_DIR
  • additional docu in this wiki

6 Documentation in the Wiki

Environment modules for software development and parallel programming with additional documentation here in the wiki:

6.1 Compiler and Debugger

6.2 Development Tools

  • Score-P:
    Tracing of OpenMP-, MPI- and GPU-parallel applications for Vampir and other performance analysis tools.
  • Vampir and VampirServer:
    Highly scalable Performance Analysis of OpenMP-, MPI- and GPU-parallel applications.
  • Pahole:
    Analyse data structures for cache-line alignment and (un)necessary holes that increase data structure size
  • Valgrind:
    Very valuable framework with multiple tools, e.g. to detect memory access errors
  • Forge:
    Tools for debugging (arm DDT) and performance analysis (arm MAP)

6.3 Libraries and Numerical Libraries

6.4 Development Environments