As long as we don't go back to libptmalloc2 linked into libmpi, I don't have strong objections.

Brian


On Thu, 3 Jul 2008, Jeff Squyres wrote:

WHAT: make mpi_leave_pinned=1 by default when a BTL is used that would benefit from it (when possible; 0 when not, obviously)

WHY: Several reasons:
- we continually get beat up because of "lower performance" on benchmarks by default (I get beat up, at least ;-) ) - ptmalloc is no longer compiled in user apps by default, but mallopt may be available
- ptmalloc has been linked in on many platforms by default for a long time
- our ptmalloc settings were such that memory was rarely returned to the OS -- quite similar to mallopt
- very few people have complained about the above policy
- therefore, it may be ok to mallopt by default if there is a device in the run that would benefit from it

WHERE: openib BTL, MPI runtime directory

WHEN: before v1.3 ships

TIMEOUT: Fri, July 11, 2008

----------------------

I'm assuming that this topic will generate a fair amount of conversation. :-)

I'm basically getting tired of people complaining that OMPI has lower default benchmark performance on OpenFabrics networks. I don't mind explaining the mpi_leave_pinned flag; what I do mind is that customers and users who refuse to use it (which is at least sort of understandable). I also mind that other MPI implementations (sometimes knowingly) compare Open MPI without leave_pinned to their implementations with leave_pinned. Explaining it after the fact is never quite as compelling when there is a big poster on a show floor showing MPI XYZ with great ping pong performance and OMPI with lousy ping pong performance.

Note that:

- OMPI is the only MPI that doesn't do the "leave pinned" trick by default on OpenFabrics networks - I know that pingpong benchmarks are meaningless. Customers and users don't care. We cannot move this mountain. - I know that leave_pinned is frequently meaningless to real apps (although Torsten likes to argue otherwise -- and he's got at least some real-world data points that show otherwise :-) ). - I know that it's only OpenFabrics networks that require this setting and that many people think OpenFabrics is broken because of this. Let's leave such religious arguments at the door; I'm not happy we have to do it either, but that's not the issue here.

So my proposal is to enable mpi_leave_pinned by default:

- if there's a BTL in the app that would benefit (i.e., openib). This would likely entail adding some clever callback from the openib BTL init, or somesuch (I have not thought this through yet).
- mallopt or ptmalloc is available

Comments?


Reply via email to