On 7 September 2010 17:08, Allen Zhao <a.z...@gtisoft.com> wrote:
>  Hi, All,
>
> A newbie question:
>
> Suppose that I have a main executable (a non-MPI code, which just
> dynamically loaded a named share library), and I do compile the shared
> library with mpi-gcc. This way, when the main executable loads the shared
> library, what is going to happen?
>

Should work just fine. This is the way I use many MPI-based libs and
MPI itself from Python. However, make sure you dlopen() libmpi.so with
mode RTLD_GLOBAL, or things can co bad (this is the case with
OpenMPI).

> Can I parallel this application without calling MPI_Init() inside the main
> code, instead, I call MPI_Init() when the shared library is loaded by the
> main executable?

Of course.

> Will it then be able to run in parallel?

Unlikely. But you could use MPI_Comm_spawn() to spawn a new
application, then your main sequential code "chats" to the child
parallel app using MPI calls.

> If this scenario
> is possible, when should I call MPI_Finalize()?
>

When you know you will not use MPI any more. Perhaps you could
register a finalizer using atexit()...


-- 
Lisandro Dalcin
---------------
CIMEC (INTEC/CONICET-UNL)
Predio CONICET-Santa Fe
Colectora RN 168 Km 472, Paraje El Pozo
Tel: +54-342-4511594 (ext 1011)
Tel/Fax: +54-342-4511169

Reply via email to