ATUALIZAÇÃO: depois qsub muitas vezes notei que quando o nome do host é opt ### parece funcionar, mas para outros nós em que o hostname é de topologia diferente int ###, isso não acontece. Eu discuti isso com o gerenciador de cluster e é isso que ele disse "De alguma forma, essa biblioteca só foi instalada nos nós opt * e não nos outros. Isso não deveria acontecer (a instalação em todos os nós foi projetada para ser idêntica) Está consertado agora. " Ele funciona bem agora e não há necessidade de setenv PATH ou LD_LIBRARY_PATH.
Eu escrevi um script CSH que executa um aplicativo Java chamado fiji-linux64. Eu executei com êxito o script CSH em um nó de cluster dedicado à compilação de código, mas o mesmo script falha quando enviado como um trabalho (qsub) para o cluster e é enviado para um dos muitos nós disponíveis. Eu recebo o seguinte erro no arquivo de log:
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)
Eu então pensei que poderia precisar definir as variáveis de ambiente PATH e LD_LIBRARY_PATH, então fiz echo $ PATH e eco $ LD_LIBRARY_PATH no computador de cluster que funcionou e adicionei esses caminhos ao script csh I qsub, como mostrado abaixo:
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
No entanto, mesmo depois de definir as variáveis PATH e LD_LIBRARY_PATH, ainda recebo o mesmo erro acima. Isto é um problema de classpath? Ou alguma coisa precisa ser instalada nesses outros nós do cluster?