UPDATE: after qsub many times I noticed that when the hostname is opt### it appears to work, but for other nodes in which the hostname is of different topology int###, it does not. I've discussed this with the cluster manager and this is what he said "Somehow that library was only installed on the opt* nodes and not the others. That shouldn't happen (the install on all the nodes is designed to be identical). It's fixed now." It works fine now and there is no need to setenv PATH or LD_LIBRARY_PATH.
I wrote a CSH script that runs a Java application called fiji-linux64. I have successfully executed the CSH script in a cluster node dedicated for compiling code, but the same script fails when submitted as a job (qsub) to the cluster and is sent to one of many available nodes. I get the following error in the log file:
Exception in thread "main" java.lang.UnsatisfiedLinkError: /netapp/home/username/bin/java/linux-amd64/jdk1.6.0_20/jre/lib/amd64/xawt/libmawt.so: libXtst.so.6: cannot open shared object file: No such file or directory at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1803) at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1699) at java.lang.Runtime.load0(Runtime.java:770) at java.lang.System.load(System.java:1003) at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1803) at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1720) at java.lang.Runtime.loadLibrary0(Runtime.java:823) at java.lang.System.loadLibrary(System.java:1028) at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:50) at java.security.AccessController.doPrivileged(Native Method) at sun.awt.NativeLibLoader.loadLibraries(NativeLibLoader.java:38) at sun.awt.DebugHelper.<clinit>(DebugHelper.java:29) at java.awt.Component.<clinit>(Component.java:560) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:169) at fiji.Main.<clinit>(Main.java:272)
I then thought that I might need to set the environment variables PATH and LD_LIBRARY_PATH, so I did echo $PATH and echo $LD_LIBRARY_PATH in the cluster computer that worked and added those paths to the csh script I qsub, as shown below:
setenv LD_LIBRARY_PATH /opt/intel/mkl/10.0.1.014/lib/em64t:/opt/intel/fce/10.1.017/lib:/opt/intel/cce/10.1.017/lib setenv PATH /ccpr1/sge6/bin/lx24-amd64:/usr/kerberos/bin:/opt/intel/fce/10.1.017/bin:/opt/intel/cce/10.1.017/bin:/usr/local/bin:/bin:/usr/bin:/netopt/bin:/netapp/home/username/bin
However, even after setting the PATH and LD_LIBRARY_PATH variables, I still get the same error as above. Is this a classpath issue? Or does something have to be installed in those other cluster nodes?