File size: 3,174 Bytes
d2fd675
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4298361
 
 
 
d2fd675
 
 
 
 
 
 
 
 
 
 
 
 
 
4298361
d2fd675
 
 
4298361
d2fd675
4298361
d2fd675
 
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
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')