Because nemesis does function in a reasonable way when the system is 
oversubscribed, that is there are more MPI ranks than cores. Many users getting 
started have whatever number of cores  (4?) but want to run tests with a few 
more ranks, this is not feasible with nemesis. In addition with the test 
harness we don't need to worry about the oversubscription issue and can run any 
number of ranks on any system.

  A possible alternative which means digging in the guts slightly is to default 
to nemesis BUT at PetscInitialize() if the user has selected more ranks than 
cores, stop and tell them they can't do that with nemesis and they must use 
sock if they want to do that. For the CI we would always use sock.

   Barry


> On Jul 22, 2020, at 1:10 PM, Matthew Knepley <[email protected]> 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
> 
> -- 
> What most experimenters take for granted before they begin their experiments 
> is infinitely more interesting than any results to which their experiments 
> lead.
> -- Norbert Wiener
> 
> https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>

Reply via email to