Software on the D-PHYS Linux Computers

Here is a list of some software that is available on the D-PHYS Linux workstations. It is by far incomplete and we install more packages as the need arises.

Currently we run Ubuntu 22.04, migrating to Debian 12.

Manual Pages, Documentation

  • man man or online
  • help (depends on $SHELL)
  • whatis command
  • tldr command
  • dict wordyoudontunderstand
  • Maybe there's something in /usr/share/doc?

Notes on the system configuration

We also mostly have and use zRAM, swapon gives you an overview about it, as well as cat /sys/block/zram*/comp_algorithm on the used compression. Generally it's lzo-rle since 20.04.

For a long time we used to have XFS for /scratch* filesystems, around 2015, we switched to btrfs and thus can support live file system compression. (There was a time when btrfs did not support swapfiles)

exfat support has been switched to the Samsung implementation for 20.04.

APFS and NTFS support are available on request (since 22.04). (apfs-dkms, apfsprogs, ntfs2btrfs)

If you want to squeeze out some more, we also have mimalloc

Text Processing and Editors

  • LibreOffice: a complete office suite with lowriter as the text processing tool. It has its own file formats but can read and write MS Word documents, ASCII texts, and more.
  • Emacs: a variant of the classic Emacs extensible editor. Perfect for text files, program development, and a lot more.
  • vi: a classic among Unix editors, comes as vim, nvi
  • mcedit: for fans of Norton Commander
  • TeX, LaTeX: professional document processing tool, a classic Introduction
  • Microsoft Office: can be accessed with RDP, xfreerdp /f /bpp:24 /d:ad /v:winlogin.phys.ethz.ch /u:$USER +fonts or wints.igp.ethz.ch
  • Visual Studio Code
  • PyCharm
  • Spyder Richly-featured Python IDE

GNOME

If you're missing the GNOME dock, you can get it back with gnome-shell-extension-tool -e ubuntu-dock@ubuntu.com

If you still get shown old icons, you can use gnome-tweak and select "Yaru" in Appearance.

Alternatively use these commands:

gsettings set org.gnome.desktop.interface gtk-theme 'Yaru'
gsettings set org.gnome.desktop.interface icon-theme 'Yaru'
gsettings set org.gnome.desktop.interface cursor-theme 'Yaru'

What is useful too is these commands: gnome-extensions list as well as gsettings list-recursively.

Compilers & Interpreters

BASIC

C, Objective-C and C++

D

  • gdc, ldc2, dub

NVIDIA CUDA Compiler

  • where installed, available with /usr/local/cuda/bin/nvcc (cudnn is also included)

Fortran

Julia

  • julia high-performance programming language for technical computing Julia

Local installation as user:

pip install jill
export PATH=~/.local/bin:$PATH
jill list
jill install --install_dir /scratch/julia-lang
julia

If it already exists in /scratch/julia-lang:

ln -s /scratch/julia-lang/julia-<version>/bin/julia .local/bin/jilia
export PATH=~/.local/bin:$PATH

Java

Java software usually don't need an installation. They can be just downloaded to your $HOME or /scratch/directory and unpacked, and run with java -jar the.jar

Pascal

Feel free to request fpc, lcl, lazarus if you need Pascal.

Perl

Installed by default.

Python

Python 3.10 is default for python.

Please don't forget to add --user if you use python setup.py install

Please read the pip --user documentation.

Do use export PIP_NO_CACHE_DIR=1 to avoid cluttering your $HOME with .cache/pip

Please also read https://compenv.phys.ethz.ch/

Libraries

There are just too many libraries and too diverse needs to provide a useful overview. Most libraries are part of the system (e.g. OpenGL is part of the X Window system) and as such compiled with the default compiler (i.e. currently, for Debian 11/bullseye GCC version 10.2 in most cases). See the last section to check the state of specific libraries.

Mathematical Tools

Plotting Software

Graphics Tools

  • The GIMP: tool to create and manipulate pixel oriented graphics files (e.g., JPEG, PNG, PPM, etc.), useful for working with photos, web graphics and more. Similar uses as Adobe PhotoShop
  • inkscape: Vector drawing software.
  • Scribus: WYSIWYG desktop publishing
  • xmgr, grace: an XY plotting tool
  • xfig: drawing tool, powerful, although with a slightly unusual user interface
  • Blender: 3d/VFX software, use ctrl-alt-u to set /tmp/ to be /scratch/user/tmp.
  • QVGE: Visual Graph Editor

Video Editing

Scientific Software

Data sources and software

Note on usage: some software like Google Earth Pro, just don't get caching files right, you have a remote filesystem $HOME, so run it with $HOME=/scratch/youruser to not get into quota problems, and run fast.

Software useful with special hardware

Remote access

  • openssh This is standard
  • xrdp (requires VPN from public internet) on request

Data transfer

Container

Since Docker is a security problem on managed computers, we recommend to use podman instead.

Finding Software Packages

You can list all installed packages with dpkg --list

If you want to search the whole Debian software archive you can use apt-cache, e.g. like this: apt-cache search emacs Alternatively you can use the web interface of Debian or Ubuntu

This command will also find packages which are not installed on our system. You can check whether a specific package is installed by specifying the package name like such: dpkg -l emacs

To list the content of a package use dpkg -L package

Another source of software is https://github.com/

Installing Software with Spack

Spack can be installed to install a lot of software, in multiple versions. Please read their manual.

Here is some hints to get started:

  • spack compiler find
  • spack external find

Show directed acyclic graph (DAG) of a package:

  • spack graph hdfview

Example to install visit (#395573):

  • spack install visit

Finding installation information:

  • spack info visit

Finding the install location:

  • spack location --install-dir gcc@8

Load the environemnt:

  • eval $(./spack load --sh gcc@8)

List installed packages:

  • spack find

Resource Management

We have a lot of tools, please use them.

  • htop - shows you number of CPUs/cores and memory/swap usage
  • ruptime/rload - shows you hosts and their CPU/MEM/GPU/GPUMEM usage in %, Homepage
  • timeout
  • dmtcp - Distributed MultiThreaded Checkpointing installed.
  • scr - Homepage

CUDA enabled machines also have

  • nvtop - shows you number of GPUs and GPU memory usage

You might want to setup these environment variables:

  • export CUDA_HOME=/usr/local/cuda
  • export PATH=$PATH:/usr/local/cuda/bin/ (for nvcc)

You might want to setup the directories versioned, if you need a specific version of CUDA/nvcc

PF machines have

  • rload | grep pf-pc

GUENTHER cluster also has

  • rload | grep guenther
  • pestat
  • SLURM batch queueing system

You can use nice to run jobs niced, or cpulimit -l 50 -- yourjob to limit cpu usage on your job to 50 %.

Debugging

strace yourcommand (-c to count calls)

ltrace yourcommand

are often useful to trace system/library calls of some software.

bash -x bashscript

-x with bash shows you all lines executing the script which often is helpful too.

Hardware

  • cat /etc/serial - shows you the serial number of the computer, if there is LETTER-XX.YY.ZZ, then XX is the year of delivery and YY the month.

Missing Software?

If you're missing software, don't hesitate to contact us, with the following details:

  • Computer hostname you work on
  • URL of the homepage of the software
  • The version of the software you would like to have