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