diff --git a/src/partition.c b/src/partition.c index f30e5d0ad3c9ce8750a39891b2527729d9ad3b5d..1df369b18a635db1a3fef702306e69d663581d07 100644 --- a/src/partition.c +++ b/src/partition.c @@ -383,9 +383,8 @@ static void pick_metis(struct space *s, int nregions, int *vertexw, int *edgew, /* dumpMETISGraph("metis_graph", idx_ncells, one, xadj, adjncy, * weights_v, NULL, weights_e); */ - - if (METIS_PartGraphKway(&idx_ncells, &one, xadj, adjncy, weights_v, weights_e, - NULL, &idx_nregions, NULL, NULL, options, &objval, + if (METIS_PartGraphKway(&idx_ncells, &one, xadj, adjncy, weights_v, NULL, + weights_e, &idx_nregions, NULL, NULL, options, &objval, regionid) != METIS_OK) error("Call to METIS_PartGraphKway failed."); @@ -520,11 +519,7 @@ static void repart_edge_metis(int partweights, int bothweights, int nodeID, struct task *t = &tasks[j]; /* Skip un-interesting tasks. */ - if (t->type != task_type_self && t->type != task_type_pair && - t->type != task_type_sub_self && t->type != task_type_sub_self && - 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->cost == 0) continue; /* Get the task weight. */ diff --git a/src/scheduler.c b/src/scheduler.c index 406f64bd63e6b8884bd9cbb9a4d2db7028daa660..ea2c6bde010dd387b355e961903411c0b18a41bf 100644 --- a/src/scheduler.c +++ b/src/scheduler.c @@ -1038,6 +1038,12 @@ void scheduler_reweight(struct scheduler *s, int verbose) { case task_type_timestep: cost = wscale * t->ci->count; break; + case task_type_send: + cost = 10 * wscale * t->ci->count * t->ci->count; + break; + case task_type_recv: + cost = 5 * wscale * t->ci->count * t->ci->count; + break; default: cost = 0; break;