36 lines
1.5 KiB
Python
36 lines
1.5 KiB
Python
import json
|
|
import pandas as pd
|
|
|
|
|
|
def load_data(filename, qibojit_only=False):
|
|
with open(filename, "r") as file:
|
|
data = pd.DataFrame(json.load(file))
|
|
|
|
# filter data for qibojit
|
|
if qibojit_only:
|
|
is_qibojit = data["library_options"].apply(lambda x: "qibojit" in x)
|
|
data = data[is_qibojit]
|
|
|
|
data["total_dry_time"] = data["dry_run_time"] + data["creation_time"] + data["import_time"]
|
|
data["total_simulation_time"] = data["simulation_times_mean"] + data["creation_time"] + data["import_time"]
|
|
return data
|
|
|
|
|
|
def load_data_multigpu(filename, qibojit_only=False):
|
|
data = load_data(filename, qibojit_only)
|
|
data["backend"] = data["library_options"].apply(lambda x: x.split(",")[0].split("=")[-1])
|
|
data["accelerators"] = data["library_options"].apply(lambda x: x.split(",")[1].split("=")[-1])
|
|
data["nqubits (accelerators)"] = data.apply(lambda x: f"{x.nqubits} ({x.accelerators})", axis=1)
|
|
return data
|
|
|
|
|
|
def load_evolution_data(filename):
|
|
with open(filename, "r") as file:
|
|
data = pd.DataFrame(json.load(file))
|
|
|
|
data["creation_time"] = data["hamiltonian_creation_time"] + data["evolution_creation_time"]
|
|
data["total_dry_time"] = data["dry_run_time"] + data["creation_time"] + data["import_time"]
|
|
#if "simulation_times_mean" not in data.columns:
|
|
# data["simulation_times_mean"] = data["simulation_times"].apply(lambda x: np.mean(x))
|
|
data["total_simulation_time"] = data["simulation_times_mean"] + data["creation_time"] + data["import_time"]
|
|
return data |