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

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 on request, how to get a desktop icon
  • Spyder Richly-featured Python IDE

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

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.4 is default for python.

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

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 On request (requires VPN from public internet), standard with 22.04+

Data transfer

Docker

Since Docker is a security problem on managed computers, most people use Apptainer or podman instead.

If you absolutely must have docker, you can request a "CUSTOMER" managed machine, where you get access with ssh keys to as root, and no NFS. Feel free to do anything (within BOT compliance) you want there. Find such machines with ruptime | grep root.

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/

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 %
  • 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

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