If you are going to use OMPI via JNI, then you have to load the OMPI library 
from within your code. This is a little tricky from Java as OMPI by default 
builds as a set of dynamic libraries, and each component is a dynamic library 
as well. The solution is to either build OMPI static, or to use lt_dladvise and 
friends to ensure the load paths are followed.


On Mar 12, 2014, at 3:40 AM, Bibrak Qamar <bibr...@gmail.com> wrote:

> Hi all,
> 
> I am writing a new device for MPJ Express that uses a native MPI library for 
> communication. Its based on JNI wrappers like the original mpiJava. The 
> device works fine with MPICH3  (and MVAPICH2.2). Here is the issue with 
> loading Open MPI 1.7.4 from MPJ Express.
> 
> I have generated the following error message from a simple JNI to MPI 
> application for clarity purposes and also to regenerate the error easily. I 
> have attached the app for your consideration.
> 
> 
> [bibrak@localhost JNI_to_MPI]$ mpirun -np 2 java -cp . 
> -Djava.library.path=/home/bibrak/work/JNI_to_MPI/ simpleJNI_MPI
> [localhost.localdomain:29086] mca: base: component_find: unable to open 
> /home/bibrak/work/installs/OpenMPI_installed/lib/openmpi/mca_shmem_mmap: 
> /home/bibrak/work/installs/OpenMPI_installed/lib/openmpi/mca_shmem_mmap.so: 
> undefined symbol: opal_show_help (ignored)
> [localhost.localdomain:29085] mca: base: component_find: unable to open 
> /home/bibrak/work/installs/OpenMPI_installed/lib/openmpi/mca_shmem_mmap: 
> /home/bibrak/work/installs/OpenMPI_installed/lib/openmpi/mca_shmem_mmap.so: 
> undefined symbol: opal_show_help (ignored)
> [localhost.localdomain:29085] mca: base: component_find: unable to open 
> /home/bibrak/work/installs/OpenMPI_installed/lib/openmpi/mca_shmem_posix: 
> /home/bibrak/work/installs/OpenMPI_installed/lib/openmpi/mca_shmem_posix.so: 
> undefined symbol: opal_shmem_base_framework (ignored)
> [localhost.localdomain:29086] mca: base: component_find: unable to open 
> /home/bibrak/work/installs/OpenMPI_installed/lib/openmpi/mca_shmem_posix: 
> /home/bibrak/work/installs/OpenMPI_installed/lib/openmpi/mca_shmem_posix.so: 
> undefined symbol: opal_shmem_base_framework (ignored)
> [localhost.localdomain:29086] mca: base: component_find: unable to open 
> /home/bibrak/work/installs/OpenMPI_installed/lib/openmpi/mca_shmem_sysv: 
> /home/bibrak/work/installs/OpenMPI_installed/lib/openmpi/mca_shmem_sysv.so: 
> undefined symbol: opal_show_help (ignored)
> --------------------------------------------------------------------------
> It looks like opal_init failed for some reason; your parallel process is
> likely to abort.  There are many reasons that a parallel process can
> fail during opal_init; some of which are due to configuration or
> environment problems.  This failure appears to be an internal failure;
> here's some additional information (which may only be relevant to an
> Open MPI developer):
> 
>   opal_shmem_base_select failed
>   --> Returned value -1 instead of OPAL_SUCCESS
> --------------------------------------------------------------------------
> [localhost.localdomain:29085] mca: base: component_find: unable to open 
> /home/bibrak/work/installs/OpenMPI_installed/lib/openmpi/mca_shmem_sysv: 
> /home/bibrak/work/installs/OpenMPI_installed/lib/openmpi/mca_shmem_sysv.so: 
> undefined symbol: opal_show_help (ignored)
> --------------------------------------------------------------------------
> It looks like orte_init failed for some reason; your parallel process is
> likely to abort.  There are many reasons that a parallel process can
> fail during orte_init; some of which are due to configuration or
> environment problems.  This failure appears to be an internal failure;
> here's some additional information (which may only be relevant to an
> Open MPI developer):
> 
>   opal_init failed
>   --> Returned value Error (-1) instead of ORTE_SUCCESS
> --------------------------------------------------------------------------
> --------------------------------------------------------------------------
> It looks like MPI_INIT failed for some reason; your parallel process is
> likely to abort.  There are many reasons that a parallel process can
> fail during MPI_INIT; some of which are due to configuration or environment
> problems.  This failure appears to be an internal failure; here's some
> additional information (which may only be relevant to an Open MPI
> developer):
> 
>   ompi_mpi_init: ompi_rte_init failed
>   --> Returned "Error" (-1) instead of "Success" (0)
> --------------------------------------------------------------------------
> *** An error occurred in MPI_Init
> *** on a NULL communicator
> *** MPI_ERRORS_ARE_FATAL (processes in this communicator will now abort,
> ***    and potentially your MPI job)
> [localhost.localdomain:29086] Local abort before MPI_INIT completed 
> successfully; not able to aggregate error messages, and not able to guarantee 
> that all other processes were killed!
> --------------------------------------------------------------------------
> It looks like opal_init failed for some reason; your parallel process is
> likely to abort.  There are many reasons that a parallel process can
> fail during opal_init; some of which are due to configuration or
> environment problems.  This failure appears to be an internal failure;
> here's some additional information (which may only be relevant to an
> Open MPI developer):
> 
>   opal_shmem_base_select failed
>   --> Returned value -1 instead of OPAL_SUCCESS
> --------------------------------------------------------------------------
> -------------------------------------------------------
> Primary job  terminated normally, but 1 process returned
> a non-zero exit code.. Per user-direction, the job has been aborted.
> -------------------------------------------------------
> --------------------------------------------------------------------------
> mpirun detected that one or more processes exited with non-zero status, thus 
> causing
> the job to be terminated. The first process to do so was:
> 
>   Process name: [[41236,1],1]
>   Exit code:    1
> --------------------------------------------------------------------------
> 
> 
> This is a thread that I found where the Open MPI developers were having 
> issues while integrating mpiJava into their stack.
> 
> http://mail-archives.apache.org/mod_mbox/hadoop-common-dev/201202.mbox/%3c5ea543bd-a12e-4729-b66a-c746bc789...@open-mpi.org%3E
> 
> I don't have better understanding of the internals of Open MPI, so my 
> question is how to use Open MPI using JNI wrappers? Any guidelines in this 
> regard?
> 
> Thanks
> Bibrak
> 
> <JNI_to_MPI.tar.gz>_______________________________________________
> devel mailing list
> de...@open-mpi.org
> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel
> Link to this post: 
> http://www.open-mpi.org/community/lists/devel/2014/03/14335.php

Reply via email to