diff --git a/d2o/distributor_factory.py b/d2o/distributor_factory.py index 12a6f8396d68d083e3dee77a2f3044efd7755685..a1ab4648cc23e5cd6c8038df78d76bc9df60fe92 100644 --- a/d2o/distributor_factory.py +++ b/d2o/distributor_factory.py @@ -602,11 +602,10 @@ class _slicing_distributor(distributor): contracted_global_data = contracted_local_data new_dist_strategy = parent.distribution_strategy - new_dtype = contracted_global_data.dtype - if new_shape == (): result = contracted_global_data else: + new_dtype = contracted_global_data.dtype # try to store the result in a distributed_data_object with the # distribution_strategy as parent result = parent.copy_empty(global_shape=new_shape, diff --git a/d2o/translate_to_mpi_operator.py b/d2o/translate_to_mpi_operator.py index 175f7964c862f7840c579529986593d041221722..ee38aaa919f546f10e368c5da2c8a0bcf3944159 100644 --- a/d2o/translate_to_mpi_operator.py +++ b/d2o/translate_to_mpi_operator.py @@ -10,12 +10,12 @@ MPI = gdi[gc['mpi_module']] custom_MIN = MPI.Op.Create(lambda x, y, datatype: np.amin(np.vstack((x, y)), axis=0) if isinstance(x, np.ndarray) else - lambda x, y, d: MPI.MIN(x, y)) + min(x, y)) custom_MAX = MPI.Op.Create(lambda x, y, datatype: np.amax(np.vstack((x, y)), axis=0) if isinstance(x, np.ndarray) else - lambda x, y, d: MPI.MAX(x, y)) + max(x, y)) custom_NANMIN = MPI.Op.Create(lambda x, y, datatype: np.nanmin(np.vstack((x, y)), axis=0))