-
Notifications
You must be signed in to change notification settings - Fork 27
Expand file tree
/
Copy pathmulti-averager
More file actions
executable file
·41 lines (31 loc) · 840 Bytes
/
multi-averager
File metadata and controls
executable file
·41 lines (31 loc) · 840 Bytes
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
#!/usr/bin/env ruby
# Take the output from runs genearated by multi-stream-scaling and
# plot an average of the values
module Enumerable
def sum
return self.inject(0) {|a,e| a + e.to_f }
end
def mean
return self.sum / self.size
end
def std_dev
return Math.sqrt( self.map {|n| (n - self.mean) ** 2 }.mean )
end
end
title = ARGV[0]
unless title
abort "Usage: #{$0} [report_name]"
end
results = {}
Dir[ "#{title}*" ].each do |file|
lines = IO.popen( "cat #{file} | ./stream-graph.py" ).readlines
lines.shift # remove header comment
lines.map {|l| l.split }.each do |cores, result|
results[ cores.to_i ] ||= []
results[ cores.to_i ] << result.to_f
end
end
puts "#cores avg stddev"
results.sort_by {|k,v| k }.each do |cores, values|
puts [ cores, values.mean, values.std_dev ].join(" ")
end