Skip to content
Snippets Groups Projects
Commit 8c7fce3e authored by Taras Lazariv's avatar Taras Lazariv
Browse files

Minor text polishing

parent 16f3b8f1
No related branches found
No related tags found
3 merge requests!446docs: Add Jupyter Teaching Example,!423Automated merge from preview to main,!422Resolve "Add more terms similar to "todo" to grep-forbidden-patterns.sh"
This commit is part of merge request !422. Comments created here will be created in the context of that merge request.
# EasyBuild
Sometimes the [modules installed in the cluster](modules.md) are not enough for your purposes and
Sometimes the [modules](modules.md) installed in the cluster are not enough for your purposes and
you need some other software or a different version of a software.
For most commonly used software, chances are high that there is already a *recipe* that EasyBuild
provides, which you can use. But what is Easybuild?
provides, which you can use. But what is EasyBuild?
[EasyBuild](https://easybuilders.github.io/easybuild/) is the software used to build and install
software on ZIH systems.
The aim of this page is to introduce users to working with EasyBuild and to utilizing it to create
modules
modules.
## Prerequisites
......@@ -59,9 +59,9 @@ marie@login$ ws_list | grep 'directory.*EasyBuild'
put commands in a batch file and source it. The latter is recommended for non-interactive jobs,
using the command `sbatch` instead of `srun`. For the sake of illustration, we use an
interactive job as an example. Depending on the partitions that you want the module to be usable on
later, you need to select nodes with the same archtitecture. Thus, use nodes from partition ml
later, if you want to use the module on nodes of that partition. In this example, we assume that we
want to use the module on nodes with x86 architecture und thus, use Haswell nodes.
later, you need to select nodes with the same architecture. Thus, use nodes from partition ml for
building, if you want to use the module on nodes of that partition. In this example, we assume
that we want to use the module on nodes with x86 architecture und thus, Haswell nodes will be used.
```console
marie@login$ srun --partition=haswell --nodes=1 --cpus-per-task=4 --time=08:00:00 --pty /bin/bash -l
......@@ -71,20 +71,15 @@ marie@login$ srun --partition=haswell --nodes=1 --cpus-per-task=4 --time=08:00:0
Using EasyBuild on the login nodes is not allowed.
**Step 3:** Load EasyBuild module.
**Step 3:** Specify the workspace. The rest of the guide is based on it. Please create an
environment variable called `WORKSPACE` with the path to your workspace:
```console
module load EasyBuild
marie@compute$ export WORKSPACE=/scratch/ws/1/marie-EasyBuild #see output of ws_list above
```
**Step 4:** Specify the workspace. The rest of the guide is based on it. Please create an
environment variable called `WORKSPACE` with the location of your workspace:
```console
marie@compute$ WORKSPACE=/scratch/ws/1/marie-EasyBuild #see output of ws_list above
```
**Step 5:** Load the correct modenv according to your current or target architecture:
**Step 4:** Load the correct module environment `modenv` according to your current or target
architecture:
=== "x86 (default, e. g. partition haswell)"
```console
......@@ -92,16 +87,16 @@ marie@compute$ WORKSPACE=/scratch/ws/1/marie-EasyBuild #see output of ws_list ab
```
=== "Power9 (partition ml)"
```console
marie@compute$ module load modenv/ml
marie@ml$ module load modenv/ml
```
**Step 6:** Load module `EasyBuild`
**Step 5:** Load module `EasyBuild`
```console
marie@compute$ module load EasyBuild
```
**Step 7:** Set up your environment:
**Step 6:** Set up your environment:
```console
marie@compute$ export EASYBUILD_ALLOW_LOADED_MODULES=EasyBuild,modenv/scs5
......@@ -114,13 +109,13 @@ marie@compute$ module use "${EASYBUILD_INSTALLPATH_MODULES}/all"
marie@compute$ export LMOD_IGNORE_CACHE=1
```
**Step 8:** Now search for an existing EasyConfig:
**Step 7:** Now search for an existing EasyConfig:
```console
marie@compute$ eb --search TensorFlow
```
**Step 9:** Build the EasyConfig and its dependencies
**Step 8:** Build the EasyConfig and its dependencies (option `-r`)
```console
marie@compute$ eb TensorFlow-1.8.0-fosscuda-2018a-Python-3.6.4.eb -r
......@@ -128,14 +123,14 @@ marie@compute$ eb TensorFlow-1.8.0-fosscuda-2018a-Python-3.6.4.eb -r
This may take a long time. After this is done, you can load it just like any other module.
**Step 10:** To use your custom build modules you only need to rerun steps 4, 5, 6, 7 and execute
**Step 9:** To use your custom build modules you only need to rerun steps 3, 4, 5, 6 and execute
the usual:
```console
marie@compute$ module load TensorFlow-1.8.0-fosscuda-2018a-Python-3.6.4 #replace with name of your module
marie@compute$ module load TensorFlow-1.8.0-fosscuda-2018a-Python-3.6.4 #replace with the name of your module
```
The key is the `module use` command which brings your modules into scope so `module load` can find
The key is the `module use` command, which brings your modules into scope, so `module load` can find
them. The `LMOD_IGNORE_CACHE` line makes `LMod` pick up the custom modules instead of searching the
system cache.
......@@ -150,8 +145,8 @@ It might also be helpful to inspect the build environment EasyBuild uses. For th
marie@compute$ eb myEC.eb --dump-env-script`
```
This command creates a sourceable .env file with `module load` and `export` commands that show what
EB does before running, e.g., the configure step.
This command creates a sourceable `.env`-file with `module load` and `export` commands that show
what EasyBuild does before running, e.g., the configuration step.
It might also be helpful to use
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment