|
@@ -26,15 +26,10 @@ void func_cpu(void *descr[], STARPU_ATTRIBUTE_UNUSED void *_args)
|
|
|
int *x2 = (int *)STARPU_VARIABLE_GET_PTR(descr[2]);
|
|
|
int *y = (int *)STARPU_VARIABLE_GET_PTR(descr[3]);
|
|
|
|
|
|
- //FPRINTF(stderr, "-------> CODELET VALUES: %d %d %d %d\n", *x0, *x1, *x2, *y);
|
|
|
- //*x2 = 45;
|
|
|
- //*y = 144;
|
|
|
-
|
|
|
- FPRINTF(stderr, "-------> CODELET VALUES: %d %d (x2) %d\n", *x0, *x1, *y);
|
|
|
+ FPRINTF(stderr, "-------> CODELET VALUES: %d %d nan %d\n", *x0, *x1, *y);
|
|
|
+ *x2 = *y;
|
|
|
*y = (*x0 + *x1) * 100;
|
|
|
*x1 = 12;
|
|
|
- *x2 = 24;
|
|
|
- *x0 = 36;
|
|
|
FPRINTF(stderr, "-------> CODELET VALUES: %d %d %d %d\n", *x0, *x1, *x2, *y);
|
|
|
}
|
|
|
|
|
@@ -61,7 +56,8 @@ int main(int argc, char **argv)
|
|
|
{
|
|
|
int rank, size, err;
|
|
|
int x[3], y=0;
|
|
|
- int i, ret;
|
|
|
+ int oldx[3];
|
|
|
+ int i, ret=0;
|
|
|
starpu_data_handle_t data_handles[4];
|
|
|
|
|
|
ret = starpu_init(NULL);
|
|
@@ -85,6 +81,7 @@ int main(int argc, char **argv)
|
|
|
for(i=0 ; i<3 ; i++)
|
|
|
{
|
|
|
x[i] = 10*(i+1);
|
|
|
+ oldx[i] = 10*(i+1);
|
|
|
starpu_variable_data_register(&data_handles[i], STARPU_MAIN_RAM, (uintptr_t)&x[i], sizeof(x[i]));
|
|
|
}
|
|
|
y = -1;
|
|
@@ -100,14 +97,14 @@ int main(int argc, char **argv)
|
|
|
y=200;
|
|
|
starpu_variable_data_register(&data_handles[3], STARPU_MAIN_RAM, (uintptr_t)&y, sizeof(int));
|
|
|
}
|
|
|
- FPRINTF(stderr, "[%d][init] VALUES: %d %d %d %d\n", rank, x[0], x[1], x[2], y);
|
|
|
-
|
|
|
for(i=0 ; i<3 ; i++)
|
|
|
{
|
|
|
starpu_mpi_data_register(data_handles[i], i, 0);
|
|
|
}
|
|
|
starpu_mpi_data_register(data_handles[3], 3, 1);
|
|
|
|
|
|
+ FPRINTF(stderr, "[%d][init] VALUES: %d %d %d %d\n", rank, x[0], x[1], x[2], y);
|
|
|
+
|
|
|
err = starpu_mpi_task_insert(MPI_COMM_WORLD, &mycodelet,
|
|
|
STARPU_R, data_handles[0], STARPU_RW, data_handles[1],
|
|
|
STARPU_W, data_handles[2],
|
|
@@ -131,6 +128,16 @@ int main(int argc, char **argv)
|
|
|
if (rank == 0)
|
|
|
{
|
|
|
FPRINTF(stderr, "[%d][local ptr] VALUES: %d %d %d %d\n", rank, values[0], values[1], values[2], values[3]);
|
|
|
+ if (values[0] != oldx[0] || values[1] != 12 || values[2] != 200 || values[3] != ((oldx[0] + oldx[1]) * 100))
|
|
|
+ {
|
|
|
+ FPRINTF(stderr, "[%d][error] values[0] %d != x[0] %d && values[1] %d != 12 && values[2] %d != 200 && values[3] %d != ((x[0] %d + x[1] %d) * 100)\n",
|
|
|
+ rank, values[0], oldx[0], values[1], values[2], values[3], oldx[0], oldx[1]);
|
|
|
+ ret = 1;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ FPRINTF(stderr, "[%d] correct computation\n", rank);
|
|
|
+ }
|
|
|
}
|
|
|
FPRINTF(stderr, "[%d][end] VALUES: %d %d %d %d\n", rank, x[0], x[1], x[2], y);
|
|
|
|
|
@@ -138,6 +145,6 @@ int main(int argc, char **argv)
|
|
|
starpu_mpi_shutdown();
|
|
|
starpu_shutdown();
|
|
|
|
|
|
- return 0;
|
|
|
+ return (rank == 0) ? ret : 0;
|
|
|
}
|
|
|
|