def total_size(a, axis=None): if axis is None: l_size = a.size else: l_size = a.shape[axis] if _n_nodes > 1: l_size = MPI_comm.allreduce(l_size, op=MPI.SUM) return l_size
def total_size(a, axis=None): """ Compute the total number of elements stored in the input array among all MPI processes. This function essentially returns MPI_sum_among_processes(a.size). Args: a: The input array. axis: If specified, only considers the total size of that axis. Returns: a.size or a.shape[axis], reduced among all MPI processes. """ if axis is None: l_size = a.size else: l_size = a.shape[axis] if _n_nodes > 1: l_size = MPI_comm.allreduce(l_size, op=MPI.SUM) return l_size