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 > >> > >> >
