|
@@ -115,6 +115,7 @@ struct task_info
|
|
|
char *parameters;
|
|
|
unsigned int ndeps;
|
|
|
unsigned long *dependencies;
|
|
|
+ char **deplabels;
|
|
|
unsigned long ndata;
|
|
|
struct data_parameter_info *data;
|
|
|
int mpi_rank;
|
|
@@ -153,6 +154,7 @@ static struct task_info *get_task(unsigned long job_id, int mpi_rank)
|
|
|
task->parameters = NULL;
|
|
|
task->ndeps = 0;
|
|
|
task->dependencies = NULL;
|
|
|
+ task->deplabels = NULL;
|
|
|
task->ndata = 0;
|
|
|
task->data = NULL;
|
|
|
task->mpi_rank = mpi_rank;
|
|
@@ -207,9 +209,21 @@ static void task_dump(struct task_info *task, struct starpu_fxt_options *options
|
|
|
{
|
|
|
fprintf(tasks_file, "DependsOn:");
|
|
|
for (i = 0; i < task->ndeps; i++)
|
|
|
- fprintf(tasks_file, " %s%lu", prefix, task->dependencies[i]);
|
|
|
+ {
|
|
|
+ char *name = task->deplabels[i];
|
|
|
+ if (name)
|
|
|
+ {
|
|
|
+ fprintf(tasks_file, " %s/%s%lu", name, prefix, task->dependencies[i]);
|
|
|
+ free(name);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ fprintf(tasks_file, " %s%lu", prefix, task->dependencies[i]);
|
|
|
+ }
|
|
|
+ }
|
|
|
fprintf(tasks_file, "\n");
|
|
|
free(task->dependencies);
|
|
|
+ free(task->deplabels);
|
|
|
}
|
|
|
fprintf(tasks_file, "Tag: %"PRIx64"\n", task->tag);
|
|
|
if (task->workerid >= 0)
|
|
@@ -2740,8 +2754,14 @@ static void handle_task_deps(struct fxt_ev_64 *ev, struct starpu_fxt_options *op
|
|
|
if (alloc)
|
|
|
{
|
|
|
_STARPU_REALLOC(task->dependencies, sizeof(*task->dependencies) * alloc);
|
|
|
+ _STARPU_REALLOC(task->deplabels, sizeof(*task->deplabels) * alloc);
|
|
|
}
|
|
|
- task->dependencies[task->ndeps++] = dep_prev;
|
|
|
+ task->dependencies[task->ndeps] = dep_prev;
|
|
|
+ if (options->label_deps)
|
|
|
+ task->deplabels[task->ndeps] = name?strdup(name):NULL;
|
|
|
+ else
|
|
|
+ task->deplabels[task->ndeps] = NULL;
|
|
|
+ task->ndeps++;
|
|
|
|
|
|
/* There is a dependency between both job id : dep_prev -> dep_succ */
|
|
|
if (show_task(task, options))
|