The primary reason is for users - developing on laptops/desktop and doing 
development runs in oversubscribed mode.

The choice was few percent loss in performance for sock vs exponential cost for 
oversubscribed usage of nemesis [so we defaulted to sock].

I think we should preserve this behavior for at-least the debug builds. [i.e 
switch only optimized builds to nemesis]

In CI we do pay this extra cost for some of the builds [that explicitly test 
with wemesis, openmpi etc..]

Satish

On Thu, 23 Jul 2020, Jed Brown wrote:

> I think we should default to ch3:nemesis when --download-mpich, and only do 
> ch3:sock when requested (which we would do in CI).
> 
> Satish Balay via petsc-dev <[email protected]> writes:
> 
> > Primarily because ch3:sock performance does not degrade in oversubscribe 
> > mode - which is developer friendly - i.e on your laptop.
> >
> > And folks doing optimized runs should use a properly tuned MPI for their 
> > setup anyway.
> >
> > In this case --download-mpich-device=ch3:nemesis is likely appropriate if 
> > using --download-mpich [and not using a separate/optimized MPI]
> >
> > Having defaults that satisfy all use cases is not practical.
> >
> > Satish
> >
> > On Wed, 22 Jul 2020, Matthew Knepley wrote:
> >
> >> We default to ch3:sock. Scott MacLachlan just had a long thread on the
> >> Firedrake list where it ended up that reconfiguring using ch3:nemesis had a
> >> 2x performance boost on his 16-core proc, and noticeable effect on the 4
> >> core speedup.
> >> 
> >> Why do we default to sock?
> >> 
> >>   Thanks,
> >> 
> >>      Matt
> >> 
> >> 
> 

Reply via email to