diff --git a/src/partition.c b/src/partition.c index 63eee1a00605c8bb4be1de601238f9fe56416088..a39ab93c5a7beffa1e8ea78149d04bb853483e19 100644 --- a/src/partition.c +++ b/src/partition.c @@ -577,9 +577,11 @@ static void repart_edge_metis(int partweights, int bothweights, int timebins, int cid = ci - cells; /* Different weights for different tasks. */ - if (t->type == task_type_ghost || t->type == task_type_kick1 || - t->type == task_type_kick2 || t->type == task_type_timestep || - t->type == task_type_drift_part || t->type == task_type_drift_gpart) { + if (t->type == task_type_drift_part || t->type == task_type_drift_gpart || + t->type == task_type_ghost || t->type == task_type_extra_ghost || + t->type == task_type_kick1 || t->type == task_type_kick2 || + t->type == task_type_timestep || t->type == task_type_init_grav || + t->type == task_type_grav_down || t->type == task_type_grav_long_range) { /* Particle updates add only to vertex weight. */ if (taskvweights) weights_v[cid] += w; diff --git a/src/scheduler.c b/src/scheduler.c index 263466c8841ebb3d04053bca55fb9200236750f5..b1d3903f9c17ed01cd045563220e0be27a766c40 100644 --- a/src/scheduler.c +++ b/src/scheduler.c @@ -1143,20 +1143,32 @@ void scheduler_reweight(struct scheduler *s, int verbose) { case task_type_ghost: if (t->ci == t->ci->super) cost = wscale * t->ci->count; break; + case task_type_extra_ghost: + if (t->ci == t->ci->super) cost = wscale * t->ci->count; + break; case task_type_drift_part: cost = wscale * t->ci->count; break; case task_type_drift_gpart: cost = wscale * t->ci->gcount; break; + case task_type_init_grav: + cost = wscale * t->ci->gcount; + break; + case task_type_grav_down: + cost = wscale * t->ci->gcount; + break; + case task_type_grav_long_range: + cost = wscale * t->ci->gcount; + break; case task_type_kick1: - cost = wscale * t->ci->count; + cost = wscale * t->ci->count + wscale * t->ci->gcount; break; case task_type_kick2: - cost = wscale * t->ci->count; + cost = wscale * t->ci->count + wscale * t->ci->gcount; break; case task_type_timestep: - cost = wscale * t->ci->count; + cost = wscale * t->ci->count + wscale * t->ci->gcount; break; case task_type_send: cost = 10 * wscale * t->ci->count * t->ci->count;