Procházet zdrojové kódy

examples: test return value for starpu_task_submit

Nathalie Furmento před 13 roky
rodič
revize
bb70d88f56

+ 8 - 6
examples/tag_example/tag_example.c

@@ -103,7 +103,7 @@ static void tag_cleanup_grid(unsigned ni, unsigned nj, unsigned iter)
 
 } 
 
-static void create_task_grid(unsigned iter)
+static int create_task_grid(unsigned iter)
 {
 	unsigned i, j;
 	int ret;
@@ -129,6 +129,7 @@ static void create_task_grid(unsigned iter)
 		express_deps(i, j, iter);
 
 		ret = starpu_task_submit(task);
+		if (ret == -ENODEV) return 77;
 		STARPU_CHECK_RETURN_VALUE(ret, "starpu_task_submit");
 	}
 
@@ -146,9 +147,10 @@ static void create_task_grid(unsigned iter)
 		task->tag_id = TAG(0, j, iter);
 
 		ret = starpu_task_submit(task);
+		if (ret == -ENODEV) return 77;
 		STARPU_CHECK_RETURN_VALUE(ret, "starpu_task_submit");
 	}
-
+	return 0;
 }
 
 
@@ -234,9 +236,9 @@ int main(int argc __attribute__((unused)) , char **argv __attribute__((unused)))
 #endif
 	cl.nbuffers = 0;
 
-	create_task_grid(0);
-
-	starpu_task_wait_for_all();
+	ret = create_task_grid(0);
+	if (ret == 0)
+	     starpu_task_wait_for_all();
 
 	tag_cleanup_grid(ni, nj, nk-2);
 	tag_cleanup_grid(ni, nj, nk-1);
@@ -245,5 +247,5 @@ int main(int argc __attribute__((unused)) , char **argv __attribute__((unused)))
 
 	FPRINTF(stderr, "TEST DONE ...\n");
 
-	return 0;
+	return ret;
 }

+ 7 - 4
examples/tag_example/tag_example2.c

@@ -78,7 +78,7 @@ static void tag_cleanup_grid(unsigned ni, unsigned iter)
 		starpu_tag_remove(TAG(i,iter));
 } 
 
-static void create_task_grid(unsigned iter)
+static int create_task_grid(unsigned iter)
 {
 	int i;
 	int ret;
@@ -100,9 +100,10 @@ static void create_task_grid(unsigned iter)
 			starpu_tag_declare_deps(TAG(i,iter), 1, TAG(i-1,iter));
 
 		ret = starpu_task_submit(task);
+		if (ret == -ENODEV) return 77;
 		STARPU_CHECK_RETURN_VALUE(ret, "starpu_task_submit");
 	}
-
+	return 0;
 }
 
 void cpu_codelet(void *descr[] __attribute__ ((unused)), void *_args __attribute__ ((unused)))
@@ -143,7 +144,8 @@ int main(int argc __attribute__((unused)) , char **argv __attribute__((unused)))
 
 	for (i = 0; i < nk; i++)
 	{
-		create_task_grid(i);
+		ret = create_task_grid(i);
+		if (ret == 77) goto enodev;
 
 		starpu_tag_wait(TAG(ni-1, i));
 
@@ -154,11 +156,12 @@ int main(int argc __attribute__((unused)) , char **argv __attribute__((unused)))
 
 	starpu_task_wait_for_all();
 
+enodev:
 	tag_cleanup_grid(ni, nk-1);
 
 	starpu_shutdown();
 
 	FPRINTF(stderr, "TEST DONE ...\n");
 
-	return 0;
+	return ret;
 }

+ 7 - 4
examples/tag_example/tag_example3.c

@@ -80,7 +80,7 @@ static void tag_cleanup_grid(unsigned ni, unsigned iter)
 		starpu_tag_remove(TAG(i,iter));
 } 
 
-static void create_task_grid(unsigned iter)
+static int create_task_grid(unsigned iter)
 {
 	int i;
 	int ret;
@@ -102,9 +102,10 @@ static void create_task_grid(unsigned iter)
 			starpu_tag_declare_deps(TAG(i,iter), 1, TAG(i-1,iter));
 
 		ret = starpu_task_submit(task);
+		if (ret == -ENODEV) return 77;
 		STARPU_CHECK_RETURN_VALUE(ret, "starpu_task_submit");
 	}
-
+	return 0;
 }
 
 void cpu_codelet(void *descr[] __attribute__ ((unused)), void *_args __attribute__ ((unused)))
@@ -145,7 +146,8 @@ int main(int argc __attribute__((unused)) , char **argv __attribute__((unused)))
 
 	for (i = 0; i < nk; i++)
 	{
-		create_task_grid(i);
+		ret = create_task_grid(i);
+		if (ret == 77) goto enodev;
 
 		starpu_tag_wait(TAG(ni-1, i));
 
@@ -154,9 +156,10 @@ int main(int argc __attribute__((unused)) , char **argv __attribute__((unused)))
 			tag_cleanup_grid(ni, i-1);
 	}
 
+enodev:
 	starpu_shutdown();
 
 	FPRINTF(stderr, "TEST DONE ...\n");
 
-	return 0;
+	return ret;
 }

+ 4 - 1
examples/tag_example/tag_example4.c

@@ -114,6 +114,7 @@ int main(int argc __attribute__((unused)) , char **argv __attribute__((unused)))
 				task_A->tag_id = TAG(0, i);
 
 				ret = starpu_task_submit(task_A);
+				if (ret == -ENODEV) goto enodev;
 				STARPU_CHECK_RETURN_VALUE(ret, "starpu_task_submit");
 			}
 
@@ -127,6 +128,7 @@ int main(int argc __attribute__((unused)) , char **argv __attribute__((unused)))
 				starpu_tag_declare_deps(TAG(j, i), 1, TAG(0, i));
 
 				ret = starpu_task_submit(task_B);
+				if (ret == -ENODEV) goto enodev;
 				STARPU_CHECK_RETURN_VALUE(ret, "starpu_task_submit");
 			}
 		}
@@ -140,9 +142,10 @@ int main(int argc __attribute__((unused)) , char **argv __attribute__((unused)))
 			starpu_tag_remove(TAG(j, i));
 	}
 
+enodev:
 	starpu_shutdown();
 
 	FPRINTF(stderr, "TEST DONE ...\n");
 
-	return 0;
+	return ret;
 }

+ 8 - 5
examples/tag_example/tag_restartable.c

@@ -95,7 +95,7 @@ static void create_task_grid(unsigned iter)
 
 }
 
-static void start_task_grid(unsigned iter)
+static int start_task_grid(unsigned iter)
 {
 	unsigned i;
 	int ret;
@@ -104,6 +104,7 @@ static void start_task_grid(unsigned iter)
 
 	for (i = 0; i < ni; i++) {
 		ret = starpu_task_submit(tasks[iter][i]);
+		if (ret == -ENODEV) return 77;
 		STARPU_CHECK_RETURN_VALUE(ret, "starpu_task_submit");
 	}
 }
@@ -153,16 +154,18 @@ int main(int argc __attribute__((unused)) , char **argv __attribute__((unused)))
 
 	for (i = 0; i < nk; i++)
 	{
-		start_task_grid(i % Nrolls);
+	     ret = start_task_grid(i % Nrolls);
+	     if (ret == 77) goto enodev;
 
-		if (i+1 >= Nrolls)
+	     if (i+1 >= Nrolls)
 			/* Wait before re-using same tasks & tags */
-			starpu_tag_wait(TAG(ni-1, i + 1));
+		  starpu_tag_wait(TAG(ni-1, i + 1));
 	}
 
+enodev:
 	starpu_shutdown();
 
 	FPRINTF(stderr, "TEST DONE ...\n");
 
-	return 0;
+	return 77;
 }