Development: Difference between revisions

From bwHPC Wiki
Jump to navigation Jump to search
 
(59 intermediate revisions by 3 users not shown)
Line 1: Line 1:
== Compiling Software ==

Overview of [[Development/General compiler usage|general compiler usage]]

== Parallel Programming ==
Overview on [[Development/Parallel_Programming | parallel programming with OpenMP and MPI]].

== Environment Modules ==
== Environment Modules ==
Most software is 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], select <code>Category devel</code>
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 MPI select <code>Category → mpi</code>
* For libraries select <code>Category → lib</code>
* For numerical libraries select <code>Category → numlib</code>
* For further development tools select <code>Category → devel</code>


On cluster: <code>module avail</code>
On a cluster use: <code>module avail <Category></code>


== Documentation ==
== Documentation ==
Availabe documentation for environment modules:
Documentation by the cluster operators:
* <code>module help</code>
{| style="width:100%;"
* examples in <code>$SOFTNAME_EXA_DIR</code>
|- style="background:#eeeeee;" |
* additional docu in this wiki
| <code>module help</code> || See section: [[Environment_Modules#module_help]]
|- style="background:#dddddd; " |
| examples in <code>$SOFTNAME_EXA_DIR</code> || See section: [[Environment_Modules#Software_job_examples]]
|- style="background:#eeeeee; " |
| this wiki || See below
|}


== Documentation in the Wiki ==
== Documentation in the Wiki ==
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 ===
* [[Development/GCC|GCC]]
* [[Development/GDB|GDB]]
* [[Development/Intel_Compiler|Intel Compiler]]

=== Development Tools ===
* [[Development/Score-P|Score-P]]:<br />Tracing of OpenMP-, MPI- and GPU-parallel applications for Vampir and other performance analysis tools.
* [[Development/Vampir_and_VampirServer|Vampir and VampirServer]]:<br />Highly scalable Performance Analysis of OpenMP-, MPI- and GPU-parallel applications.
* [[Development/Pahole|Pahole]]:<br />Analyse data structures for cache-line alignment and (un)necessary holes that increase data structure size
* [[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]]
=== Scripting Languages ===
* [[Development/Python|Python]]
=== Development Environments ===
* [[Development/Conda|Conda]]
* [[Development/Containers|Containers]]

Latest revision as of 16:32, 8 November 2024

Compiling Software

Overview of general compiler usage

Parallel Programming

Overview on parallel programming with OpenMP and MPI.

Environment Modules

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

Required reading to use: Environment Modules

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>

Documentation

Availabe documentation for environment modules:

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

Documentation in the Wiki

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

Compiler and Debugger

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)

Libraries and Numerical Libraries

Scripting Languages

Development Environments