Hi All,

I am waiting on some inputs on my query. I just wanted to know whether I can run dynamic child processes using 'MPI_Comm_spawn' on remote hosts? (in openmpi  1.3.2)). Has anyone did that successfully? Or OpenMPI hasnt implemented it yet?

Please help.


On 14/09/2009, at 8:45 AM, Jaison Paul wrote:


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 MSG-----------------------------------

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 Snippet-----------------------------------
  MPI_Info hostinfo;
  MPI_Info_set(hostinfo, "host", "myhost");
  MPI_Info_set(hostinfo, "wdir", "/home/jaison/mpi/advanced_MPI/spawn/lib");

  // 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 Snippet-----------------------------------

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.


users mailing list