Skip to content
Snippets Groups Projects
Commit 56be129e authored by David Hrbáč's avatar David Hrbáč
Browse files

Typo corrections

parent b319753b
No related branches found
No related tags found
No related merge requests found
# EasyBuild
The objective of this tutorial is to show how EasyBuild can be used to ease, automate and script the build of software on the IT4Innovations clusters. Two use-cases are considered. First, we are going to build software that are supported by EasyBuild. In a second time, we will see through a simple example how to add support for a new software in EasyBuild.
The objective of this tutorial is to show how EasyBuild can be used to ease, automate and script the build of software on the IT4Innovations clusters. Two use-cases are considered. First, we are going to build software that is supported by EasyBuild. In a second time, we will see through a simple example how to add support for a new software in EasyBuild.
The benefit of using EasyBuild for your builds is that it allows automated and reproducable build of software. Once a build has been made, the build script (via the EasyConfig file) or the installed software (via the module file) can be shared with other users.
......@@ -11,20 +11,21 @@ The benefit of using EasyBuild for your builds is that it allows automated and r
EasyBuild is a tool that allows to perform automated and reproducible compilation and installation of software.
All builds and installations are performed at user level, so you don't need the admin rights. The software are installed in your home directory (by default in `$HOME/.local/easybuild/software/`) and a module file is generated (by default in `$HOME/.local/easybuild/modules/`) to use the software.
All builds and installations are performed at user level, so you don't need the admin rights. The software is installed in your home directory (by default in `$HOME/.local/easybuild/software/`) and a module file is generated (by default in `$HOME/.local/easybuild/modules/`) to use the software.
EasyBuild relies on two main concepts
\* Toolchains
\* EasyConfig file
Detailed documentations is available [here](http://easybuild.readthedocs.io].
* Toolchains
* EasyConfig file
Detailed documentations is available [here](http://easybuild.readthedocs.io).
## Toolchains
A toolchain corresponds to a compiler and a set of libraries which are commonly used to build a software. The two main toolchains frequently used on the IT4Innovations clusters are the **foss** and **intel**.
\* **foss** is based on the GCC compiler and on open-source libraries (OpenMPI, OpenBLAS, etc.).
\* **intel** is based on the Intel compiler and on Intel libraries (Intel MPI, Intel Math Kernel Library, etc.).
* **foss** is based on the GCC compiler and on open-source libraries (OpenMPI, OpenBLAS, etc.).
* **intel** is based on the Intel compiler and on Intel libraries (Intel MPI, Intel Math Kernel Library, etc.).
Additional details are available on [here](https://github.com/hpcugent/easybuild/wiki/Compiler-toolchains).
......@@ -45,8 +46,8 @@ To use EasyBuild on a compute node, load the EasyBuild module:
```console
$ ml av EasyBuild
---------------------------------------------- /apps/modules/modulefiles/tools ---------------------
EasyBuild/2.8.0 EasyBuild/2.8.1 EasyBuild/3.0.0 EasyBuild/3.0.2 EasyBuild/3.1.0 (S,D)
-------------------------- /apps/modules/modulefiles/tools ---------------------
EasyBuild/2.8.1 EasyBuild/3.0.0 EasyBuild/3.0.2 EasyBuild/3.1.0 (S,D)
Where:
S: Module is Sticky, requires --force to unload or purge
......@@ -55,7 +56,7 @@ $ ml av EasyBuild
$ ml EasyBuild
```
The EasyBuild command is eb. Check the version you have loaded
The EasyBuild command is eb. Check the version you have loaded:
```console
$ eb --version
......@@ -87,7 +88,7 @@ Options:
### Search For Available Easyconfig
Searching for available easyconfig files can be done using the **--search** (long output) and **-S** (short output) command line options. All easyconfig files available in the robot search path are considered (see Searching for easyconfigs: the robot search path), and searching is done case-insensitive.
Searching for available easyconfig files can be done using the **--search** (long output) and **-S** (short output) command line options. All easyconfig files available in the robot search path are considered and searching is done case-insensitive.
```console
$ eb -S git
......@@ -121,7 +122,7 @@ CFGS1=/apps/easybuild/easyconfigs/easybuild/easyconfigs
### Get an Overview of Planned Installations
You can do a “dry-run” overview by supplying **-D**/**--dry-run** (typically combined with **--robot**, in the form of **-Dr**)
You can do a “dry-run” overview by supplying **-D**/**--dry-run** (typically combined with **--robot**, in the form of **-Dr**):
```console
$ eb git-2.8.0.eb -Dr
......@@ -185,7 +186,7 @@ $ eb git-2.8.0.eb -r -f
== Temporary directory /tmp/eb-JS_Fb5 has been removed.
```
If we try to build *git-2.11.0.eb*
If we try to build *git-2.11.0.eb*:
```console
== temporary log file in case of crash /tmp/eb-JS_Fb5/easybuild-OwXCKn.log
......@@ -215,7 +216,7 @@ If we try to build *git-2.11.0.eb*
== Temporary directory /tmp/eb-JS_Fb5 has been removed.
```
If we try to build *git-2.11.1*, but we used easyconfig *git-2.11.0.eb* - change version command **--try-software-version=2.11.1**
If we try to build *git-2.11.1*, but we used easyconfig *git-2.11.0.eb* - change version command **--try-software-version=2.11.1**:
```console
$ eb git-2.11.0.eb -r --try-software-version=2.11.1
......@@ -246,7 +247,7 @@ $ eb git-2.11.0.eb -r --try-software-version=2.11.1
== Temporary directory /tmp/eb-oisi0q has been removed.
```
and try to build *git-2.11.1-intel-2017a*, but we used easyconfig *git-2.11.0.eb* - change toolchains **--try-toolchain-name=intel --try-toolchain-version=2017a** or **--try-toolchain=intel,2017a**
and try to build *git-2.11.1-intel-2017a*, but we used easyconfig *git-2.11.0.eb* - change toolchains **--try-toolchain-name=intel --try-toolchain-version=2017a** or **--try-toolchain=intel,2017a**:
```console
$ eb git-2.11.0.eb -r --try-toolchain=intel,2017a
......@@ -279,13 +280,13 @@ $ eb git-2.11.0.eb -r --try-toolchain=intel,2017a
### MODULEPATH
To see the newly installed modules, you need to add the path where they were installed to the MODULEPATH. On the cluster you have to use the module use command:
To see the newly installed modules, you need to add the path where they were installed to the MODULEPATH. On the cluster you have to use the `module use` command:
```console
$ module use $HOME/.local/easybuild/modules/all/
```
or modify your .bash_profile
or modify your `.bash_profile`:
```console
$ cat ~/.bash_profile
......@@ -401,7 +402,7 @@ $ ml av git
If you need software that is not listed, request it at support@it4i.cz.
```
## Submitting Build Jobs (experimental)
## Submitting Build Jobs (Experimental)
Using the **--job** command line option, you can instruct EasyBuild to submit jobs for the installations that should be performed, rather than performing the installations locally on the system you are on.
......
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