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.

Manual Pages, Documentation

  • man man
  • help
  • whatis command
  • tldr command
  • dict wordyoudontunderstand
  • Maybe there's something in /usr/share/doc?

Notes on the system configuration

OOM has been a problem for a long time, fortunately a backported nohang package for 18.04 and 20.04 is very helpful. Be aware that it works much better with 20.04 due to the newer kernel and PSI support.

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 for 18.04, and lzo-rle for 20.04.

For a long time we used to have XFS for /scratch* filesystems, since ~5 years, 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.

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

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.

Python

Python 3.8.5 is default for python.

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

Swift

  • swift Swift interpreter Swift
  • swiftc Swift compiler

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 10/buster GCC version 8.3 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.

Video Editing

Scientific Software

Software useful with special hardware

Remote access

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

Docker

Since Docker is a security problem on managed computers, most people use Singularity 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/

Resource Management

We have a lot of tools, please use them.

  • htop - shows you number of CPUs/cores and memory/swap usage
  • ruptime
  • rwho
  • timeout
  • dmtcp - Distributed MultiThreaded Checkpointing installed.
  • scr - Homepage

CUDA enabled machines also have

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

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

  • pf-disks

GUENTHER cluster also has

  • g-disks
  • g-power
  • g-load
  • 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.