The "jasmin-sci" software environment
The "jasmin-sci" software environment
This article describes the jasmin-sci
software environment on JASMIN. It
covers the following topics:
jasmin-sci
software environmentjasmin-sci
environmentjasmin-sci
environment with JaspyThe jasmin-sci
software environment is intended as a supplement to
Jaspy and contains extra software packages for use with
scientific data analysis which, for various reasons, are not provided as part
of Jaspy itself. These packages are generally installed on the same
machines where Jaspy is available, for example, the sci
machines
(e.g. sci*.jasmin.ac.uk
) and LOTUS nodes, but not
the login machines. It is not intended for the jasmin-sci
environment
itself to provide a complete suite of analysis software.
The packages included in jasmin-sci
are provided via RPMs. A list of
explicitly included packages can be seen using the command rpm -qR jasmin-sci
,
although some additional packages may be installed to satisfy
dependencies.
The packages fall into two categories:
/usr/bin/gnuplot
for the gnuplot program) and require no special setup in order to run. So if you are on a relevant machine, you should just be able to type gnuplot
./opt/rh/jasmin-sci/
rather than in system paths.
Also, the RPM package names, as can be seen in the above rpm -qR jasmin-sci
command,
are prefixed with jasmin-sci-
. So for example, the local build of nccmp
(a program to compare netCDF files) is a package called jasmin-sci-nccmp
, and the executable is at /opt/rh/jasmin-sci/root/usr/bin/nccmp
. Before these packages can be conveniently used, it is necessary to “activate” the environment as described below, so that when you type e.g. “nccmp” the relevant files can be found.Unlike the Jaspy environments, jasmin-sci
can only provide one version of each
package at a time, so the versions are subject to change when updates are
done. If we anticipate any important changes, then we will notify JASMIN users
by email.
In a few cases, software packages are provided in jasmin-sci
which are also
provided in Jaspy. This is only done where other RPM packages depend on it.
For example, the netcdf package is provided in Jaspy, but is also installed as
an RPM because the nccmp package requires it. This means that copies of the
netCDF libraries exist both in Jaspy (for the full path, type nc-config --libs
after
activating Jaspy) and also under /usr/lib64
(from the RPM). When
linking code to the netCDF library, it is recommended to use the one in Jaspy
because this will be version controlled. Also, although the jasmin-sci
software might provide some software that happens to be implemented in Python,
any such Python modules are not intended to be imported into your own code.
For Python development, packages from Jaspy should be used.
The development for jasmin-sci
takes place via the
extra-sci-packages
GitHub repository,
and an associated
issues
page. The readme file on the repository has some
package-specific documentation (including how to build the python bindings for Misr toolkit).
To activate the jasmin-sci environment, use the command:
module load jasmin-sci
and to deactivate it, use the command:
module unload jasmin-sci
(“add” and “purge” can also be used).
The module load
command must be done in each session, or added to your $HOME/.bashrc
file.
As mentioned above, this is only required for a subset of packages in jasmin- sci. The majority of packages do not require it, but for example, those which do include ferret, and the leafpad (notepad-like) editor.
Ferret users should note that it is still necessary to do “source ferret_paths.sh” after activating jasmin-sci, in order for ferret to find all its additional resource files.
To activate both jasmin-sci and Jaspy, it is best to activate them in the following order:
module load jasmin-sci
module load jaspy
This will ensure that in the unlikely event of an executable in Jaspy also
existing under /opt/rh/jasmin-sci/
, then one in Jaspy will take priority.
The corresponding module unload
commands can be done in either order.