浏览代码

Add priorities to tasks.rec

Samuel Thibault 7 年之前
父节点
当前提交
5152b0c985
共有 2 个文件被更改,包括 7 次插入1 次删除
  1. 1 1
      src/common/fxt.h
  2. 6 0
      src/debug/traces/starpu_fxt.c

+ 1 - 1
src/common/fxt.h

@@ -734,7 +734,7 @@ do {										\
 	FUT_DO_PROBE1(_STARPU_FUT_WORKER_SLEEP_END, _starpu_gettid());
 	FUT_DO_PROBE1(_STARPU_FUT_WORKER_SLEEP_END, _starpu_gettid());
 
 
 #define _STARPU_TRACE_TASK_SUBMIT(job, iter, subiter)	\
 #define _STARPU_TRACE_TASK_SUBMIT(job, iter, subiter)	\
-	FUT_DO_PROBE5(_STARPU_FUT_TASK_SUBMIT, (job)->job_id, iter, subiter, (job)->task->submit_order, _starpu_gettid());
+	FUT_DO_PROBE6(_STARPU_FUT_TASK_SUBMIT, (job)->job_id, iter, subiter, (job)->task->submit_order, (job)->task->priority, _starpu_gettid());
 
 
 #define _STARPU_TRACE_TASK_SUBMIT_START()	\
 #define _STARPU_TRACE_TASK_SUBMIT_START()	\
 	FUT_DO_PROBE1(_STARPU_FUT_TASK_SUBMIT_START, _starpu_gettid());
 	FUT_DO_PROBE1(_STARPU_FUT_TASK_SUBMIT_START, _starpu_gettid());

+ 6 - 0
src/debug/traces/starpu_fxt.c

@@ -97,6 +97,7 @@ struct task_info
 	int exclude_from_dag;
 	int exclude_from_dag;
 	unsigned long job_id;
 	unsigned long job_id;
 	unsigned long submit_order;
 	unsigned long submit_order;
+	long priority;
 	uint64_t tag;
 	uint64_t tag;
 	int workerid;
 	int workerid;
 	int node;
 	int node;
@@ -130,6 +131,7 @@ static struct task_info *get_task(unsigned long job_id, int mpi_rank)
 		task->exclude_from_dag = 0;
 		task->exclude_from_dag = 0;
 		task->job_id = job_id;
 		task->job_id = job_id;
 		task->submit_order = 0;
 		task->submit_order = 0;
+		task->priority = 0;
 		task->tag = 0;
 		task->tag = 0;
 		task->workerid = -1;
 		task->workerid = -1;
 		task->node = -1;
 		task->node = -1;
@@ -178,6 +180,8 @@ static void task_dump(struct task_info *task)
 	fprintf(tasks_file, "JobId: %lu\n", task->job_id);
 	fprintf(tasks_file, "JobId: %lu\n", task->job_id);
 	if (task->submit_order)
 	if (task->submit_order)
 		fprintf(tasks_file, "SubmitOrder: %lu\n", task->submit_order);
 		fprintf(tasks_file, "SubmitOrder: %lu\n", task->submit_order);
+	if (task->priority)
+		fprintf(tasks_file, "Priority: %ld\n", task->priority);
 	if (task->dependencies)
 	if (task->dependencies)
 	{
 	{
 		fprintf(tasks_file, "DependsOn:");
 		fprintf(tasks_file, "DependsOn:");
@@ -2540,10 +2544,12 @@ static void handle_task_submit(struct fxt_ev_64 *ev, struct starpu_fxt_options *
 	unsigned long iteration = ev->param[1];
 	unsigned long iteration = ev->param[1];
 	unsigned long subiteration = ev->param[2];
 	unsigned long subiteration = ev->param[2];
 	unsigned long submit_order = ev->param[3];
 	unsigned long submit_order = ev->param[3];
+	long priority = (long) ev->param[4];
 
 
 	struct task_info *task = get_task(job_id, options->file_rank);
 	struct task_info *task = get_task(job_id, options->file_rank);
 	task->submit_time = get_event_time_stamp(ev, options);
 	task->submit_time = get_event_time_stamp(ev, options);
 	task->submit_order = submit_order;
 	task->submit_order = submit_order;
+	task->priority = priority;
 	task->iterations[0] = iteration;
 	task->iterations[0] = iteration;
 	task->iterations[1] = subiteration;
 	task->iterations[1] = subiteration;
 }
 }