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 onlinehelp
(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
orwints.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¶
pcbasic
the GW-BASIC compatible interpreter
C, Objective-C and C++¶
gcc
andg++
from the GNU Compiler Collectionclang
LLVM/clang (dlang to follow soon)icc
the Intel C/C++ Compilertcc
the tiny C compiler/interpretermusl-gcc
the musl C library with compilerchibicc
a small C compiler on requestpcc
the Portable C Compileraocc
the AMD Optimizing C/C++ Compiler where applicable
D¶
gdc
,ldc2
,dub
NVIDIA CUDA Compiler¶
- where installed, available with
/usr/local/cuda/bin/nvcc
(cudnn is also included)
Fortran¶
gfortran
(Fortran 95) from the GNU Compiler Collectionifort
the Intel Fortran Compiler on request
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¶
- Mathematica
- Maple (to run with GUI run
maple -x
) - Matlab font too small
- Octave drop in compatible with Matlab scripts
- Comsol needs be bought
- CST needs be bought
- Lumerical/FDTD needs be bought
- R Studio on request, from 20.04 on
- SageMath on request
Plotting Software¶
- IDL Online Tutorial with Astrolib
- GDL (free alternative to IDL)
- gnuplot
- pyxplot
- supermongo
- gmt
- graphviz
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¶
- amide
- cadabra
- colmap
- cloudcompare
- cuba on request
- ds9
- form
- fermat
- ffcv
- geant4
- groops
- hdfview
- lie
- largetifftools
- magma only on toad
- macaulay2
- meep
- mepp2
- meshlab
- minkowskiengine on request
- mm3d (import special 3d formats that cloudcompare fails with)
- nusolve
- petitradtrans
- pynpoint
- pytorch on request
- quantum-espresso
- reduce
- ROOT (run
source /opt/root/bin/thisroot.sh
to set the correct environment) - rtklib
- snap you can install this one yourself
- source-extractor
- stellarium
- splash
- swarp
- singular
- tensorflow only on CUDA enabled machines (1.x or 2.x)
- qgis
- udunits
- visit
- zfp
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¶
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 usageruptime/rload
- shows you hosts and their CPU/MEM/GPU/GPUMEM usage in %, Homepagetimeout
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