EasyBuild: Difference between revisions
No edit summary |
No edit summary |
||
Line 30: | Line 30: | ||
EasyBuild can be used to install software packages in your own account. However, in most cases, it is preferable to ask our [[Technical support]] to install the software centrally for you. This is because that will ensure that the software package is available on all of our clusters. It will also avoid using your quota, and it will avoid causing undue load on the parallel filesystems. | EasyBuild can be used to install software packages in your own account. However, in most cases, it is preferable to ask our [[Technical support]] to install the software centrally for you. This is because that will ensure that the software package is available on all of our clusters. It will also avoid using your quota, and it will avoid causing undue load on the parallel filesystems. | ||
{{Warning|title=When to use or not use EasyBuild to install software in your home | |||
|content=There are a few use cases in which you may want to use EasyBuild to install software in your own space: | |||
* if you need a custom or modified build | * if you need a custom or modified build | ||
* if you need to install a nightly build, or a version of a software which does not have a release number | * if you need to install a nightly build, or a version of a software which does not have a release number | ||
Line 39: | Line 40: | ||
* if you need a software package built using a different compiler, MPI or CUDA implementation | * if you need a software package built using a different compiler, MPI or CUDA implementation | ||
When in doubt, please ask our [[Technical support]] for advice. | When in doubt, please ask our [[Technical support]] for advice. }} | ||
== Finding a recipe == <!--T:8--> | == Finding a recipe == <!--T:8--> |
Revision as of 17:39, 28 August 2023
This is not a complete article: This is a draft, a work in progress that is intended to be published into an article, which may or may not be ready for inclusion in the main wiki. It should not necessarily be considered factual or authoritative.
EasyBuild is a tool for building, installing, and maintaining software on high-performance computing systems.
We use it to build almost everything in our software repository, CVMFS.
EasyBuild and modules[edit]
One of the key features of EasyBuild is that it automatically generates environment modules which can be used to make a software package available in your session. In addition to defining standard Linux environment variables such as PATH, CPATH and LIBRARY_PATH, EasyBuild also defines some environment variables specific to EasyBuild, two of which may be particularly interesting to users:
- EBROOT<name>: Contains the full path to the location where the software <name> is installed.
- EBVERSION<name>: Contains the full version of the software <name> loaded by this module.
For example, the module python/3.10.2 on Narval defines:
- EBROOTPYTHON: /cvmfs/soft.computecanada.ca/easybuild/software/2020/avx2/Core/python/3.10.2
- EBVERSIONPYTHON: 3.10.2
You can see the environment variables defined by the python/3.10.2 module using:
[name@server ~]$ module show python/3.10.2 | grep EB
Installation recipes and logs[edit]
EasyBuild keeps a copy of the recipe used to install each software package, as well as a detailed log inside of the installation directory. This is accessible in the directory $EBROOT<name>/easybuild. For example, for the python/3.10.2 module, the installation directory contains, amongst other things:
- $EBROOTPYTHON/easybuild/Python-3.10.2.eb
- $EBROOTPYTHON/easybuild/easybuild-Python-3.10.2-*.log
Using EasyBuild in your own account[edit]
EasyBuild can be used to install software packages in your own account. However, in most cases, it is preferable to ask our Technical support to install the software centrally for you. This is because that will ensure that the software package is available on all of our clusters. It will also avoid using your quota, and it will avoid causing undue load on the parallel filesystems.
There are a few use cases in which you may want to use EasyBuild to install software in your own space:
- if you need a custom or modified build
- if you need to install a nightly build, or a version of a software which does not have a release number
- if we are not allowed to install the package centrally for licensing reasons, such as some commercial software packages (VASP and Materials Studio in particular)
On the contrary, you should not install software packages in your own space for the following reasons:
- if you need a different release version
- if you need a software package built using a different compiler, MPI or CUDA implementation
When in doubt, please ask our Technical support for advice.
Finding a recipe[edit]
An "easyconfig file" is a text file containing the information EasyBuild needs to build a particular piece of software in a particular environment. At Compute Canada we refer to these as "recipes". Writing a recipe from scratch will not be discussed here; you can find more about this in the EasyBuild documentation. Modifying a recipe for your particular situation is easier, and it is easier still to find a suitable recipe and use it unmodified.
...MORE NEEDED...
Choosing a toolchain[edit]
...MORE NEEDED...
Additional resources[edit]
- WestGrid webinar slides "Building software on Compute Canada clusters using EasyBuild"