Browse Source

examples/cholesky/: do not allocate matrix twice

Nathalie Furmento 13 years ago
parent
commit
8be17eb74d
2 changed files with 11 additions and 18 deletions
  1. 2 7
      examples/cholesky/cholesky_grain_tag.c
  2. 9 11
      examples/cholesky/cholesky_tag.c

+ 2 - 7
examples/cholesky/cholesky_grain_tag.c

@@ -267,7 +267,6 @@ static void cholesky_grain_rec(float *matA, unsigned size, unsigned ld, unsigned
 
 		cholesky_grain_rec(newmatA, size/nblocks*(nblocks - nbigblocks), ld, (nblocks - nbigblocks)*2, (nblocks - nbigblocks)*2, reclevel+1);
 	}
-	starpu_data_unregister(dataA);
 }
 
 static void initialize_system(float **A, unsigned dim, unsigned pinned)
@@ -311,13 +310,12 @@ void cholesky_grain(float *matA, unsigned size, unsigned ld, unsigned nblocks, u
 
 	if (pinned)
 	{
-		starpu_free(matA);
+	     starpu_free(matA);
 	}
 	else
 	{
-		free(matA);
+	     free(matA);
 	}
-
 	starpu_helper_cublas_shutdown();
 
 	starpu_shutdown();
@@ -333,8 +331,6 @@ int main(int argc, char **argv)
 	parse_args(argc, argv);
 
 	float *mat;
-
-	mat = malloc(size*size*sizeof(float));
 	initialize_system(&mat, size, pinned);
 
 	unsigned i,j;
@@ -368,7 +364,6 @@ int main(int argc, char **argv)
 	}
 #endif
 
-
 	cholesky_grain(mat, size, size, nblocks, nbigblocks, pinned);
 
 #ifdef CHECK_OUTPUT

+ 9 - 11
examples/cholesky/cholesky_tag.c

@@ -53,7 +53,7 @@ static struct starpu_task * create_task_11(starpu_data_handle_t dataA, unsigned
 /*	FPRINTF(stdout, "task 11 k = %d TAG = %llx\n", k, (TAG11(k))); */
 
 	struct starpu_task *task = create_task(TAG11(k));
-	
+
 	task->cl = &cl11;
 
 	/* which sub-data is manipulated ? */
@@ -88,7 +88,7 @@ static void create_task_21(starpu_data_handle_t dataA, unsigned k, unsigned j)
 {
 	struct starpu_task *task = create_task(TAG21(k, j));
 
-	task->cl = &cl21;	
+	task->cl = &cl21;
 
 	/* which sub-data is manipulated ? */
 	task->handles[0] = starpu_data_get_sub_data(dataA, 2, k, k);
@@ -169,7 +169,7 @@ static void create_task_22(starpu_data_handle_t dataA, unsigned k, unsigned i, u
 
 
 /*
- *	code to bootstrap the factorization 
+ *	code to bootstrap the factorization
  *	and construct the DAG
  */
 
@@ -203,7 +203,7 @@ static void _cholesky(starpu_data_handle_t dataA, unsigned nblocks)
                         }
 
 		}
-		
+
 		for (j = k+1; j<nblocks; j++)
 		{
 			create_task_21(dataA, k, j);
@@ -257,7 +257,7 @@ static int initialize_system(float **A, unsigned dim, unsigned pinned)
 	if (pinned)
 	{
 		starpu_malloc((void **)A, (size_t)dim*dim*sizeof(float));
-	} 
+	}
 	else
 	{
 		*A = malloc(dim*dim*sizeof(float));
@@ -302,6 +302,7 @@ static void cholesky(float *matA, unsigned size, unsigned ld, unsigned nblocks,
 		free(matA);
 	}
 
+
 	starpu_helper_cublas_shutdown();
 
 	starpu_shutdown();
@@ -317,11 +318,8 @@ int main(int argc, char **argv)
 	parse_args(argc, argv);
 
 	float *mat;
-
-	mat = malloc(size*size*sizeof(float));
 	int ret = initialize_system(&mat, size, pinned);
-	if (ret)
-		return ret;
+	if (ret) return ret;
 
 	unsigned i,j;
 	for (i = 0; i < size; i++)
@@ -381,7 +379,7 @@ int main(int argc, char **argv)
 	float *test_mat = malloc(size*size*sizeof(float));
 	STARPU_ASSERT(test_mat);
 
-	SSYRK("L", "N", size, size, 1.0f, 
+	SSYRK("L", "N", size, size, 1.0f,
 				mat, size, 0.0f, test_mat, size);
 
 	FPRINTF(stderr, "comparing results ...\n");
@@ -399,8 +397,8 @@ int main(int argc, char **argv)
 			}
 		}
 		FPRINTF(stdout, "\n");
-		free(test_mat);
 	}
+	free(test_mat);
 #endif
 
 	free(mat);