I work as a data & visualization consultant at the University of Arizona and I have gotten several requests to setup Metashape on our system for users. I currently have a complex solution, but want to hear from others if they have experience and suggestions for me. The goal is to tie together the graphical client, server process, and worker processes that are the separate parts of metashape’s network processing workflow, and I’ve tried the following.
- standard x11 forwarding over ssh & running on Open On Demand interactive desktop
The allocated environment doesn’t support metashape’s qt5 dependency, no graphical support
- containerized remote desktop hosted off HPC
Using a small vm on a remote server I was able to access the metashape gui using an xpra docker container, but actual network processing required sshfuse mounting the HPC directory with the image files within the container which isn’t ideal.
- ideal setup
An OOD application following the pattern setup for rstudio server, or jupyter.
Alternatively I want to combine the xpra docker container and a reverse proxy program like ngrok and convert to singularity, start an interactive allocation, initialize the server and worker processes and then start the singularity container that allows the metashape gui to be accessible to external machines (mine and my users).
Creating an application for our OOD service seems like a longterm goal, but may take a significant amount of work.
This setup needs to not allow unverified users access to metashape, or the larger HPC environment that the singularity container is running in. I believe this isn’t impossible, and the same method applied here could be used for quick setup and tear down of many other graphical user programs less commonly used than rstudio and jupyter that could leverage HPC resources.
Thanks for your time and consideration of this question!