瀏覽代碼

Add CP period param

Romain LION 4 年之前
父節點
當前提交
b6a1919668

+ 7 - 4
mpi/examples/matrix_decomposition/mpi_cholesky_codelets.c

@@ -189,7 +189,8 @@ static void run_cholesky(starpu_data_handle_t **data_handles, int rank, int node
 			if (my_distrib(n, k, nodes) == rank)
 				starpu_data_wont_use(data_handles[n][k]);
 		}
-		starpu_mpi_submit_checkpoint_template(*checkpoint_p, -2*k);
+		if (k%checkpoint_period==checkpoint_period-1)
+			starpu_mpi_submit_checkpoint_template(*checkpoint_p, -2*k);
 		starpu_iteration_pop();
 	}
 }
@@ -243,7 +244,8 @@ static void run_cholesky_column(starpu_data_handle_t **data_handles, int rank, i
 						       0);
 			}
 		}
-		starpu_mpi_submit_checkpoint_template(*checkpoint_p, (int)(nblocks - 2*n));
+		if (n%checkpoint_period==checkpoint_period-1)
+			starpu_mpi_submit_checkpoint_template(*checkpoint_p, (int)(nblocks - 2*n));
 		starpu_iteration_pop();
 	}
 
@@ -354,7 +356,8 @@ static void run_cholesky_antidiagonal(starpu_data_handle_t **data_handles, int r
 					       0);
 		}
 
-		starpu_mpi_submit_checkpoint_template(*checkpoint_p, (int)(2*nblocks -4*a));
+		if (a%checkpoint_period==checkpoint_period-1)
+			starpu_mpi_submit_checkpoint_template(*checkpoint_p, (int)(2*nblocks -4*a));
 		starpu_iteration_pop();
 	}
 
@@ -442,7 +445,7 @@ static void run_cholesky_prio(starpu_data_handle_t **data_handles, int rank, int
 
 		}
 
-		if (a%(nblocks/8)==(nblocks/8)-1)
+		if (a%(4*checkpoint_period)==(4*checkpoint_period)-1)
 			starpu_mpi_submit_checkpoint_template(*checkpoint_p, (int)(2*nblocks - a));
 		starpu_iteration_pop();
 	}

+ 7 - 0
mpi/examples/matrix_decomposition/mpi_decomposition_params.c

@@ -44,6 +44,7 @@ unsigned display = 0;
 int dblockx = -1;
 int dblocky = -1;
 enum submission submission = TRIANGLES;
+unsigned long checkpoint_period = 1;
 
 void parse_args(int argc, char **argv, int nodes)
 {
@@ -100,6 +101,12 @@ void parse_args(int argc, char **argv, int nodes)
                         noprio = 1;
                 }
 
+		        if (strcmp(argv[i], "-checkpoint-period") == 0)
+		        {
+				        char *argptr;
+		                checkpoint_period = strtol(argv[++i], &argptr, 10);
+		        }
+
                 if (strcmp(argv[i], "-check") == 0)
                 {
                         check = 1;

+ 1 - 0
mpi/examples/matrix_decomposition/mpi_decomposition_params.h

@@ -27,6 +27,7 @@ extern unsigned check;
 extern unsigned display;
 extern int dblockx;
 extern int dblocky;
+extern unsigned long checkpoint_period;
 
 enum submission
 {