Opened 6 years ago
Last modified 6 years ago
#2593 assigned defect
Various graphics/install/toolshed problems
Reported by: | Owned by: | Greg Couch | |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | Tool Shed | Version: | |
Keywords: | Cc: | Tristan Croll, Conrad Huang, Tom Goddard | |
Blocked By: | Blocking: | ||
Notify when closed: | Platform: | all | |
Project: | ChimeraX |
Description
Hello, I've been trying to install ISOLDE on a CentOS 7 system. I want all users to be able to execute it. Having trouble with the chimerax install that I thought you might want to know about. I'm running as root because I want to install for all users. **[root@graphics1 install]#** inxi -CGM Machine: Type: Server System: Supermicro product: Super Server v: 0123456789 serial: 0123456789 Mobo: Supermicro model: X11SRA-F v: 1.01 serial: UM17AS000306 UEFI [Legacy]: American Megatrends v: 1.0 date: 10/11/2017 CPU: Topology: 10-Core model: Intel Xeon W-2155 bits: 64 type: MT MCP L2 cache: 13.8 MiB Speed: 1297 MHz min/max: 1200/4500 MHz Core speeds (MHz): 1: 1297 2: 1259 3: 1200 4: 1238 5: 1200 6: 1200 7: 1235 8: 1200 9: 1222 10: 4491 11: 1206 12: 1204 13: 1200 14: 1200 15: 1200 16: 1200 17: 1293 18: 4377 19: 1200 20: 1200 Graphics: Device-1: NVIDIA TU104 [GeForce RTX 2080] driver: nvidia v: 418.87.01 Display: server: X.Org 1.12.2 driver: nvidia unloaded: fbdev,modesetting,nouveau,vesa resolution: 1920x1137~60Hz OpenGL: renderer: Rasterizer v: 1.4 (2.1 Mesa 10.0.1) * [root@graphics1 install]#* yum install /programs/install/chimerax-daily.rpm ... Installed: ucsf-chimerax-daily.x86_64 0:2019.11.20-1.el7 Complete! *[root@graphics1 install]#* ls -l /usr/bin/chimerax-daily lrwxrwxrwx 1 root root 42 Nov 20 08:48 /usr/bin/chimerax-daily -> ../../opt/UCSF/ChimeraX-daily/bin/ChimeraX [root@graphics1 install]# chimerax-daily NOTE: available bundle cache has not been initialized yet NOTE: Traceback (most recent call last): File "/opt/UCSF/ChimeraX-daily/lib/python3.7/runpy.py", line 193, in _run_module_as_main "__main__", mod_spec) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/runpy.py", line 85, in _run_code exec(code, run_globals) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/ChimeraX_main.py", line 871, in <module> exit_code = init(sys.argv) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/ChimeraX_main.py", line 580, in init check_available=opts.get_available_bundles) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/toolshed/__init__.py", line 1682, in init _toolshed = Toolshed(*args, **kw) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/toolshed/__init__.py", line 380, in __init__ settings.toolshed_last_check = now.isoformat() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/settings.py", line 190, in __setattr__ ConfigFile.__setattr__(self, name, value) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/configfile.py", line 365, in __setattr__ ConfigFile.save(self) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/configfile.py", line 314, in save with SaveTextFile(self._filename) as f: File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/safesave.py", line 162, in __init__ SaveFile.__init__(self, filename, open=open_text, critical=critical) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/safesave.py", line 69, in __init__ raise OSError(errno.ENOTDIR, os.strerror(errno.ENOTDIR), save_dir) NotADirectoryError: [Errno 20] Not a directory: '/non/existent/directory/.config/ChimeraX' BUG: NotADirectoryError: [Errno 20] Not a directory: '/non/existent/directory/.config/ChimeraX' File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/safesave.py", line 69, in __init__ raise OSError(errno.ENOTDIR, os.strerror(errno.ENOTDIR), save_dir) _See log for complete Python traceback._ *[root@graphics1 install]#* mkdir -p /non/existent/directory/.config/ChimeraX *[root@graphics1 install]#* chimerax-daily NOTE: available bundle cache has not been initialized yet [14105:14105:1120/123101.581741:ERROR:zygote_host_impl_linux.cc(89)] Running as root without --no-sandbox is not supported. See https://crbug.com/638180. *[root@graphics1 install]#* chimerax-daily --no-sandbox /opt/UCSF/ChimeraX-daily/lib/python3.7/site-packages/ChimeraX_main.py: option --no-sandbox not recognized *[root@graphics1 install]#* su - jamesh *jamesh@graphics1:/home/jamesh 103%* setenv DISPLAY gateway2:1002.0 *jamesh@graphics1:/home/jamesh 104%* xterm *jamesh@graphics1:/home/jamesh 105%* chimerax-daily QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-jamesh' NOTE: available bundle cache has not been initialized yet ERROR: ChimeraX requires OpenGL graphics version 3.3. Your computer graphics driver provided version 1.4 Try updating your graphics driver. WARNING: No statusbar messages will be shown due to inadequate OpenGL WARNING: QOpenGLShader::compile(Vertex): failed WARNING: QOpenGLShader::compile(Fragment): failed WARNING: Could not link shader program: "" Fatal Python error: Segmentation fault Current thread 0x00007fec1e598740 (most recent call first): File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site-packages/chimerax/ui/gui.py", line 743 in rapid_access_shown File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site-packages/chimerax/ui/gui.py", line 203 in build File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site-packages/ChimeraX_main.py", line 623 in init File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site-packages/ChimeraX_main.py", line 871 in <module> File "/opt/UCSF/ChimeraX-daily/lib/python3.7/runpy.py", line 85 in _run_code File "/opt/UCSF/ChimeraX-daily/lib/python3.7/runpy.py", line 193 in _run_module_as_main Segmentation fault (core dumped) # # this was running remotely over an X11 connection to our gateway machine, which does not have an nvidia graphics card # trying a different machine: *[root@bl831 ~]#* inxi -CGM Machine: Type: Server System: Supermicro product: Super Server v: 0123456789 serial: 0123456789 Mobo: Supermicro model: X11SPi-TF v: 1.02 serial: OM17AS033975 UEFI [Legacy]: American Megatrends v: 2.0b date: 02/26/2018 CPU: Topology: 12-Core model: Intel Xeon Silver 4116 bits: 64 type: MT MCP L2 cache: 16.5 MiB Speed: 899 MHz min/max: 800/3000 MHz Core speeds (MHz): 1: 988 2: 999 3: 2100 4: 2100 5: 2100 6: 1503 7: 1554 8: 896 9: 890 10: 2668 11: 2676 12: 1743 13: 999 14: 2100 15: 868 16: 2100 17: 2100 18: 800 19: 926 20: 2487 21: 1797 22: 800 23: 2100 24: 1300 Graphics: Device-1: ASPEED Graphics Family driver: ast v: kernel Device-2: NVIDIA GV100 [TITAN V] driver: nvidia v: 418.87.01 Display: server: X.Org 1.12.2 driver: modesetting resolution: 1920x1200~60Hz OpenGL: renderer: Rasterizer v: 1.4 (2.1 Mesa 13.0.2) *[root@bl831 ~]#* su - jamesh *jamesh@bl831%* chimerax-daily ERROR: ChimeraX requires OpenGL graphics version 3.3. Your computer graphics driver provided version 2.1 Try updating your graphics driver. WARNING: No statusbar messages will be shown due to inadequate OpenGL Fatal Python error: Segmentation fault Thread 0x00007f1560ceb740 (most recent call first): File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site-packages/chimerax/ui/gui.py", line 268 in event_loop File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site-packages/ChimeraX_main.py", line 747 in init File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site-packages/ChimeraX_main.py", line 871 in <module> File "/opt/UCSF/ChimeraX-daily/lib/python3.7/runpy.py", line 85 in _run_code File "/opt/UCSF/ChimeraX-daily/lib/python3.7/runpy.py", line 193 in _run_module_as_main [237414:237414:0100/000000.772113:ERROR:command_buffer_proxy_impl.cc(130)] ContextResult::kTransientFailure: Failed to send GpuChannelMsg_CreateCommandBuffer. [237323:237323:0100/000000.772256:ERROR:command_buffer_proxy_impl.cc(130)] ContextResult::kTransientFailure: Failed to send GpuChannelMsg_CreateCommandBuffer. Segmentation fault (core dumped) We then tried moving to the display directly connected to the "graphics1" machine above. On this console we can get the ChimeraX gui to open and stay open. However, all attempts to install ISOLDE for all users have failed. we get the "Permission Denied" error trying to install for "All users". the |opts.get_available_bundles = False| trick has no effect. Any advice? -James Holton
Change History (11)
comment:1 by , 6 years ago
Cc: | added |
---|---|
Component: | Unassigned → Tool Shed |
Owner: | set to |
Platform: | → all |
Project: | → ChimeraX |
Status: | new → assigned |
Summary: | installing chimerax → Various graphics/install/toolshed problems |
comment:2 by , 6 years ago
comment:4 by , 6 years ago
Cc: | added; removed |
---|---|
Owner: | changed from | to
The install problem has something to do with toolshed not finding a .config directory. Probably Greg knows most about that since it is on Linux.
The problem starting ChimeraX is (as the error message says) that ChimeraX requires OpenGL 3.3 and the computer being used only offered OpenGL 1.4.
The problem installing ISOLDE for all users is another toolshed problem. From what I understand you can install for all users only if you have write permission on the ChimeraX install directory -- it has no provision for authenticating with a password. We discussed this last week. This should give a clear error message "You do not have permission to install for all users. Please install "Just for me"." But it sounds like this user needs to install for all users. At last week's meeting we decided to remove the "install for all users" choice because we can't handle authentication and provide explicit instructions for those rare users who need it (as apparently this user needs).
follow-up: 5 comment:5 by , 6 years ago
So I should just chmod -R a+rw /opt/UCSF ? Or is there a way to install ISOLDE from the command line of chimerax-daily --nogui ? On 11/20/2019 2:56 PM, ChimeraX wrote:
follow-up: 6 comment:6 by , 6 years ago
If you have write permission on the ChimeraX install tree (without typing a password) then I would expect ISOLDE to install for all users. I don't know if ISOLDE can be installed from the command-line. That is something Greg Couch or Conrad Huang would have to answer.
follow-up: 7 comment:7 by , 6 years ago
OK. That seems to have worked! We have now started the demo and we can see the molecule wiggling around. Not sure what to do next. Will ask Tristan tomorrow. Thanks for you help with that! We now have one computer than can run ISOLDE, but only on the console. Is it normal that ChimeraX will only run on a screen directly connected to the only graphics card in the system? -James On 11/20/2019 3:11 PM, ChimeraX wrote:
follow-up: 8 comment:8 by , 6 years ago
Yes. ChimeraX uses high performance GPU accelerated graphics, and ISOLDE is going to want to use the GPU for fast molecular dynamics calculations. So it is not really feasible to run it on a server with no graphics hardware and display on a different machine. A decade or more ago it used to be possible to run an application on a server and have it send OpenGL graphics to another displaying machine -- but those days are long past -- although X-windows can do that with on-graphics apps it almost never works with 3D graphics and OpenGL. ChimeraX needs the GPU on the machine it is running on. This isn't completely true since ChimeraX runs fine with Intel graphics (although most servers use Intel chips, like Xeon, that don't include a GPU, so then you are reduced to all software CPU graphics rendering). Even in that configuration you would need some kind of remote desktop display to show the graphics on another machine. And ISOLDE performance would be slow with no GPU to accelerate forcefield calculations.
follow-up: 9 comment:9 by , 6 years ago
Hmm. My biggest, baddest GPUs are on headless machines up in the rack. My plan was to run ISOLDE on those and look at the graphics in an X11-forwarded window. In general I've tried to set things up so that compute tasks don't get run on GPUs that are directly connected to monitors because the people in front of those monitors get angry when someone runs a CUDA program. Coot seems to have no trouble displaying on all my screens, even the virtual an NX ones. I wonder what Paul is doing? Do you think VNC would work as a remote desktop application to display ChimeraX ? On 11/20/2019 3:51 PM, Tom Goddard wrote:
follow-up: 10 comment:10 by , 6 years ago
Yeah VNC would work. And remote display could work, it sometimes does if you have the exact same opengl driver on both server and client and the graphics manufacturer cares about this capability that is very rarely used. I suspect Coot style line graphics is really ancient OpenGL while ChimeraX is all modern GPU shader programs -- it is good that Coot works remote displayed but it does not guarantee ChimeraX will -- you would just have to try ChimeraX. In your use scenario is the Phenix GUI running on the server remote displayed to a client? Or is the Phenix job just started via command-line, or maybe a client running the Phenix GUI launches a compute job on the server? Something to keep in mind is that headless GPU setups for computing don't usually allow use of GPU for graphics. OpenGL requires a window on a display to get an OpenGL context, so OpenGL on the GPU won't work headless. CUDA of course works without a display but that is non-graphics computation. And Vulkan which is the next generation of OpenGL and combines compute and graphics can also do graphics on the GPU headless but ChimeraX does not use Vulkan (although we are thinking about it for the future).
comment:11 by , 6 years ago
ChimeraX is not designed to be run as root on Linux. This is to avoid putting lots of unneeded cruft in ~root/.cache/, ~root/.local/, etc. during installation.
To install additional packages as root, use a web browser to go to https://cxtoolshed.rbvi.ucsf.edu/ and download the wheels for the bundles you want to install. Then install them using pip, e.g., "chimerax-daily -m pip install ChimeraX_ISOLDE-1.0b3.dev6-cp37-cp37m-linux_x86_64.whl".
I'll think about this use case some more.
Why aren't you installing using the rpm?