From aa8630975a0812e3c1204964642d40082a32ee22 Mon Sep 17 00:00:00 2001 From: "Peter W. Draper" <p.w.draper@durham.ac.uk> Date: Wed, 16 Jan 2019 12:30:07 +0000 Subject: [PATCH] Don't sum counts when we don't have any --- src/partition.c | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/src/partition.c b/src/partition.c index bbd7454dd6..60ee7716ef 100644 --- a/src/partition.c +++ b/src/partition.c @@ -330,22 +330,28 @@ static void accumulate_sizes(struct space *s, double *counts) { mapper_data.s = s; double hsize = (double)sizeof(struct part); - mapper_data.size = hsize; - threadpool_map(&s->e->threadpool, accumulate_sizes_mapper_part, s->parts, - s->nr_parts, sizeof(struct part), space_splitsize, - &mapper_data); + if (s->nr_parts > 0) { + mapper_data.size = hsize; + threadpool_map(&s->e->threadpool, accumulate_sizes_mapper_part, s->parts, + s->nr_parts, sizeof(struct part), space_splitsize, + &mapper_data); + } double gsize = (double)sizeof(struct gpart); - mapper_data.size = gsize; - threadpool_map(&s->e->threadpool, accumulate_sizes_mapper_gpart, s->gparts, - s->nr_gparts, sizeof(struct gpart), space_splitsize, - &mapper_data); + if (s->nr_gparts > 0) { + mapper_data.size = gsize; + threadpool_map(&s->e->threadpool, accumulate_sizes_mapper_gpart, s->gparts, + s->nr_gparts, sizeof(struct gpart), space_splitsize, + &mapper_data); + } double ssize = (double)sizeof(struct spart); - mapper_data.size = ssize; - threadpool_map(&s->e->threadpool, accumulate_sizes_mapper_spart, s->sparts, - s->nr_sparts, sizeof(struct spart), space_splitsize, - &mapper_data); + if (s->nr_sparts > 0) { + mapper_data.size = ssize; + threadpool_map(&s->e->threadpool, accumulate_sizes_mapper_spart, s->sparts, + s->nr_sparts, sizeof(struct spart), space_splitsize, + &mapper_data); + } /* Keep the sum of particles across all ranks in the range of IDX_MAX. */ if ((s->e->total_nr_parts * hsize + s->e->total_nr_gparts * gsize + -- GitLab