Program fails to load library on compute node

Hi, sorry if this is not the right place to ask such questions, or if it’s a newbie question, but I have some problem that I don’t understand.

After compiling my code and running it in the debug-cpu partition with a simple test run, I get the following error:

/home/users/v/vagne/ias/exec/bin/./iasTissueSimulation: error while loading shared libraries: libOpenGL.so.0: cannot open shared object file: No such file or directory

The strange thing is that I tried to run the same file directly on the login node without slurm (I know that it’s forbidden in general, but this one is just basically a “hello world” code) and then there was no error. Is there something that could explain somehow that the compute nodes can’t access a shared library but the login node can?

I checked that libOpenGL.so.0 is indeed present and is located in /usr/lib64/libOpenGL.so.0

Let me know if I’m doing something wrong.

Thanks,
Quentin Vagne

Hi,

the login node has more stuff than the compute node, such as graphical tools and graphical library.

On the compute node:

[root@node001 ~]# ls -la /usr/lib64/libOpenGL.so.0
ls: cannot access /usr/lib64/libOpenGL.so.0: No such file or directory

On the cluster, you may want to use the module libglvnd which propvides libOpenGL.so.0

[root@master ~]# ml GCCcore/10.2.0 libglvnd/1.3.2

Thanks! Ok I see. It turns out that actually I don’t really need openGL for this project, it just got included by a third party library. I’ll try to compile things differently so that it does not require openGL at all.