static void create_task_12(starpu_data_handle_t dataA, unsigned k, unsigned i) { int ret; /* printf("task 12 k,i = %d,%d TAG = %llx\n", k,i, TAG12(k,i)); */ struct starpu_task *task = create_task(TAG12(k, i)); task->cl = &cl12; /* which sub-data is manipulated ? */ task->handles[0] = starpu_data_get_sub_data(dataA, 2, k, k); task->handles[1] = starpu_data_get_sub_data(dataA, 2, i, k); if (!no_prio && (i == k+1)) { task->priority = STARPU_MAX_PRIO; } /* enforce dependencies ... */ if (k > 0) { starpu_tag_declare_deps(TAG12(k, i), 2, TAG11(k), TAG22(k-1, i, k)); } else { starpu_tag_declare_deps(TAG12(k, i), 1, TAG11(k)); } ret = starpu_task_submit(task); STARPU_CHECK_RETURN_VALUE(ret, "starpu_task_submit"); }
static void create_task_12(starpu_data_handle *dataAp, unsigned nblocks, unsigned k, unsigned j, starpu_data_handle (* get_block)(starpu_data_handle *, unsigned, unsigned, unsigned)) { // printf("task 12 k,i = %d,%d TAG = %llx\n", k,i, TAG12(k,i)); struct starpu_task *task = create_task(); task->cl = &cl12; task->cl_arg = NULL; /* which sub-data is manipulated ? */ task->buffers[0].handle = get_block(dataAp, nblocks, k, k); task->buffers[0].mode = STARPU_R; task->buffers[1].handle = get_block(dataAp, nblocks, j, k); task->buffers[1].mode = STARPU_RW; if (!no_prio && (j == k+1)) { task->priority = STARPU_MAX_PRIO; } /* enforce dependencies ... */ #if 0 starpu_tag_declare_deps(TAG12(k, i), 1, PIVOT(k, i)); #endif if (k > 0) { starpu_task_declare_deps_array(task, 1, &EVENT(k,k)); starpu_task_declare_deps_array(task, 1, &EVENT(k,j)); } else { starpu_task_declare_deps_array(task, 1, &EVENT(k,k)); } starpu_task_submit(task, NULL); }
static int create_task_12(starpu_data_handle_t dataA, unsigned k, unsigned j) { int ret; struct starpu_task *task = starpu_task_create(); task->cl = &cl12; /* which sub-data is manipulated ? */ task->handles[0] = starpu_data_get_sub_data(dataA, 2, k, k); task->handles[1] = starpu_data_get_sub_data(dataA, 2, j, k); task->tag_id = TAG12(k,j); if (!no_prio && (j == k+1)) task->priority = STARPU_MAX_PRIO; ret = starpu_task_submit(task); if (ret != -ENODEV) STARPU_CHECK_RETURN_VALUE(ret, "starpu_task_submit"); return ret; }