Skip to content

Commit

Permalink
Keep track of how many sketched Matvecs I'm doing
Browse files Browse the repository at this point in the history
  • Loading branch information
Heatherms27 committed Apr 3, 2024
1 parent aeed621 commit d189ad3
Show file tree
Hide file tree
Showing 6 changed files with 22 additions and 2 deletions.
1 change: 1 addition & 0 deletions examples/ex_eigs_dparTests.c
Expand Up @@ -237,6 +237,7 @@ int main (int argc, char *argv[]) {
fprintf(primme.outputFile, "Iterations: %-" PRIMME_INT_P "\n", primme.stats.numOuterIterations);
fprintf(primme.outputFile, "Restarts : %-" PRIMME_INT_P "\n", primme.stats.numRestarts);
fprintf(primme.outputFile, "Matvecs : %-" PRIMME_INT_P "\n", primme.stats.numMatvecs);
fprintf(primme.outputFile, "Sketched Matvecs : %-" PRIMME_INT_P "\n", primme.stats.numSketchedMatvecs);
fprintf(primme.outputFile, "Preconds : %-" PRIMME_INT_P "\n", primme.stats.numPreconds);
fprintf(primme.outputFile, "Elapsed Time : %-22.10E\n", primme.stats.elapsedTime);
fprintf(primme.outputFile, "MatVec Time : %-22.10E\n", primme.stats.timeMatvec);
Expand Down
4 changes: 3 additions & 1 deletion include/primme_eigs.h
Expand Up @@ -127,6 +127,7 @@ typedef struct primme_stats {
PRIMME_INT numOuterIterations;
PRIMME_INT numRestarts;
PRIMME_INT numMatvecs;
PRIMME_INT numSketchedMatvecs;
PRIMME_INT numPreconds;
PRIMME_INT numGlobalSum; /* times called globalSumReal */
PRIMME_INT numBroadcast; /* times called broadcastReal */
Expand Down Expand Up @@ -417,7 +418,8 @@ typedef enum {
PRIMME_queue = 88 ,
PRIMME_profile = 89 ,
PRIMME_expansionParams_expansion = 90 ,
PRIMME_residualParams_residual = 91
PRIMME_residualParams_residual = 91 ,
PRIMME_stats_numSketchedMatvecs = 92
} primme_params_label;

/* Hermitian operator */
Expand Down
2 changes: 2 additions & 0 deletions src/eigs/lanczos.c
Expand Up @@ -67,6 +67,7 @@ int print_lanczos_timings_Sprimme(PRIMME_INT basisSize, primme_context ctx) {
printf("Iterations: %-" PRIMME_INT_P "\n", primme->stats.numOuterIterations);
printf("Restarts : %-" PRIMME_INT_P "\n", primme->stats.numRestarts);
printf("Matvecs : %-" PRIMME_INT_P "\n", primme->stats.numMatvecs);
printf("Sketched Matvecs : %-" PRIMME_INT_P "\n", primme->stats.numSketchedMatvecs);
printf("Preconds : %-" PRIMME_INT_P "\n", primme->stats.numPreconds);
printf("Elapsed Time : %-22.10E\n", primme->stats.elapsedTime);
printf("MatVec Time : %-22.10E\n", primme->stats.timeMatvec);
Expand Down Expand Up @@ -204,6 +205,7 @@ int lanczos_Sprimme(HEVAL *evals, SCALAR *evecs, PRIMME_INT ldevecs,
primme->stats.numOuterIterations = 0;
primme->stats.numRestarts = 0;
primme->stats.numMatvecs = 0;
primme->stats.numSketchedMatvecs = 0;
primme->stats.numPreconds = 0;
primme->stats.numGlobalSum = 0;
primme->stats.numBroadcast = 0;
Expand Down
3 changes: 3 additions & 0 deletions src/eigs/main_iter.c
Expand Up @@ -125,6 +125,7 @@ int print_timings_Sprimme(PRIMME_INT basisSize, primme_context ctx) {
printf("Iterations: %-" PRIMME_INT_P "\n", primme->stats.numOuterIterations);
printf("Restarts : %-" PRIMME_INT_P "\n", primme->stats.numRestarts);
printf("Matvecs : %-" PRIMME_INT_P "\n", primme->stats.numMatvecs);
printf("Sketched Matvecs : %-" PRIMME_INT_P "\n", primme->stats.numSketchedMatvecs);
printf("Preconds : %-" PRIMME_INT_P "\n", primme->stats.numPreconds);
printf("Elapsed Time : %-22.10E\n", primme->stats.elapsedTime);
printf("MatVec Time : %-22.10E\n", primme->stats.timeMatvec);
Expand Down Expand Up @@ -397,6 +398,7 @@ int main_iter_Sprimme(HEVAL *evals, SCALAR *evecs, PRIMME_INT ldevecs,
primme->stats.numOuterIterations = 0;
primme->stats.numRestarts = 0;
primme->stats.numMatvecs = 0;
primme->stats.numSketchedMatvecs = 0;
primme->stats.numPreconds = 0;
primme->stats.numGlobalSum = 0;
primme->stats.numBroadcast = 0;
Expand Down Expand Up @@ -1685,6 +1687,7 @@ int sketched_main_iter_Sprimme(HEVAL *evals, SCALAR *evecs, PRIMME_INT ldevecs,
primme->stats.numOuterIterations = 0;
primme->stats.numRestarts = 0;
primme->stats.numMatvecs = 0;
primme->stats.numSketchedMatvecs = 0;
primme->stats.numPreconds = 0;
primme->stats.numGlobalSum = 0;
primme->stats.numBroadcast = 0;
Expand Down
9 changes: 9 additions & 0 deletions src/eigs/primme_interface.c
Expand Up @@ -178,6 +178,7 @@ void primme_initialize(primme_params *primme) {
primme->stats.numOuterIterations = 0;
primme->stats.numRestarts = 0;
primme->stats.numMatvecs = 0;
primme->stats.numSketchedMatvecs = 0;
primme->stats.numPreconds = 0;
primme->stats.numGlobalSum = 0;
primme->stats.flopsDense = 0.0;
Expand Down Expand Up @@ -984,6 +985,9 @@ int primme_get_member(primme_params *primme, primme_params_label label,
case PRIMME_stats_numMatvecs:
*(PRIMME_INT*)value = primme->stats.numMatvecs;
break;
case PRIMME_stats_numSketchedMatvecs:
*(PRIMME_INT*)value = primme->stats.numSketchedMatvecs;
break;
case PRIMME_stats_numPreconds:
*(PRIMME_INT*)value = primme->stats.numPreconds;
break;
Expand Down Expand Up @@ -1312,6 +1316,9 @@ int primme_set_member(primme_params *primme, primme_params_label label,
case PRIMME_stats_numMatvecs:
primme->stats.numMatvecs = *(PRIMME_INT*)value;
break;
case PRIMME_stats_numSketchedMatvecs:
primme->stats.numSketchedMatvecs = *(PRIMME_INT*)value;
break;
case PRIMME_stats_numPreconds:
primme->stats.numPreconds = *(PRIMME_INT*)value;
break;
Expand Down Expand Up @@ -1504,6 +1511,7 @@ int primme_member_info(primme_params_label *label, const char **label_name,
IF_IS(stats_numOuterIterations , stats_numOuterIterations);
IF_IS(stats_numRestarts , stats_numRestarts);
IF_IS(stats_numMatvecs , stats_numMatvecs);
IF_IS(stats_numSketchedMatvecs , stats_numSketchedMatvecs);
IF_IS(stats_numPreconds , stats_numPreconds);
IF_IS(stats_numGlobalSum , stats_numGlobalSum);
IF_IS(stats_volumeGlobalSum , stats_volumeGlobalSum);
Expand Down Expand Up @@ -1582,6 +1590,7 @@ int primme_member_info(primme_params_label *label, const char **label_name,
case PRIMME_stats_numOuterIterations:
case PRIMME_stats_numRestarts:
case PRIMME_stats_numMatvecs:
case PRIMME_stats_numSketchedMatvecs:
case PRIMME_stats_numPreconds:
case PRIMME_stats_numGlobalSum:
case PRIMME_stats_volumeGlobalSum:
Expand Down
5 changes: 4 additions & 1 deletion src/eigs/sketch.c
Expand Up @@ -169,7 +169,10 @@ int sketch_basis_Sprimme(SCALAR *V, PRIMME_INT ldV, SCALAR *SV, PRIMME_INT ldSV,
CHKERR(Bortho_local_Sprimme(Q, ldQ, T, ldT, basisSize, basisSize+blockSize-1, NULL, 0, 0, ldQ, NULL, 0, primme->iseed, ctx));
}

if (primme) primme->stats.timeSketchMatvec += primme_wTimer() - t0;
if (primme) {
primme->stats.timeSketchMatvec += primme_wTimer() - t0;
primme->stats.numSketchedMatvecs += blockSize;
}

return 0;
}
Expand Down

0 comments on commit d189ad3

Please sign in to comment.