In this tutorial, we talk about the overall process of finding, building, and compiling software. These days, installing and managing scientific software is taking more and more time, thus we need to specifically talk about it some.
Main article: Applications: General info
Almost every site will use modules. The exact module names, and anything beyond that, will be different. Containers are becoming more common, but they are less standardized.
You can find what softwares we have available in different ways:
First, you should check our Applications page and see if the software you need is already available and has instructions.
If you find the software you need available, you can usually load it via a module. The next tutorial, Software modules explains what modules are and how to work with them.
You can also search this tutorial to see what you can find (though note that not everything is in the Triton section here - some applies to Aalto workstations or own computers).
It’s always a good idea to search the issue tracker to see if there are previous issues about it - not everything is always updated.
You can learn about modules on the Software modules tutorial.
module is a command that allows you to get and remove
access to other software - because not everything can be available at once.
The Software modules tutorial teaches how to
load modules using the command
module load $NAME, etc.
Not all of the software we have available is documented. You can
module spider $NAME to try to see if you can find a module
that way. Note that this is partially case sensitive so it can
be hard to find things - you might need to look through
avail too, to find all the available modules.
This is Aalto-specific. Some of these will work if you
load fgci-common at other Finnish sites (but not CSC). This is
introduced in the next lesson.
For reference, here is the most common software:
module load anacondafor the Anaconda distribution of Python 3, including a lot of useful packages. More info.
module load rfor a basic R package. More info.
module load matlabfor the latest Matlab version. More info.
If one of these
module load commands does not work at your site,
module spider $NAME and see if you can find it. This is
actually covered under the upcoming modules tutorial.
Main article: Singularity Containers
Some softwares have become so complicated that they just can’t be installed, and for that we use containers. A software container is basically a complete self-contained operating system environment. Another advantage of containers is that they make it easy to move installed software from system to system, so that you can have the same environment everywhere.
You can read about singularity containers here.
If you load a module that uses singularity, nothing will happen at first.
You execute your software using
singularity_wrapper shell to get a shell in there.
We also provide some containers built by NVIDIA. These containers are from NVIDIA’s NGC-repository and meant for GPU computations.
Requesting new software¶
We aim to install a good base of software for our users - but it’s not possible to keep up with all requests. If you need something, submit a request to our issue tracker, but be aware that despite best efforts, we can’t do everything. See the main Applications page for more information.
A plea: make your software reusable!¶
Five years from now, when you are releasing your own software that you want others to use, make it easy to install and reusable.
If you are at Aalto, everything will work. Otherwise, if you are in
Finland (but not at CSC)
module load fgci-common will make our
modules available on your cluster.
Figure out how to use
tensorflow(this is not a software problem, but a searching the documentation problem). Make it work enough to do
import tensorflow– though you will get an error which you will learn to solve in a later lesson.
Figure out how to load the module for NVIDIA’s tensorflow container. Using
python -Vand obtain python version. Compare that to the python version on the login node. Try
singularity_wrapper shelltoo and use
catto check the operating system version stored in
cat /etc/issue. Verify that this is different from what is outside the container.
Find the Applications page link above, and check the list for ways to find out if we already have your software installed. See if we have what you need, using any of the strategies on that list.
(optional) From the Applications page, find the Spack package list (warning: it’s a very long page and takes a while to load). Does it have anything useful to you?
(optional) Discuss among your group what software you need, if it’s available, and how you might get it.