Singularity
Can I build a Singularity container from the latest MIRACL image on Docker Hub
Absolutely! To do so, however, you will need to grab a development node after logging in to the cluster. If you try pulling from the login node, you will use a ton of memory building the SIF image, and the process will be killed (in other words, it won’t work).
$ sdev
or
$ salloc
Once you have your node, you can then build the container:
$ cd $SCRATCH
$ singularity build miracl_latest.sif docker://mgoubran/miracl:latest
Processes that require TrackVis or Diffusion Toolkit are not working
Because of their respective licenses, we could not include TrackVis
or Diffusion Toolkit in our Docker image directly. Please
download and install them on you host machine using their installation guide.
After they have been successfully installed, mount a volume to your
MIRACL Docker container that contains the binary folder
for TrackVis and Diffusion Toolkit and add the binaries
to your $PATH
within your MIRACL Docker container
using the mounted volume.
I get the following error whenever I try to run the GUI from within the Singularity container on Compute Canada
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, webgl, xcb.
We do not recommend trying to make X11 forwarding work directly from the terminal. You should use VNC instead. Follow the instructions here. Once you are connected to your login or compute node with VNC, you will see a desktop environment. Open a terminal there and follow our tutorials on how to use MIRACL with Singularity on clusters.
If you for some reason need to run the MIRACL GUI directly in the terminal, using a Singularity container and X11, try the following workarounds:
Login Nodes
Exit your Singularity container and start a VNC server (for 3600sec or more as required) on your login node:
vncserver -MaxConnectionTime 3600
The first time the VNC server is started you will prompted for a password (do not leave this blank). Once done, check if a X11 socket is available for your username:
ls -la /tmp/.X11-unix/
Note
If no socket is available for your username, log out and log back in to your login node
Start another Singularity container and try to run miraclGUI
again from within it.
Compute Nodes
Exit your Singularity container and set an environment variable on your allocated compute node:
export XDG_RUNTIME_DIR=${SLURM_TMPDIR}
Start a VNC server:
vncserver
Start another Singularity container and try to run miraclGUI
again from within it.