Thanks a lot! i got it.Could you introduce some more materials for me to get better understood of the following functions: (1):/ompi/mca/pml/ob1/pml_ob1.c/mca_pml_ob1_add_procs (2):/ompi/mca/bml/r2/bml_r2.c/mca_bml_r2_add_procs (3):/ompi/mca/btl/tcp/btl_tcp.c/mca_btl_tcp_add_procs especially the second function, it's really hard to totally understand these functions. Thanks & Regards Yaohui Hu On Thu, Feb 25, 2010 at 10:34 AM, Jeff Squyres <jsquy...@cisco.com> wrote:
> On Feb 24, 2010, at 12:16 PM, Aurélien Bouteiller wrote: > > > btl is the component responsible for a particular type of fabric. > Endpoint is somewhat the instantiation of a btl to reach a particular > destination on a particular fabric, proc is the generic name and properties > of a destination. > > A few more words here... > > btl = Byte Transfer Layer. It's our name for the framework that governs > one flavor of point-to-point communications in the MPI layer. Components in > this framework are used by the ob1 and csum PMLs to effect MPI > point-to-point communications (they're used in other ways, too, but let's > start at the beginning here...). There are several btl components: tcp, sm > (shared memory), self (process loopback), openib (OpenFabrics), ...etc. > Each one of these effects communications over a different network type. > For purposes of this discussion, "component" == "plugin". > > The btl plugin is loaded into an MPI process and its component open/query > functions are called. If the btl component determines that it wants to run, > it returns one or more modules. Typically, btls return a module for every > interface that they find. For example, if the openib module finds 2 > OpenFabrics device ports, it'll return 2 modules. > > Hence, we typically describe components as analogous to a C++ class; > modules are analogous to instances of that C++ class. > > Note that in many BTL component comments and variables/fields, they > typically use shorthand language such as, "The btl then does this..." Such > language almost always refers to a specific module of that btl component. > > Modules are marshalled by the bml and ob1/csum to make an ordered list of > who can talk to whom. > > Endpoints are data structures used to represent a module's connection to a > remote MPI process (proc). Hence, a BTL component can create multiple > modules; each module can create lots of endpoints. Each endpoint is tied to > a specific remote proc. > > > Aurelien > > > > Le 24 févr. 2010 à 09:59, hu yaohui a écrit : > > > > > Could someone tell me the relationship between proc,endpoint and btl? > > > thanks & regards > > > _______________________________________________ > > > 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 > > > > > -- > 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 >