xref: /petsc/src/benchmarks/streams/process.py (revision 6a90b7350c6b50a97f07457f08ffbd37ff239369)
1d3ae85c4SBarry Smith#!/usr/bin/env python
2d3ae85c4SBarry Smith#!/bin/env python
3d3ae85c4SBarry Smith#
4d3ae85c4SBarry Smith#    Computers speed up of Streams benchmark results generated by make streams
5d3ae85c4SBarry Smith#
6d3ae85c4SBarry Smithimport os
7d3ae85c4SBarry Smith#
8d3ae85c4SBarry Smithdef process():
9d3ae85c4SBarry Smith  import re
10d3ae85c4SBarry Smith  ff = open('output')
11d3ae85c4SBarry Smith  data = ff.read()
12d3ae85c4SBarry Smith  ff.close()
13d3ae85c4SBarry Smith
14d3ae85c4SBarry Smith  hosts  = {}
15d3ae85c4SBarry Smith  triads = {}
16d3ae85c4SBarry Smith  speedups = {}
17d3ae85c4SBarry Smith  match = data.split('Number of MPI processes ')
18d3ae85c4SBarry Smith  for i in match:
19d3ae85c4SBarry Smith    if i:
20d3ae85c4SBarry Smith      fields = i.split('\n')
21d3ae85c4SBarry Smith      size = int(fields[0])
22d3ae85c4SBarry Smith      hosts[size] = fields[1:size+1]
23d3ae85c4SBarry Smith      triads[size] = float(fields[size+5].split()[1])
24d3ae85c4SBarry Smith
25d3ae85c4SBarry Smith  ff = open('output','a')
26d3ae85c4SBarry Smith  print 'np  speedup'
27d3ae85c4SBarry Smith  ff.write('np  speedup\n')
28d3ae85c4SBarry Smith  for sizes in hosts:
29d3ae85c4SBarry Smith    speedups[sizes] = triads[sizes]/triads[1]
30d3ae85c4SBarry Smith    print sizes,round(triads[sizes]/triads[1],2)
31d3ae85c4SBarry Smith    ff.write(str(sizes)+' '+str(round(triads[sizes]/triads[1],2))+'\n')
32d3ae85c4SBarry Smith  ff.close()
33d3ae85c4SBarry Smith
34d3ae85c4SBarry Smith  try:
35d3ae85c4SBarry Smith    import matplotlib
36d3ae85c4SBarry Smith  except:
37*6a90b735SBarry Smith    print "Unable to open matplotlib to plot speedup"
38d3ae85c4SBarry Smith    return
39d3ae85c4SBarry Smith
40d3ae85c4SBarry Smith  try:
41d3ae85c4SBarry Smith    import matplotlib.pyplot as plt
42*6a90b735SBarry Smith  except:
43*6a90b735SBarry Smith    print "Unable to open matplotlib to plot speedup"
44*6a90b735SBarry Smith    return
45d3ae85c4SBarry Smith
46*6a90b735SBarry Smith  try:
47d3ae85c4SBarry Smith    plt.title('Perfect and Streams Speedup')
48d3ae85c4SBarry Smith    plt.plot(hosts.keys(),hosts.keys(),'b-o',hosts.keys(),speedups.values(),'r-o')
49d3ae85c4SBarry Smith    plt.show()
50*6a90b735SBarry Smith  except:
51*6a90b735SBarry Smith    print "Unable to display matplotlib to plot speedup"
52*6a90b735SBarry Smith    return
53d3ae85c4SBarry Smith
54d3ae85c4SBarry Smith#
55d3ae85c4SBarry Smith#
56d3ae85c4SBarry Smithif __name__ ==  '__main__':
57d3ae85c4SBarry Smith  import sys
58d3ae85c4SBarry Smith  process()
59d3ae85c4SBarry Smith
60d3ae85c4SBarry Smith
61