Browse Source

traces: solving issue with synchro tasks when generating MPI trace

Luka Stanisic 8 years ago
parent
commit
fba55ca39f
1 changed files with 9 additions and 5 deletions
  1. 9 5
      src/debug/traces/starpu_fxt.c

+ 9 - 5
src/debug/traces/starpu_fxt.c

@@ -151,9 +151,8 @@ static struct task_info *get_task(unsigned long job_id, int mpi_rank)
 	return task;
 }
 
-static void task_dump(unsigned long job_id, int mpi_rank)
+static void task_dump(struct task_info *task)
 {
-	struct task_info *task = get_task(job_id, mpi_rank);
 	unsigned i;
 
 	if (task->exclude_from_dag)
@@ -2373,9 +2372,6 @@ static void handle_task_done(struct fxt_ev_64 *ev, struct starpu_fxt_options *op
 	unsigned exclude_from_dag = ev->param[2];
 	get_task(job_id, options->file_rank)->exclude_from_dag = exclude_from_dag;
 
-	if (tasks_file)
-		task_dump(job_id, options->file_rank);
-
 	if (!exclude_from_dag)
 		_starpu_fxt_dag_set_task_done(options->file_prefix, job_id, name, colour);
 }
@@ -3441,6 +3437,14 @@ void _starpu_fxt_parse_new_file(char *filename_in, struct starpu_fxt_options *op
 		}
 	}
 
+	{
+		struct task_info *task, *tmp;
+		HASH_ITER(hh, tasks_info, task, tmp)
+		{
+			task_dump(task);
+		}
+	}
+
 	/* Close the trace file */
 	if (close(fd_in))
 	{