Singularity

question 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

question 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.

question 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.