JUSTUS2/Software/Julia: Difference between revisions
M Carmesin (talk | contribs) No edit summary |
M Carmesin (talk | contribs) No edit summary |
||
(4 intermediate revisions by the same user not shown) | |||
Line 18: | Line 18: | ||
|- |
|- |
||
| Links |
| Links |
||
| [https://julialang.org/ Project homepage] | [https://docs.julialang.org/en/v1/ Documentation |
| [https://julialang.org/ Project homepage] | [https://docs.julialang.org/en/v1/ Documentation] |
||
|- |
|- |
||
| Graphical Interface |
| Graphical Interface |
||
Line 31: | Line 31: | ||
The Julia module on Justus loads suitable versions of CUDA and OpenMPI and the corresponding Julia packages CUDA.jl and MPI.jl will be automatically configured to use these libraries after being installed by the user. Any changes, either by loading modules with different MPI and/ or CUDA versions as well as using the ones that come as Julia artifacts are likely to lead to errors. |
The Julia module on Justus loads suitable versions of CUDA and OpenMPI and the corresponding Julia packages CUDA.jl and MPI.jl will be automatically configured to use these libraries after being installed by the user. Any changes, either by loading modules with different MPI and/ or CUDA versions as well as using the ones that come as Julia artifacts are likely to lead to errors. |
||
== Environments and Package Installation == |
|||
It is highly recommended to use an separate Julia environment for every project. If Julia is started with the option <code>--project=.</code> the current folder will be used as environment and the <code>Project.toml</code> file containing the information on the installed packages will be created, if not yet present. |
|||
In an interactive Julia session, the [https://pkgdocs.julialang.org/v1/getting-started/#Basic-Usage package manager] is activated by entering <code>]</code>. The most importent commands are |
|||
* <code>add PACKAGENAME</code> install package PACKAGENAME in the current environment |
|||
* <code>instantiate</code>: install all packages with dependencies as stated in Project.toml and Manifest.toml, e.g. after copying the existing code to the cluster |
|||
* <code>activate PATH_TO_ENV</code>: use the environment located at the path <code>PATH_TO_ENV</code> and initialize it, if necessary. |
|||
== Interactive Example == |
== Interactive Example == |
||
Line 41: | Line 51: | ||
</pre> |
</pre> |
||
Enter ']' to go into package manager and install package <code>UnicodePlots</code>. |
Enter ']' to go into package manager and install package [https://github.com/JuliaPlots/UnicodePlots.jl?tab=readme-ov-file <code>UnicodePlots</code>]. |
||
<pre> |
<pre> |
||
add UnicodePlots |
add UnicodePlots |
||
Line 70: | Line 80: | ||
== Tips & Tricks == |
== Tips & Tricks == |
||
* [[JUSTUS2/Software/Julia/Parallel_Programming|Parallel Programming]] |
Latest revision as of 15:07, 5 November 2024
The main documentation is available via |
Description | Content |
---|---|
module load | math/julia |
Availability | bwUniCluster | JUSTUS2 |
License | MIT License |
Citing | [1] |
Links | Project homepage | Documentation |
Graphical Interface | No |
Introduction
Julia is a high-level, high-performance, dynamic programming language, being designed with scientific computing in mind. Parallel programming features, such as multi-threading are included in the core language, while there also exit packages leveraging the power of MPI and CUDA.
There are no packages preinstalled besides the Julia language core, please use the Julia package manager to install any required Julia package.
The Julia module on Justus loads suitable versions of CUDA and OpenMPI and the corresponding Julia packages CUDA.jl and MPI.jl will be automatically configured to use these libraries after being installed by the user. Any changes, either by loading modules with different MPI and/ or CUDA versions as well as using the ones that come as Julia artifacts are likely to lead to errors.
Environments and Package Installation
It is highly recommended to use an separate Julia environment for every project. If Julia is started with the option --project=.
the current folder will be used as environment and the Project.toml
file containing the information on the installed packages will be created, if not yet present.
In an interactive Julia session, the package manager is activated by entering ]
. The most importent commands are
add PACKAGENAME
install package PACKAGENAME in the current environmentinstantiate
: install all packages with dependencies as stated in Project.toml and Manifest.toml, e.g. after copying the existing code to the clusteractivate PATH_TO_ENV
: use the environment located at the pathPATH_TO_ENV
and initialize it, if necessary.
Interactive Example
Load Julia module and start interactive REPL session with 8 threads, using the environment in the current directory:
$ module load math/julia $ julia -t 8 --project=.
Enter ']' to go into package manager and install package UnicodePlots
.
add UnicodePlots
Leave the package manager with the backspace key.
Create a vector with 64 elements set to 0 and fill it using all 8 threads with the corresponding tread id number.
vec = zeros(64) Threads.@threads for i in eachindex(vec) vec[i]= Threads.threadid() end
Load the UnicodePlots
package and draw a scatter plot of the contents of vec
using UnicodePlots scatterplot(vec)
Further documentation
- Julia Workshop at HLRS: The material of this workshop is in large parts also valid for the Justus cluster (on Justus you only need the module math/julia).