This topic was raised on the mailing list quite a few times. There is
a major difference between the PSM and the MX support. For PSM there
is just an MTL, which makes everything a lot simpler. The problem with
MX is that we have an MTL and a BTL. In order to figure out which one
to use, we have to call the init function and this function initialize
MX. The MTL use the default values for this, while the BTL give some
hints to the MX library (about how to behave based on the support
level we want, i.e. such as who will deal with shared memory or self
communications). As there can be only one MX initialization, as the
MTL initialize first, the BTL will always get a wrongly initialized MX
library (which can generate some performance problems).
What Brian describe is the best compromise we manage to find few
months ago. If you want to get the MX CM to run, you will have to
clearly specify on the command line --mca pml cm. All other MTL will
have the behavior described on the README.
On Jan 13, 2009, at 20:18 , Brian Barrett wrote:
> On Jan 13, 2009, at 5:48 PM, Patrick Geoffray wrote:
>> Jeff Squyres wrote:
>>> Gaah! I specifically asked Patrick and George about this and they
>>> said that the README text was fine. Grr...
>> When I looked at that time, I vaguely remember that _both_ PMLs
>> were initialized but CM was eventually used because it was the last
>> one. It looked broken, but it worked in the end (MTL was used with
>> CM PML). I don't know if that behavior changed since.
> I just tested 1.3rc4 with MX and it uses the btl by default. The
> reason is the cm init lowers the priority to 1 unless the MTL that
> loaded is psm, in which case it stays at the higher default of 30.
> It's a fairly easy fix, I think. But the last time this was
> discussed people in the group had objections to using the MTL by
> default with MX.
> devel mailing list