Advertisement
froleyks

plot_parallel.py

Feb 8th, 2019
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.39 KB | None | 0 0
  1. import pandas as pd
  2. import matplotlib.pyplot as plt
  3. import sys
  4.  
  5. df = pd.read_fwf(sys.argv[1], comment=';')
  6. df.drop(
  7.     columns=[
  8.         'seed', 'level', 'it', 'dijkstra', 'unordered', 'ordered', 'expanded',
  9.         'm', 'many', 'm_expanded', 'bs'
  10.  
  11.         # 'seed', 'level', 'it', 'dijkstra', 'unordered', 'ordered', 'expanded',
  12.         # 'm', 'many_avx', 'many', 'many_8', 'many_8_n', 'm_expanded',
  13.         # 'dijkstra_pn', 'phast_pn', 'p_many_avx', 'p_many'
  14.     ],
  15.     inplace=True)
  16.  
  17. # df['concurrent_queue'] = df['work']
  18.  
  19. dfs = [(name, data)
  20.        for _, (name, data) in zip(df.graph.unique(), df.groupby(df['graph']))]
  21.  
  22. for name, data in dfs:
  23.     r1 = data.groupby('p').mean().at[1, 'rebuild']
  24.     s1 = data.groupby('p').mean().at[1, 'spinning']
  25.     c1 = data.groupby('p').mean().at[1, 'conditional']
  26.  
  27.     if int(sys.argv[2]) > 0:
  28.         data['rebuild'] = r1 / data['rebuild']
  29.         data['spinning'] = s1 / data['spinning']
  30.         data['conditional'] = c1 / data['conditional']
  31.     if int(sys.argv[2]) > 1:
  32.         data['rebuild'] /= data['p']
  33.         data['spinning'] /= data['p']
  34.         data['conditional'] /= data['p']
  35.  
  36.     grouped = data.groupby('p')
  37.     mean = grouped.mean()
  38.     std = grouped.std()
  39.  
  40.     print(name)
  41.     print(mean)
  42.  
  43.     mean.plot(fmt='o', yerr=std)
  44.     # mean.plot()
  45.     title = name
  46.     plt.title(title)
  47.     plt.xlabel("number of threads")
  48.     plt.ylabel("time per tree [ms]")
  49.     plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement