summaryrefslogtreecommitdiff
path: root/ghc/utils/parallel/AVG.pl
blob: 9ec42aee2fe36478198009cb30d1707ee73f348b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#!/usr/local/bin/perl
#                                       (C) Hans Wolfgang Loidl, October 1995
#############################################################################
# Time-stamp: <Thu Oct 26 1995 18:30:54 Stardate: [-31]6498.64 hwloidl>
#
# Usage: AVG [options] <gr-file>
#
# A quich hack to get avg runtimes of different spark sites. Similar to SPLIT.
#
# Options:
#  -s <list> ... a perl list of spark names; the given <gr-file> is scanned 
#                for each given name in turn and granularity graphs are 
#                generated for each of these sparks  
#  -O        ... use gr2RTS and RTS2gran instead of gran-extr;
#                this generates fewer output files (only granularity graphs)
#                but should be faster and far less memory consuming
#  -h        ... help; print this text.
#  -v        ... verbose mode.
#
#############################################################################

require "getopts.pl";

&Getopts('hvOs:');  

do process_options();

if ( $opt_v ) { do print_verbose_message(); }

# ---------------------------------------------------------------------------
# Init
# ---------------------------------------------------------------------------

foreach $s (@sparks) {
    # extract END events for this spark-site
    open (GET,"cat $input | tf -s $s | avg-RTS") || die "!$\n";
}

exit 0;

exit 0;

# -----------------------------------------------------------------------------

sub process_options {

    if ( $opt_h ) {                      
	open(ME,$0) || die "Can't open myself ($0): $!\n";
	$n = 0;
	while (<ME>) {
	    last if $_ =~ /^$/;
	    print $_;
	    $n++;
	}
	close(ME);
	exit ;
    }
    
    if ( $opt_s ) {
	$opt_s =~ s/[\(\)\[\]]//g;
	@sparks = split(/[,;. ]+/, $opt_s);
    } else {
	@sparks = ( 3, 4, 5, 6, 7, 8, 11, 12, 13, 14, 15);
    }

    if ( $#ARGV != 0 ) {
	print "Usage: $0 [options] <gr-file>\n;";
	print "Use -h option to get details\n";
	exit 1;
    }

    $gr_file = $ARGV[0];
    ($basename = $gr_file) =~ s/\.gr//;
    $rts_file = $basename . ".rts";        # "RTS";
    $gran_file = "g.ps"; # $basename . ".ps";
    #$rts_file = $gr_file;
    #$rts_file =~ s/\.gr/.rts/g;

    if ( $opt_o ) {
	$va_file = $opt_o;
	$va_dvi_file = $va_file;
	$va_dvi_file =~ s/\.tex/.dvi/g; 
	$va_ps_file = $va_file;
	$va_ps_file =~ s/\.tex/.ps/g; 
    } else {
	$va_file = "va.tex";
	$va_dvi_file = "va.dvi";
	$va_ps_file = "va.ps";
    }
    
    if ( $opt_t ) {
	$template_file = $opt_t;
    } else {
	$template_file = "TEMPL";
    }

    $tmp_file = ",t";
}

# -----------------------------------------------------------------------------

sub print_verbose_message {
    print "Sparks: (" . join(',',@sparks) . ")\n";
    print "Files: .gr " . $gr_file . "  template " . $template_file .
	    " va " . $va_file . "\n";
}

# -----------------------------------------------------------------------------