diff --git a/docs.it4i/software/eb.md b/docs.it4i/software/easybuild.md similarity index 92% rename from docs.it4i/software/eb.md rename to docs.it4i/software/easybuild.md index b16ab641388e0c5a7976009fa61bf89446a6d0c6..8cbd329a673076baa380b47b90743af3a0087bf5 100644 --- a/docs.it4i/software/eb.md +++ b/docs.it4i/software/easybuild.md @@ -1,6 +1,6 @@ # 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.