Rendering without display
Introduction
Rendering images on a remote HPC is slightly different from rendering images on your local computer, because the compute nodes in Euler don't have a display attached. The most suitable solution for is, when the software itself provides offscreen rendering, but it can also be done using a virtual frame buffer.
Offscreen rendering with OSMesa or EGL
Please find below some links that provide information about how to use OSMesa or EGL for offscreen rendering:
https://docs.mesa3d.org/osmesa.html https://blog.kitware.com/off-screen-rendering-through-the-native-platform-interface-egl/
Virtual frame buffer
Xvfb is a virtual framebuffer that is part of the X11 libraries. It is installed on Euler as a part of the operating system. By prefixing the command with xvfb-run -a the rendering is done in a frame buffer:
sbatch [Slurm options] --wrap="xvfb-run -a my_command_that_does_the_rendering"
Please find below the available options for xvfb-run:
[sfux@eu-login-33 ~]$ xvfb-run --help Usage: xvfb-run [OPTION ...] COMMAND Run COMMAND (usually an X client) in a virtual X server environment. Options: -a --auto-servernum try to get a free server number, starting at --server-num (deprecated, use --auto-display instead) -d --auto-display use the X server to find a display number automatically -e FILE --error-file=FILE file used to store xauth errors and Xvfb output (default: /dev/null) -f FILE --auth-file=FILE file used to store auth cookie (default: ./.Xauthority) -h --help display this usage message and exit -n NUM --server-num=NUM server number to use (default: 99) -l --listen-tcp enable TCP port listening in the X server -p PROTO --xauth-protocol=PROTO X authority protocol name to use (default: xauth command's default) -s ARGS --server-args=ARGS arguments (other than server number and "-nolisten tcp") to pass to the Xvfb server (default: "-screen 0 640x480x8") -w DELAY --wait=DELAY delay in seconds to wait for Xvfb to start before running COMMAND (default: 3) [sfux@eu-login-33 ~]$