2012-07-06 18 views
5

Próbuję uruchomić mój program za pomocą harmonogramu momentu przy użyciu mpi run. Choć w moim pliku pbs załadować całą bibliotekęŁadowanie udostępnionej biblioteki w open-mpi/mpi-run

export LD_LIBRARY_PATH=/path/to/library 

jeszcze daje błąd tj

error while loading shared libraries: libarmadillo.so.3: 
cannot open shared object file: No such file or directory. 

Chyba błąd tkwi w zmiennej LD_LIBRARY_PATH nie ustawiony we wszystkich węzłach. Jak mogę to sprawić?

+0

Czy mógłbyś umieścić tutaj swój skrypt PBS? – chrisaycock

Odpowiedz

16

LD_LIBRARY_PATH nie jest automatycznie eksportowany do procesów MPI, spawnowanych przez mpirun. Powinieneś użyć wartości , aby przesłać wartość LD_LIBRARY_PATH. Upewnij się również, że podana ścieżka istnieje we wszystkich węzłach w klastrze i że libarmadillo.so.3 jest dostępna wszędzie.

+2

Jeśli Open MPI został skompilowany z natywnym wsparciem Torque/TM, LD_LIBRARY_PATH (i reszta środowiska) powinna zostać automatycznie propagowana do wszystkich węzłów w przydziale. Jeśli Open MPI nie został zbudowany z natywną obsługą Torque, to domyślam się, że używasz rsh/ssh do uruchomienia, w takim przypadku wymagana jest "-x LD_LIBRARY_PATH". Naprawdę doradziłbym ponowne zbudowanie OMPI z obsługą Torque/TM; jest lepsza niż obsługa rsh/ssh z wielu powodów. –

+0

DZIĘKUJEMY. JA BYŁEM JAZDY Z TEGO SHIT .... Eksportowanie LD_LIBRARY_PATH ma pozwolić procesom potomnym używać tych zmiennych, ale okazuje się, że tak nie jest. –

+0

@GregK. eksportowanie działa tylko w przypadku procesów uruchomionych w tym samym węźle, w którym działa 'mpiexec', ponieważ są to procesy potomne tego ostatniego. Procesy uruchamiane na zdalnych węzłach są dziećmi odpowiedniego demona pasterza ORTE i nie dziedziczą bezpośrednio środowiska 'mpiexec', ale tylko środowiskiem, do którego zostaje przekazany i dodatkowo ustawiony przez demona. (Mogę się mylić, Jeff Squyres wie lepiej) –

3

W niektórych systemach środowisko nie zawsze jest propagowane za pośrednictwem mpirun. Powinieneś ustawić wszystkie te zmienne w swoim pliku .bashrc.