Skip to content

Commit

Permalink
updating wrt modules
Browse files Browse the repository at this point in the history
  • Loading branch information
moravveji committed Dec 21, 2023
1 parent af742fa commit 2a2f842
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 15 deletions.
22 changes: 12 additions & 10 deletions source/software/software_stack.rst
Original file line number Diff line number Diff line change
@@ -1,8 +1,19 @@
.. _specific software documentation:

Packages with additional documentation
Using MATLAB and R
======================================

Some programming languages have an extensive standard library, and
additionally allow to install extra packages. For most languages, the
user can install packages in his own home directory without system
administrator intervention. Some documentation for doing this for
:ref:`Perl <Perl packages>` and :ref:`Python <Python packages>` is
provided.

MATLAB and R are two of such programming languages, where we would
like to introduce some of their specific features.


MATLAB (a package by `MathWorks`_)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Expand All @@ -21,12 +32,3 @@ R
r_command_line_arguments_in_scripts
r_integrating_c_functions

Programming Languages
---------------------

Some programming languages have an extensive standard library, but
optionally allow to install extra packages. For most languages, the
user can install packages in his own home directory without system
administrator intervention. Some documentation for doing this for
:ref:`Perl <Perl packages>` and :ref:`Python <Python packages>` is provided.

21 changes: 16 additions & 5 deletions source/software/using_software.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,38 @@ Using software
Software installation and maintenance on HPC infrastructure such as the
VSC clusters poses a number of challenges not encountered on a
workstation or a departmental cluster. For many libraries and programs,
multiple versions have to installed and maintained as some users require
multiple versions have to be installed and maintained as some users require
specific versions of those. In turn, those libraries or executables sometimes
rely on specific versions of other libraries, further complicating the
matter.

The way Linux finds the right executable for a command, and a program
loads the right version of a library or a plug-in, is through so-called
environment variables. These can, e.g., be set in your shell
configuration files (e.g., ``.bashrc``), but this requires a certain
configuration files (e.g., ``.bashrc``); however, this requires a certain
level of expertise. Moreover, getting those variables right is tricky
and requires knowledge of where all files are on the cluster. Having to
manage all this by hand is clearly not an option.

We deal with this on the VSC clusters in the following way.

* First, we've defined the concept of a :ref:`toolchain <toolchains>`. They consist of a set of compilers, MPI library and basic libraries that work together well with each other, and then a number of applications and other libraries compiled with that set of tools and thus often dependent on those. We use tool chains based on the Intel and GNU compilers, and refresh them twice a year, leading to version numbers like 2021a, 2021b or 2022a for the first and second refresh of a given year. Some tools are installed outside a toolchain, e.g., additional versions requested by a small group of users for specific experiments, or tools that only depend on basic system libraries.
* First, we've defined the concept of a :ref:`toolchain <toolchains>`.
They consist of a set of compilers, MPI libraries and basic libraries
that work together well with each other. Then come a number of applications
and other libraries compiled with those set of tools, and hence depending
on them. We use toolchains based on the Intel and GNU compilers. New toolchains
which offer reasonable compute performance are regularly installed, leading to
version numbers like 2021a, 2021b or 2022a (for the first and second halves of
a given year). Some tools are installed outside a toolchain, e.g., additional
versions requested by a small group of users for specific experiments, or tools
that only depend on basic system libraries.

* Second, we use the `module system <module_system>` to manage the environment variables and all dependencies and possible conflicts between various programs and libraries.
* Second, we use the `module system <module_system>` to manage the environment
variables and all dependencies and to prevent possible conflicts between various
programs and libraries.


!!!!!!!!HERE SHOULD COME A LINK TOTHE GENERATED PAGE WITH AVAILABLE SOFTWARE!!!!!!!!!
!!!!!!!!HERE SHOULD COME A LINK TO THE GENERATED PAGE WITH AVAILABLE SOFTWARE!!!!!!!!!

.. toctree::
:maxdepth: 2
Expand Down

0 comments on commit 2a2f842

Please sign in to comment.