Hi,
I have a server process that creates a single child using -
MPI_Comm_spawn(progName, argv, 1, MPI_INFO_NULL, 0, MPI_COMM_WORLD, &child,
err);
and it works successfully.
However, when the server tries to create two or more processes using -
MPI_Comm_spawn(progName, argv, 2, MPI_INFO_NULL, 0, MPI_COMM_WORLD, &child,
err);
LAM prints out the following and aborts -
MPI 2 C++ exception throwing is disabled, MPI::errno has the error code
spawn : Failed to complete a MPI operation.
I checked the universe_size attribute on the COMM_WORLD. It returns the
default 4. The last argument to Spawn, 'err', is an array of 10 integers. I
tried the MPI_ERRCODES_IGNORE in vain.
My environment is Linux, kernel 2.4.9.
LAM configure line:
===================
$ ./configure --prefix=/proj/lsv2/lam-6.5.9 --without-fc --with-threads
--with-exceptions
This build completed without errors.
The server process is intialized with thread support as:
========================================================
start()
{
...
int granted;
MPI_Init_thread(0, NULL, MPI_THREAD_MULTIPLE, &granted);
// lam presently does not support mpi_thread_multiple. it only returns
// mpi_thread_serialized - we wrap every mpi call within a mutex.
assert(granted >= MPI_THREAD_SERIALIZED);
MPI::ERRORS_THROW_EXCEPTIONS.init();
MPI::COMM_WORLD.Set_errhandler(MPI::ERRORS_THROW_EXCEPTIONS);
}
I couldn't get the exception handling to print any information on what the
problem could be. Can someone throw some light?
thanks.
krishna.
__________________________________
Do you Yahoo!?
The New Yahoo! Search - Faster. Easier. Bingo.
http://search.yahoo.com
|