2012-07-06 29 views
5

Estoy tratando de ejecutar mi programa utilizando el programador de torsión usando mpi run. Aunque en mi archivo de PBS me carga toda la biblioteca porCargando biblioteca compartida en open-mpi/mpi-run

export LD_LIBRARY_PATH=/path/to/library 

sin embargo, produce un error decir

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

supongo error está en LD_LIBRARY_PATH variable no establecer en todos los nodos. ¿Cómo lo haría funcionar?

+0

¿Podría publicar su script de PBS aquí? – chrisaycock

Respuesta

16

LD_LIBRARY_PATH no se exporta automáticamente a procesos MPI, generados por mpirun. Debe utilizar

mpirun -x LD_LIBRARY_PATH ... 

para impulsar el valor de LD_LIBRARY_PATH. También asegúrese de que la ruta especificada existe en todos los nodos del clúster y que libarmadillo.so.3 está disponible en todas partes.

+2

Si Open MPI se compiló con soporte Torque/TM nativo, la LD_LIBRARY_PATH (y el resto del entorno) se debe propagar a todos los nodos en la asignación automáticamente. Si Open MPI no se creó con el soporte nativo de Torque, supongo que está utilizando rsh/ssh para iniciar, en cuyo caso la cláusula "-x LD_LIBRARY_PATH" es necesaria. De hecho, aconsejaría reconstruir OMPI con soporte Torque/TM; es mejor que el soporte de rsh/ssh por múltiples razones. –

+0

GRACIAS. ESTABA CONDUCIENDO CON ESTA MIERDA ... Exportar el LD_LIBRARY_PATH se supone que permite que los procesos secundarios usen esas variables, pero resulta que no lo hace. –

+0

@GregK. exportar solo funciona para procesos lanzados en el mismo nodo donde 'mpiexec' se ejecuta ya que son procesos secundarios de este último. Los procesos iniciados en nodos remotos son hijos del respectivo daemon ORTE shepherd y no heredan directamente el entorno de 'mpiexec', sino solo el entorno que se reenvía y que el daemon establece. (Podría estar equivocado, Jeff Squyres sabe mejor) –

3

En algunos sistemas, su entorno no siempre se propaga a través del mpirun. Debe establecer todas esas variables en su archivo .bashrc.

Cuestiones relacionadas