Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: [OMPI users] Fails to run "MPI_Comm_spawn" on remote host
From: Jaison Paul (jmulerik_at_[hidden])
Date: 2009-09-13 18:45:03


I am trying to create a library using OpenMPI for an SOA middleware
for my Phd research. "MPI_Comm_spawn" is the one I need to go for. I
got a sample example working, but only on the local host. Whenever I
try to run the spawned children on a remote hosts, parent cannot
launch children on remote hosts and I get the following error message:

------------------BEGIN MPIRUN AND ERROR MSG------------------------
mpirun --prefix /opt/mpi/ompi-1.3.2/ --mca btl_tcp_if_include eth0 -
np 1 /home/jaison/mpi/advanced_MPI/spawn/manager
Manager code started - host headnode -- myid & world_size 0 1
Host is: myhost
WorkDir is: /home/jaison/mpi/advanced_MPI/spawn/lib

There are no allocated resources for the application
that match the requested mapping:
Verify that you have mapped the allocated resources properly using the
--host or --hostfile specification.
A daemon (pid unknown) died unexpectedly on signal 1  while  
attempting to
launch so we are aborting.
There may be more information reported by the environment (see above).
This may be because the daemon was unable to find all the needed shared
libraries on the remote node. You may set your LD_LIBRARY_PATH to  
have the
location of the shared libraries on the remote nodes and this will
automatically be forwarded to the remote nodes.
mpirun: clean termination accomplished
--------------------------END OF ERROR  
I use the reserved keys - 'host' & 'wdir' - to set the remote host  
and work directory using MPI_Info. Here is the code snippet:
--------------------------BEGIN Code  
   MPI_Info hostinfo;
   MPI_Info_set(hostinfo, "host", "myhost");
   MPI_Info_set(hostinfo, "wdir", "/home/jaison/mpi/advanced_MPI/ 
   // Checking for 'hostinfo'. The results are okay (see above)
   int test0 = MPI_Info_get(hostinfo, "host", valuelen, value, &flag);
   int test = MPI_Info_get(hostinfo, "wdir", valuelen, value1, &flag);
   printf("Host is: %s\n", value);
   printf("WorkDir is: %s\n", value1);
   sprintf( launched_program, "launched_program" );
   MPI_Comm_spawn( launched_program, MPI_ARGV_NULL , number_to_spawn,
                   hostinfo, 0, MPI_COMM_SELF, &everyone,
                   MPI_ERRCODES_IGNORE );
--------------------------END OF Code  
I've set the LD_LIBRARY_PATH correctly. Is "MPI_Comm_spawn"  
implemented in open mpi (I am using version 1.3.2)? If so, where am I  
going wrong? Any input will be very much appreciated.
Thanking you in advance.