qs-benchmarks / plot_scripts /compare_expectation.py
Amit
Add plot files.
4298361
import numpy as np
import h5py
# from map_packages_colors import *
import matplotlib.pyplot as plt
import os
import sys
import warnings
warnings.filterwarnings("ignore")
params = {'backend': 'ps',
'axes.labelsize': 16,
'axes.titlesize': 14,
'font.size': 8,
'legend.fontsize': 14,
'xtick.labelsize': 16,
'ytick.labelsize': 16,
'figure.figsize': (10, 10),}
# 'text.usetex': True}
from matplotlib import rc
# plt.rc('text.latex', preamble=r'\usepackage{braket}')
plt.rcParams.update(params)
N_arr = np.arange(6, 14, 2)
path = os.getcwd()
data_path = path + '/exp_data/'
def compare_two_expect_all(task, prec, pkg_str):
fig, ax = plt.subplots()
comp_mat = np.zeros((len(pkg_str), len(pkg_str)))
for p1 in range(len(pkg_str)):
dat_file_p1 = data_path + '{}/{}/exp_mat_{}_{}.npy'.format(task, pkg_str[p1], pkg_str[p1], prec)
# print(dat_file_p1)
for p2 in range(len(pkg_str)):
dat_file_p2 = data_path + '{}/{}/exp_mat_{}_{}.npy'.format(task, pkg_str[p2], pkg_str[p2], prec)
if os.path.isfile(dat_file_p1) and os.path.isfile(dat_file_p2):
dat_p1 = np.load(dat_file_p1)
dat_p2 = np.load(dat_file_p2)
comp_mat[p1, p2] = np.log10(np.sum(np.abs(dat_p1 - dat_p2))/float(16))
# print(comp_mat[p1, p2])
else:
continue
if prec == 'sp':
plt.imshow(comp_mat, cmap='Spectral', vmin=-16, vmax=-3)
elif prec == 'dp':
plt.imshow(comp_mat, cmap='Spectral', vmin=-17, vmax=-11)
plt.xticks(range(len(pkg_str)), pkg_str)
locs, labels = plt.xticks()
plt.setp(labels, rotation=90)
plt.yticks(range(len(pkg_str)), pkg_str)
locs, labels = plt.yticks()
plt.colorbar()
plt.tight_layout()
# plt.savefig(fn)
plt.show()
package_str_sp = ['cirq', 'hybridq', 'intel_qs_cpp', 'pennylane', 'pennylane_l', 'qibo', 'qibojit', 'qiskit', 'qsimcirq', 'quest', 'yao', 'qiskit_gpu', 'hybridq_gpu', 'qibojit_gpu', 'qsimcirq_gpu', 'yao_gpu']#, 'pennylane_l_gpu', 'quest_gpu', 'projectq', 'qulacs', 'qulacs_gpu']
sorted_package_str_sp = ['cuquantum_qiskit', 'qiskit', 'qiskit_gpu', 'pennylane', 'cirq', 'qsimcirq', 'qsimcirq_gpu', 'qibojit_gpu', 'qibo', 'qibojit', 'quest', 'intel_qs_cpp', 'myqlm_cpp', 'cuquantum_qsimcirq', 'pennylane_l', 'hybridq_gpu', 'hybridq', 'yao', 'yao_gpu']
# compare_two_expect_all('hdyn', 'sp', sorted_package_str_sp)#, 'compare_packages_qft_sp_N16_log.pdf')
package_str_dp = ['cirq', 'intel_qs_cpp', 'pennylane', 'pennylane_l', 'qibo', 'qibojit', 'qiskit', 'quest', 'yao', 'qiskit_gpu', 'qibojit_gpu', 'yao_gpu', 'pennylane_l_gpu', 'quest_gpu', 'projectq', 'qulacs', 'qulacs_gpu']
sorted_package_str_dp = ['qibojit_gpu', 'qulacs', 'qiskit', 'cuquantum_qiskit', 'qiskit_gpu', 'qpanda', 'intel_qs_cpp', 'quest', 'qibo', 'qibojit', 'pennylane_l_gpu', 'pennylane', 'yao_gpu', 'myqlm_cpp', 'myqlm', 'braket', 'yao', 'pennylane_l', 'cirq', 'quest_gpu', 'projectq', 'qulacs_gpu']
# compare_two_expect_all('hdyn', 'dp', sorted_package_str_dp)#, 'compare_packages_qft_dp_N16_log.pdf')