File size: 5,629 Bytes
3dc126b | 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 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 | import argparse
import pandas as pd
from pathlib import Path
import datetime
import pickle
"""
Generate VC configuration for simulation
"""
def main(args):
cluster = args.cluster
date = args.date
if not Path(f"./{cluster}").exists():
Path(f"./{cluster}").mkdir()
if cluster == "Philly":
df = pd.read_csv(Path(f"./philly_vc.csv"))
else:
file = Path(f"../../../data/{cluster}/cluster_gpu_number.csv")
df = pd.read_csv(file, parse_dates=["date"])
if cluster == "Jupiter" and date == "July":
vcs = df.columns.values[1:-2]
nodes_num = df[df["date"] == datetime.datetime(2020, 7, 1)].values[0][1:-2]
nodes_num = nodes_num // 8
assert len(nodes_num) == len(vcs)
dic = dict(zip(vcs, nodes_num))
del dic["vc7Bz"] # Not Consider Test VC
with open(f"./{cluster}/vc_dict.pkl", "wb") as f:
pickle.dump(dic, f, pickle.HIGHEST_PROTOCOL)
if cluster == "Neptune" and date == "Sept":
vcs = df.columns.values[1:-1]
nodes_num = df[df["date"] == datetime.datetime(2020, 9, 1)].values[0][1:-1]
nodes_num = nodes_num // 8
assert len(nodes_num) == len(vcs)
dic = dict(zip(vcs, nodes_num))
del dic["vc7Bz"] # Not Consider Test VC
del dic["vcIoD"] # Zero nodes
del dic["vcftk"] # Zero nodes
del dic["vc5LC"] # No Job
del dic["vcEwI"] # No Job
# Some vc rename / merge together
del dic["vcrsE"] # Merge to vcBUL
del dic["vcHyk"] # Merge to vcBUL
del dic["vcVvI"] # Merge to vcUV3
with open(f"./{cluster}/vc_dict.pkl", "wb") as f:
pickle.dump(dic, f, pickle.HIGHEST_PROTOCOL)
if cluster == "Saturn" and date == "Sept":
vcs = df.columns.values[1:-1]
nodes_num = df[df["date"] == datetime.datetime(2020, 9, 1)].values[0][1:-1]
nodes_num = nodes_num // 8
assert len(nodes_num) == len(vcs)
dic = dict(zip(vcs, nodes_num))
del dic["vc7Bz"] # Not Consider Test VC
del dic["vcHcQ"] # Zero nodes
del dic["vck1d"] # Zero nodes
del dic["vcj72"] # Zero nodes
del dic["vcIya"] # Zero nodes
del dic["vcygX"] # Zero nodes
del dic["vcxqr"] # Zero nodes
del dic["vcsgw"] # Zero nodes
with open(f"./{cluster}/vc_dict.pkl", "wb") as f:
pickle.dump(dic, f, pickle.HIGHEST_PROTOCOL)
if cluster == "Uranus" and date == "Sept":
vcs = df.columns.values[1:-1]
nodes_num = df[df["date"] == datetime.datetime(2020, 9, 10)].values[0][1:-1]
nodes_num = nodes_num // 8
assert len(nodes_num) == len(vcs)
dic = dict(zip(vcs, nodes_num))
del dic["vc7Bz"] # Not Consider Test VC
del dic["vczGr"] # Zero nodes
del dic["vciN1"] # Zero nodes
del dic["vcV7h"] # Zero nodes
del dic["vcRAl"] # Zero nodes
del dic["vcvcM"] # Zero nodes
del dic["vc1z2"] # Zero nodes
del dic["vcHyk"] # Merge to vcOlr
del dic["vcRDh"] # Merge to vc7hD
del dic["vcFsC"] # Merge to vc7hD
del dic["vcVvI"] # Merge to vcUV3
del dic["vcxqr"] # Merge to vcUV3
del dic["vcsBT"] # Merge to vcUV3
del dic["vcygX"] # Merge to vcUV3
with open(f"./{cluster}/vc_dict.pkl", "wb") as f:
pickle.dump(dic, f, pickle.HIGHEST_PROTOCOL)
if cluster == "Earth" and date == "Sept":
vcs = df.columns.values[1:-1]
nodes_num = df[df["date"] == datetime.datetime(2020, 9, 10)].values[0][1:-1]
nodes_num = nodes_num // 8
assert len(nodes_num) == len(vcs)
dic = dict(zip(vcs, nodes_num))
# del dic['vc7Bz'] # Not Consider Test VC
del dic["vcp4O"] # Zero nodes
del dic["vcvcM"] # Zero nodes
del dic["vcXrB"] # Zero nodes
del dic["vc7hD"] # Zero nodes
del dic["vcIya"] # Zero nodes
del dic["vc8Sj"] # Zero nodes
del dic["vcLJZ"] # Zero nodes in Sept
del dic["vcxS0"] # Merge to vc3sl
with open(f"./{cluster}/vc_dict.pkl", "wb") as f:
pickle.dump(dic, f, pickle.HIGHEST_PROTOCOL)
if cluster == "Venus" and date == "Sept":
vcs = df.columns.values[1:-1]
nodes_num = df[df["date"] == datetime.datetime(2020, 9, 10)].values[0][1:-1]
nodes_num = nodes_num // 8
assert len(nodes_num) == len(vcs)
dic = dict(zip(vcs, nodes_num))
# del dic['vc7Bz'] # Not Consider Test VC
del dic["vcEhP"] # Zero nodes
del dic["vcIya"] # Zero nodes
del dic["vcJLV"] # Zero nodes
del dic["vcJkd"] # Zero nodes
del dic["vcsBT"] # Zero nodes
del dic["vcbIW"] # Merge to vcvGl
del dic["vc6YE"] # Merge to vcvGl
del dic["vcOhe"] # Merge to vcKeu
del dic["vccJW"] # Merge to vcKeu
del dic["vcP2J"] # Merge to vchA3
with open(f"./{cluster}/vc_dict.pkl", "wb") as f:
pickle.dump(dic, f, pickle.HIGHEST_PROTOCOL)
if cluster == "Philly":
d = dict(zip(df["vc"].values, df["node num"].values))
with open(f"./Philly/vc_dict_homo.pkl", "wb") as f:
pickle.dump(d, f, pickle.HIGHEST_PROTOCOL)
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="VC Configuration Generator")
parser.add_argument("-c", "--cluster", default="Earth", type=str, help="Cluster Name")
parser.add_argument("-d", "--date", default="Sept", type=str, help="Month")
args = parser.parse_args()
main(args)
|