diff --git a/docs.it4i/software/tools/easybuild.md b/docs.it4i/software/tools/easybuild.md index cf1e0d721ad95a3f6741dc4b23565aaf93b271d0..592b7aaa7d8cd65ab4f094b256030ffeb8ae51d6 100644 --- a/docs.it4i/software/tools/easybuild.md +++ b/docs.it4i/software/tools/easybuild.md @@ -1,40 +1,40 @@ # 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 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 a software that is supported by EasyBuild. Then, 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. +The benefit of using EasyBuild for your builds is that it allows automated and reproducible 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. ## Short Introduction -EasyBuild is a tool that allows to perform automated and reproducible compilation and installation of software. +EasyBuild is a tool that allows performing automated and reproducible software compilation and installation. -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. +All builds and installations are performed at user level, so you do not 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 +EasyBuild relies on two main concepts: * Toolchains * EasyConfig file (our easyconfigs is [here][a]) -Detailed documentations is available [here][b]. +A detailed documentation is available [here][b]. ## 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**. +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.). -Additional details are available on [here][c]. +Additional details are available [here][c]. ## EasyConfig File -An EasyConfig file is a simple text file that describes the build process of a software. For most software that uses standard procedure (like configure, make and make install), this file is very simple. Many EasyConfig files are already provided with EasyBuild. +The EasyConfig file is a simple text file that describes the build process of a software. For most software that uses standard procedure (like configure, make, and make install), this file is very simple. Many EasyConfig files are already provided with EasyBuild. -By default, EasyConfig files and generated modules are named using the following convention +By default, EasyConfig files and generated modules are named using the following convention: `software-name-software-version-toolchain-name-toolchain-version(-suffix).eb` -Additional details are available on [here][d]. +Additional details are available [here][d]. ## EasyBuild on IT4Innovations Clusters @@ -140,7 +140,7 @@ CFGS=/apps/easybuild/easyconfigs/easybuild/easyconfigs ### Compile and Install Module -If we try to build *git-2.8.0.eb*, nothing will be done as it is already installed on the cluster. To enable dependency resolution, use the **--robot** command line option (or **-r** for short): +If we try to build *git-2.8.0.eb*, nothing will happen as it is already installed on the cluster. To enable dependency resolution, use the **--robot** command line option (or **-r** for short): ```console $ eb git-2.8.0.eb -r @@ -213,7 +213,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 the version command **--try-software-version=2.11.1**: ```console $ eb git-2.11.0.eb -r --try-software-version=2.11.1 @@ -277,7 +277,7 @@ $ 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/ @@ -305,7 +305,7 @@ export PATH ## Build Software Using Your Own EasyConfig File -For this example, we create an EasyConfig file to build Git 2.11.1 with *foss* toolchain. Open your favorite editor and create a file named *git-2.11.1-foss-2017a.eb* with the following content: +For this example, we create an EasyConfig file to build Git 2.11.1 with the *foss* toolchain. Open your favorite editor and create a file named *git-2.11.1-foss-2017a.eb* with the following content: ```console $ vim git-2.11.1-foss-2017a.eb @@ -349,9 +349,9 @@ sanity_check_paths = { moduleclass = 'tools' ``` -This is a simple EasyConfig. Most of the fields are self-descriptive. No build method is explicitely defined, so it uses by default the standard configure/make/make install approach. +This is a simple EasyConfig. Most of the fields are self-descriptive. No build method is explicitly defined, so it uses by default the standard configure/make/make install approach. -Let's build Git with this EasyConfig file: +Let us build Git with this EasyConfig file: ```console $ eb ./git-2.11.1-foss-2017a.eb -r