From 4e8af7be06b83b58d7610ca28070f5f6971eb49c Mon Sep 17 00:00:00 2001 From: Stefan Date: Sun, 1 Nov 2020 07:44:39 +0100 Subject: [PATCH] print warning if Lanczos did not converge --- src/genmap-impl.h | 2 ++ src/genmap-rsb.c | 13 +++++++++++++ src/genmap-statistics.c | 8 ++++++++ 3 files changed, 23 insertions(+) diff --git a/src/genmap-impl.h b/src/genmap-impl.h index 58fd9901e..73a7b8669 100644 --- a/src/genmap-impl.h +++ b/src/genmap-impl.h @@ -80,7 +80,9 @@ void metric_finalize(); void metric_acc(metric m,double count); void metric_tic(struct comm *c,metric m); void metric_toc(struct comm *c,metric m); +double metric_get_value(int level,metric m); void metric_push_level(); +uint metric_get_levels(); void metric_print(struct comm *c); struct GenmapHandle_private { diff --git a/src/genmap-rsb.c b/src/genmap-rsb.c index e2a60e0ae..36fe214cb 100644 --- a/src/genmap-rsb.c +++ b/src/genmap-rsb.c @@ -77,6 +77,19 @@ void GenmapRSB(GenmapHandle h,int verbose){ metric_push_level(); } + sint converged=1,buf; + for(i=0; i=npass*maxIter){ + converged=0; + break; + } + } + comm_allreduce(&global_c->gsc,gs_int,gs_min,&converged,1,&buf);// min + if(converged==0 && GenmapCommRank(global_c)==0){ + printf("WARNING: Lanczos failed to converge during partitioning!"); + } + //metric_print(&global_c->gsc); metric_finalize(); diff --git a/src/genmap-statistics.c b/src/genmap-statistics.c index d87ead48c..b071eff36 100644 --- a/src/genmap-statistics.c +++ b/src/genmap-statistics.c @@ -37,6 +37,10 @@ void metric_toc(struct comm *c,metric m){ comm_barrier(c); } +double metric_get_value(int level,metric m){ + return stack[level*MAXMETS+m]; +} + void metric_push_level(){ assert(stack_size<=stack_max && "stack_size > stack_max"); @@ -52,6 +56,10 @@ void metric_push_level(){ stack_size++; } +uint metric_get_levels(){ + return stack_size; +} + void metric_print(struct comm *c){ double min[MAXSIZE],max[MAXSIZE],sum[MAXSIZE],buf[MAXSIZE]; uint max_size=stack_size*MAXMETS;