I really like Open-MPI and its Modular Component Architecture.
The --mca parameters are so useful for learning and testing things !

So here are my questions.

I know that the default point-to-point messaging layer is ob1
(the Obi-Wan Kenobi PML). I know that there is also the PML
cm (the Connor MacLeod PML).

From what I understand, the force is strong with Obi-Wan Kenobi, so he
can use various byte transfer layers (BTLs).
And there can be only one highlander (probably Connor MacLeod) so
when I use the MTL psm, I can not use any of the BTLs because Connor
MacLeod can only be alone at the end.

But what about the PML csum ?

What exactly is the PML csum (checksum) doing ?

Which code is the PML csum using for actually transferring stuff between
MPI ranks ? BTLs or MTLs or something else or nothing ?

I have searched the web a little but have not found much about it.

If I use the MTL psm, can the PML csum be used to detect message
corruption ? I guess the answer is no because csum is not Connor MacLeod.

I have read that when the MTL psm is used, all the Open-MPI BTL objects are

What code would the PML dr use to move bytes around should it
be stable and production-ready ?

And my final question:

When a company design a new interconnect, why choose the MTL architecture
(and thus the PML cm) instead of the BTL architecture (with the ob1 PML) ?

It seems to me that ob1 and BTLs are mature and that BTLs self and sm are quite
useful and bug-free for what I know. New code should only do the case when the two
MPI processes are on different nodes, right ?

Thank you !

Sébastien Boisvert

p.s.: I found the silly names here -> http://www.open-mpi.org/community/lists/devel/2008/05/3925.php