_lr is not valid for some sizes, and may default to calling _ompi again, which causes an infinite loop.
todo: find theses cases and eliminate them
int communicator_size = comm->size();
int alg = 1;
int(*funcs[]) (const void*, void*, int, MPI_Datatype, MPI_Op, MPI_Comm)={
int communicator_size = comm->size();
int alg = 1;
int(*funcs[]) (const void*, void*, int, MPI_Datatype, MPI_Op, MPI_Comm)={
- &allreduce__lr,
- &allreduce__lr,
+ &allreduce__redbcast,
+ &allreduce__redbcast,
&allreduce__rdb,
&allreduce__lr,
&allreduce__ompi_ring_segmented,
&allreduce__rdb,
&allreduce__lr,
&allreduce__ompi_ring_segmented,