浏览代码

Cleanup FxT tool, there is no svg output anymore (Vite is much better in every
ways).

Cédric Augonnet 15 年之前
父节点
当前提交
d3cfd654a8
共有 3 个文件被更改,包括 31 次插入145 次删除
  1. 1 1
      tools/Makefile.am
  2. 30 121
      tools/fxt-tool.c
  3. 0 23
      tools/fxt-tool.h

+ 1 - 1
tools/Makefile.am

@@ -26,7 +26,7 @@ CLEANFILES = *.gcno *.gcda *.linkinfo
 if USE_FXT
 if USE_FXT
 bin_PROGRAMS += fxt-tool fxt-stats
 bin_PROGRAMS += fxt-tool fxt-stats
 
 
-fxt_tool_SOURCES = fxt-tool.c histo-svg.c dag-dot.c histo-paje.c
+fxt_tool_SOURCES = fxt-tool.c dag-dot.c histo-paje.c
 fxt_tool_CFLAGS = -I$(top_srcdir)/src/
 fxt_tool_CFLAGS = -I$(top_srcdir)/src/
 fxt_tool_LDADD = 
 fxt_tool_LDADD = 
 
 

+ 30 - 121
tools/fxt-tool.c

@@ -16,8 +16,6 @@
 
 
 #include "fxt-tool.h"
 #include "fxt-tool.h"
 
 
-event_list_t events[MAXWORKERS];
-workq_list_t taskq;
 char *worker_name[MAXWORKERS];
 char *worker_name[MAXWORKERS];
 
 
 static char *cpus_worker_colors[MAXWORKERS] = {"/greens9/7", "/greens9/6", "/greens9/5", "/greens9/4",  "/greens9/9", "/greens9/3",  "/greens9/2",  "/greens9/1"  };
 static char *cpus_worker_colors[MAXWORKERS] = {"/greens9/7", "/greens9/6", "/greens9/5", "/greens9/4",  "/greens9/9", "/greens9/3",  "/greens9/2",  "/greens9/1"  };
@@ -37,6 +35,8 @@ unsigned nworkers = 0;
 char *filename = NULL;
 char *filename = NULL;
 unsigned per_task_colour = 0;
 unsigned per_task_colour = 0;
 
 
+unsigned no_counter = 0;
+unsigned no_bus = 0;
 
 
 LIST_TYPE(symbol_name,
 LIST_TYPE(symbol_name,
 	char *name;
 	char *name;
@@ -44,8 +44,6 @@ LIST_TYPE(symbol_name,
 
 
 symbol_name_list_t symbol_list;
 symbol_name_list_t symbol_list;
 
 
-
-
 /*
 /*
  * Paje trace file tools
  * Paje trace file tools
  */
  */
@@ -165,8 +163,6 @@ void handle_worker_init_start(void)
 	res = hsearch(item, ENTER);
 	res = hsearch(item, ENTER);
 	STARPU_ASSERT(res);
 	STARPU_ASSERT(res);
 
 
-	events[workerid] = event_list_new();
-
 	/* start initialization */
 	/* start initialization */
 	fprintf(out_paje_file, "10       %f     S      %ld      I\n", (float)((ev.time-start_time)/1000000.0), ev.param[2]);
 	fprintf(out_paje_file, "10       %f     S      %ld      I\n", (float)((ev.time-start_time)/1000000.0), ev.param[2]);
 }
 }
@@ -287,11 +283,6 @@ void handle_start_codelet_body(void)
 		fprintf(out_paje_file, "10       %f	S      %ld      E\n", (float)((ev.time-start_time)/1000000.0), ev.param[1]);
 		fprintf(out_paje_file, "10       %f	S      %ld      E\n", (float)((ev.time-start_time)/1000000.0), ev.param[1]);
 	}
 	}
 
 
-	event_t e = event_new();
-	e->time =  ev.time;
-	e->mode = WORKING;
-	event_list_push_back(events[worker], e);
-
 	end_time = STARPU_MAX(end_time, ev.time);
 	end_time = STARPU_MAX(end_time, ev.time);
 }
 }
 
 
@@ -305,11 +296,6 @@ void handle_end_codelet_body(void)
 //	printf("<- worker %d\n", worker);
 //	printf("<- worker %d\n", worker);
 	fprintf(out_paje_file, "10       %f	S      %ld      B\n", (float)((ev.time-start_time)/1000000.0), ev.param[1] );
 	fprintf(out_paje_file, "10       %f	S      %ld      B\n", (float)((ev.time-start_time)/1000000.0), ev.param[1] );
 
 
-	event_t e = event_new();
-	e->time =  ev.time;
-	e->mode = IDLE;
-	event_list_push_back(events[worker], e);
-
 	end_time = STARPU_MAX(end_time, ev.time);
 	end_time = STARPU_MAX(end_time, ev.time);
 }
 }
 
 
@@ -350,11 +336,6 @@ void handle_start_fetch_input(void)
 
 
 	fprintf(out_paje_file, "10       %f	S      %ld      Fi\n", (float)((ev.time-start_time)/1000000.0), ev.param[1] );
 	fprintf(out_paje_file, "10       %f	S      %ld      Fi\n", (float)((ev.time-start_time)/1000000.0), ev.param[1] );
 
 
-	event_t e = event_new();
-	e->time =  ev.time;
-	e->mode = FETCHING;
-	event_list_push_back(events[worker], e);
-
 	end_time = STARPU_MAX(end_time, ev.time);
 	end_time = STARPU_MAX(end_time, ev.time);
 }
 }
 
 
@@ -366,11 +347,6 @@ void handle_end_fetch_input(void)
 
 
 	fprintf(out_paje_file, "10       %f	S      %ld      B\n", (float)((ev.time-start_time)/1000000.0), ev.param[1] );
 	fprintf(out_paje_file, "10       %f	S      %ld      B\n", (float)((ev.time-start_time)/1000000.0), ev.param[1] );
 
 
-	event_t e = event_new();
-	e->time =  ev.time;
-	e->mode = IDLE;
-	event_list_push_back(events[worker], e);
-
 	end_time = STARPU_MAX(end_time, ev.time);
 	end_time = STARPU_MAX(end_time, ev.time);
 }
 }
 
 
@@ -382,11 +358,6 @@ void handle_start_push_output(void)
 
 
 	fprintf(out_paje_file, "10       %f	S      %ld      Po\n", (float)((ev.time-start_time)/1000000.0), ev.param[1] );
 	fprintf(out_paje_file, "10       %f	S      %ld      Po\n", (float)((ev.time-start_time)/1000000.0), ev.param[1] );
 
 
-	event_t e = event_new();
-	e->time =  ev.time;
-	e->mode = PUSHING;
-	event_list_push_back(events[worker], e);
-
 	end_time = STARPU_MAX(end_time, ev.time);
 	end_time = STARPU_MAX(end_time, ev.time);
 }
 }
 
 
@@ -398,11 +369,6 @@ void handle_end_push_output(void)
 	
 	
 	fprintf(out_paje_file, "10       %f	S      %ld      B\n", (float)((ev.time-start_time)/1000000.0), ev.param[1] );
 	fprintf(out_paje_file, "10       %f	S      %ld      B\n", (float)((ev.time-start_time)/1000000.0), ev.param[1] );
 
 
-	event_t e = event_new();
-	e->time =  ev.time;
-	e->mode = IDLE;
-	event_list_push_back(events[worker], e);
-
 	end_time = STARPU_MAX(end_time, ev.time);
 	end_time = STARPU_MAX(end_time, ev.time);
 }
 }
 
 
@@ -414,11 +380,6 @@ void handle_start_progress(void)
 
 
 	fprintf(out_paje_file, "10       %f	S      %ld      P\n", (float)((ev.time-start_time)/1000000.0), ev.param[1] );
 	fprintf(out_paje_file, "10       %f	S      %ld      P\n", (float)((ev.time-start_time)/1000000.0), ev.param[1] );
 
 
-	event_t e = event_new();
-	e->time =  ev.time;
-	e->mode = PUSHING;
-	event_list_push_back(events[worker], e);
-
 	end_time = STARPU_MAX(end_time, ev.time);
 	end_time = STARPU_MAX(end_time, ev.time);
 }
 }
 
 
@@ -430,11 +391,6 @@ void handle_end_progress(void)
 	
 	
 	fprintf(out_paje_file, "10       %f	S      %ld      B\n", (float)((ev.time-start_time)/1000000.0), ev.param[1] );
 	fprintf(out_paje_file, "10       %f	S      %ld      B\n", (float)((ev.time-start_time)/1000000.0), ev.param[1] );
 
 
-	event_t e = event_new();
-	e->time =  ev.time;
-	e->mode = IDLE;
-	event_list_push_back(events[worker], e);
-
 	end_time = STARPU_MAX(end_time, ev.time);
 	end_time = STARPU_MAX(end_time, ev.time);
 }
 }
 
 
@@ -450,7 +406,10 @@ void handle_start_driver_copy(void)
 	unsigned size = ev.param[2];
 	unsigned size = ev.param[2];
 	unsigned comid = ev.param[3];
 	unsigned comid = ev.param[3];
 
 
+	if (!no_bus)
 	fprintf(out_paje_file, "10       %f     MS      MEMNODE%d      Co\n", (float)((ev.time-start_time)/1000000.0), dst);
 	fprintf(out_paje_file, "10       %f     MS      MEMNODE%d      Co\n", (float)((ev.time-start_time)/1000000.0), dst);
+
+	if (!no_bus)
 	fprintf(out_paje_file, "18       %f	L      p	%d	MEMNODE%d	com_%d\n", (float)((ev.time-start_time)/1000000.0), size, src, comid);
 	fprintf(out_paje_file, "18       %f	L      p	%d	MEMNODE%d	com_%d\n", (float)((ev.time-start_time)/1000000.0), size, src, comid);
 
 
 }
 }
@@ -509,37 +468,20 @@ void handle_end_memreclaim(void)
 	fprintf(out_paje_file, "10       %f     MS      MEMNODE%d      No\n", (float)((ev.time-start_time)/1000000.0), memnode);
 	fprintf(out_paje_file, "10       %f     MS      MEMNODE%d      No\n", (float)((ev.time-start_time)/1000000.0), memnode);
 }
 }
 
 
-int maxq_size = 0;
 int curq_size = 0;
 int curq_size = 0;
 
 
 void handle_job_push(void)
 void handle_job_push(void)
 {
 {
 	curq_size++;
 	curq_size++;
 
 
-	maxq_size = STARPU_MAX(maxq_size, curq_size);
-
-	workq_t e = workq_new();
-	e->time =  ev.time;
-	e->diff =  +1;
-	e->current_size = curq_size;
-
 	fprintf(out_paje_file, "13       %f ntask sched %f\n", (float)((ev.time-start_time)/1000000.0), (float)curq_size);
 	fprintf(out_paje_file, "13       %f ntask sched %f\n", (float)((ev.time-start_time)/1000000.0), (float)curq_size);
-
-	workq_list_push_back(taskq, e);
 }
 }
 
 
 void handle_job_pop(void)
 void handle_job_pop(void)
 {
 {
 	curq_size--;
 	curq_size--;
 
 
-	workq_t e = workq_new();
-	e->time =  ev.time;
-	e->diff =  -1;
-	e->current_size = curq_size;
-
 	fprintf(out_paje_file, "13       %f ntask sched %f\n", (float)((ev.time-start_time)/1000000.0), (float)curq_size);
 	fprintf(out_paje_file, "13       %f ntask sched %f\n", (float)((ev.time-start_time)/1000000.0), (float)curq_size);
-
-	workq_list_push_back(taskq, e);
 }
 }
 
 
 void handle_codelet_tag_deps(void)
 void handle_codelet_tag_deps(void)
@@ -574,61 +516,12 @@ void handle_task_done(void)
 		colour = &buffer[0];
 		colour = &buffer[0];
 	}
 	}
 	else {
 	else {
-		colour = worker_colors[worker];
+		colour=(worker < 0)?"0.0,0.0,0.0":worker_colors[worker];
 	}
 	}
 
 
 	dot_set_tag_done(tag_id, colour);
 	dot_set_tag_done(tag_id, colour);
 }
 }
 
 
-void generate_svg_output(void)
-{
-	svg_engine_generate_output(events, taskq, worker_name, nworkers, maxq_size, start_time, end_time, "toto.svg");
-}
-
-void generate_gnuplot_output(void)
-{
-	FILE *output;
-	output = fopen("data", "w+");
-	STARPU_ASSERT(output);
-	
-	unsigned linesize;
-	unsigned maxline = 0;
-
-	unsigned worker;
-	for (worker = 0; worker < nworkers; worker++)
-	{
-		linesize = 0;
-
-		event_itor_t i;
-		for (i = event_list_begin(events[worker]);
-		     i != event_list_end(events[worker]);
-		     i = event_list_next(i))
-		{
-			linesize++;
-		}
-		maxline = STARPU_MAX(maxline, linesize);
-	}
-
-	for (worker = 0; worker < nworkers; worker++)
-	{
-		unsigned long prev = start_time;
-
-		fprintf(output, "%d\t", 0);
-
-		event_itor_t i;
-		for (i = event_list_begin(events[worker]);
-		     i != event_list_end(events[worker]);
-		     i = event_list_next(i))
-		{
-			fprintf(output, "%lu\t", (i->time - prev)/FACTOR);
-			prev = i->time;
-		}
-		fprintf(output, "\n");
-	}
-
-	fclose(output);
-}
-
 static void parse_args(int argc, char **argv)
 static void parse_args(int argc, char **argv)
 {
 {
 	int i;
 	int i;
@@ -645,8 +538,17 @@ static void parse_args(int argc, char **argv)
 			filename = argv[++i];
 			filename = argv[++i];
 		}
 		}
 
 
+		if (strcmp(argv[i], "-no-counter") == 0) {
+			no_counter = 1;
+		}
+
+		if (strcmp(argv[i], "-no-bus") == 0) {
+			no_bus = 1;
+		}
+
+
 		if (strcmp(argv[i], "-h") == 0) {
 		if (strcmp(argv[i], "-h") == 0) {
-		        fprintf(stderr, "Usage : %s [-c] [-i input_filename] [-o output_filename]\n", argv[0]);
+		        fprintf(stderr, "Usage : %s [-c] [-no-counter] [-no-bus] [-i input_filename] [-o output_filename]\n", argv[0]);
 			fprintf(stderr, "\t-c: use a different colour for every type of task.\n");
 			fprintf(stderr, "\t-c: use a different colour for every type of task.\n");
 		        exit(-1);
 		        exit(-1);
 		}
 		}
@@ -689,8 +591,6 @@ int main(int argc, char **argv)
 
 
 	paje_output_file_init();
 	paje_output_file_init();
 
 
-	taskq = workq_list_new();
-
 	while(1) {
 	while(1) {
 		ret = fxt_next_ev(block, FXT_EV_TYPE_64, (struct fxt_ev *)&ev);
 		ret = fxt_next_ev(block, FXT_EV_TYPE_64, (struct fxt_ev *)&ev);
 		if (ret != FXT_EV_OK) {
 		if (ret != FXT_EV_OK) {
@@ -708,8 +608,11 @@ int main(int argc, char **argv)
 			/* create the "program" container */
 			/* create the "program" container */
 			fprintf(out_paje_file, "7       %f p      P      0       program \n", (float)(start_time-start_time));
 			fprintf(out_paje_file, "7       %f p      P      0       program \n", (float)(start_time-start_time));
 			/* create a variable with the number of tasks */
 			/* create a variable with the number of tasks */
-			fprintf(out_paje_file, "7       %f sched      Sc      p       scheduler \n", (float)(start_time-start_time));
-			fprintf(out_paje_file, "13       %f ntask sched 0.0\n", (float)(start_time-start_time));
+			if (!no_counter)
+			{
+				fprintf(out_paje_file, "7       %f sched      Sc      p       scheduler \n", (float)(start_time-start_time));
+				fprintf(out_paje_file, "13       %f ntask sched 0.0\n", (float)(start_time-start_time));
+			}
 		}
 		}
 
 
 		switch (ev.code) {
 		switch (ev.code) {
@@ -743,9 +646,11 @@ int main(int argc, char **argv)
 
 
 			/* monitor stack size */
 			/* monitor stack size */
 			case FUT_JOB_PUSH:
 			case FUT_JOB_PUSH:
+				if (!no_counter)
 				handle_job_push();
 				handle_job_push();
 				break;
 				break;
 			case FUT_JOB_POP:
 			case FUT_JOB_POP:
+				if (!no_counter)
 				handle_job_pop();
 				handle_job_pop();
 				break;
 				break;
 
 
@@ -784,14 +689,17 @@ int main(int argc, char **argv)
 				break;
 				break;
 
 
 			case FUT_DATA_COPY:
 			case FUT_DATA_COPY:
+				if (!no_bus)
 				handle_data_copy();
 				handle_data_copy();
 				break;
 				break;
 
 
 			case FUT_START_DRIVER_COPY:
 			case FUT_START_DRIVER_COPY:
+				if (!no_bus)
 				handle_start_driver_copy();
 				handle_start_driver_copy();
 				break;
 				break;
 
 
 			case FUT_END_DRIVER_COPY:
 			case FUT_END_DRIVER_COPY:
+				if (!no_bus)
 				handle_end_driver_copy();
 				handle_end_driver_copy();
 				break;
 				break;
 
 
@@ -808,22 +716,25 @@ int main(int argc, char **argv)
 				break;
 				break;
 
 
 			case FUT_START_ALLOC:
 			case FUT_START_ALLOC:
+				if (!no_bus)
 				handle_start_alloc();
 				handle_start_alloc();
 				break;
 				break;
 
 
 			case FUT_END_ALLOC:
 			case FUT_END_ALLOC:
+				if (!no_bus)
 				handle_end_alloc();
 				handle_end_alloc();
 				break;
 				break;
 
 
 			case FUT_START_ALLOC_REUSE:
 			case FUT_START_ALLOC_REUSE:
+				if (!no_bus)
 				handle_start_alloc_reuse();
 				handle_start_alloc_reuse();
 				break;
 				break;
 
 
 			case FUT_END_ALLOC_REUSE:
 			case FUT_END_ALLOC_REUSE:
+				if (!no_bus)
 				handle_end_alloc_reuse();
 				handle_end_alloc_reuse();
 				break;
 				break;
 
 
-
 			case FUT_START_MEMRECLAIM:
 			case FUT_START_MEMRECLAIM:
 				handle_start_memreclaim();
 				handle_start_memreclaim();
 				break;
 				break;
@@ -842,8 +753,6 @@ int main(int argc, char **argv)
 		}
 		}
 	}
 	}
 
 
-	generate_gnuplot_output();
-	generate_svg_output();
 	paje_output_file_terminate();
 	paje_output_file_terminate();
 
 
 	terminate_dat_dot();
 	terminate_dat_dot();

+ 0 - 23
tools/fxt-tool.h

@@ -34,32 +34,9 @@
 #define MAXWORKERS      32
 #define MAXWORKERS      32
 #define FACTOR  100
 #define FACTOR  100
 
 
-typedef enum {
-	WORKING,
-	FETCHING,
-	PUSHING,
-	IDLE
-} worker_mode;
-
-LIST_TYPE(event,
-        uint64_t time;
-	worker_mode mode;
-);
-
-LIST_TYPE(workq,
-	uint64_t time;
-	int diff;
-	int current_size;
-);
-
 extern void init_dag_dot(void);
 extern void init_dag_dot(void);
 extern void terminate_dat_dot(void);
 extern void terminate_dat_dot(void);
 extern void add_deps(uint64_t child, uint64_t father);
 extern void add_deps(uint64_t child, uint64_t father);
 extern void dot_set_tag_done(uint64_t tag, char *color);
 extern void dot_set_tag_done(uint64_t tag, char *color);
 
 
-extern void svg_engine_generate_output(event_list_t *events, 
-	workq_list_t taskq, char **worker_name, unsigned nworkers,
-	unsigned maxq_size, uint64_t _start_time, uint64_t _end_time,
-	char *path);
-
 #endif // __FXT_TOOL_H__
 #endif // __FXT_TOOL_H__