瀏覽代碼

The example may only execute on CPU workers

Cédric Augonnet 14 年之前
父節點
當前提交
bb17b419fe
共有 1 個文件被更改,包括 11 次插入11 次删除
  1. 11 11
      examples/reductions/minmax_reduction.c

+ 11 - 11
examples/reductions/minmax_reduction.c

@@ -69,9 +69,6 @@ void minmax_redux_cpu_func(void *descr[], void *cl_arg)
 
 	array_dst[0] = STARPU_MIN(min_dst, min_src);
 	array_dst[1] = STARPU_MAX(max_dst, max_src);
-
-//	fprintf(stderr, "REDUX: Min(%e,%e) = %e\n", min_dst, min_src, array_dst[0]);
-//	fprintf(stderr, "REDUX: Max(%e,%e) = %e\n", max_dst, max_src, array_dst[1]);
 }
 
 static struct starpu_codelet_t minmax_redux_codelet = {
@@ -104,9 +101,6 @@ void minmax_cpu_func(void *descr[], void *cl_arg)
 		local_max = STARPU_MAX(local_max, val);
 	}
 
-//	fprintf(stderr, "AFTER local min: %e was %e\n", local_min, minmax[0]);
-//	fprintf(stderr, "AFTER local max: %e was %e\n", local_max, minmax[1]);
-
 	minmax[0] = local_min;
 	minmax[1] = local_max;
 }
@@ -123,6 +117,8 @@ static struct starpu_codelet_t minmax_codelet = {
 
 int main(int argc, char **argv)
 {
+	unsigned long i;
+
 	starpu_init(NULL);
 
 	unsigned long nelems = nblocks*entries_per_bock;
@@ -130,12 +126,11 @@ int main(int argc, char **argv)
 
 	x = malloc(size);
 	x_handles = calloc(nblocks, sizeof(starpu_data_handle));
+	
+	assert(x && x_handles);
 
-	assert(x);
-
+	/* Initialize the vector with random values */
         starpu_srand48(0);
-	
-	unsigned long i;
 	for (i = 0; i < nelems; i++)
 		x[i] = (TYPE)starpu_drand48();
 	
@@ -171,7 +166,12 @@ int main(int argc, char **argv)
 		task->buffers[1].mode = STARPU_REDUX;
 
 		int ret = starpu_task_submit(task);
-		STARPU_ASSERT(!ret);
+		if (ret)
+		{
+			STARPU_ASSERT(ret == -ENODEV);
+			fprintf(stderr, "This test can only run on CPUs, but there are no CPU workers (this is not a bug).\n");
+			return 0;
+		}
 	}
 
 	starpu_data_unregister(minmax_handle);