summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/hypre/ij_gptune.patch
diff options
context:
space:
mode:
Diffstat (limited to 'var/spack/repos/builtin/packages/hypre/ij_gptune.patch')
-rw-r--r--var/spack/repos/builtin/packages/hypre/ij_gptune.patch440
1 files changed, 440 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/hypre/ij_gptune.patch b/var/spack/repos/builtin/packages/hypre/ij_gptune.patch
new file mode 100644
index 0000000000..36dbf44afb
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hypre/ij_gptune.patch
@@ -0,0 +1,440 @@
+diff --git a/src/test/ij.c b/src/test/ij.c
+old mode 100644
+new mode 100755
+index fcda91898..c43dcf477
+--- a/src/test/ij.c
++++ b/src/test/ij.c
+@@ -85,10 +85,81 @@ extern HYPRE_Int hypre_FlexGMRESModifyPCDefault(void *precond_data, HYPRE_Int it
+ #endif
+ #define SECOND_TIME 0
+
++
++HYPRE_Int
++hypre_fPrintTiming(FILE* fp, const char *heading,
++ MPI_Comm comm )
++{
++ HYPRE_Int ierr = 0;
++
++ HYPRE_Real local_wall_time;
++ HYPRE_Real local_cpu_time;
++ HYPRE_Real wall_time;
++ HYPRE_Real cpu_time;
++ HYPRE_Real wall_mflops;
++ HYPRE_Real cpu_mflops;
++
++ HYPRE_Int i;
++ HYPRE_Int myrank;
++
++ if (hypre_global_timing == NULL)
++ return ierr;
++
++ hypre_MPI_Comm_rank(comm, &myrank );
++
++ /* print heading */
++ if (myrank == 0)
++ {
++ hypre_fprintf(fp, "=============================================\n");
++ hypre_fprintf(fp, "%s:\n", heading);
++ hypre_fprintf(fp, "=============================================\n");
++ }
++
++ for (i = 0; i < (hypre_global_timing -> size); i++)
++ {
++ if (hypre_TimingNumRegs(i) > 0)
++ {
++ local_wall_time = hypre_TimingWallTime(i);
++ local_cpu_time = hypre_TimingCPUTime(i);
++ hypre_MPI_Allreduce(&local_wall_time, &wall_time, 1,
++ hypre_MPI_REAL, hypre_MPI_MAX, comm);
++ hypre_MPI_Allreduce(&local_cpu_time, &cpu_time, 1,
++ hypre_MPI_REAL, hypre_MPI_MAX, comm);
++
++ if (myrank == 0)
++ {
++ hypre_fprintf(fp, "%s:\n", hypre_TimingName(i));
++
++ /* print wall clock info */
++ hypre_fprintf(fp, " wall clock time = %f seconds\n", wall_time);
++ if (wall_time)
++ wall_mflops = hypre_TimingFLOPS(i) / wall_time / 1.0E6;
++ else
++ wall_mflops = 0.0;
++ hypre_fprintf(fp, " wall MFLOPS = %f\n", wall_mflops);
++
++ /* print CPU clock info */
++ hypre_fprintf(fp, " cpu clock time = %f seconds\n", cpu_time);
++ if (cpu_time)
++ cpu_mflops = hypre_TimingFLOPS(i) / cpu_time / 1.0E6;
++ else
++ cpu_mflops = 0.0;
++ hypre_fprintf(fp, " cpu MFLOPS = %f\n\n", cpu_mflops);
++ }
++ }
++ }
++
++ return ierr;
++}
++
++
++
++
+ hypre_int
+ main( hypre_int argc,
+ char *argv[] )
+ {
++ FILE *fplog;
+ HYPRE_Int arg_index;
+ HYPRE_Int print_usage;
+ HYPRE_Int sparsity_known = 0;
+@@ -414,7 +485,9 @@ main( hypre_int argc,
+ size_t mempool_max_cached_bytes = 2000LL * 1024 * 1024;
+
+ /* Initialize MPI */
+- hypre_MPI_Init(&argc, &argv);
++ hypre_MPI_Init(&argc, &argv);MPI_Comm parent; MPI_Comm_get_parent(&parent);
++
++
+
+ hypre_MPI_Comm_size(hypre_MPI_COMM_WORLD, &num_procs );
+ hypre_MPI_Comm_rank(hypre_MPI_COMM_WORLD, &myid );
+@@ -481,6 +554,11 @@ main( hypre_int argc,
+ build_matrix_type = 3;
+ build_matrix_arg_index = arg_index;
+ }
++ else if ( strcmp(argv[arg_index], "-logfile") == 0 )
++ {
++ arg_index++;
++ fplog = fopen(argv[arg_index++], "w");
++ }
+ else if ( strcmp(argv[arg_index], "-27pt") == 0 )
+ {
+ arg_index++;
+@@ -2068,7 +2146,7 @@ main( hypre_int argc,
+ HYPRE_Init();
+
+ hypre_EndTiming(time_index);
+- hypre_PrintTiming("Hypre init times", hypre_MPI_COMM_WORLD);
++ hypre_fPrintTiming(fplog, "Hypre init times", hypre_MPI_COMM_WORLD);
+ hypre_FinalizeTiming(time_index);
+ hypre_ClearTiming();
+
+@@ -2182,7 +2260,7 @@ main( hypre_int argc,
+ local_num_cols = (HYPRE_Int)(last_local_col - first_local_col + 1);
+ }
+ hypre_EndTiming(time_index);
+- hypre_PrintTiming("Generate Matrix", hypre_MPI_COMM_WORLD);
++ hypre_fPrintTiming(fplog, "Generate Matrix", hypre_MPI_COMM_WORLD);
+ hypre_FinalizeTiming(time_index);
+ hypre_ClearTiming();
+
+@@ -2404,7 +2482,7 @@ main( hypre_int argc,
+ ierr += HYPRE_IJMatrixAssemble( ij_A );
+
+ hypre_EndTiming(time_index);
+- hypre_PrintTiming("IJ Matrix Setup", hypre_MPI_COMM_WORLD);
++ hypre_fPrintTiming(fplog, "IJ Matrix Setup", hypre_MPI_COMM_WORLD);
+ hypre_FinalizeTiming(time_index);
+ hypre_ClearTiming();
+
+@@ -3032,7 +3110,7 @@ main( hypre_int argc,
+ }
+
+ hypre_EndTiming(time_index);
+- hypre_PrintTiming("IJ Vector Setup", hypre_MPI_COMM_WORLD);
++ hypre_fPrintTiming(fplog, "IJ Vector Setup", hypre_MPI_COMM_WORLD);
+ hypre_FinalizeTiming(time_index);
+ hypre_ClearTiming();
+
+@@ -3124,7 +3202,7 @@ main( hypre_int argc,
+ #endif
+
+ hypre_EndTiming(time_index);
+- hypre_PrintTiming("MatVec Test", hypre_MPI_COMM_WORLD);
++ hypre_fPrintTiming(fplog, "MatVec Test", hypre_MPI_COMM_WORLD);
+ hypre_FinalizeTiming(time_index);
+ hypre_ClearTiming();
+
+@@ -3190,7 +3268,7 @@ main( hypre_int argc,
+ HYPRE_ParCSRHybridSetup(amg_solver, parcsr_A, b, x);
+
+ hypre_EndTiming(time_index);
+- hypre_PrintTiming("Setup phase times", hypre_MPI_COMM_WORLD);
++ hypre_fPrintTiming(fplog, "Setup phase times", hypre_MPI_COMM_WORLD);
+ hypre_FinalizeTiming(time_index);
+ hypre_ClearTiming();
+
+@@ -3200,7 +3278,7 @@ main( hypre_int argc,
+ HYPRE_ParCSRHybridSolve(amg_solver, parcsr_A, b, x);
+
+ hypre_EndTiming(time_index);
+- hypre_PrintTiming("Solve phase times", hypre_MPI_COMM_WORLD);
++ hypre_fPrintTiming(fplog, "Solve phase times", hypre_MPI_COMM_WORLD);
+ hypre_FinalizeTiming(time_index);
+ hypre_ClearTiming();
+
+@@ -3422,7 +3500,7 @@ main( hypre_int argc,
+ #endif
+
+ hypre_EndTiming(time_index);
+- hypre_PrintTiming("Setup phase times", hypre_MPI_COMM_WORLD);
++ hypre_fPrintTiming(fplog, "Setup phase times", hypre_MPI_COMM_WORLD);
+ hypre_FinalizeTiming(time_index);
+ hypre_ClearTiming();
+
+@@ -3448,7 +3526,7 @@ main( hypre_int argc,
+ #endif
+
+ hypre_EndTiming(time_index);
+- hypre_PrintTiming("Solve phase times", hypre_MPI_COMM_WORLD);
++ hypre_fPrintTiming(fplog, "Solve phase times", hypre_MPI_COMM_WORLD);
+ hypre_FinalizeTiming(time_index);
+ hypre_ClearTiming();
+
+@@ -3638,7 +3716,7 @@ main( hypre_int argc,
+ HYPRE_BoomerAMGSetup(amg_solver, parcsr_A, b, x);
+
+ hypre_EndTiming(time_index);
+- hypre_PrintTiming("Setup phase times", hypre_MPI_COMM_WORLD);
++ hypre_fPrintTiming(fplog, "Setup phase times", hypre_MPI_COMM_WORLD);
+ hypre_FinalizeTiming(time_index);
+ hypre_ClearTiming();
+
+@@ -3648,7 +3726,7 @@ main( hypre_int argc,
+ HYPRE_BoomerAMGSolve(amg_solver, parcsr_A, b, x);
+
+ hypre_EndTiming(time_index);
+- hypre_PrintTiming("Solve phase times", hypre_MPI_COMM_WORLD);
++ hypre_fPrintTiming(fplog, "Solve phase times", hypre_MPI_COMM_WORLD);
+ hypre_FinalizeTiming(time_index);
+ hypre_ClearTiming();
+
+@@ -4112,7 +4190,7 @@ main( hypre_int argc,
+ HYPRE_PCGSetup(pcg_solver, (HYPRE_Matrix)parcsr_A,
+ (HYPRE_Vector)b, (HYPRE_Vector)x);
+ hypre_EndTiming(time_index);
+- hypre_PrintTiming("Setup phase times", hypre_MPI_COMM_WORLD);
++ hypre_fPrintTiming(fplog, "Setup phase times", hypre_MPI_COMM_WORLD);
+ hypre_FinalizeTiming(time_index);
+ hypre_ClearTiming();
+
+@@ -4123,7 +4201,7 @@ main( hypre_int argc,
+ (HYPRE_Vector)b, (HYPRE_Vector)x);
+
+ hypre_EndTiming(time_index);
+- hypre_PrintTiming("Solve phase times", hypre_MPI_COMM_WORLD);
++ hypre_fPrintTiming(fplog, "Solve phase times", hypre_MPI_COMM_WORLD);
+ hypre_FinalizeTiming(time_index);
+ hypre_ClearTiming();
+
+@@ -4140,7 +4218,7 @@ main( hypre_int argc,
+ (HYPRE_Vector)b, (HYPRE_Vector)x);
+
+ hypre_EndTiming(time_index);
+- hypre_PrintTiming("Setup phase times", hypre_MPI_COMM_WORLD);
++ hypre_fPrintTiming(fplog, "Setup phase times", hypre_MPI_COMM_WORLD);
+ hypre_FinalizeTiming(time_index);
+ hypre_ClearTiming();
+
+@@ -4151,7 +4229,7 @@ main( hypre_int argc,
+ (HYPRE_Vector)b, (HYPRE_Vector)x);
+
+ hypre_EndTiming(time_index);
+- hypre_PrintTiming("Solve phase times", hypre_MPI_COMM_WORLD);
++ hypre_fPrintTiming(fplog, "Solve phase times", hypre_MPI_COMM_WORLD);
+ hypre_FinalizeTiming(time_index);
+ hypre_ClearTiming();
+ #endif
+@@ -4550,7 +4628,7 @@ main( hypre_int argc,
+ * (HYPRE_Vector)b, (HYPRE_Vector)x); */
+
+ hypre_EndTiming(time_index);
+- hypre_PrintTiming("Setup phase times", hypre_MPI_COMM_WORLD);
++ hypre_fPrintTiming(fplog, "Setup phase times", hypre_MPI_COMM_WORLD);
+ hypre_FinalizeTiming(time_index);
+ hypre_ClearTiming();
+
+@@ -4610,7 +4688,7 @@ main( hypre_int argc,
+ HYPRE_LOBPCGSolve(lobpcg_solver, constraints, eigenvectors, eigenvalues );
+
+ hypre_EndTiming(time_index);
+- hypre_PrintTiming("Solve phase times", hypre_MPI_COMM_WORLD);
++ hypre_fPrintTiming(fplog, "Solve phase times", hypre_MPI_COMM_WORLD);
+ hypre_FinalizeTiming(time_index);
+ hypre_ClearTiming();
+
+@@ -4942,7 +5020,7 @@ main( hypre_int argc,
+ (HYPRE_Vector)x);
+
+ hypre_EndTiming(time_index);
+- hypre_PrintTiming("Setup phase times", hypre_MPI_COMM_WORLD);
++ hypre_fPrintTiming(fplog, "Setup phase times", hypre_MPI_COMM_WORLD);
+ hypre_FinalizeTiming(time_index);
+ hypre_ClearTiming();
+
+@@ -4980,7 +5058,7 @@ main( hypre_int argc,
+ HYPRE_LOBPCGSolve(pcg_solver, constraints, eigenvectors, eigenvalues);
+
+ hypre_EndTiming(time_index);
+- hypre_PrintTiming("Solve phase times", hypre_MPI_COMM_WORLD);
++ hypre_fPrintTiming(fplog, "Solve phase times", hypre_MPI_COMM_WORLD);
+ hypre_FinalizeTiming(time_index);
+ hypre_ClearTiming();
+
+@@ -5490,7 +5568,7 @@ main( hypre_int argc,
+ (pcg_solver, (HYPRE_Matrix)parcsr_A, (HYPRE_Vector)b, (HYPRE_Vector)x);
+
+ hypre_EndTiming(time_index);
+- hypre_PrintTiming("Setup phase times", hypre_MPI_COMM_WORLD);
++ hypre_fPrintTiming(fplog, "Setup phase times", hypre_MPI_COMM_WORLD);
+ hypre_FinalizeTiming(time_index);
+ hypre_ClearTiming();
+
+@@ -5501,7 +5579,7 @@ main( hypre_int argc,
+ (pcg_solver, (HYPRE_Matrix)parcsr_A, (HYPRE_Vector)b, (HYPRE_Vector)x);
+
+ hypre_EndTiming(time_index);
+- hypre_PrintTiming("Solve phase times", hypre_MPI_COMM_WORLD);
++ hypre_fPrintTiming(fplog, "Solve phase times", hypre_MPI_COMM_WORLD);
+ hypre_FinalizeTiming(time_index);
+ hypre_ClearTiming();
+
+@@ -5723,7 +5801,7 @@ main( hypre_int argc,
+ (pcg_solver, (HYPRE_Matrix)parcsr_A, (HYPRE_Vector)b, (HYPRE_Vector)x);
+
+ hypre_EndTiming(time_index);
+- hypre_PrintTiming("Setup phase times", hypre_MPI_COMM_WORLD);
++ hypre_fPrintTiming(fplog, "Setup phase times", hypre_MPI_COMM_WORLD);
+ hypre_FinalizeTiming(time_index);
+ hypre_ClearTiming();
+
+@@ -5734,7 +5812,7 @@ main( hypre_int argc,
+ (pcg_solver, (HYPRE_Matrix)parcsr_A, (HYPRE_Vector)b, (HYPRE_Vector)x);
+
+ hypre_EndTiming(time_index);
+- hypre_PrintTiming("Solve phase times", hypre_MPI_COMM_WORLD);
++ hypre_fPrintTiming(fplog, "Solve phase times", hypre_MPI_COMM_WORLD);
+ hypre_FinalizeTiming(time_index);
+ hypre_ClearTiming();
+
+@@ -6060,7 +6138,7 @@ main( hypre_int argc,
+ (pcg_solver, (HYPRE_Matrix)parcsr_A, (HYPRE_Vector)b, (HYPRE_Vector)x);
+
+ hypre_EndTiming(time_index);
+- hypre_PrintTiming("Setup phase times", hypre_MPI_COMM_WORLD);
++ hypre_fPrintTiming(fplog, "Setup phase times", hypre_MPI_COMM_WORLD);
+ hypre_FinalizeTiming(time_index);
+ hypre_ClearTiming();
+
+@@ -6071,7 +6149,7 @@ main( hypre_int argc,
+ (pcg_solver, (HYPRE_Matrix)parcsr_A, (HYPRE_Vector)b, (HYPRE_Vector)x);
+
+ hypre_EndTiming(time_index);
+- hypre_PrintTiming("Solve phase times", hypre_MPI_COMM_WORLD);
++ hypre_fPrintTiming(fplog, "Solve phase times", hypre_MPI_COMM_WORLD);
+ hypre_FinalizeTiming(time_index);
+ hypre_ClearTiming();
+
+@@ -6397,7 +6475,7 @@ main( hypre_int argc,
+ (HYPRE_Vector)b, (HYPRE_Vector)x);
+
+ hypre_EndTiming(time_index);
+- hypre_PrintTiming("Setup phase times", hypre_MPI_COMM_WORLD);
++ hypre_fPrintTiming(fplog, "Setup phase times", hypre_MPI_COMM_WORLD);
+ hypre_FinalizeTiming(time_index);
+ hypre_ClearTiming();
+
+@@ -6408,7 +6486,7 @@ main( hypre_int argc,
+ (HYPRE_Vector)b, (HYPRE_Vector)x);
+
+ hypre_EndTiming(time_index);
+- hypre_PrintTiming("Solve phase times", hypre_MPI_COMM_WORLD);
++ hypre_fPrintTiming(fplog, "Solve phase times", hypre_MPI_COMM_WORLD);
+ hypre_FinalizeTiming(time_index);
+ hypre_ClearTiming();
+
+@@ -6723,7 +6801,7 @@ main( hypre_int argc,
+ (HYPRE_Vector)b, (HYPRE_Vector)x);
+
+ hypre_EndTiming(time_index);
+- hypre_PrintTiming("Setup phase times", hypre_MPI_COMM_WORLD);
++ hypre_fPrintTiming(fplog, "Setup phase times", hypre_MPI_COMM_WORLD);
+ hypre_FinalizeTiming(time_index);
+ hypre_ClearTiming();
+
+@@ -6734,7 +6812,7 @@ main( hypre_int argc,
+ (HYPRE_Vector)b, (HYPRE_Vector)x);
+
+ hypre_EndTiming(time_index);
+- hypre_PrintTiming("Solve phase times", hypre_MPI_COMM_WORLD);
++ hypre_fPrintTiming(fplog, "Solve phase times", hypre_MPI_COMM_WORLD);
+ hypre_FinalizeTiming(time_index);
+ hypre_ClearTiming();
+
+@@ -6930,7 +7008,7 @@ main( hypre_int argc,
+ (HYPRE_Vector)x);
+
+ hypre_EndTiming(time_index);
+- hypre_PrintTiming("Setup phase times", hypre_MPI_COMM_WORLD);
++ hypre_fPrintTiming(fplog, "Setup phase times", hypre_MPI_COMM_WORLD);
+ hypre_FinalizeTiming(time_index);
+ hypre_ClearTiming();
+
+@@ -6941,7 +7019,7 @@ main( hypre_int argc,
+ (HYPRE_Vector)x);
+
+ hypre_EndTiming(time_index);
+- hypre_PrintTiming("Solve phase times", hypre_MPI_COMM_WORLD);
++ hypre_fPrintTiming(fplog, "Solve phase times", hypre_MPI_COMM_WORLD);
+ hypre_FinalizeTiming(time_index);
+ hypre_ClearTiming();
+
+@@ -7073,7 +7151,7 @@ main( hypre_int argc,
+ HYPRE_MGRSetup(mgr_solver, parcsr_A, b, x);
+
+ hypre_EndTiming(time_index);
+- hypre_PrintTiming("Setup phase times", hypre_MPI_COMM_WORLD);
++ hypre_fPrintTiming(fplog, "Setup phase times", hypre_MPI_COMM_WORLD);
+ hypre_FinalizeTiming(time_index);
+ hypre_ClearTiming();
+
+@@ -7084,7 +7162,7 @@ main( hypre_int argc,
+ HYPRE_MGRSolve(mgr_solver, parcsr_A, b, x);
+
+ hypre_EndTiming(time_index);
+- hypre_PrintTiming("Solve phase times", hypre_MPI_COMM_WORLD);
++ hypre_fPrintTiming(fplog, "Solve phase times", hypre_MPI_COMM_WORLD);
+ hypre_FinalizeTiming(time_index);
+ hypre_ClearTiming();
+
+@@ -7170,7 +7248,7 @@ main( hypre_int argc,
+ HYPRE_ILUSetup(ilu_solver, parcsr_A, b, x);
+
+ hypre_EndTiming(time_index);
+- hypre_PrintTiming("Setup phase times", hypre_MPI_COMM_WORLD);
++ hypre_fPrintTiming(fplog, "Setup phase times", hypre_MPI_COMM_WORLD);
+ hypre_FinalizeTiming(time_index);
+ hypre_ClearTiming();
+
+@@ -7181,7 +7259,7 @@ main( hypre_int argc,
+ HYPRE_ILUSolve(ilu_solver, parcsr_A, b, x);
+
+ hypre_EndTiming(time_index);
+- hypre_PrintTiming("Solve phase times", hypre_MPI_COMM_WORLD);
++ hypre_fPrintTiming(fplog, "Solve phase times", hypre_MPI_COMM_WORLD);
+ hypre_FinalizeTiming(time_index);
+ hypre_ClearTiming();
+
+@@ -7286,7 +7364,13 @@ main( hypre_int argc,
+ /* Finalize Hypre */
+ HYPRE_Finalize();
+
++
++ fflush(fplog);
++ fclose(fplog);
++
+ /* Finalize MPI */
++ if(parent!=MPI_COMM_NULL)
++ MPI_Comm_disconnect(&parent);
+ hypre_MPI_Finalize();
+
+ /* when using cuda-memcheck --leak-check full, uncomment this */