Files
qibo-final/qibojit-benchmarks/plots/utils.py
2026-05-19 17:19:36 +08:00

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