Richard Graham wrote:
> Let me start the e-mail conversation, and see how far we get.
> Goal: The goal several of us have is to be able to use the btls
> outside of the MPI layer in Open MPI. The layer itself is generic, w/o
> specific knowledge of Upper Level Protocols, so is well suited for
> this sort of use.
> Technical Approach: What we have suggested is to start the process
> with the Open MPI code base, and make it independent of the mpi-layer
> (which it is now), and the run-time layer.
> Before we get into any specific technical details,
> the first question I have is are people totally opposed to the notion
> of making the btls independent of MPI and the run-time ?
> This does not mean that it cant be used by it, but that there are
> well defined abstraction layers, i.e., are people against the goal in
> the first place ?
I am not against the idea of separating the BTLs out from OMPI. However,
it would help to know what we are really trying to accomplish this and
why using MPI is a non-starter. Is the issue to heavyweight of a
protocol or is it the infrastructure. I guess one question I have is if
we separate BTLs from OMPI do we lose valuable information needed to
establish and maintain the connections and could we run into some
chicken/egg problems. I assume the last issue is only of concern if we
remove the orte/opal dependencies.
> What are alternative suggestions to the technical approach ?
The technical approach is really the implementation logistics, right?
That is how do we apply these changes to the trunk such that they get in
asap as to not require significant ongoing maintenance by the
implementors and not disturb the community members that are doing other
Branch and patch - protects the community members the most until it
comes to the flag day of pushing the patch. But as you mention below
this has a heavy cost on the implementors and eventually a potentially
large blackout period.
Incremental approach - If we believe this project will be large I
success we try and map out all the different pieces and try and figure
out ways we can compartmentalize each piece such that they can be
putback separately from each other. This is similar to the branch and
patch approach except we try and do several patchs that each can be
reasonably tested and putback separate from the others. The hope is that
each patch is not that large and thus easier for the implementors to
maintain and merge. But this will require a more thought out plan as to
how things are done which might be detrimental to any agile development.
Scorched earth - Map a calendar time frame that we say from X to Y the
trunk will be under major renovation to move out the BTLs from OMPI.
This help the BTL movement developers but could put any other
development at risk. It also commits us completely to doing the BTL
separation so if things start falling a part it will definitely delay
the next release.
I personally prefer the Incremental Approach but we will need to have a
very well thought out plan to get this to work. This approach could
devolve into the other two approaches without careful planning, which I
don't believe anyone would really like to to see.
> One suggestion has been to branch and patch. To me this is a long-term
> maintenance nightmare.
What are peoples thoughts here ?
> devel mailing list