Skip to content

Commit

Permalink
FIX 2D factor code: add flop count for GPU-offloaded GEMM,
Browse files Browse the repository at this point in the history
plus many small cleanups.
  • Loading branch information
xiaoyeli committed Mar 30, 2022
1 parent b430c07 commit c8ac11d
Show file tree
Hide file tree
Showing 43 changed files with 193 additions and 153 deletions.
29 changes: 12 additions & 17 deletions EXAMPLE/pddrive.c
Original file line number Diff line number Diff line change
Expand Up @@ -105,14 +105,14 @@ int main(int argc, char *argv[])
break;
case 'c': npcol = atoi(*cpp);
break;
case 'l': lookahead = atoi(*cpp);
break;
case 'p': rowperm = atoi(*cpp);
break;
case 'q': colperm = atoi(*cpp);
break;
case 'i': ir = atoi(*cpp);
break;
case 'l': lookahead = atoi(*cpp);
break;
case 'p': rowperm = atoi(*cpp);
break;
case 'q': colperm = atoi(*cpp);
break;
case 'i': ir = atoi(*cpp);
break;
}
} else { /* Last arg is considered a filename */
if ( !(fp = fopen(*cpp, "r")) ) {
Expand Down Expand Up @@ -186,11 +186,6 @@ int main(int argc, char *argv[])
GET THE MATRIX FROM FILE AND SETUP THE RIGHT HAND SIDE.
------------------------------------------------------------*/
dcreate_matrix_postfix(&A, nrhs, &b, &ldb, &xtrue, &ldx, fp, postfix, &grid);

#if 0
printf("after dcreate_matrix xtrue[2] %e, b[0] %e\n", xtrue[2], b[0]);
for (int i = 0; i < A.ncol; ++i) printf("b[%d] %e\n", i, b[i]);
#endif

if ( !(berr = doubleMalloc_dist(nrhs)) )
ABORT("Malloc fails for berr[].");
Expand All @@ -206,7 +201,7 @@ int main(int argc, char *argv[])
options.ColPerm = METIS_AT_PLUS_A;
options.RowPerm = LargeDiag_MC64;
options.ReplaceTinyPivot = NO;
options.IterRefine = DOUBLE;
options.IterRefine = SLU_DOUBLE;
options.Trans = NOTRANS;
options.SolveInitialized = NO;
options.RefineInitialized = NO;
Expand All @@ -215,10 +210,10 @@ int main(int argc, char *argv[])
*/
set_default_options_dist(&options);
#if 0
options.ReplaceTinyPivot = YES;
options.RowPerm = LargeDiag_HWPM;
options.RowPerm = NOROWPERM;
options.RowPerm = LargeDiag_HWPM;
options.IterRefine = NOREFINE;
options.ColPerm = NATURAL;
options.Equil = NO;
options.ReplaceTinyPivot = YES;
#endif

Expand Down
2 changes: 1 addition & 1 deletion EXAMPLE/pddrive1.c
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ int main(int argc, char *argv[])
options.RowPerm = LargeDiag_MC64;
options.ReplaceTinyPivot = NO;
options.Trans = NOTRANS;
options.IterRefine = DOUBLE;
options.IterRefine = SLU_DOUBLE;
options.SolveInitialized = NO;
options.RefineInitialized = NO;
options.PrintStat = YES;
Expand Down
2 changes: 1 addition & 1 deletion EXAMPLE/pddrive2.c
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ int main(int argc, char *argv[])
options.RowPerm = LargeDiag_MC64;
options.ReplaceTinyPivot = NO;
options.Trans = NOTRANS;
options.IterRefine = DOUBLE;
options.IterRefine = SLU_DOUBLE;
options.SolveInitialized = NO;
options.RefineInitialized = NO;
options.PrintStat = YES;
Expand Down
2 changes: 1 addition & 1 deletion EXAMPLE/pddrive3.c
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ int main(int argc, char *argv[])
options.RowPerm = LargeDiag_MC64;
options.ReplaceTinyPivot = NO;
options.Trans = NOTRANS;
options.IterRefine = DOUBLE;
options.IterRefine = SLU_DOUBLE;
options.SolveInitialized = NO;
options.RefineInitialized = NO;
options.PrintStat = YES;
Expand Down
2 changes: 1 addition & 1 deletion EXAMPLE/pddrive3d.c
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,7 @@ main (int argc, char *argv[])
options.ColPerm = METIS_AT_PLUS_A;
options.RowPerm = LargeDiag_MC64;
options.ReplaceTinyPivot = NO;
options.IterRefine = DOUBLE;
options.IterRefine = SLU_DOUBLE;
options.Trans = NOTRANS;
options.SolveInitialized = NO;
options.RefineInitialized = NO;
Expand Down
3 changes: 2 additions & 1 deletion EXAMPLE/pddrive3d1.c
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,7 @@ main (int argc, char *argv[])
fflush(stdout);
break;
}
fflush(stdout);
}

/* Bail out if I do not belong in the grid. */
Expand Down Expand Up @@ -303,7 +304,7 @@ main (int argc, char *argv[])
options.ColPerm = METIS_AT_PLUS_A;
options.RowPerm = LargeDiag_MC64;
options.ReplaceTinyPivot = NO;
options.IterRefine = DOUBLE;
options.IterRefine = SLU_DOUBLE;
options.Trans = NOTRANS;
options.SolveInitialized = NO;
options.RefineInitialized = NO;
Expand Down
3 changes: 2 additions & 1 deletion EXAMPLE/pddrive3d2.c
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,7 @@ main (int argc, char *argv[])
fflush(stdout);
break;
}
fflush(stdout);
}

/* Bail out if I do not belong in the grid. */
Expand Down Expand Up @@ -267,7 +268,7 @@ main (int argc, char *argv[])
options.ColPerm = METIS_AT_PLUS_A;
options.RowPerm = LargeDiag_MC64;
options.ReplaceTinyPivot = NO;
options.IterRefine = DOUBLE;
options.IterRefine = SLU_DOUBLE;
options.Trans = NOTRANS;
options.SolveInitialized = NO;
options.RefineInitialized = NO;
Expand Down
3 changes: 2 additions & 1 deletion EXAMPLE/pddrive3d3.c
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,7 @@ main (int argc, char *argv[])
fflush(stdout);
break;
}
fflush(stdout);
}

/* Bail out if I do not belong in the grid. */
Expand Down Expand Up @@ -264,7 +265,7 @@ main (int argc, char *argv[])
options.ColPerm = METIS_AT_PLUS_A;
options.RowPerm = LargeDiag_MC64;
options.ReplaceTinyPivot = NO;
options.IterRefine = DOUBLE;
options.IterRefine = SLU_DOUBLE;
options.Trans = NOTRANS;
options.SolveInitialized = NO;
options.RefineInitialized = NO;
Expand Down
4 changes: 2 additions & 2 deletions EXAMPLE/psdrive1.c
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,6 @@ int main(int argc, char *argv[])
/* Bail out if I do not belong in the grid. */
iam = grid.iam;
if ( iam == -1 ) goto out;

if ( !iam ) {
int v_major, v_minor, v_bugfix;
#ifdef __INTEL_COMPILER
Expand Down Expand Up @@ -171,12 +170,13 @@ int main(int argc, char *argv[])
options.RowPerm = LargeDiag_MC64;
options.ReplaceTinyPivot = NO;
options.Trans = NOTRANS;
options.IterRefine = DOUBLE;
options.IterRefine = SLU_DOUBLE;
options.SolveInitialized = NO;
options.RefineInitialized = NO;
options.PrintStat = YES;
*/
set_default_options_dist(&options);
options.IterRefine = SLU_SINGLE;

if (!iam) {
print_sp_ienv_dist(&options);
Expand Down
4 changes: 2 additions & 2 deletions EXAMPLE/psdrive2.c
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,6 @@ int main(int argc, char *argv[])
/* Bail out if I do not belong in the grid. */
iam = grid.iam;
if ( iam == -1 ) goto out;

if ( !iam ) {
int v_major, v_minor, v_bugfix;
#ifdef __INTEL_COMPILER
Expand Down Expand Up @@ -168,12 +167,13 @@ int main(int argc, char *argv[])
options.RowPerm = LargeDiag_MC64;
options.ReplaceTinyPivot = NO;
options.Trans = NOTRANS;
options.IterRefine = DOUBLE;
options.IterRefine = SLU_DOUBLE;
options.SolveInitialized = NO;
options.RefineInitialized = NO;
options.PrintStat = YES;
*/
set_default_options_dist(&options);
options.IterRefine = SLU_SINGLE;

if (!iam) {
print_sp_ienv_dist(&options);
Expand Down
4 changes: 2 additions & 2 deletions EXAMPLE/psdrive3.c
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,6 @@ int main(int argc, char *argv[])
/* Bail out if I do not belong in the grid. */
iam = grid.iam;
if ( iam == -1 ) goto out;

if ( !iam ) {
int v_major, v_minor, v_bugfix;
#ifdef __INTEL_COMPILER
Expand Down Expand Up @@ -183,12 +182,13 @@ int main(int argc, char *argv[])
options.RowPerm = LargeDiag_MC64;
options.ReplaceTinyPivot = NO;
options.Trans = NOTRANS;
options.IterRefine = DOUBLE;
options.IterRefine = SLU_DOUBLE;
options.SolveInitialized = NO;
options.RefineInitialized = NO;
options.PrintStat = YES;
*/
set_default_options_dist(&options);
options.IterRefine = SLU_SINGLE;

if (!iam) {
print_sp_ienv_dist(&options);
Expand Down
3 changes: 2 additions & 1 deletion EXAMPLE/psdrive3d.c
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,7 @@ main (int argc, char *argv[])
options.ColPerm = METIS_AT_PLUS_A;
options.RowPerm = LargeDiag_MC64;
options.ReplaceTinyPivot = NO;
options.IterRefine = DOUBLE;
options.IterRefine = SLU_DOUBLE;
options.Trans = NOTRANS;
options.SolveInitialized = NO;
options.RefineInitialized = NO;
Expand All @@ -310,6 +310,7 @@ main (int argc, char *argv[])
options.DiagInv = NO;
*/
set_default_options_dist (&options);
options.IterRefine = SLU_SINGLE;
#if 0
options.RowPerm = NOROWPERM;
options.IterRefine = NOREFINE;
Expand Down
4 changes: 3 additions & 1 deletion EXAMPLE/psdrive3d1.c
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,7 @@ main (int argc, char *argv[])
fflush(stdout);
break;
}
fflush(stdout);
}

/* Bail out if I do not belong in the grid. */
Expand Down Expand Up @@ -303,7 +304,7 @@ main (int argc, char *argv[])
options.ColPerm = METIS_AT_PLUS_A;
options.RowPerm = LargeDiag_MC64;
options.ReplaceTinyPivot = NO;
options.IterRefine = DOUBLE;
options.IterRefine = SLU_DOUBLE;
options.Trans = NOTRANS;
options.SolveInitialized = NO;
options.RefineInitialized = NO;
Expand All @@ -314,6 +315,7 @@ main (int argc, char *argv[])
options.DiagInv = NO;
*/
set_default_options_dist (&options);
options.IterRefine = SLU_SINGLE;
#if 0
options.RowPerm = NOROWPERM;
options.IterRefine = NOREFINE;
Expand Down
4 changes: 3 additions & 1 deletion EXAMPLE/psdrive3d2.c
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,7 @@ main (int argc, char *argv[])
fflush(stdout);
break;
}
fflush(stdout);
}

/* Bail out if I do not belong in the grid. */
Expand Down Expand Up @@ -267,7 +268,7 @@ main (int argc, char *argv[])
options.ColPerm = METIS_AT_PLUS_A;
options.RowPerm = LargeDiag_MC64;
options.ReplaceTinyPivot = NO;
options.IterRefine = DOUBLE;
options.IterRefine = SLU_DOUBLE;
options.Trans = NOTRANS;
options.SolveInitialized = NO;
options.RefineInitialized = NO;
Expand All @@ -278,6 +279,7 @@ main (int argc, char *argv[])
options.DiagInv = NO;
*/
set_default_options_dist (&options);
options.IterRefine = SLU_SINGLE;
#if 0
options.RowPerm = NOROWPERM;
options.IterRefine = NOREFINE;
Expand Down
4 changes: 3 additions & 1 deletion EXAMPLE/psdrive3d3.c
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,7 @@ main (int argc, char *argv[])
fflush(stdout);
break;
}
fflush(stdout);
}

/* Bail out if I do not belong in the grid. */
Expand Down Expand Up @@ -264,7 +265,7 @@ main (int argc, char *argv[])
options.ColPerm = METIS_AT_PLUS_A;
options.RowPerm = LargeDiag_MC64;
options.ReplaceTinyPivot = NO;
options.IterRefine = DOUBLE;
options.IterRefine = SLU_DOUBLE;
options.Trans = NOTRANS;
options.SolveInitialized = NO;
options.RefineInitialized = NO;
Expand All @@ -275,6 +276,7 @@ main (int argc, char *argv[])
options.DiagInv = NO;
*/
set_default_options_dist (&options);
options.IterRefine = SLU_SINGLE;
#if 0
options.RowPerm = NOROWPERM;
options.IterRefine = NOREFINE;
Expand Down
23 changes: 20 additions & 3 deletions EXAMPLE/pzdrive.c
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ int main(int argc, char *argv[])
double *berr;
doublecomplex *b, *xtrue;
int m, n;
int nprow, npcol;
int nprow, npcol, lookahead, colperm, rowperm, ir;
int iam, info, ldb, ldx, nrhs;
char **cpp, c, *postfix;;
FILE *fp, *fopen();
Expand All @@ -68,6 +68,10 @@ int main(int argc, char *argv[])
nprow = 1; /* Default process rows. */
npcol = 1; /* Default process columns. */
nrhs = 1; /* Number of right-hand side. */
lookahead = -1;
colperm = -1;
rowperm = -1;
ir = -1;

/* ------------------------------------------------------------
INITIALIZE MPI ENVIRONMENT.
Expand Down Expand Up @@ -100,6 +104,14 @@ int main(int argc, char *argv[])
break;
case 'c': npcol = atoi(*cpp);
break;
case 'l': lookahead = atoi(*cpp);
break;
case 'p': rowperm = atoi(*cpp);
break;
case 'q': colperm = atoi(*cpp);
break;
case 'i': ir = atoi(*cpp);
break;
}
} else { /* Last arg is considered a filename */
if ( !(fp = fopen(*cpp, "r")) ) {
Expand Down Expand Up @@ -188,7 +200,7 @@ int main(int argc, char *argv[])
options.ColPerm = METIS_AT_PLUS_A;
options.RowPerm = LargeDiag_MC64;
options.ReplaceTinyPivot = NO;
options.IterRefine = DOUBLE;
options.IterRefine = SLU_DOUBLE;
options.Trans = NOTRANS;
options.SolveInitialized = NO;
options.RefineInitialized = NO;
Expand All @@ -197,13 +209,18 @@ int main(int argc, char *argv[])
*/
set_default_options_dist(&options);
#if 0
options.RowPerm = NOROWPERM;
options.RowPerm = LargeDiag_HWPM;
options.IterRefine = NOREFINE;
options.ColPerm = NATURAL;
options.Equil = NO;
options.ReplaceTinyPivot = YES;
#endif

if (rowperm != -1) options.RowPerm = rowperm;
if (colperm != -1) options.ColPerm = colperm;
if (lookahead != -1) options.num_lookaheads = lookahead;
if (ir != -1) options.IterRefine = ir;

if (!iam) {
print_sp_ienv_dist(&options);
print_options_dist(&options);
Expand Down
2 changes: 1 addition & 1 deletion EXAMPLE/pzdrive1.c
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ int main(int argc, char *argv[])
options.RowPerm = LargeDiag_MC64;
options.ReplaceTinyPivot = NO;
options.Trans = NOTRANS;
options.IterRefine = DOUBLE;
options.IterRefine = SLU_DOUBLE;
options.SolveInitialized = NO;
options.RefineInitialized = NO;
options.PrintStat = YES;
Expand Down
2 changes: 1 addition & 1 deletion EXAMPLE/pzdrive2.c
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ int main(int argc, char *argv[])
options.RowPerm = LargeDiag_MC64;
options.ReplaceTinyPivot = NO;
options.Trans = NOTRANS;
options.IterRefine = DOUBLE;
options.IterRefine = SLU_DOUBLE;
options.SolveInitialized = NO;
options.RefineInitialized = NO;
options.PrintStat = YES;
Expand Down
2 changes: 1 addition & 1 deletion EXAMPLE/pzdrive3.c
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ int main(int argc, char *argv[])
options.RowPerm = LargeDiag_MC64;
options.ReplaceTinyPivot = NO;
options.Trans = NOTRANS;
options.IterRefine = DOUBLE;
options.IterRefine = SLU_DOUBLE;
options.SolveInitialized = NO;
options.RefineInitialized = NO;
options.PrintStat = YES;
Expand Down
Loading

0 comments on commit c8ac11d

Please sign in to comment.