JUSTUS2/Software/Julia/Parallel Programming: Difference between revisions

From bwHPC Wiki
< JUSTUS2‎ | Software‎ | Julia
Jump to navigation Jump to search
No edit summary
No edit summary
Line 6: Line 6:
# Explicit multi-threading using Julia threads (e.g. `Threads.@threads for`)
# Explicit multi-threading using Julia threads (e.g. `Threads.@threads for`)
# Multiple processes on one ore more nodes
# Multiple processes on one ore more nodes
#* <code>Distributed</code> package and <code>SlurmManager</code> from [<code>ClusterManagers.jl</code> https://github.com/JuliaParallel/ClusterManagers.jl] package, <code>@distributed for</code>-loops
#* <code>Distributed</code> package and <code>SlurmManager</code> from [https://github.com/JuliaParallel/ClusterManagers.jl <code>ClusterManagers.jl</code>] package, <code>@distributed for</code>-loops
#* [<code>MPI.jl</code> https://github.com/JuliaParallel/MPI.jl]
#* [https://github.com/JuliaParallel/MPI.jl <code>MPI.jl</code>]
# Execution on GPUs/CUDA using [<code>CUDA.jl</code> https://cuda.juliagpu.org/stable/]
# Execution on GPUs/CUDA using [https://cuda.juliagpu.org/stable/ <code>CUDA.jl</code> ]

Revision as of 17:43, 8 October 2024

Parallel Programming in Julia

Julia supports several paradigms of parallel programming

  1. Implicit multi-threading by math libraries (OpenBLAS, MKL)
  2. Explicit multi-threading using Julia threads (e.g. `Threads.@threads for`)
  3. Multiple processes on one ore more nodes
  4. Execution on GPUs/CUDA using CUDA.jl