Wow, that's great.

 You mean that PMPI_* is totally/functionally similar to MPI_*, right ?

 Thank you so much for your instructions.

Le , Duy Khanh
Cellphone: (+84)958521704
Faculty of Computer Science and Engineering
Ho Chi Minh city University of Technology , Viet Nam



--- On Wed, 5/13/09, Jeff Squyres <jsquy...@cisco.com> wrote:

From: Jeff Squyres <jsquy...@cisco.com>
Subject: Re: [OMPI users] How to override MPI functions such as MPI_Init, 
MPI_Recv...
To: "Open MPI Users" <us...@open-mpi.org>
List-Post: users@lists.open-mpi.org
Date: Wednesday, May 13, 2009, 11:43 AM

You could just define your own library with the same signatures as official MPI 
functions, and link that into MPI applications.  Under the covers, you invoke 
the PMPI_* equivalents of each function.  Lots of profiling and analysis tools 
work this way.  For example:

int MPI_Init(int argc, char **argv)
{
    /* do whatever you want to do here */
    ret = PMPI_Init(argc, argv);
    /* do whatever you want to do here */
    return ret;
}

compile/link that into libextra_mpi_stuff.a.  Then compile your app with:

   mpicc my_mpi_app.c -lextra_mpi_stuff

and then when mpi_mpi_app.c calls MPI_Init(), it'll call *your* MPI_Init.  Your 
MPI_Init will do whatever it wants to, and invoke PMPI_Init() (i.e., the "real" 
init function) and return back to the user.

This is the profiling interface of MPI.


On May 13, 2009, at 1:20 PM, Le Duy Khanh wrote:

> Dear,
> 
>  I intend to override some MPI functions such as MPI_Init, MPI_Recv... but I 
>don't want to dig into OpenMPI source code.Therefore, I am thinking of a way 
>to create a lib called "mympi.h" in which I will #include "mpi.h" to override 
>those functions. I will create a new interface with exactly the same 
>signatures like MPI_Init (because users are familiar with those functions). 
>However, the problem is that I don't know how to override those functions 
>because as I know, C/C++ doesn't allow us to override functions (only overload 
>them).
> 
>  Could you please show me how to override OMPI functions but still keep the 
>same function names and signatures?
> 
>  Thank you so much for your time and consideration
> 
> Le , Duy Khanh
> Cellphone: (+84)958521704
> Faculty of Computer Science and Engineering
> Ho Chi Minh city University of Technology , Viet Nam
> 
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users


--Jeff Squyres
Cisco Systems

_______________________________________________
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users



      

Reply via email to