-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathPerformancePostProcessing.py
More file actions
executable file
·103 lines (87 loc) · 4.62 KB
/
PerformancePostProcessing.py
File metadata and controls
executable file
·103 lines (87 loc) · 4.62 KB
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
#!/usr/bin/env python3
from statistics import mean
import numpy as np
import h5py
import argparse
import sys
import csv
class CSVReader(object):
def __init__(self, filename):
self.filename = filename
self.input_file = None
self.sim_type = None
self.num_processes = None
self.data = {}
self.read()
def read(self):
# data = {}
header = []
with open(self.filename, newline='') as csvfile:
csv_reader = csv.reader(csvfile, delimiter=';')
for i_row, row in enumerate(csv_reader):
if i_row == 0:
self.input_file = row[0]
self.sim_type = row[1]
self.num_processes = row[2]
elif i_row == 1:
for entry in row:
header.append(entry)
self.data[entry] = []
else:
for i_entry, entry in enumerate(row):
self.data[header[i_entry]].append(entry)
print("input file: {}".format(self.input_file))
print("sim type: {}".format(self.sim_type))
print("num processes: {}".format(self.num_processes))
# print("data: {}".format(self.data))
if __name__ == '__main__':
# plummer
"""
file = "time.csv" # time_gravity
directories = ["/Users/Michi/Desktop/milupHPC/master/binac_data/plummer/milupHPC2/milupHPC/plummer/pl_N1000000_sfc0F_np1/",
"/Users/Michi/Desktop/milupHPC/master/binac_data/plummer/milupHPC2/milupHPC/plummer/pl_N1000000_sfc1D_np2/",
"/Users/Michi/Desktop/milupHPC/master/binac_data/plummer/milupHPC2/milupHPC/plummer/pl_N1000000_sfc1D_np4/",
"/Users/Michi/Desktop/milupHPC/master/binac_data/plummer/milupHPC2/milupHPC/plummer/pl_N1000000_sfc1D_np8/",
"/Users/Michi/Desktop/milupHPC/master/binac_data/plummer/milupHPC2/milupHPC/plummer/pl_N1000000_sfc1D_np16/",
"/Users/Michi/Desktop/milupHPC/master/binac_data/plummer/milupHPC2/milupHPC/plummer/pl_N1000000_sfc1D_np32/"]
"""
"""
# sedov
file = "time_tree.csv" # time_sph
directories = ["/Users/Michi/Desktop/milupHPC/master/binac_data/sedov/milupHPC/sedov/sedov_N81_sfc0F_np1/",
"/Users/Michi/Desktop/milupHPC/master/binac_data/sedov/milupHPC/sedov/sedov_N81_sfc1D_np2/",
"/Users/Michi/Desktop/milupHPC/master/binac_data/sedov/milupHPC/sedov/sedov_N81_sfc1D_np4/",
"/Users/Michi/Desktop/milupHPC/master/binac_data/sedov/milupHPC/sedov/sedov_N81_sfc1D_np8/",
"/Users/Michi/Desktop/milupHPC/master/binac_data/sedov/milupHPC/sedov/sedov_N81_sfc1D_np16/",
"/Users/Michi/Desktop/milupHPC/master/binac_data/sedov/milupHPC/sedov/sedov_N81_sfc1D_np32/"]
"""
# bb
file = "time_sph.csv" # time_sph, time_gravity
directories = ["/Users/Michi/Desktop/milupHPC/master/binac_data/bb/milupHPC2_short/bb/bb_N500000_sfc0F_np1/",
"/Users/Michi/Desktop/milupHPC/master/binac_data/bb/milupHPC2_short/bb/bb_N500000_sfc1D_np2/",
"/Users/Michi/Desktop/milupHPC/master/binac_data/bb/milupHPC2_short/bb/bb_N500000_sfc1D_np4/",
"/Users/Michi/Desktop/milupHPC/master/binac_data/bb/milupHPC2_short/bb/bb_N500000_sfc1D_np8/",
"/Users/Michi/Desktop/milupHPC/master/binac_data/bb/milupHPC2_short/bb/bb_N500000_sfc1D_np16/",
"/Users/Michi/Desktop/milupHPC/master/binac_data/bb/milupHPC2_short/bb/bb_N500000_sfc1D_np32/"]
file_names = ["{}{}".format(directory, file) for directory in directories]
data = {}
available_np = []
for i_file_name, file_name in enumerate(file_names):
csv_reader = CSVReader(file_name)
available_np.append(str(csv_reader.num_processes))
data["{}".format(csv_reader.num_processes)] = csv_reader.data
header = ["number of processes"]
for _np in available_np:
header.append(_np)
header.append("\\\\")
print(header)
with open('eggs.csv', 'w', newline='') as csvfile:
writer = csv.writer(csvfile, delimiter='&', quotechar='|', quoting=csv.QUOTE_MINIMAL)
writer.writerow(header)
for i_key, key in enumerate(data["1"]["key"]):
row = [data["1"]["name"][i_key]]
for _np in available_np:
row.append(round(float(data[_np]["total_average"][i_key]), 3))
# row.append("{} ({})".format(round(float(data[_np]["total_average"][i_key]), 3), round(float(data[_np]["real_average"][i_key]), 3)))
row.append("\\\\")
writer.writerow(row)