Hi Jeff, Hi all, The build system, at least, those things I've discovered, is very good, isolating every part of the subsystems (BTL, OPAL, and so on)... Perhaps an experience with autoconf and automake before this project make me fell comfortable with it.
Some information that I'm looking for is about the BTL subsystem. I'm trying to understand what's the path of the TCP BTL code and how to replicate this path to the new implementation of LLC. That's because these implementation of LLC acts like a stream socket, which TCP is the better example I have ;-) Let me explain what I'm looking for: In btl.h we have some comments about the inicialization, selection and progress process envolving the entire BTL, but I've not found what's the functionality needed to implement a minimal BTL module. Understanding this I can understand the whole work done by BTL. What I need? To know how and what functions is necessary to perform a minimalist implementation of a new btl, registering it and make it usable. As I've said in another email, I'm basing mine LLC BTL code on the TCP BTL code, then the following examples/questions will came from the TCP code. Trying to understand the whole sequence (initialization, selection, progress and finalization) I've found the following sequence of functions (in TCP) that I've separated in the above parts: (please, fell free to correct, I'm just pointing what I've experienced): 1) Inicialization component open component init component create instances btl tcp create component create_listen btl tcp setsocket options component exchange btl tcp add procs endpoint construct ( executed * number of endpoints ) btl tcp del procs btl tcp register 1.2) component exchange ??? _____________server? side: btl tcp alloc btl tcp send endpoint send endpoint start connect btl tcp setsock options *_* endpoint send handler endpoint complete connect endpoint send connect ack endpoint send blocking endpoint recv handler endpoint recv connect ack endpoint recv blocking endpoint connected _____________client? side: component recv_handler component accept btl tcp setsock options btl tcp recv handler endpoint accept endpoint close endpoint send connect ack endpoint send blocking endpoint connected 1.3) ring stablished, component exchange _____________server? side _loop endpoint send handler btl tcp frag send endpoint recv handler btl tcp frag recv _until process end, goto loop _____________client? side: _loop endpoint recv handler btl tcp frag receive btl tcp alloc btl tcp send endpoint send _until process end, goto loop 2. transfering data from one node to another 2.1 tcp packet?? send _start btl tcp prepare src btl tcp send endpoint send btl tcp frag send btl tcp free _end 2.2 tcp packet?? receive _start endpoint recv handler btl tcp frag receive _end, looping until packet ends 3)ending connections _____________ both sides btl tcp finalize _loop endpoint close endpoint destruct _goto loop until there is no endpoint to close component close This is the sequence I have found executing the TCP BTL code. Please fell free to correct the place of sections. I'm experiencing some problems with LLC code that can be watched if I know in which order the code of BTL TCP occurs. Many Thanks, and sorry by the long mail, Cheers, LEslie 2006/1/3, Jeff Squyres <jsquy...@open-mpi.org>: > In addition to what Brian said, do you have any specific questions > about Open MPI's build system, the BTL, etc.? > > More specifically: feel free to ping us here about code-level kinds > of questions.