2

ОБНОВЛЕНИЕ: после qsub я много раз замечал, что когда имя хоста - opt ###, оно работает, но для других узлов, в которых имя хоста имеет другую топологию int ###, - нет. Я обсуждал это с менеджером кластера, и вот что он сказал: «Каким-то образом эта библиотека была установлена только на узлах opt *, а не на других. Этого не должно быть (установка на всех узлах должна быть одинаковой). Теперь это исправлено. "Теперь оно работает нормально, и нет необходимости в setenv PATH или LD_LIBRARY_PATH.

Я написал CSH-скрипт, который запускает Java-приложение под названием fiji-linux64. Я успешно выполнил сценарий CSH в узле кластера, предназначенном для компиляции кода, но тот же сценарий завершается ошибкой при отправке в качестве задания (qsub) в кластер и отправляется на один из многих доступных узлов. Я получаю следующую ошибку в файле журнала:

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)

Затем я подумал, что мне может потребоваться установить переменные среды PATH и LD_LIBRARY_PATH, поэтому я сделал echo $ PATH и echo $ LD_LIBRARY_PATH на работающем компьютере кластера и добавил эти пути в сценарий csh, который я qsub, как показано ниже:

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

Однако даже после установки переменных PATH и LD_LIBRARY_PATH я все равно получаю ту же ошибку, что и выше. Это проблема с classpath? Или что-то должно быть установлено в этих других узлах кластера?

0