Hi George ,
Thank you very much!
i really had saw these functions before ,but it's a long time ,i can't find
it !
Thank you very much,you save me a lot of time.

Thanks & Regards,
Yaohui Hu

On Wed, Mar 17, 2010 at 1:28 PM, George Bosilca <bosi...@eecs.utk.edu>wrote:

> Yaohui,
>
> The callback functions are registered by any modules that can handle
> network communications. In your specific case I would guess it is the PML.
> Look in mca/pml/ob1/pml_ob1.c starting from line 364 to see what callbacks
> are registered by OB1.
>
>  george.
>
> On Mar 17, 2010, at 01:22 , hu yaohui wrote:
>
> > Hi Geogre,
> > Thank you very much!
> > i know ,it's really a receive callback in this send function
> mca_btl_self_send,what i want to know is where  this callback function(line
> 303).
> > <snip>
> > 303    reg = mca_btl_base_active_message_trigger + tag;
> > 304    reg->cbfunc( btl, tag, des, reg->cbdata );
> > </snip>
> > mapped to,where this function is initialized.in which file,which
> function,the mca_bml_r2_register was called.
> >
> > Thanks & Regards
> > Yaohui
> >
> > On Wed, Mar 17, 2010 at 12:42 PM, George Bosilca <bosi...@eecs.utk.edu>
> wrote:
> > Yoahui,
> >
> > The self component is special. While is does behave as a "normal" BTL, it
> takes a lot of shortcuts as all operations are in the memory of a single
> process. However, as the simplest BTLs in Open MPI, I guess it is a good
> starting point.
> >
> > As stated previously, the self BTL exhibit a lot of differences compared
> with the others BTL. For your case, in the self BTL the send function
> trigger the receiver callback, as there is other simple way to drain the
> "network". This explain why we compute the btl_active_message_callback_t
> directly in the send function. Usually, this is done on the progress
> function, once some data have been extracted from the network. Basically,
> everything in the mca_btl_self_send function starting from the "/* upcall
> */" comment is the receive operation.
> >
> >  george.
> >
> > On Mar 17, 2010, at 00:30 , hu yaohui wrote:
> >
> > > Hi George,
> > > what i want to do is to modify the self component to meet my needs,i
> just want to modify the send function of the self component to test whether
> my implemented send function ,which based on some emulation platform, is
> right.so i copied all the self component code,modified the component name to
> mine ,the i wanted to subsitude its send and receive to my implemented
> send/receive function.i dont know whether this is right,if not ,or you need
> more information ,please let me know.
> > >
> > > Thanks & Regards
> > > Yaohui Hu .
> > >
> > > On Wed, Mar 17, 2010 at 12:05 PM, George Bosilca <bosi...@eecs.utk.edu>
> wrote:
> > > Yaohui,
> > >
> > > The whole infrastructure at the level where you're looking is similar
> to Active Messages. The register function is used to register callback for a
> specific tag. A tag is a uint8_t, and thus there are 256 callbacks possible.
> However, there are some rules regarding which level is allowed to register
> callbacks in a specific range, in order to avoid conflict between several
> modules loaded in same time.
> > >
> > > Anyway, as far as I understood you're looking at writing a new BTL.
> Every time a message is drained from the network, the BTL is supposed to
> know that tag it was send to and trigger the corresponding callback (this
> only on the receiver side). How this "tag" is moved around depends on the
> BTL capabilities. Some will have to push it explicitly through the network
> (TCP as an example), while others have other means to move it around (for MX
> this tag is part of the 64 bits key used for each message). Therefore, the
> first thing you should make sure is that you really have a way to retrieve
> this tag on the receiver side. Once you have the tag and the content of the
> message, you should call the callback corresponding to the tag (using the
> simple addition you noticed), and pass the correct arguments. This should at
> least let you start the eager protocol.
> > >
> > >  george.
> > >
> > > On Mar 16, 2010, at 23:22 , hu yaohui wrote:
> > >
> > > > Hi Jeff & All
> > > > Yes,you are right,i was just a little dizzy then. i need to modify
> the send function of component self in btl framework.
> > > > i just met a problem right now.
> > > > when i browse the function
> mca_btl_self_send(~/ompi/mca/btl/self/btl_self.c),i think it use this to
> send the data
> > > > <snip>
> > > > 303    reg = mca_btl_base_active_message_trigger + tag;
> > > > 304    reg->cbfunc( btl, tag, des, reg->cbdata );
> > > > </snip>
> > > > i trace through the "mca_btl_base_active_message_trigger" to the
> function where it get its value ,then i find function
> mca_bml_r2_register(~/ompi/mca/bml/bml_r2.c),it like this:
> > > > <snip>
> > > > 728    mca_btl_base_active_message_trigger[tag].cbfunc = cbfunc;
> > > > 729    mca_btl_base_active_message_trigger[tag].cbdata = data;
> > > > <snip>
> > > > when i trace through mca_bml_r2_register ,in the same file,i get this
> structure:
> > > > <snip>
> > > > mca_bml_r2_module_t mca_bml_r2 = {
> > > >     {
> > > >         &mca_bml_r2_component,
> > > >         mca_bml_r2_add_procs,
> > > >         mca_bml_r2_del_procs,
> > > >         mca_bml_r2_add_btl,
> > > >         mca_bml_r2_del_btl,
> > > >         mca_bml_r2_del_proc_btl,
> > > >         mca_bml_r2_register, <------------------------------------
> > > >         mca_bml_r2_register_error,
> > > >         mca_bml_r2_finalize,
> > > >         mca_bml_r2_ft_event
> > > >     }
> > > >
> > > > };
> > > > <snip>
> > > > after this ,i find the place where mca_bml_r2 is initialized,but i
> cannt find anything related to mca_bml_r2_register.i just want to know reg =
> mca_btl_base_active_message_trigger + tag;
> > > > really is.and i want to modify the send function of self ,is this the
> right way? or you can tell me the right way to modify the send function of
> self component.
> > > >
> > > > Thanks & Regards
> > > > Yaohui Hu
> > > >
> > > > On Wed, Mar 17, 2010 at 12:52 AM, Jeff Squyres <jsquy...@cisco.com>
> wrote:
> > > > On Mar 16, 2010, at 9:45 AM, hu yaohui wrote:
> > > >
> > > > > it just said,i had a wrong command format,when i use mpirun
> --help,i really
> > > > > didn't find the --mca parameter.why the tcp FAQ part list these
> command lines,
> > > > > but it cann't execute successfully on my machine.Is there any
> another way to control the specific
> > > > > btl components to be used?
> > > >
> > > > Make sure you're using the right mpirun -- you might have multiple
> installed on your machine.
> > > >
> > > > OMPI's "mpirun --help" definitely includes a description of the --mca
> parameter:
> > > >
> > > >   -mca|--mca <arg0> <arg1>
> > > >                         Pass context-specific MCA parameters; they
> are
> > > >                         considered global if --gmca is not used and
> only
> > > >                         one context is specified (arg0 is the
> parameter
> > > >                         name; arg1 is the parameter value)
> > > >
> > > > --
> > > > Jeff Squyres
> > > > jsquy...@cisco.com
> > > > For corporate legal information go to:
> > > > http://www.cisco.com/web/about/doing_business/legal/cri/
> > > >
> > > >
> > > > _______________________________________________
> > > > devel mailing list
> > > > de...@open-mpi.org
> > > > http://www.open-mpi.org/mailman/listinfo.cgi/devel
> > > >
> > > > _______________________________________________
> > > > devel mailing list
> > > > de...@open-mpi.org
> > > > http://www.open-mpi.org/mailman/listinfo.cgi/devel
> > >
> > >
> > > _______________________________________________
> > > devel mailing list
> > > de...@open-mpi.org
> > > http://www.open-mpi.org/mailman/listinfo.cgi/devel
> > >
> > > _______________________________________________
> > > devel mailing list
> > > de...@open-mpi.org
> > > http://www.open-mpi.org/mailman/listinfo.cgi/devel
> >
> >
> > _______________________________________________
> > devel mailing list
> > de...@open-mpi.org
> > http://www.open-mpi.org/mailman/listinfo.cgi/devel
> >
> > _______________________________________________
> > devel mailing list
> > de...@open-mpi.org
> > http://www.open-mpi.org/mailman/listinfo.cgi/devel
>
>
> _______________________________________________
> devel mailing list
> de...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>

Reply via email to