Skip to content

[package list]

systools

License information

The systools module provides multiple packages:

After loading the module, a copy of the license files for each package can also be found in the $EBROOTSYSTOOLS/share/licenses directory.

User documentation

Available tools depend on the version of the module. This list is for the latest version of the module.

The gpp command

The gpp command is a general-purpose preprocessor with customizable syntax, suitable for a wide range of preprocessing tasks. Its independence from any one programming language makes it much more versatile than the C preprocessor (cpp), while its syntax is lighter and more flexible than that of GNU m4. There are built-in macros for use with C/C++, LaTeX, HTML, XHTML, and Prolog files.

The htop command

The htop command is an interactive process viewer for Unix/Linux.

Note that by default, htop will not show the load of individual cores as you may be used from many other sites. However, given that there are 256 virtual cores on most nodes, this produces visual overload for may. It is still possible to change the settings in htop by going into the settings screen using "SHFIT-S" and then changing the meters, e.g., adding "CPUS (1-4/8): first half in 4 shorter columns" to the first half and "CPUS (5-8/8): second half in 4 shorter columns" to the second.

This configuration will be stored in ~/.config/htop/htoprc, so you can also copy settings from another user by exchanging that file.

The pbzip2 command

The pbzip2 command is a multithreaded version of the bzip2 command. Check the manual page though as it has additional options to determine the amount of parallelism. The code was patched by LUST so that by default it will detect the correct number of hyperthreads available in a Slurm job and limit the number of threads to 16 on the login nodes to not overwhelm them (and as you are limited to the CPU capacity equivalent with 16 cores anyway).

This code has been unmaintained since 2015, so there is no guarantee that we can continue to provide it. Issues with it will not get fixed.

The code was never truly adapted the the 64-bit world. Memory management is still 32-bit code, limiting the amount of memory one can request via the -m parameter to 2000 blocks.

It is also an alternative to lbzip2 which is also unmaintained and has become almost impossible to compile on modern machines.

The tree command

The tree command is a recursive directory listing command that produces a depth indented listing of files, which is colorized ala dircolors if the LS_COLORS environment variable is set and output is to tty.

The proot command

The proot command is a user-space implementation of chroot, mount --bind, and binfmt_misc. This means that users don't need any privileges or setup to do things like using an arbitrary directory as the new root filesystem, making files accessible somewhere else in the filesystem hierarchy, or executing programs built for another CPU architecture transparently through QEMU user-mode.

It is provided in this module mainly for use with singularity.

Note that there is now also a separate PRoot module as that turned out to be needed to work easily with EasyBuild to enhance containers. The command is kept here so that older documentation that tells to load systools remains valid.

Pre-installed modules (and EasyConfigs)

To access module help and find out for which stacks and partitions the module is installed, use module spider systools/<version>.

EasyConfig:

Technical documentation

Systools is just a bundle of various small Linux tools that are very useful on the system.

The current content is

EasyBuild

Bundle version 15.1.0 for SUSE Linux 15SP1

  • When compiling htop with unicode enable it causes a segmentation violation (but not with -h or --version so it is not detected in the EasyBuild sanity check). The likely cause is a problem with out ncursesw library that is part of syslibs and fully static.

21.12

22.06 and 22.08

  • Update of htop and some improvements to the EasyConfig.

  • Robustified the installation on LUMI with checksums.

22.12 and 23.03

  • Version bumps for GPP/htop/tree.

  • Adding libtree

  • Changing the layout of the EasyConfig a bit, also adding license information.

23.03

  • Version bumps for GPP/htop/tree.

23.09

  • Version bumps for GPP/htop/tree.

  • In a revised edition we also provided the proot command for use with singularity.

    • We went for build that is fully static except for libc taken from the system to be as independent from anything else as possible. The procedure in the EasyConfig is a LUST development.

    • Needed to fix the Makefile as the warnings about it not being a git repository caused EasyBuild to stop the build.

23.12 and 24.03

  • Version bump of htop, but otherwise similar as the 23.09 one with the proot command.

  • Did have to change the download location for the tree command though which also led to a slightly different build process.

24.03-1 and 24.11

  • Added pbzip2 to the bundle:

    • The only dependency is libbz2, and we use a static version of it from the systools module.

    • This part of the EasyConfig is heavily inspired on the EasyBuilders one for PBZIP2.

    • We developed a small patch to detect the number of cores available via the sched_getaffinity function so that it works as expected in a Slurm job, and also limit the default number of threads to 16 on the login nodes.

Archived EasyConfigs

The EasyConfigs below are additional easyconfigs that are not directly available on the system for installation. Users are advised to use the newer ones and these archived ones are unsupported. They are still provided as a source of information should you need this, e.g., to understand the configuration that was used for earlier work on the system.