head     1.4;
branch   ;
access   ;
symbols  ;
locks    ; strict;
comment  @# @;


1.4
date     92.04.20.16.38.51;  author romig;  state Exp;
branches ;
next     1.3;

1.3
date     92.04.17.11.44.25;  author romig;  state Exp;
branches ;
next     1.2;

1.2
date     92.04.17.11.26.07;  author romig;  state Exp;
branches ;
next     1.1;

1.1
date     92.04.13.16.36.06;  author romig;  state Exp;
branches ;
next     ;


desc
@Main Makefile for making all the graphs and the data files.
@


1.4
log
@Fix minor bug.
@
text
@BDIR =			/usr/local/utils/nbu
GRAPH =			/n/pun/1/backup-graph

GETDATA =		$(BDIR)/getdata
GNUPLOT =		gnuplot
PRINTER =		np
PSMERGE =		$(GRAPH/merge-ps-files
MKGR =			$(GRAPH)/mkgr
MAKE =			make -f $(GRAPH)/Makefile
MERGE =			$(GRAPH)/Do-merged
RECENT =		$(GRAPH)/Do-recent
HOSTS =			$(GRAPH)/Do-hosts

# Where the graph stuff goes
CURRENTDIR =		$(GRAPH)/Current
MERGEDDIR =		$(GRAPH)/Merged
RECENTDIR =		$(GRAPH)/Recent

all:	current merged recent

current:
	cd $(CURRENTDIR) ; rm -f *.gp *.ps ; $(GETDATA) ; $(MAKE) graphs

merged:
	$(MERGE)
	cd $(MERGEDDIR) ; rm -f *.gp *.ps ; $(MAKE) graphs

recent:
	$(RECENT)
	cd $(RECENTDIR) ; rm -f *.gp *.ps ; $(MAKE) graphs

#
# Make the graphs - gnuplot graph 
# files for each graph, postscript for printing.
#
# graphs are named by what the Y axis is (runtime, runsize) and what 
# the X axis represents (relative ranking, tape ID, etc).  So 
# "runtime-rank" is a graph of run times (durations) plotted by 
# relative ranking (greatest to least).
#
graphs:	runtime-rank			runtime-rank-level0	\
	runtime-rank-level2		runtime-rank-level9	\
	runtime-rank-lines					\
	runtime-runid			runsize-rank		\
	runsize-rank-level0		runsize-rank-level2	\
	runsize-rank-level9		runsize-rank-lines	\
	runsize-runid						\
	make-hosts			uses-tape

#
# Print the postscript output.
#
# merge-ps-files merges a bunch of single page postscript files into
# one.  up takes a postscript file and rescales and shuffles pages to 
# fit several on a piece of paper.  In this case, 6.
#
print:
	$(PSMERGE) *.ps | /usr/unsup/bin/up -n 6up | lpr -P $(PRINTER)

#
# Trigger to clean things up
#
clean:
	rm -f .maketime* *.dat *.ps *.gp *raw *.size-date

#
# Individual graphs...
#
make-hosts:
	$(HOSTS)

runtime-rank:		rank-duration-level0.dat \
			rank-duration-level2.dat \
			rank-duration-level9.dat
	$(MKGR) -P -y 8 "Run duration" "Rank" "Duration (hours)" 		\
		rank-duration-level0.dat	"level 0"	imp	1	\
		rank-duration-level2.dat	"level 2"	imp	2	\
		rank-duration-level9.dat	"level 9"	imp	8	\
		> runtime-rank.gp
	$(MKGR) -p runtime-rank.ps -y 8 "Run duration" "Rank" "Duration (hours)"\
		rank-duration-level0.dat	"level 0"	imp	1	\
		rank-duration-level2.dat	"level 2"	imp	2	\
		rank-duration-level9.dat	"level 9"	imp	8	\
		| $(GNUPLOT)

runtime-rank-level0:	duration-level0.dat
	$(MKGR) -P -y 8 "Duration of level 0 runs sorted by length" "Rank"	\
		"Duration (hours)"						\
		duration-level0.dat		""		imp	1	\
		> runtime-rank-level0.gp
	$(MKGR) -p runtime-rank-level0.ps -y 8					\
		"Duration of level 0 runs sorted by length" "Rank" "Duration (hours)"\
		duration-level0.dat		""		imp	1	\
		| $(GNUPLOT)

runtime-rank-level2:	duration-level2.dat
	$(MKGR) -P -y 8 "Duration of level 2 runs sorted by length" "Rank"	\
		"Duration (hours)"						\
		duration-level2.dat		""		imp	2	\
		> runtime-rank-level2.gp
	$(MKGR) -p runtime-rank-level2.ps -y 8 					\
		"Duration of level 2 runs sorted by length" "Rank"		\
		"Duration (hours)"						\
		duration-level2.dat		""		imp	2	\
		| $(GNUPLOT)

runtime-rank-level9:	duration-level9.dat
	$(MKGR) -P -y 8 "Duration of level 9 runs sorted by length" "Rank"	\
		"Duration (hours)"						\
		duration-level9.dat		""		imp	8	\
		> runtime-rank-level9.gp
	$(MKGR) -p runtime-rank-level9.ps -y 8					\
		"Duration of level 9 runs sorted by length" "Rank"		\
		"Duration (hours)"						\
		duration-level9.dat		""		imp	8	\
		| $(GNUPLOT)

runtime-rank-lines:	duration-level0.dat \
			duration-level2.dat \
			duration-level9.dat
	$(MKGR) -P -y 8 "Duration" "Rank" "Duration (hours)"			\
		duration-level0.dat		"level 0"	lines	1	\
		duration-level2.dat		"level 2"	lines	2	\
		duration-level9.dat		"level 9"	lines	8	\
		> runtime-rank-lines.gp
	$(MKGR) -p runtime-rank-lines.ps -y 8					\
		"Duration" "Rank" "Duration (hours)"				\
		duration-level0.dat		"level 0"	lines	1	\
		duration-level2.dat		"level 2"	lines	2	\
		duration-level9.dat		"level 9"	lines	8	\
		| $(GNUPLOT)

runsize-runid:		runid-size-level0.dat \
			runid-size-level2.dat \
			runid-size-level9.dat
	$(MKGR) -P -z "Run size by Run ID" "Run ID" "Size (kilobytes)"		\
		runid-size-level0.dat		"level 0"	imp	1	\
		runid-size-level2.dat		"level 2"	imp	2	\
		runid-size-level9.dat		"level 9"	imp	8	\
		> runsize-runid.gp
	$(MKGR) -p runsize-runid.ps -z 						\
		"Run size by Run ID" "Run ID" "Size (kilobytes)"		\
		runid-size-level0.dat		"level 0"	imp	1	\
		runid-size-level2.dat		"level 2"	imp	2	\
		runid-size-level9.dat		"level 9"	imp	8	\
		| $(GNUPLOT)

runsize-rank:		rank-size-level0.dat \
			rank-size-level2.dat \
			rank-size-level9.dat
	$(MKGR) -P -z "Run size" "Rank" "Size (kilobytes)"			\
		rank-size-level0.dat		"level 0"	imp	1	\
		rank-size-level2.dat		"level 2"	imp	2	\
		rank-size-level9.dat		"level 9"	imp	8	\
		> runsize-rank.gp
	$(MKGR) -p runsize-rank.ps -z 						\
		"Run size" "Rank" "Size (kilobytes)"				\
		rank-size-level0.dat		"level 0"	imp	1	\
		rank-size-level2.dat		"level 2"	imp	2	\
		rank-size-level9.dat		"level 9"	imp	8	\
		| $(GNUPLOT)

runsize-rank-level0:	size-level0.dat
	$(MKGR) -P -y 2.5E+6 "Size of level 0 runs sorted by size" "Rank"	\
		"Size (kilobytes)"						\
		size-level0.dat			""		imp	1	\
		> runsize-rank-level0.gp
	$(MKGR) -p runsize-rank-level0.ps -y 2.5E+6 				\
		"Size of level 0 runs sorted by size" "Rank"			\
		"Size (kilobytes)"						\
		size-level0.dat			""		imp	1	\
		| $(GNUPLOT)

runsize-rank-level2:	size-level2.dat
	$(MKGR) -P -y 2.5E+6 "Size of level 2 runs sorted by size" "Rank"	\
		"Size (kilobytes)"						\
		size-level2.dat			""		imp	2	\
		> runsize-rank-level2.gp
	$(MKGR) -p runsize-rank-level2.ps -y 2.5E+6 				\
		"Size of level 2 runs sorted by size" "Rank"			\
		"Size (kilobytes)"						\
		size-level2.dat			""		imp	2	\
		| $(GNUPLOT)

runsize-rank-level9:	size-level9.dat
	$(MKGR) -P -y 2.5E+6 "Size of level 9 runs sorted by size" "Rank"	\
		"Size (kilobytes)"						\
		size-level9.dat			""		imp	8	\
		> runsize-rank-level9.gp
	$(MKGR) -p runsize-rank-level9.ps -y 2.5E+6 				\
		"Size of level 9 runs sorted by size" "Rank"			\
		"Size (kilobytes)"						\
		size-level9.dat			""		imp	8	\
		| $(GNUPLOT)

runsize-rank-lines:	size-level0.dat \
			size-level2.dat \
			size-level9.dat
	$(MKGR) -P -y 2.5E+6  "Run size" "Rank" "Size (kilobytes)"		\
		size-level0.dat			"level 0"	lines	1	\
		size-level2.dat			"level 2"	lines	2	\
		size-level9.dat			"level 9"	lines	8	\
		> runsize-rank-lines.gp
	$(MKGR) -p runsize-rank-lines.ps -y 2.5E+6  				\
		"Run size" "Rank" "Size (kilobytes)"				\
		size-level0.dat			"level 0"	lines	1	\
		size-level2.dat			"level 2"	lines	2	\
		size-level9.dat			"level 9"	lines	8	\
		| $(GNUPLOT)

runtime-runid:		runid-duration-level0.dat \
			runid-duration-level2.dat \
			runid-duration-level9.dat
	$(MKGR) -P -z "Run duration by Run ID" "Run ID" "Duration (hours)"	\
		runid-duration-level0.dat	"level 0"	imp	1	\
		runid-duration-level2.dat	"level 2"	imp	2	\
		runid-duration-level9.dat	"level 9"	imp	8	\
		> runtime-runid.gp
	$(MKGR) -p runtime-runid.ps -z 						\
		"Run duration by Run ID" "Run ID" "Duration (hours)"		\
		runid-duration-level0.dat	"level 0"	imp	1	\
		runid-duration-level2.dat	"level 2"	imp	2	\
		runid-duration-level9.dat	"level 9"	imp	8	\
		| $(GNUPLOT)

uses-tape:		tape-uses.dat
	$(MKGR) -P -z "Number of uses by rank" "Rank" "Number of Uses"		\
		tape-uses.dat			""		imp	1	\
		> uses-tape.gp
	$(MKGR) -p uses-tape.ps -z 						\
		"Number of uses by rank" "Rank" "Number of Uses"		\
		tape-uses.dat			""		imp	1	\
		| $(GNUPLOT)
	
#
# How to make the various data files.
#

tape.raw:		
run.raw:		

rank-run-chain-level-time-duration.dat:	run.raw
	sort +4 -n -r < run.raw | awk '{print $$1, $$2, $$3, $$4, $$5}' | cat -n > rank-run-chain-level-time-duration.dat

rank-duration-level0.dat:	rank-run-chain-level-time-duration.dat
	awk '$$4 == 0 { print $$1 " " $$6 / (60 * 60) }' < rank-run-chain-level-time-duration.dat > $@@

rank-duration-level2.dat:	rank-run-chain-level-time-duration.dat
	awk '$$4 == 2 { print $$1 " " $$6 / (60 * 60) }' < rank-run-chain-level-time-duration.dat > $@@

rank-duration-level9.dat:	rank-run-chain-level-time-duration.dat
	awk '$$4 == 9 { print $$1 " " $$6 / (60 * 60) }' < rank-run-chain-level-time-duration.dat > $@@

duration-level0.dat:		rank-duration-level0.dat
	awk '{print $$2}' < rank-duration-level0.dat | cat -n > $@@

duration-level2.dat:		rank-duration-level2.dat
	awk '{print $$2}' < rank-duration-level2.dat | cat -n > $@@

duration-level9.dat:		rank-duration-level9.dat
	awk '{print $$2}' < rank-duration-level9.dat | cat -n > $@@

runid-duration-level0.dat:	rank-run-chain-level-time-duration.dat
	awk '$$4 == 0 { print $$2 " " $$6 / (60 * 60) }' < rank-run-chain-level-time-duration.dat > $@@

runid-duration-level2.dat:	rank-run-chain-level-time-duration.dat
	awk '$$4 == 2 { print $$2 " " $$6 / (60 * 60) }' < rank-run-chain-level-time-duration.dat > $@@

runid-duration-level9.dat:	rank-run-chain-level-time-duration.dat
	awk '$$4 == 9 { print $$2 " " $$6 / (60 * 60) }' < rank-run-chain-level-time-duration.dat > $@@

rank-run-chain-level-time-size.dat:	run.raw
	sort +5 -n -r < run.raw | awk '{ print $$1, $$2, $$3, $$4, $$6}' | cat -n > $@@

rank-size-level0.dat:		rank-run-chain-level-time-size.dat
	awk '$$4 == 0 { print $$1 " " $$6 }' < rank-run-chain-level-time-size.dat > $@@

rank-size-level2.dat:		rank-run-chain-level-time-size.dat
	awk '$$4 == 2 { print $$1 " " $$6 }' < rank-run-chain-level-time-size.dat > $@@

rank-size-level9.dat:		rank-run-chain-level-time-size.dat
	awk '$$4 == 9 { print $$1 " " $$6 }' < rank-run-chain-level-time-size.dat > $@@

size-level0.dat:		rank-size-level0.dat
	awk '{print $$2}' < rank-size-level0.dat | cat -n > $@@

size-level2.dat:		rank-size-level2.dat
	awk '{print $$2}' < rank-size-level2.dat | cat -n > $@@

size-level9.dat:		rank-size-level9.dat
	awk '{print $$2}' < rank-size-level9.dat | cat -n > $@@

tape-uses.dat:			tape.raw
	awk '{print $$2}' < tape.raw | sort -n -r > $@@

runid-size-level0.dat:	rank-run-chain-level-time-size.dat
	awk '$$4 == 0 { print $$2 " " $$6 }' < rank-run-chain-level-time-size.dat > $@@

runid-size-level2.dat:	rank-run-chain-level-time-size.dat
	awk '$$4 == 2 { print $$2 " " $$6 }' < rank-run-chain-level-time-size.dat > $@@

runid-size-level9.dat:	rank-run-chain-level-time-size.dat
	awk '$$4 == 9 { print $$2 " " $$6 }' < rank-run-chain-level-time-size.dat > $@@
@


1.3
log
@Added merge-ps-files
@
text
@d126 1
a126 1
	$(MKGR) -p runtime-rank-lines.gp -y 8					\
@


1.2
log
@Changes for mkgr
@
text
@d7 1
d58 1
a58 1
	~romig/bin/all/merge-ps-files *.ps | /usr/unsup/bin/up -n 6up | lpr -P $(PRINTER)
a303 1

@


1.1
log
@Initial revision
@
text
@d5 1
d7 1
a7 3
MAKEGRAPH =		$(GRAPH)/make-graph
MAKEGRAPH3 =		$(GRAPH)/make-graph3
MAKEGRAPH3LINES =	$(GRAPH)/make-graph3-lines
d21 1
a21 1
	cd $(CURRENTDIR) ; $(GETDATA) ; $(MAKE) graphs
d25 1
a25 1
	cd $(MERGEDDIR) ; $(MAKE) graphs
d29 1
a29 1
	cd $(RECENTDIR) ; $(MAKE) graphs
d74 10
a83 3
	$(MAKEGRAPH3) runtime-rank "Run duration" "Rank" "Duration (hours)" \
		rank-duration-level0.dat rank-duration-level2.dat \
		rank-duration-level9.dat
d86 8
a93 1
	$(MAKEGRAPH) runtime-rank-level0 "Duration of level 0 runs sorted by length" "Rank" "Duration (hours)" duration-level0.dat 8
d96 9
a104 1
	$(MAKEGRAPH) runtime-rank-level2 "Duration of level 2 runs sorted by length" "Rank" "Duration (hours)" duration-level2.dat 8
d107 9
a115 1
	$(MAKEGRAPH) runtime-rank-level9 "Duration of level 9 runs sorted by length" "Rank" "Duration (hours)" duration-level9.dat 8
d120 11
a130 3
	$(MAKEGRAPH3LINES) runtime-rank-lines "Duration" "Rank" "Duration (hours)" \
		duration-level0.dat duration-level2.dat \
		duration-level9.dat
d135 11
a145 3
	$(MAKEGRAPH3) runsize-runid "Run size by Run ID" "Run ID" "Size (kilobytes)" \
		runid-size-level0.dat runid-size-level2.dat \
		runid-size-level9.dat
d150 11
a160 3
	$(MAKEGRAPH3) runsize-rank "Run size" "Rank" "Size (kilobytes)" \
		rank-size-level0.dat rank-size-level2.dat \
		rank-size-level9.dat
d163 9
a171 1
	$(MAKEGRAPH) runsize-rank-level0 "Size of level 0 runs sorted by size" "Rank" "Size (kilobytes)" size-level0.dat 2.5e+06
d174 9
a182 1
	$(MAKEGRAPH) runsize-rank-level2 "Size of level 2 runs sorted by size" "Rank" "Size (kilobytes)" size-level2.dat 2.5e+06
d185 9
a193 1
	$(MAKEGRAPH) runsize-rank-level9 "Size of level 9 runs sorted by size" "Rank" "Size (kilobytes)" size-level9.dat 2.5e+06
d198 11
a208 3
	$(MAKEGRAPH3LINES) runsize-rank-lines "Run size" "Rank" "Size (kilobytes)" \
		size-level0.dat size-level2.dat \
		size-level9.dat
a209 7
runsize-tape:		tape-size-level0.dat \
			tape-size-level2.dat \
			tape-size-level9.dat
	$(MAKEGRAPH3) runsize-tape "Run size by Tape ID" "Tape ID" "Size (kilobytes)" \
		tape-size-level0.dat tape-size-level2.dat \
		tape-size-level9.dat

d213 11
a223 3
	$(MAKEGRAPH3) runtime-runid "Run duration by Run ID" "Run ID" "Duration (hours)" \
		runid-duration-level0.dat runid-duration-level2.dat \
		runid-duration-level9.dat
d226 7
a232 1
	$(MAKEGRAPH) uses-tape "Number of uses by Tape ID" "Tape ID" "Number of Uses" tape-uses.dat
@
