Przeglądaj źródła

Fix more cholesky homogeneity

Samuel Thibault 5 lat temu
rodzic
commit
da17678e35

+ 3 - 6
examples/cholesky/cholesky_grain_tag.c

@@ -232,11 +232,8 @@ static int cholesky_grain_rec(float *matA, unsigned size, unsigned ld, unsigned
 
 	/* schedule the codelet */
 	ret = starpu_task_submit(entry_task);
-	if (STARPU_UNLIKELY(ret == -ENODEV))
-	{
-		FPRINTF(stderr, "No worker may execute this task\n");
-		return 77;
-	}
+	if (ret == -ENODEV) return 77;
+	STARPU_CHECK_RETURN_VALUE(ret, "starpu_task_submit");
 
 	if (nblocks == nbigblocks)
 	{
@@ -473,5 +470,5 @@ int main(int argc, char **argv)
 #endif
 
 	shutdown_system(&mat, size_p, pinned_p);
-	return 0;
+	return ret;
 }

+ 10 - 12
examples/cholesky/cholesky_tag.c

@@ -157,7 +157,7 @@ static int create_task_22(starpu_data_handle_t dataA, unsigned k, unsigned m, un
  *	and construct the DAG
  */
 
-static void _cholesky(starpu_data_handle_t dataA, unsigned nblocks)
+static int _cholesky(starpu_data_handle_t dataA, unsigned nblocks)
 {
 	int ret;
 
@@ -182,13 +182,9 @@ static void _cholesky(starpu_data_handle_t dataA, unsigned nblocks)
 		}
 		else
 		{
-			int ret = starpu_task_submit(task);
-                        if (STARPU_UNLIKELY(ret == -ENODEV))
-			{
-                                FPRINTF(stderr, "No worker may execute this task\n");
-                                exit(0);
-                        }
-
+			ret = starpu_task_submit(task);
+			if (ret == -ENODEV) return 77;
+			STARPU_CHECK_RETURN_VALUE(ret, "starpu_task_submit");
 		}
 
 		for (m = k+1; m<nblocks; m++)
@@ -269,9 +265,10 @@ static int initialize_system(int argc, char **argv, float **A, unsigned pinned)
 	return 0;
 }
 
-static void cholesky(float *matA, unsigned size, unsigned ld, unsigned nblocks)
+static int cholesky(float *matA, unsigned size, unsigned ld, unsigned nblocks)
 {
 	starpu_data_handle_t dataA;
+	int ret;
 
 	/* monitor and partition the A matrix into blocks :
 	 * one block is now determined by 2 unsigned (m,n) */
@@ -296,9 +293,10 @@ static void cholesky(float *matA, unsigned size, unsigned ld, unsigned nblocks)
 
 	starpu_data_map_filters(dataA, 2, &f, &f2);
 
-	_cholesky(dataA, nblocks);
+	ret = _cholesky(dataA, nblocks);
 
 	starpu_data_unregister(dataA);
+	return ret;
 }
 
 static void shutdown_system(float **matA, unsigned dim, unsigned pinned)
@@ -358,7 +356,7 @@ int main(int argc, char **argv)
 #endif
 #endif
 
-	cholesky(mat, size_p, size_p, nblocks_p);
+	ret = cholesky(mat, size_p, size_p, nblocks_p);
 
 #ifndef STARPU_SIMGRID
 #ifdef PRINT_OUTPUT
@@ -440,5 +438,5 @@ int main(int argc, char **argv)
 #endif
 
 	shutdown_system(&mat, size_p, pinned_p);
-	return 0;
+	return ret;
 }