From: Matthew Kenney (matthew.kenney_at_cellsignal.com)
Date: Fri Jul 06 2018 - 17:13:59 CDT

Just took a look to see if nvidia-docker provided compatability with glx
and the ability to run an x server, and the answer was not particularly
encouraging (from
https://github.com/NVIDIA/nvidia-docker/wiki/Frequently-Asked-Questions):

*Do you support running a GPU-accelerated X server inside the container?*
No, running a X server inside the container is not supported at the moment
and there is no plan to support it in the near future (see also OpenGL
support).

*Is OpenGL supported?*
Yes, EGL is supported for headless rendering, but this is a beta feature.
There is no plan to support GLX in the near future.
Images are available at nvidia/opengl. If you need CUDA+OpenGL, use
nvidia/cudagl.
If you are a NGC subscriber and require GLX for your workflow, please fill
out a feature request for support consideration.

The best examples I can find of a containerized visualization app also come
from nvidia's gpu cloud to be honest, cannot find much else out there.
ParaView with NVIDIA IndeX provides a great example:
https://ngc.nvidia.com/registry/nvidia-hpcvis-paraview-index

I've tested this container and it works great on my machine. But it appears
as though this one works only because it runs with egl as supposed to glx.
Does this mean we've hit a dead end? Or could there be another potential
workaround to get the visuals working for vmd? Thank you for your input.

Best,
Matt

On Fri, Jul 6, 2018 at 5:20 PM Matthew Kenney <matthew.kenney_at_cellsignal.com>
wrote:

> Hi John,
>
> Thank you for the incredibly fast reply! This was my inclination, given
> that it seems as though most users out there are simply using the
> containers for large-batch computing as you said. While most of the work I
> plan to do will be through scripts, I would like to have the graphical
> components available as well. One component of our workflow with this
> container would need to enable researchers (who are not as familiar with
> vmd scripting) to visually interact with one of vmd's plugins... the rest
> of the workflow will be streamlined and invisible to these researchers
> through scripting.
>
> I also just saw your note on glxgears. Although I can easily run simple
> x11 apps like geany through the vmd container's bash... the glxgears does
> not appear to work. I will attempt to get glx working on the container and
> see if this could perhaps allow vmd to run graphically. I'll get back
> shortly with a graphical container to use as an example. Thanks for your
> help!
>
> On Fri, Jul 6, 2018 at 5:04 PM John Stone <johns_at_ks.uiuc.edu> wrote:
>
>> Hi,
>> The VMD container images on NGC are intended for off-screen
>> batch/parallel rendering only. They are compiled without any GUI, and
>> they are really meant for large scale analysis and visualization jobs
>> on platforms like clouds or supercomputers.
>>
>> To run VMD in a fully interactive graphical mode, the container image
>> would
>> ultimately have to have an X11 distribution inside, which would probably
>> bloat the container size up to a few GB. Thus far I have not personally
>> seen any containerized interactive graphics apps, likely due
>> to the size issue I mentioned. In principle it would be relatively easy
>> for
>> me to compile a fully interactive VMD for a container, it is just a
>> matter
>> of the inclusion of the full X11 stack that I consider to be a concern
>> here.
>>
>> If you know of a good example of a containerized interactive graphics app,
>> I would be happy to have a look at their docker rules and see what they're
>> doing and compare with what would be required for VMD.
>>
>> Best,
>> John Stone
>> vmd_at_ks.uiuc.edu
>>
>> On Fri, Jul 06, 2018 at 04:50:59PM -0400, Matthew Kenney wrote:
>> > Hi everyone,
>> > I am attempting to use a version of vmd containerized with docker,
>> pulled
>> > from the nvidia gpu cloud's container repository, however, I cannot
>> get
>> > vmd to run graphically from within the container. I can only see the
>> vmd
>> > command line. While vmd works perfectly well within the container if
>> I use
>> > tcl scripting, I am completely unable to run vmd through the
>> graphical
>> > interface. It would be hugely appreciated if anyone can provide me
>> some
>> > advice on solving this problem.
>> > Click [1]here for more information on the nvidia gpu cloud repo I
>> am
>> > using. The docker image name, and the command to run the image per
>> > nvidia's instructions are as follows (note that nvidia-docker is a
>> GPU
>> > accelerated version of docker, and this image cannot be pulled
>> unless you
>> > have an nvidia gpu card installed on your machine and have signed up
>> for
>> > free online to use the nvidia gpu cloud):
>> > Image Name:Â [2]nvcr.io/hpc/vmd:cuda9-ubuntu1604-egl-1.9.4a17
>> > Command to pull image:
>> > docker pull [3]nvcr.io/hpc/vmd:cuda9-ubuntu1604-egl-1.9.4a17
>> > Command to get to container's bash:
>> > nvidia-docker run -it --rm -v $(pwd):/workspace
>> > [4]nvcr.io/hpc/vmd:cuda9-ubuntu1604-egl-1.9.4a17 /bin/bash
>> > Command to run vmd directly without going through bash:
>> > nvidia-docker run -it --rm -v $(pwd):/workspace
>> > [5]nvcr.io/hpc/vmd:cuda9-ubuntu1604-egl-1.9.4a17 /opt/vmd/bin/vmd
>> -dispdev
>> > openglpbuffer
>> > These commands, however, do not suffice to launch the vmd container
>> in
>> > graphical mode, since there is no way for the container to access the
>> > native display. To circumvent this issue, I instead launched the
>> container
>> > using the following commands to enable X-forwarding (enables the
>> container
>> > to see the host's display):
>> > First:
>> > XSOCK=/tmp/.X11-unix
>> > XAUTH=/tmp/.docker.xauth
>> > touch $XAUTH
>> > xauth nlist $DISPLAY | sed -e 's/^..../ffff/' | xauth -f $XAUTH
>> nmerge -
>> > xhost +local:docker
>> > Then:
>> > Â nvidia-docker run -it --rm -v $(pwd):/workspace \
>> > -v /tmp/.X11-unix:/tmp/.X11-unix -v
>> /tmp/.docker.xauth:/tmp/.docker.xauth
>> > \
>> > -v $(pwd):/work -e XAUTHORITY=/tmp/.docker.xauth -e
>> DISPLAY=:$DISPLAY \
>> > [6]nvcr.io/hpc/vmd:cuda9-ubuntu1604-egl-1.9.4a17 /bin/bash
>> > After completing these steps, I was able to download a few GUI
>> > applications from within the container, and ran them perfectly with
>> no
>> > issue, thus proving that the container was 100% capable of running
>> GUI
>> > applications on my screen. Downloading geany from within the
>> container and
>> > running it resulted in a perfectly normal, gui-based application
>> showing
>> > up on my display.
>> > However, vmd STILL will not show up graphically (only the terminal
>> style
>> > vmd shows up). This indicates to me that somehow, the vmd installed
>> in the
>> > container is lacking some component to enable the graphical
>> interface. Any
>> > ideas about what could be causing this issue, or how to fix it would
>> be
>> > incredibly helpful. Thanks in advance!
>> > Best,
>> > Matt
>> > This message contains information which may be confidential and/or
>> > protected by attorney-client privilege. Â Unless you are the
>> addressee,
>> > you may not use, copy or disclose to anyone this message or any
>> > information contained in this message. Â If you have received this
>> message
>> > in error, please send me an email and delete this message. Â Thank
>> you.
>> >
>> > References
>> >
>> > Visible links
>> > 1. https://www.nvidia.com/en-us/gpu-cloud/
>> > 2. http://nvcr.io/hpc/vmd:cuda9-ubuntu1604-egl-1.9.4a17
>> > 3. http://nvcr.io/hpc/vmd:cuda9-ubuntu1604-egl-1.9.4a17
>> > 4. http://nvcr.io/hpc/vmd:cuda9-ubuntu1604-egl-1.9.4a17
>> > 5. http://nvcr.io/hpc/vmd:cuda9-ubuntu1604-egl-1.9.4a17
>> > 6. http://nvcr.io/hpc/vmd:cuda9-ubuntu1604-egl-1.9.4a17
>>
>> --
>> NIH Center for Macromolecular Modeling and Bioinformatics
>> Beckman Institute for Advanced Science and Technology
>> University of Illinois, 405 N. Mathews Ave, Urbana, IL 61801
>> http://www.ks.uiuc.edu/~johns/ Phone: 217-244-3349
>> http://www.ks.uiuc.edu/Research/vmd/
>>
>
>
> --
> ___________________
> Matt Kenney
> Summer Intern for Ivan Gregoretti
> Bioinformatics Dept.
>

-- 
___________________
Matt Kenney
Summer Intern for Ivan Gregoretti
Bioinformatics Dept.
-- 
This message contains information which may be confidential and/or 
protected by attorney-client privilege.  Unless you are the addressee, you 
may not use, copy or disclose to anyone this message or any information 
contained in this message.  If you have received this message in error, 
please send me an email and delete this message.   Thank you.