diff --git a/data/hdyn/cirq_singlethread_dp.h5 b/data/hdyn/cirq_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..54ec3f686cf1aa745c0953db2932bc10cc48f213
Binary files /dev/null and b/data/hdyn/cirq_singlethread_dp.h5 differ
diff --git a/data/hdyn/cirq_singlethread_sp.h5 b/data/hdyn/cirq_singlethread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..fe57bcbb453ed78b5e50840443eeb42ecda50930
Binary files /dev/null and b/data/hdyn/cirq_singlethread_sp.h5 differ
diff --git a/data/hdyn/cuquantum_qiskit_gpu_1_dp.h5 b/data/hdyn/cuquantum_qiskit_gpu_1_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..a46a04f9c4f8a979a9fe90b2d87982eaeac01baf
Binary files /dev/null and b/data/hdyn/cuquantum_qiskit_gpu_1_dp.h5 differ
diff --git a/data/hdyn/cuquantum_qiskit_gpu_1_sp.h5 b/data/hdyn/cuquantum_qiskit_gpu_1_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..e0d63669ddfddedc29da8e645102221bd8eaf9ca
Binary files /dev/null and b/data/hdyn/cuquantum_qiskit_gpu_1_sp.h5 differ
diff --git a/data/hdyn/cuquantum_qiskit_gpu_2_dp.h5 b/data/hdyn/cuquantum_qiskit_gpu_2_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..ee46063ec51cdb06b9b79f84799e21c0b5bf1bae
Binary files /dev/null and b/data/hdyn/cuquantum_qiskit_gpu_2_dp.h5 differ
diff --git a/data/hdyn/cuquantum_qiskit_gpu_2_sp.h5 b/data/hdyn/cuquantum_qiskit_gpu_2_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..3fd3fea4ba6768b5e57b2442f3b42ed844749dff
Binary files /dev/null and b/data/hdyn/cuquantum_qiskit_gpu_2_sp.h5 differ
diff --git a/data/hdyn/cuquantum_qiskit_gpu_4_dp.h5 b/data/hdyn/cuquantum_qiskit_gpu_4_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..62b33ec8bfd6acd7828b99228c020399d4a5d605
Binary files /dev/null and b/data/hdyn/cuquantum_qiskit_gpu_4_dp.h5 differ
diff --git a/data/hdyn/cuquantum_qiskit_gpu_4_sp.h5 b/data/hdyn/cuquantum_qiskit_gpu_4_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..702f8d02a67df56217953218354987ff5bf3f531
Binary files /dev/null and b/data/hdyn/cuquantum_qiskit_gpu_4_sp.h5 differ
diff --git a/data/hdyn/cuquantum_qiskit_gpu_8_dp.h5 b/data/hdyn/cuquantum_qiskit_gpu_8_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..4261c25287be6b0252fd3e776417cedc5d652425
Binary files /dev/null and b/data/hdyn/cuquantum_qiskit_gpu_8_dp.h5 differ
diff --git a/data/hdyn/cuquantum_qiskit_gpu_8_sp.h5 b/data/hdyn/cuquantum_qiskit_gpu_8_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..204d33e33db31c45c18f866e14cd71696e3401f9
Binary files /dev/null and b/data/hdyn/cuquantum_qiskit_gpu_8_sp.h5 differ
diff --git a/data/hdyn/cuquantum_qiskit_gpu_dp.h5 b/data/hdyn/cuquantum_qiskit_gpu_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..cf884b38902a79fa3731c62db19ff67dd1884603
Binary files /dev/null and b/data/hdyn/cuquantum_qiskit_gpu_dp.h5 differ
diff --git a/data/hdyn/cuquantum_qiskit_gpu_sp.h5 b/data/hdyn/cuquantum_qiskit_gpu_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..4772834233b36f6dfa0d7324e3f13a20f24e3ecd
Binary files /dev/null and b/data/hdyn/cuquantum_qiskit_gpu_sp.h5 differ
diff --git a/data/hdyn/cuquantum_qsimcirq_gpu_1_sp.h5 b/data/hdyn/cuquantum_qsimcirq_gpu_1_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..177ca2bcb908fe1e7d84e54c0ae1e8d918a39160
Binary files /dev/null and b/data/hdyn/cuquantum_qsimcirq_gpu_1_sp.h5 differ
diff --git a/data/hdyn/cuquantum_qsimcirq_gpu_2_sp.h5 b/data/hdyn/cuquantum_qsimcirq_gpu_2_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..1e3a32b257418050a136951d8f9879de2c6fe0db
Binary files /dev/null and b/data/hdyn/cuquantum_qsimcirq_gpu_2_sp.h5 differ
diff --git a/data/hdyn/cuquantum_qsimcirq_gpu_4_sp.h5 b/data/hdyn/cuquantum_qsimcirq_gpu_4_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..39782ca56fab6c571a14d710727e0703d569f580
Binary files /dev/null and b/data/hdyn/cuquantum_qsimcirq_gpu_4_sp.h5 differ
diff --git a/data/hdyn/cuquantum_qsimcirq_gpu_8_sp.h5 b/data/hdyn/cuquantum_qsimcirq_gpu_8_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..94fe07e40c5f8ce4fb98c4bf19ca9b8818ff9b05
Binary files /dev/null and b/data/hdyn/cuquantum_qsimcirq_gpu_8_sp.h5 differ
diff --git a/data/hdyn/cuquantum_qsimcirq_gpu_sp.h5 b/data/hdyn/cuquantum_qsimcirq_gpu_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..c06a120ff82391fcd108c1d0113bbd9e78fac351
Binary files /dev/null and b/data/hdyn/cuquantum_qsimcirq_gpu_sp.h5 differ
diff --git a/data/hdyn/hiq_multithread_dp.h5 b/data/hdyn/hiq_multithread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..df4c727f36d91ea63daa2b086e844043a7978e57
Binary files /dev/null and b/data/hdyn/hiq_multithread_dp.h5 differ
diff --git a/data/hdyn/hiq_singlethread_dp.h5 b/data/hdyn/hiq_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..de290f0fd818e68c950283762ea4a9c60f4dfcd6
Binary files /dev/null and b/data/hdyn/hiq_singlethread_dp.h5 differ
diff --git a/data/hdyn/hybridq_gpu_sp.h5 b/data/hdyn/hybridq_gpu_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..5041055dff1d2f4e4f1a7890be6635057a9c872d
Binary files /dev/null and b/data/hdyn/hybridq_gpu_sp.h5 differ
diff --git a/data/hdyn/hybridq_multithread_sp.h5 b/data/hdyn/hybridq_multithread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..fd2626c945424e1da26495a35fed38a2308ec0e8
Binary files /dev/null and b/data/hdyn/hybridq_multithread_sp.h5 differ
diff --git a/data/hdyn/hybridq_singlethread_sp.h5 b/data/hdyn/hybridq_singlethread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..d93168919cad8d9aeaaef4cbba63ce9c524b92d7
Binary files /dev/null and b/data/hdyn/hybridq_singlethread_sp.h5 differ
diff --git a/data/hdyn/intel_qs_cpp_multithread_dp.h5 b/data/hdyn/intel_qs_cpp_multithread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..f31c824feb7ffe06f1014c46e71b0fadbc8f8e36
Binary files /dev/null and b/data/hdyn/intel_qs_cpp_multithread_dp.h5 differ
diff --git a/data/hdyn/intel_qs_cpp_multithread_sp.h5 b/data/hdyn/intel_qs_cpp_multithread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..7a83e4730ccf0ed96ee69337e61827178dedceb3
Binary files /dev/null and b/data/hdyn/intel_qs_cpp_multithread_sp.h5 differ
diff --git a/data/hdyn/intel_qs_cpp_singlethread_dp.h5 b/data/hdyn/intel_qs_cpp_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..f4c0697bc946b08e7b8dfa4d64cef3d691b9436c
Binary files /dev/null and b/data/hdyn/intel_qs_cpp_singlethread_dp.h5 differ
diff --git a/data/hdyn/intel_qs_cpp_singlethread_sp.h5 b/data/hdyn/intel_qs_cpp_singlethread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..67a127af872454782ce3c8378a45366fd95b6a6e
Binary files /dev/null and b/data/hdyn/intel_qs_cpp_singlethread_sp.h5 differ
diff --git a/data/hdyn/pennylane_l_gpu_dp.h5 b/data/hdyn/pennylane_l_gpu_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..e1e6d40ebe1f1f8f5ee09b73f7913235dda9cf32
Binary files /dev/null and b/data/hdyn/pennylane_l_gpu_dp.h5 differ
diff --git a/data/hdyn/pennylane_l_singlethread_dp.h5 b/data/hdyn/pennylane_l_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..29f66e7ad993d7f4576986a31f9897e6440a25b8
Binary files /dev/null and b/data/hdyn/pennylane_l_singlethread_dp.h5 differ
diff --git a/data/hdyn/pennylane_l_singlethread_sp.h5 b/data/hdyn/pennylane_l_singlethread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..49a139ada25bf421564fb9922ff7e73fc5526603
Binary files /dev/null and b/data/hdyn/pennylane_l_singlethread_sp.h5 differ
diff --git a/data/hdyn/pennylane_singlethread_dp.h5 b/data/hdyn/pennylane_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..5e03b48623a5239b430912905f533a0e391dde11
Binary files /dev/null and b/data/hdyn/pennylane_singlethread_dp.h5 differ
diff --git a/data/hdyn/pennylane_singlethread_sp.h5 b/data/hdyn/pennylane_singlethread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..907ef371788afee140b85e503512d0fd2681c8cb
Binary files /dev/null and b/data/hdyn/pennylane_singlethread_sp.h5 differ
diff --git a/data/hdyn/projectq_multithread_dp.h5 b/data/hdyn/projectq_multithread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..e283fb8aca95edbcb0ff67aac967c26c32c2d1a3
Binary files /dev/null and b/data/hdyn/projectq_multithread_dp.h5 differ
diff --git a/data/hdyn/projectq_singlethread_dp.h5 b/data/hdyn/projectq_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..e3d31022319de9e37f634d984a2f1845ed240ec7
Binary files /dev/null and b/data/hdyn/projectq_singlethread_dp.h5 differ
diff --git a/data/hdyn/qcgpu_gpu_sp.h5 b/data/hdyn/qcgpu_gpu_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..11b74c9b08d0f95c2cf9b9d6810786937870615b
Binary files /dev/null and b/data/hdyn/qcgpu_gpu_sp.h5 differ
diff --git a/data/hdyn/qibo_multithread_dp.h5 b/data/hdyn/qibo_multithread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..bfdbad35889f2418bdd19e80f0ce58cdeaec980c
Binary files /dev/null and b/data/hdyn/qibo_multithread_dp.h5 differ
diff --git a/data/hdyn/qibo_multithread_sp.h5 b/data/hdyn/qibo_multithread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..5312b624585e6d5a1930cf0620ff40fade101f97
Binary files /dev/null and b/data/hdyn/qibo_multithread_sp.h5 differ
diff --git a/data/hdyn/qibo_singlethread_dp.h5 b/data/hdyn/qibo_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..f906e1ab7db3ced70368bef1bc0c697d3967b979
Binary files /dev/null and b/data/hdyn/qibo_singlethread_dp.h5 differ
diff --git a/data/hdyn/qibo_singlethread_sp.h5 b/data/hdyn/qibo_singlethread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..e133228abff5b494694a24a6c8718d69c4630f87
Binary files /dev/null and b/data/hdyn/qibo_singlethread_sp.h5 differ
diff --git a/data/hdyn/qibojit_gpu_1_dp.h5 b/data/hdyn/qibojit_gpu_1_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..8c2e1b3fab2ea30722488fbd85c4cc843cd2124c
Binary files /dev/null and b/data/hdyn/qibojit_gpu_1_dp.h5 differ
diff --git a/data/hdyn/qibojit_gpu_1_sp.h5 b/data/hdyn/qibojit_gpu_1_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..2e4aa11ff8ee54703e780ff59d2a5b1d5d05ec60
Binary files /dev/null and b/data/hdyn/qibojit_gpu_1_sp.h5 differ
diff --git a/data/hdyn/qibojit_gpu_2_dp.h5 b/data/hdyn/qibojit_gpu_2_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..12713cfb1b989952ece187f76e73be6cee5dd41d
Binary files /dev/null and b/data/hdyn/qibojit_gpu_2_dp.h5 differ
diff --git a/data/hdyn/qibojit_gpu_2_sp.h5 b/data/hdyn/qibojit_gpu_2_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..7d9b8efa22a4616638d4b860f8e16859b7bdf08e
Binary files /dev/null and b/data/hdyn/qibojit_gpu_2_sp.h5 differ
diff --git a/data/hdyn/qibojit_gpu_4_dp.h5 b/data/hdyn/qibojit_gpu_4_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..de73a4d13a03dd1f72f88c5a3ec7b137e963f665
Binary files /dev/null and b/data/hdyn/qibojit_gpu_4_dp.h5 differ
diff --git a/data/hdyn/qibojit_gpu_4_sp.h5 b/data/hdyn/qibojit_gpu_4_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..dbd7b6b554bd8578ae857677a9367d8016a29007
Binary files /dev/null and b/data/hdyn/qibojit_gpu_4_sp.h5 differ
diff --git a/data/hdyn/qibojit_gpu_8_dp.h5 b/data/hdyn/qibojit_gpu_8_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..eb88a774815317950624e79f0deb4454d3cf67f9
Binary files /dev/null and b/data/hdyn/qibojit_gpu_8_dp.h5 differ
diff --git a/data/hdyn/qibojit_gpu_8_sp.h5 b/data/hdyn/qibojit_gpu_8_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..25ff73461d4dab9d8cf51eceb9db74255165b648
Binary files /dev/null and b/data/hdyn/qibojit_gpu_8_sp.h5 differ
diff --git a/data/hdyn/qibojit_gpu_dp.h5 b/data/hdyn/qibojit_gpu_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..ee23c3bfad94fbe1167ca949c524fc3cdba948c3
Binary files /dev/null and b/data/hdyn/qibojit_gpu_dp.h5 differ
diff --git a/data/hdyn/qibojit_gpu_sp.h5 b/data/hdyn/qibojit_gpu_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..418e68ed6db4dafefad3f85708141bc7920ec9a8
Binary files /dev/null and b/data/hdyn/qibojit_gpu_sp.h5 differ
diff --git a/data/hdyn/qibojit_multithread_dp.h5 b/data/hdyn/qibojit_multithread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..783dbe9b31b1e82f10fcb15acc8b430cd0b9e3bc
Binary files /dev/null and b/data/hdyn/qibojit_multithread_dp.h5 differ
diff --git a/data/hdyn/qibojit_multithread_sp.h5 b/data/hdyn/qibojit_multithread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..13ed8fd09f7e3a29bb943276c8a460a931c32f63
Binary files /dev/null and b/data/hdyn/qibojit_multithread_sp.h5 differ
diff --git a/data/hdyn/qibojit_singlethread_dp.h5 b/data/hdyn/qibojit_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..7a3a9da91d2f84dad0237a8d901419a132624e80
Binary files /dev/null and b/data/hdyn/qibojit_singlethread_dp.h5 differ
diff --git a/data/hdyn/qibojit_singlethread_sp.h5 b/data/hdyn/qibojit_singlethread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..5c8fed9381d3cce7a9086dccb7ccc94215b5b3bf
Binary files /dev/null and b/data/hdyn/qibojit_singlethread_sp.h5 differ
diff --git a/data/hdyn/qiskit_gpu_dp.h5 b/data/hdyn/qiskit_gpu_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..2e9f74cc3d4463b93daedd25242c2e2f3efd0ea5
Binary files /dev/null and b/data/hdyn/qiskit_gpu_dp.h5 differ
diff --git a/data/hdyn/qiskit_gpu_sp.h5 b/data/hdyn/qiskit_gpu_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..6a244138ab3802d5ad86ac73ece6d65944e09f87
Binary files /dev/null and b/data/hdyn/qiskit_gpu_sp.h5 differ
diff --git a/data/hdyn/qiskit_multithread_dp.h5 b/data/hdyn/qiskit_multithread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..412cff120900c14000aa9fe01a89e8616fc25226
Binary files /dev/null and b/data/hdyn/qiskit_multithread_dp.h5 differ
diff --git a/data/hdyn/qiskit_multithread_sp.h5 b/data/hdyn/qiskit_multithread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..a5d71013afdf75d8ba9014426cf8f097b12639cc
Binary files /dev/null and b/data/hdyn/qiskit_multithread_sp.h5 differ
diff --git a/data/hdyn/qiskit_singlethread_dp.h5 b/data/hdyn/qiskit_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..45e520d8f7b7846978414acae7de806822d361df
Binary files /dev/null and b/data/hdyn/qiskit_singlethread_dp.h5 differ
diff --git a/data/hdyn/qiskit_singlethread_sp.h5 b/data/hdyn/qiskit_singlethread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..57854cfd9cd64d734dcc2e290062629ed026db6a
Binary files /dev/null and b/data/hdyn/qiskit_singlethread_sp.h5 differ
diff --git a/data/hdyn/qrack_sch_gpu_dp.h5 b/data/hdyn/qrack_sch_gpu_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..1868dc7085f40d1228e0101668a628f04760b943
Binary files /dev/null and b/data/hdyn/qrack_sch_gpu_dp.h5 differ
diff --git a/data/hdyn/qrack_sch_gpu_sp.h5 b/data/hdyn/qrack_sch_gpu_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..9e765a4368b662a075340ce25e30455d6e7a98bf
Binary files /dev/null and b/data/hdyn/qrack_sch_gpu_sp.h5 differ
diff --git a/data/hdyn/qrack_sch_multithread_dp.h5 b/data/hdyn/qrack_sch_multithread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..3f9f131968788e1b6232aa971ed70196e2f1272e
Binary files /dev/null and b/data/hdyn/qrack_sch_multithread_dp.h5 differ
diff --git a/data/hdyn/qrack_sch_multithread_sp.h5 b/data/hdyn/qrack_sch_multithread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..44a90048decf7f08bcc9f095fa1d3e459a62f843
Binary files /dev/null and b/data/hdyn/qrack_sch_multithread_sp.h5 differ
diff --git a/data/hdyn/qrack_sch_singlethread_dp.h5 b/data/hdyn/qrack_sch_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..999c14b98cca50773aa5a2b1ccd8d3627dcb9acf
Binary files /dev/null and b/data/hdyn/qrack_sch_singlethread_dp.h5 differ
diff --git a/data/hdyn/qrack_sch_singlethread_sp.h5 b/data/hdyn/qrack_sch_singlethread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..631ef5d179c43e7db6e56f02d8ed71f617688994
Binary files /dev/null and b/data/hdyn/qrack_sch_singlethread_sp.h5 differ
diff --git a/data/hdyn/qsimcirq_gpu_sp.h5 b/data/hdyn/qsimcirq_gpu_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..2ce6b5f9d07bc9f4c87a3bf04dce8ca368047544
Binary files /dev/null and b/data/hdyn/qsimcirq_gpu_sp.h5 differ
diff --git a/data/hdyn/qsimcirq_multithread_sp.h5 b/data/hdyn/qsimcirq_multithread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..968c7722e969e71595e01da4a7a2c16cd0736efd
Binary files /dev/null and b/data/hdyn/qsimcirq_multithread_sp.h5 differ
diff --git a/data/hdyn/qsimcirq_singlethread_sp.h5 b/data/hdyn/qsimcirq_singlethread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..aca4f1709d810457481cba985d94ae3f5a1732b5
Binary files /dev/null and b/data/hdyn/qsimcirq_singlethread_sp.h5 differ
diff --git a/data/hdyn/quest_gpu_dp.h5 b/data/hdyn/quest_gpu_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..165c119cbf1ff47a3d5dd6c6cd04a171a113dd93
Binary files /dev/null and b/data/hdyn/quest_gpu_dp.h5 differ
diff --git a/data/hdyn/quest_multithread_dp.h5 b/data/hdyn/quest_multithread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..b4877540c091a57bae24e0b60b46a932ed9603c6
Binary files /dev/null and b/data/hdyn/quest_multithread_dp.h5 differ
diff --git a/data/hdyn/quest_multithread_sp.h5 b/data/hdyn/quest_multithread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..e4cf04bde29cb72d3180b7b7317bed4f0f9dcc50
Binary files /dev/null and b/data/hdyn/quest_multithread_sp.h5 differ
diff --git a/data/hdyn/quest_singlethread_dp.h5 b/data/hdyn/quest_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..39da27a640c201f1d36c2fe5f30ad92c4f4f3a84
Binary files /dev/null and b/data/hdyn/quest_singlethread_dp.h5 differ
diff --git a/data/hdyn/quest_singlethread_sp.h5 b/data/hdyn/quest_singlethread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..d4deb994906e0065757a3631ac59910f097a3f49
Binary files /dev/null and b/data/hdyn/quest_singlethread_sp.h5 differ
diff --git a/data/hdyn/qulacs_gpu_dp.h5 b/data/hdyn/qulacs_gpu_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..0fff25ea0dbd6eeda902fb8318446376b253d2ef
Binary files /dev/null and b/data/hdyn/qulacs_gpu_dp.h5 differ
diff --git a/data/hdyn/qulacs_multithread_dp.h5 b/data/hdyn/qulacs_multithread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..ccb9377524beb60e45c4590c04fb3a740e0c3a9b
Binary files /dev/null and b/data/hdyn/qulacs_multithread_dp.h5 differ
diff --git a/data/hdyn/qulacs_singlethread_dp.h5 b/data/hdyn/qulacs_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..d1a8e38eba534e9a3980407756a955c9d74d59f9
Binary files /dev/null and b/data/hdyn/qulacs_singlethread_dp.h5 differ
diff --git a/data/hdyn/svsim_gpu_dp.h5 b/data/hdyn/svsim_gpu_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..d68c5e0a99f3d86799061e34df4c3039dd5da31b
Binary files /dev/null and b/data/hdyn/svsim_gpu_dp.h5 differ
diff --git a/data/hdyn/svsim_multithread_dp.h5 b/data/hdyn/svsim_multithread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..a83188ba1462d7fcd48332954823ff477c9b9e13
Binary files /dev/null and b/data/hdyn/svsim_multithread_dp.h5 differ
diff --git a/data/hdyn/svsim_singlethread_dp.h5 b/data/hdyn/svsim_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..b62fc42ba689e1e64d4e2908d2ff365c3852ab90
Binary files /dev/null and b/data/hdyn/svsim_singlethread_dp.h5 differ
diff --git a/data/hdyn/yao_gpu_dp.h5 b/data/hdyn/yao_gpu_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..1340796dd7870af43bc99280f84ef945787389cd
Binary files /dev/null and b/data/hdyn/yao_gpu_dp.h5 differ
diff --git a/data/hdyn/yao_gpu_sp.h5 b/data/hdyn/yao_gpu_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..2245b8b6b8c8bd9810ce3bd4bd5d180065899b3d
Binary files /dev/null and b/data/hdyn/yao_gpu_sp.h5 differ
diff --git a/data/hdyn/yao_multithread_dp.h5 b/data/hdyn/yao_multithread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..7dfe16e5cd18f3d1cb26eb094d6fdc88d501037d
Binary files /dev/null and b/data/hdyn/yao_multithread_dp.h5 differ
diff --git a/data/hdyn/yao_multithread_sp.h5 b/data/hdyn/yao_multithread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..cae842a9e71d40f9e36248ba52617b1c866752ee
Binary files /dev/null and b/data/hdyn/yao_multithread_sp.h5 differ
diff --git a/data/hdyn/yao_singlethread_dp.h5 b/data/hdyn/yao_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..b4c12f9669c03ab3f4c0702f91b79277d7a1987a
Binary files /dev/null and b/data/hdyn/yao_singlethread_dp.h5 differ
diff --git a/data/hdyn/yao_singlethread_sp.h5 b/data/hdyn/yao_singlethread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..28884144bb97bfd1378b979062e00d32829c78cc
Binary files /dev/null and b/data/hdyn/yao_singlethread_sp.h5 differ
diff --git a/data/qft/cirq_singlethread_dp.h5 b/data/qft/cirq_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..ca8f509eddc03e58554e580d30cb470c14167bd4
Binary files /dev/null and b/data/qft/cirq_singlethread_dp.h5 differ
diff --git a/data/qft/cirq_singlethread_sp.h5 b/data/qft/cirq_singlethread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..e743d14793691dc4b632c8d4c29addaaf70511e5
Binary files /dev/null and b/data/qft/cirq_singlethread_sp.h5 differ
diff --git a/data/qft/cuquantum_qiskit_gpu_1_dp.h5 b/data/qft/cuquantum_qiskit_gpu_1_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..497a7c2f5937b9c1dd5d0ed866fadb0b93efd03e
Binary files /dev/null and b/data/qft/cuquantum_qiskit_gpu_1_dp.h5 differ
diff --git a/data/qft/cuquantum_qiskit_gpu_1_sp.h5 b/data/qft/cuquantum_qiskit_gpu_1_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..e62871fa59e63a51a9920352e0b37b4eae216a95
Binary files /dev/null and b/data/qft/cuquantum_qiskit_gpu_1_sp.h5 differ
diff --git a/data/qft/cuquantum_qiskit_gpu_2_dp.h5 b/data/qft/cuquantum_qiskit_gpu_2_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..7749d1292d75a0588cf717819f7d62ccd5d05cc7
Binary files /dev/null and b/data/qft/cuquantum_qiskit_gpu_2_dp.h5 differ
diff --git a/data/qft/cuquantum_qiskit_gpu_2_sp.h5 b/data/qft/cuquantum_qiskit_gpu_2_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..1651143cef5b378e98b03b06e636c5cb763de392
Binary files /dev/null and b/data/qft/cuquantum_qiskit_gpu_2_sp.h5 differ
diff --git a/data/qft/cuquantum_qiskit_gpu_4_dp.h5 b/data/qft/cuquantum_qiskit_gpu_4_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..00ff92e26b6ffa4c9773f0b6c27a307fc1935303
Binary files /dev/null and b/data/qft/cuquantum_qiskit_gpu_4_dp.h5 differ
diff --git a/data/qft/cuquantum_qiskit_gpu_4_sp.h5 b/data/qft/cuquantum_qiskit_gpu_4_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..e6ee884fb2b2c80b1746e6c3aef1245bb09fbd71
Binary files /dev/null and b/data/qft/cuquantum_qiskit_gpu_4_sp.h5 differ
diff --git a/data/qft/cuquantum_qiskit_gpu_8_dp.h5 b/data/qft/cuquantum_qiskit_gpu_8_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..9f4bbd42dc20292bf5082d7919509316f076d2fa
Binary files /dev/null and b/data/qft/cuquantum_qiskit_gpu_8_dp.h5 differ
diff --git a/data/qft/cuquantum_qiskit_gpu_8_sp.h5 b/data/qft/cuquantum_qiskit_gpu_8_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..0bf2638d95e40b84985d54b4b4b1e4806da7ee7c
Binary files /dev/null and b/data/qft/cuquantum_qiskit_gpu_8_sp.h5 differ
diff --git a/data/qft/cuquantum_qiskit_gpu_dp.h5 b/data/qft/cuquantum_qiskit_gpu_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..9104fbf4f5c9bd131bf69fe1bf8210fdca26431c
Binary files /dev/null and b/data/qft/cuquantum_qiskit_gpu_dp.h5 differ
diff --git a/data/qft/cuquantum_qiskit_gpu_sp.h5 b/data/qft/cuquantum_qiskit_gpu_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..5aa4e1f2e351eb90a7dbe11426630e92ff47b797
Binary files /dev/null and b/data/qft/cuquantum_qiskit_gpu_sp.h5 differ
diff --git a/data/qft/cuquantum_qsimcirq_gpu_1_sp.h5 b/data/qft/cuquantum_qsimcirq_gpu_1_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..64079f1d8271bf7a509c256af11c270a88f69673
Binary files /dev/null and b/data/qft/cuquantum_qsimcirq_gpu_1_sp.h5 differ
diff --git a/data/qft/cuquantum_qsimcirq_gpu_2_sp.h5 b/data/qft/cuquantum_qsimcirq_gpu_2_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..210908ef97a5036328ae20335ca81c10f4c490a9
Binary files /dev/null and b/data/qft/cuquantum_qsimcirq_gpu_2_sp.h5 differ
diff --git a/data/qft/cuquantum_qsimcirq_gpu_4_sp.h5 b/data/qft/cuquantum_qsimcirq_gpu_4_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..674df4398c2b59425381fbb292c19b995d51218c
Binary files /dev/null and b/data/qft/cuquantum_qsimcirq_gpu_4_sp.h5 differ
diff --git a/data/qft/cuquantum_qsimcirq_gpu_8_sp.h5 b/data/qft/cuquantum_qsimcirq_gpu_8_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..9ea940c666be413f374bebeee2ca6bb465f8fd74
Binary files /dev/null and b/data/qft/cuquantum_qsimcirq_gpu_8_sp.h5 differ
diff --git a/data/qft/cuquantum_qsimcirq_gpu_sp.h5 b/data/qft/cuquantum_qsimcirq_gpu_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..56f78ffdf063f65a6ba44285b0c3becceba542e9
Binary files /dev/null and b/data/qft/cuquantum_qsimcirq_gpu_sp.h5 differ
diff --git a/data/qft/hiq_multithread_dp.h5 b/data/qft/hiq_multithread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..e2a079817435b7f48f521a9fe0df7e4a9b2cf91b
Binary files /dev/null and b/data/qft/hiq_multithread_dp.h5 differ
diff --git a/data/qft/hiq_singlethread_dp.h5 b/data/qft/hiq_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..e3b308700f0ffc5e331c138519b704736c4a7470
Binary files /dev/null and b/data/qft/hiq_singlethread_dp.h5 differ
diff --git a/data/qft/hybridq_gpu_sp.h5 b/data/qft/hybridq_gpu_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..03b4313927377b90102f3c1fbd9f61cae233a740
Binary files /dev/null and b/data/qft/hybridq_gpu_sp.h5 differ
diff --git a/data/qft/hybridq_multithread_sp.h5 b/data/qft/hybridq_multithread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..d7e69a08f71802ccf468e3c468879e9f42b10915
Binary files /dev/null and b/data/qft/hybridq_multithread_sp.h5 differ
diff --git a/data/qft/hybridq_singlethread_sp.h5 b/data/qft/hybridq_singlethread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..b8ccb0697ddd8026858c451ab8d5325cff6bffa4
Binary files /dev/null and b/data/qft/hybridq_singlethread_sp.h5 differ
diff --git a/data/qft/intel_qs_cpp_multithread_dp.h5 b/data/qft/intel_qs_cpp_multithread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..38a7b7ff37674fbcdd99d47b9be9aee31b8bb605
Binary files /dev/null and b/data/qft/intel_qs_cpp_multithread_dp.h5 differ
diff --git a/data/qft/intel_qs_cpp_multithread_sp.h5 b/data/qft/intel_qs_cpp_multithread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..807155231684520b1ebf538140ca11b3d543aa6e
Binary files /dev/null and b/data/qft/intel_qs_cpp_multithread_sp.h5 differ
diff --git a/data/qft/intel_qs_cpp_singlethread_dp.h5 b/data/qft/intel_qs_cpp_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..3f12212490aae1e1ed6ab1d8ac016382d1f617f5
Binary files /dev/null and b/data/qft/intel_qs_cpp_singlethread_dp.h5 differ
diff --git a/data/qft/intel_qs_cpp_singlethread_sp.h5 b/data/qft/intel_qs_cpp_singlethread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..e2eafe5ab4eece667ff73ef9848c59bbd14a7f62
Binary files /dev/null and b/data/qft/intel_qs_cpp_singlethread_sp.h5 differ
diff --git a/data/qft/pennylane_l_gpu_dp.h5 b/data/qft/pennylane_l_gpu_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..9e1688fbfbcb0fee0dea583c9a7d6f7293b8d136
Binary files /dev/null and b/data/qft/pennylane_l_gpu_dp.h5 differ
diff --git a/data/qft/pennylane_l_singlethread_dp.h5 b/data/qft/pennylane_l_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..156bd3be4509f4604af3c3ae0c9447baa1091461
Binary files /dev/null and b/data/qft/pennylane_l_singlethread_dp.h5 differ
diff --git a/data/qft/pennylane_l_singlethread_sp.h5 b/data/qft/pennylane_l_singlethread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..19602e09f2873f88cd9ca30e0e460622707a6ef7
Binary files /dev/null and b/data/qft/pennylane_l_singlethread_sp.h5 differ
diff --git a/data/qft/pennylane_singlethread_dp.h5 b/data/qft/pennylane_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..f3bececa8fcb730bd7f676d967ef6627797d56d7
Binary files /dev/null and b/data/qft/pennylane_singlethread_dp.h5 differ
diff --git a/data/qft/pennylane_singlethread_sp.h5 b/data/qft/pennylane_singlethread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..7bca50c79b1ffd6b570e69a7f72c6e46905d0f00
Binary files /dev/null and b/data/qft/pennylane_singlethread_sp.h5 differ
diff --git a/data/qft/projectq_multithread_dp.h5 b/data/qft/projectq_multithread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..ec9a4cd1f73df4c9014bb7c7e724c08c996258fc
Binary files /dev/null and b/data/qft/projectq_multithread_dp.h5 differ
diff --git a/data/qft/projectq_singlethread_dp.h5 b/data/qft/projectq_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..f132fdcc0074e234b4653231cc7dc96f08c9fa71
Binary files /dev/null and b/data/qft/projectq_singlethread_dp.h5 differ
diff --git a/data/qft/qcgpu_gpu_sp.h5 b/data/qft/qcgpu_gpu_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..fb779fa893c2490bd5e72de58e1f9d9a992f1930
Binary files /dev/null and b/data/qft/qcgpu_gpu_sp.h5 differ
diff --git a/data/qft/qibo_multithread_dp.h5 b/data/qft/qibo_multithread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..eb2c732fbd0ffc31ea49a6bea353208629ec1758
Binary files /dev/null and b/data/qft/qibo_multithread_dp.h5 differ
diff --git a/data/qft/qibo_multithread_sp.h5 b/data/qft/qibo_multithread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..ac9f02dc2ddf281a99a48ef5cbd01ab4bef5a2c4
Binary files /dev/null and b/data/qft/qibo_multithread_sp.h5 differ
diff --git a/data/qft/qibo_singlethread_dp.h5 b/data/qft/qibo_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..15a29560159816db5201538a09c2d61e07c11b58
Binary files /dev/null and b/data/qft/qibo_singlethread_dp.h5 differ
diff --git a/data/qft/qibo_singlethread_sp.h5 b/data/qft/qibo_singlethread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..a2f3d1e92f4736687e2b2206d6a566138c53f7ab
Binary files /dev/null and b/data/qft/qibo_singlethread_sp.h5 differ
diff --git a/data/qft/qibojit_gpu_1_dp.h5 b/data/qft/qibojit_gpu_1_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..92aa6a6058b04def19f079d7dfe170f8059f3e72
Binary files /dev/null and b/data/qft/qibojit_gpu_1_dp.h5 differ
diff --git a/data/qft/qibojit_gpu_1_sp.h5 b/data/qft/qibojit_gpu_1_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..c37b7bccd0897e77d21c7205757b932e40c106f7
Binary files /dev/null and b/data/qft/qibojit_gpu_1_sp.h5 differ
diff --git a/data/qft/qibojit_gpu_2_dp.h5 b/data/qft/qibojit_gpu_2_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..6437272c03c2a497eb8f683c49bd1b25ad2321cf
Binary files /dev/null and b/data/qft/qibojit_gpu_2_dp.h5 differ
diff --git a/data/qft/qibojit_gpu_2_sp.h5 b/data/qft/qibojit_gpu_2_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..f112adc7023522a98718ec912ee538545c362cd7
Binary files /dev/null and b/data/qft/qibojit_gpu_2_sp.h5 differ
diff --git a/data/qft/qibojit_gpu_4_dp.h5 b/data/qft/qibojit_gpu_4_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..24921f239d6a2b59f4024aa20ef5f662a6672da6
Binary files /dev/null and b/data/qft/qibojit_gpu_4_dp.h5 differ
diff --git a/data/qft/qibojit_gpu_4_sp.h5 b/data/qft/qibojit_gpu_4_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..90778945bd250f8862c613a7729dcd628f19420e
Binary files /dev/null and b/data/qft/qibojit_gpu_4_sp.h5 differ
diff --git a/data/qft/qibojit_gpu_8_dp.h5 b/data/qft/qibojit_gpu_8_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..8d82fd0f7ba177d1e56ec8640025293d887b11b3
Binary files /dev/null and b/data/qft/qibojit_gpu_8_dp.h5 differ
diff --git a/data/qft/qibojit_gpu_8_sp.h5 b/data/qft/qibojit_gpu_8_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..fd05e0046a78df2b48f7a2a812046d1b936e5630
Binary files /dev/null and b/data/qft/qibojit_gpu_8_sp.h5 differ
diff --git a/data/qft/qibojit_gpu_dp.h5 b/data/qft/qibojit_gpu_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..29996ab96ce42ee176f7e14a5c8ea104d92bea77
Binary files /dev/null and b/data/qft/qibojit_gpu_dp.h5 differ
diff --git a/data/qft/qibojit_gpu_sp.h5 b/data/qft/qibojit_gpu_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..6e68d75a1d66796ce50755f0786835d304d10c58
Binary files /dev/null and b/data/qft/qibojit_gpu_sp.h5 differ
diff --git a/data/qft/qibojit_multithread_dp.h5 b/data/qft/qibojit_multithread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..67662cb7d3d88833fb53345f7b9871938b9e25a3
Binary files /dev/null and b/data/qft/qibojit_multithread_dp.h5 differ
diff --git a/data/qft/qibojit_multithread_sp.h5 b/data/qft/qibojit_multithread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..705d19f49b0597bf04cffd3eb64df8a24f3104f5
Binary files /dev/null and b/data/qft/qibojit_multithread_sp.h5 differ
diff --git a/data/qft/qibojit_singlethread_dp.h5 b/data/qft/qibojit_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..b0b38da758109efca27062c3ec751ced54c80d36
Binary files /dev/null and b/data/qft/qibojit_singlethread_dp.h5 differ
diff --git a/data/qft/qibojit_singlethread_sp.h5 b/data/qft/qibojit_singlethread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..0986ee99f34d55ece23c2223ea8cb1629bcd7ecd
Binary files /dev/null and b/data/qft/qibojit_singlethread_sp.h5 differ
diff --git a/data/qft/qiskit_gpu_dp.h5 b/data/qft/qiskit_gpu_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..998905f2999b9197d9ce89587e1d39b04f8a9e9b
Binary files /dev/null and b/data/qft/qiskit_gpu_dp.h5 differ
diff --git a/data/qft/qiskit_gpu_sp.h5 b/data/qft/qiskit_gpu_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..386fab32a0a00db2360003e71214fdce65c42d98
Binary files /dev/null and b/data/qft/qiskit_gpu_sp.h5 differ
diff --git a/data/qft/qiskit_multithread_dp.h5 b/data/qft/qiskit_multithread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..ea186a101cfa797c9eaf629fa575e3a6dcbe6269
Binary files /dev/null and b/data/qft/qiskit_multithread_dp.h5 differ
diff --git a/data/qft/qiskit_multithread_sp.h5 b/data/qft/qiskit_multithread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..4cdcaf54bb74e489b8bcc313eb89d0544c4cbddc
Binary files /dev/null and b/data/qft/qiskit_multithread_sp.h5 differ
diff --git a/data/qft/qiskit_singlethread_dp.h5 b/data/qft/qiskit_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..705d100ff0628010dc06eda101f257a46d077f37
Binary files /dev/null and b/data/qft/qiskit_singlethread_dp.h5 differ
diff --git a/data/qft/qiskit_singlethread_sp.h5 b/data/qft/qiskit_singlethread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..cdcb985184bfe902c933ec8812c6678cee70d99c
Binary files /dev/null and b/data/qft/qiskit_singlethread_sp.h5 differ
diff --git a/data/qft/qrack_opt_gpu_dp.h5 b/data/qft/qrack_opt_gpu_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..2247fdaa5119e277c9581fd59d206b73fbd8a95a
Binary files /dev/null and b/data/qft/qrack_opt_gpu_dp.h5 differ
diff --git a/data/qft/qrack_opt_gpu_sp.h5 b/data/qft/qrack_opt_gpu_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..f2913ee57c8654db9f8f07a85ab83fba07b8f697
Binary files /dev/null and b/data/qft/qrack_opt_gpu_sp.h5 differ
diff --git a/data/qft/qrack_sch_gpu_dp.h5 b/data/qft/qrack_sch_gpu_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..ac5b568c74fa025ef18f6dae11d4dd7b9f0e541f
Binary files /dev/null and b/data/qft/qrack_sch_gpu_dp.h5 differ
diff --git a/data/qft/qrack_sch_gpu_sp.h5 b/data/qft/qrack_sch_gpu_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..3c0699425bf700f03e2e3828c96ffccb7c5afa85
Binary files /dev/null and b/data/qft/qrack_sch_gpu_sp.h5 differ
diff --git a/data/qft/qrack_sch_multithread_dp.h5 b/data/qft/qrack_sch_multithread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..1549b008dc2839e7f4490620ec6b245dadccfe43
Binary files /dev/null and b/data/qft/qrack_sch_multithread_dp.h5 differ
diff --git a/data/qft/qrack_sch_multithread_sp.h5 b/data/qft/qrack_sch_multithread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..ba73e36d6db8373383d76e730f7ecbd40c47443c
Binary files /dev/null and b/data/qft/qrack_sch_multithread_sp.h5 differ
diff --git a/data/qft/qrack_sch_singlethread_dp.h5 b/data/qft/qrack_sch_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..18cc78fb283865f49093e777c3a8e23900674fc1
Binary files /dev/null and b/data/qft/qrack_sch_singlethread_dp.h5 differ
diff --git a/data/qft/qrack_sch_singlethread_sp.h5 b/data/qft/qrack_sch_singlethread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..564bcba1c7f4e451e240d78fa4b86db72171d048
Binary files /dev/null and b/data/qft/qrack_sch_singlethread_sp.h5 differ
diff --git a/data/qft/qsimcirq_gpu_sp.h5 b/data/qft/qsimcirq_gpu_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..321e26d4c97549b56eff24d3c8692cc8c66a6bb4
Binary files /dev/null and b/data/qft/qsimcirq_gpu_sp.h5 differ
diff --git a/data/qft/qsimcirq_multithread_sp.h5 b/data/qft/qsimcirq_multithread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..6fad924ce66b9d599b3d0f24e38c270b6ed252ff
Binary files /dev/null and b/data/qft/qsimcirq_multithread_sp.h5 differ
diff --git a/data/qft/qsimcirq_singlethread_sp.h5 b/data/qft/qsimcirq_singlethread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..3b93fcca22706ee7a874a62000b259d0686f27ab
Binary files /dev/null and b/data/qft/qsimcirq_singlethread_sp.h5 differ
diff --git a/data/qft/quest_gpu_dp.h5 b/data/qft/quest_gpu_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..e0756181359459c0602a7d6ba92e64c662be05c4
Binary files /dev/null and b/data/qft/quest_gpu_dp.h5 differ
diff --git a/data/qft/quest_multithread_dp.h5 b/data/qft/quest_multithread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..50df1b626fc885217d4c81b39d95bd7efc49bb1b
Binary files /dev/null and b/data/qft/quest_multithread_dp.h5 differ
diff --git a/data/qft/quest_multithread_sp.h5 b/data/qft/quest_multithread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..77dca4ce708c91734cb41e33494ec4e2984631f4
Binary files /dev/null and b/data/qft/quest_multithread_sp.h5 differ
diff --git a/data/qft/quest_singlethread_dp.h5 b/data/qft/quest_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..67e18704e23e34fa5a5b5d79e3638b5edbef8cce
Binary files /dev/null and b/data/qft/quest_singlethread_dp.h5 differ
diff --git a/data/qft/quest_singlethread_sp.h5 b/data/qft/quest_singlethread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..285f6d0fbf6cc6cd68a1c21f1df82e28b5bb9577
Binary files /dev/null and b/data/qft/quest_singlethread_sp.h5 differ
diff --git a/data/qft/qulacs_gpu_dp.h5 b/data/qft/qulacs_gpu_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..4ed9d6e311f5ae94f7a58881f3996caa77616b74
Binary files /dev/null and b/data/qft/qulacs_gpu_dp.h5 differ
diff --git a/data/qft/qulacs_multithread_dp.h5 b/data/qft/qulacs_multithread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..2911d3a398bcfea596dca47eef673d5cb8cd43cc
Binary files /dev/null and b/data/qft/qulacs_multithread_dp.h5 differ
diff --git a/data/qft/qulacs_singlethread_dp.h5 b/data/qft/qulacs_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..1e2a3f2c35e813b6692e90efebf3056ed38b4252
Binary files /dev/null and b/data/qft/qulacs_singlethread_dp.h5 differ
diff --git a/data/qft/svsim_gpu_dp.h5 b/data/qft/svsim_gpu_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..e02f6c32dc546022cf303d11b4620bf38184183d
Binary files /dev/null and b/data/qft/svsim_gpu_dp.h5 differ
diff --git a/data/qft/svsim_multithread_dp.h5 b/data/qft/svsim_multithread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..922136033c38632daf9be619be82ed14a3f05339
Binary files /dev/null and b/data/qft/svsim_multithread_dp.h5 differ
diff --git a/data/qft/svsim_singlethread_dp.h5 b/data/qft/svsim_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..f35c3b1c40dbc5c59e2bd56acc01f35218077241
Binary files /dev/null and b/data/qft/svsim_singlethread_dp.h5 differ
diff --git a/data/qft/yao_gpu_dp.h5 b/data/qft/yao_gpu_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..62e1b3ce39f4b0955575ed355a1b638ff21476e1
Binary files /dev/null and b/data/qft/yao_gpu_dp.h5 differ
diff --git a/data/qft/yao_gpu_sp.h5 b/data/qft/yao_gpu_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..29c409dea3cb50e3e2aa598ea8e1304c6a60b1dc
Binary files /dev/null and b/data/qft/yao_gpu_sp.h5 differ
diff --git a/data/qft/yao_multithread_dp.h5 b/data/qft/yao_multithread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..8709edc6da05033ad8c5453da996526678067ab6
Binary files /dev/null and b/data/qft/yao_multithread_dp.h5 differ
diff --git a/data/qft/yao_multithread_sp.h5 b/data/qft/yao_multithread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..5c7a6a60e246c2a07b8b7ab3ad59c125092ff6d9
Binary files /dev/null and b/data/qft/yao_multithread_sp.h5 differ
diff --git a/data/qft/yao_singlethread_dp.h5 b/data/qft/yao_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..9a6d97652c1d91313dd3595d431a5e3bdd843e3e
Binary files /dev/null and b/data/qft/yao_singlethread_dp.h5 differ
diff --git a/data/qft/yao_singlethread_sp.h5 b/data/qft/yao_singlethread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..b1da494dd12c3049ac2645cd32d9373a4fe96bd4
Binary files /dev/null and b/data/qft/yao_singlethread_sp.h5 differ
diff --git a/data/rqc/cirq_singlethread_dp.h5 b/data/rqc/cirq_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..7182092f3c7e746280ccf226fa2b03e6e4d90f14
Binary files /dev/null and b/data/rqc/cirq_singlethread_dp.h5 differ
diff --git a/data/rqc/cirq_singlethread_sp.h5 b/data/rqc/cirq_singlethread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..2d3913b08b92b9f0d152fb3162904468fe2a3172
Binary files /dev/null and b/data/rqc/cirq_singlethread_sp.h5 differ
diff --git a/data/rqc/cuquantum_qiskit_gpu_1_dp.h5 b/data/rqc/cuquantum_qiskit_gpu_1_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..651571430f73802f4facb00ffac097f810962db6
Binary files /dev/null and b/data/rqc/cuquantum_qiskit_gpu_1_dp.h5 differ
diff --git a/data/rqc/cuquantum_qiskit_gpu_1_sp.h5 b/data/rqc/cuquantum_qiskit_gpu_1_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..07f93f4b0b729361565fff59eac9487dbea1e4cb
Binary files /dev/null and b/data/rqc/cuquantum_qiskit_gpu_1_sp.h5 differ
diff --git a/data/rqc/cuquantum_qiskit_gpu_2_dp.h5 b/data/rqc/cuquantum_qiskit_gpu_2_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..1e0d5cadcaab35f283763255d7b48fd55b0eb8ef
Binary files /dev/null and b/data/rqc/cuquantum_qiskit_gpu_2_dp.h5 differ
diff --git a/data/rqc/cuquantum_qiskit_gpu_2_sp.h5 b/data/rqc/cuquantum_qiskit_gpu_2_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..78a2b6ba2090c056bb02d92efe2b38920ece6ef2
Binary files /dev/null and b/data/rqc/cuquantum_qiskit_gpu_2_sp.h5 differ
diff --git a/data/rqc/cuquantum_qiskit_gpu_4_dp.h5 b/data/rqc/cuquantum_qiskit_gpu_4_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..af852f06c8fcf2d9ee144eed3a6030c412945b98
Binary files /dev/null and b/data/rqc/cuquantum_qiskit_gpu_4_dp.h5 differ
diff --git a/data/rqc/cuquantum_qiskit_gpu_4_sp.h5 b/data/rqc/cuquantum_qiskit_gpu_4_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..38f48dae34d2e599f7bf2119129aeb73ce35fbc1
Binary files /dev/null and b/data/rqc/cuquantum_qiskit_gpu_4_sp.h5 differ
diff --git a/data/rqc/cuquantum_qiskit_gpu_8_dp.h5 b/data/rqc/cuquantum_qiskit_gpu_8_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..7fd402df4a4fea5419134fab7bf1694d539d3962
Binary files /dev/null and b/data/rqc/cuquantum_qiskit_gpu_8_dp.h5 differ
diff --git a/data/rqc/cuquantum_qiskit_gpu_8_sp.h5 b/data/rqc/cuquantum_qiskit_gpu_8_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..2d62ce71b61e9ca23fd49b258c583b81ef5a2337
Binary files /dev/null and b/data/rqc/cuquantum_qiskit_gpu_8_sp.h5 differ
diff --git a/data/rqc/cuquantum_qiskit_gpu_dp.h5 b/data/rqc/cuquantum_qiskit_gpu_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..287f596a698f3a8dc8e1f57b37792437ac62ff0d
Binary files /dev/null and b/data/rqc/cuquantum_qiskit_gpu_dp.h5 differ
diff --git a/data/rqc/cuquantum_qiskit_gpu_sp.h5 b/data/rqc/cuquantum_qiskit_gpu_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..f42d57b24a20a3717909d4ba259ef4e015cae935
Binary files /dev/null and b/data/rqc/cuquantum_qiskit_gpu_sp.h5 differ
diff --git a/data/rqc/cuquantum_qsimcirq_gpu_1_sp.h5 b/data/rqc/cuquantum_qsimcirq_gpu_1_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..9d62e7d3a07e20b2b7ccfe3f3ecccb1adac1f6f3
Binary files /dev/null and b/data/rqc/cuquantum_qsimcirq_gpu_1_sp.h5 differ
diff --git a/data/rqc/cuquantum_qsimcirq_gpu_2_sp.h5 b/data/rqc/cuquantum_qsimcirq_gpu_2_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..cc746380020e489c7e0b6cc1a5b4d5e54d0d83a9
Binary files /dev/null and b/data/rqc/cuquantum_qsimcirq_gpu_2_sp.h5 differ
diff --git a/data/rqc/cuquantum_qsimcirq_gpu_4_sp.h5 b/data/rqc/cuquantum_qsimcirq_gpu_4_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..4d3ec0d9713a8f8005425f01d08b33477fa98fdd
Binary files /dev/null and b/data/rqc/cuquantum_qsimcirq_gpu_4_sp.h5 differ
diff --git a/data/rqc/cuquantum_qsimcirq_gpu_8_sp.h5 b/data/rqc/cuquantum_qsimcirq_gpu_8_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..79e18c30ce8812aa6a5950bbde9a5fdcaa26fe48
Binary files /dev/null and b/data/rqc/cuquantum_qsimcirq_gpu_8_sp.h5 differ
diff --git a/data/rqc/cuquantum_qsimcirq_gpu_sp.h5 b/data/rqc/cuquantum_qsimcirq_gpu_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..6b84ca255b589a752f5a34370abeb1c44552543a
Binary files /dev/null and b/data/rqc/cuquantum_qsimcirq_gpu_sp.h5 differ
diff --git a/data/rqc/hiq_multithread_dp.h5 b/data/rqc/hiq_multithread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..8b40aa345918bc8aca6699ec94b902f59aa87150
Binary files /dev/null and b/data/rqc/hiq_multithread_dp.h5 differ
diff --git a/data/rqc/hiq_singlethread_dp.h5 b/data/rqc/hiq_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..4ff56633286d58f74daafa518bef4673a522c3bd
Binary files /dev/null and b/data/rqc/hiq_singlethread_dp.h5 differ
diff --git a/data/rqc/hybridq_gpu_sp.h5 b/data/rqc/hybridq_gpu_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..2325ca245571876dd7356dc6cace6fd1a6285843
Binary files /dev/null and b/data/rqc/hybridq_gpu_sp.h5 differ
diff --git a/data/rqc/hybridq_multithread_sp.h5 b/data/rqc/hybridq_multithread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..111e263b7da8c2821ace310f390e3aed76766812
Binary files /dev/null and b/data/rqc/hybridq_multithread_sp.h5 differ
diff --git a/data/rqc/hybridq_singlethread_sp.h5 b/data/rqc/hybridq_singlethread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..3664f69bf603542c72bb3a58694829aed1208d2f
Binary files /dev/null and b/data/rqc/hybridq_singlethread_sp.h5 differ
diff --git a/data/rqc/intel_qs_cpp_multithread_dp.h5 b/data/rqc/intel_qs_cpp_multithread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..bb49b120099dc50be1a2fe29ea09d184d69f1e09
Binary files /dev/null and b/data/rqc/intel_qs_cpp_multithread_dp.h5 differ
diff --git a/data/rqc/intel_qs_cpp_multithread_sp.h5 b/data/rqc/intel_qs_cpp_multithread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..ad138d941af0d141bd2e8474a4699c6798273fbc
Binary files /dev/null and b/data/rqc/intel_qs_cpp_multithread_sp.h5 differ
diff --git a/data/rqc/intel_qs_cpp_singlethread_dp.h5 b/data/rqc/intel_qs_cpp_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..72f6234589cb7f1bf2fccdd8d2f8d636e998ab9c
Binary files /dev/null and b/data/rqc/intel_qs_cpp_singlethread_dp.h5 differ
diff --git a/data/rqc/intel_qs_cpp_singlethread_sp.h5 b/data/rqc/intel_qs_cpp_singlethread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..39704718b2dd49ad8623da37abe435d7a899530d
Binary files /dev/null and b/data/rqc/intel_qs_cpp_singlethread_sp.h5 differ
diff --git a/data/rqc/pennylane_l_gpu_dp.h5 b/data/rqc/pennylane_l_gpu_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..b786689c028f651872abc71341da5e3f700555ba
Binary files /dev/null and b/data/rqc/pennylane_l_gpu_dp.h5 differ
diff --git a/data/rqc/pennylane_l_singlethread_dp.h5 b/data/rqc/pennylane_l_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..d2ea3b5e59605b763439fde50d468e1b34d3138c
Binary files /dev/null and b/data/rqc/pennylane_l_singlethread_dp.h5 differ
diff --git a/data/rqc/pennylane_l_singlethread_sp.h5 b/data/rqc/pennylane_l_singlethread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..45a64913e5918bc60a08173495dc6e191f221af6
Binary files /dev/null and b/data/rqc/pennylane_l_singlethread_sp.h5 differ
diff --git a/data/rqc/pennylane_singlethread_dp.h5 b/data/rqc/pennylane_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..5047f812e27d4d2e68cf59fd3d52a3ebc1d702a4
Binary files /dev/null and b/data/rqc/pennylane_singlethread_dp.h5 differ
diff --git a/data/rqc/pennylane_singlethread_sp.h5 b/data/rqc/pennylane_singlethread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..f4c77737eb1c8c5cc841e71204a839c4b3ec1936
Binary files /dev/null and b/data/rqc/pennylane_singlethread_sp.h5 differ
diff --git a/data/rqc/projectq_multithread_dp.h5 b/data/rqc/projectq_multithread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..9bf649b136af00e40bc1000cf04e818ede8d26e2
Binary files /dev/null and b/data/rqc/projectq_multithread_dp.h5 differ
diff --git a/data/rqc/projectq_singlethread_dp.h5 b/data/rqc/projectq_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..4bb1c152bc8003856d0aa1a04c39367badb6e191
Binary files /dev/null and b/data/rqc/projectq_singlethread_dp.h5 differ
diff --git a/data/rqc/qcgpu_gpu_sp.h5 b/data/rqc/qcgpu_gpu_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..615b51d7525ed7ba9d7045f9d29e323f487ed704
Binary files /dev/null and b/data/rqc/qcgpu_gpu_sp.h5 differ
diff --git a/data/rqc/qibo_multithread_dp.h5 b/data/rqc/qibo_multithread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..a78f0c614768a80114c22ea71e348071444c9533
Binary files /dev/null and b/data/rqc/qibo_multithread_dp.h5 differ
diff --git a/data/rqc/qibo_multithread_sp.h5 b/data/rqc/qibo_multithread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..ad3be374c3b4547f402d1ed6b6943f421dac3d63
Binary files /dev/null and b/data/rqc/qibo_multithread_sp.h5 differ
diff --git a/data/rqc/qibo_singlethread_dp.h5 b/data/rqc/qibo_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..7421c4ef4fc698d79fbfa5b875d3bc40ae3893aa
Binary files /dev/null and b/data/rqc/qibo_singlethread_dp.h5 differ
diff --git a/data/rqc/qibo_singlethread_sp.h5 b/data/rqc/qibo_singlethread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..7ef119d11b6d35a6d86cadb571eb0020d41cfdf8
Binary files /dev/null and b/data/rqc/qibo_singlethread_sp.h5 differ
diff --git a/data/rqc/qibojit_gpu_1_dp.h5 b/data/rqc/qibojit_gpu_1_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..ac4c1b8056abff6bc0d4647e8302df3511ef544d
Binary files /dev/null and b/data/rqc/qibojit_gpu_1_dp.h5 differ
diff --git a/data/rqc/qibojit_gpu_1_sp.h5 b/data/rqc/qibojit_gpu_1_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..0dad765e33f1994b58245da26aca4c55ea28b2fa
Binary files /dev/null and b/data/rqc/qibojit_gpu_1_sp.h5 differ
diff --git a/data/rqc/qibojit_gpu_2_dp.h5 b/data/rqc/qibojit_gpu_2_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..8c521aa9b14167c1d7d35d84a0f8c3cff863bf69
Binary files /dev/null and b/data/rqc/qibojit_gpu_2_dp.h5 differ
diff --git a/data/rqc/qibojit_gpu_2_sp.h5 b/data/rqc/qibojit_gpu_2_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..48e26c30cf097cf5fb2fe18b29fc215978089bf9
Binary files /dev/null and b/data/rqc/qibojit_gpu_2_sp.h5 differ
diff --git a/data/rqc/qibojit_gpu_4_dp.h5 b/data/rqc/qibojit_gpu_4_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..e289069e418c9a629c88890243202616f5a207c4
Binary files /dev/null and b/data/rqc/qibojit_gpu_4_dp.h5 differ
diff --git a/data/rqc/qibojit_gpu_4_sp.h5 b/data/rqc/qibojit_gpu_4_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..c027658463afd45c27b6522ce8879e0ec32c3d75
Binary files /dev/null and b/data/rqc/qibojit_gpu_4_sp.h5 differ
diff --git a/data/rqc/qibojit_gpu_8_dp.h5 b/data/rqc/qibojit_gpu_8_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..756d35b59d1cea8cfd0b9e4e04fcbc75e1a87d6e
Binary files /dev/null and b/data/rqc/qibojit_gpu_8_dp.h5 differ
diff --git a/data/rqc/qibojit_gpu_8_sp.h5 b/data/rqc/qibojit_gpu_8_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..9f325421e0d915eb8e105a46f3e49efd0abb3ba6
Binary files /dev/null and b/data/rqc/qibojit_gpu_8_sp.h5 differ
diff --git a/data/rqc/qibojit_gpu_dp.h5 b/data/rqc/qibojit_gpu_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..398fd2c137372997a0f0ae6e824e63675381c1e1
Binary files /dev/null and b/data/rqc/qibojit_gpu_dp.h5 differ
diff --git a/data/rqc/qibojit_gpu_sp.h5 b/data/rqc/qibojit_gpu_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..a6382b639eb488e637032bb41afaa0d063fc842d
Binary files /dev/null and b/data/rqc/qibojit_gpu_sp.h5 differ
diff --git a/data/rqc/qibojit_multithread_dp.h5 b/data/rqc/qibojit_multithread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..78f14899420e012a7dbae23d752476590a868f59
Binary files /dev/null and b/data/rqc/qibojit_multithread_dp.h5 differ
diff --git a/data/rqc/qibojit_multithread_sp.h5 b/data/rqc/qibojit_multithread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..c3b7516e8df312b434767d0d77d7ee4e2391eb35
Binary files /dev/null and b/data/rqc/qibojit_multithread_sp.h5 differ
diff --git a/data/rqc/qibojit_singlethread_dp.h5 b/data/rqc/qibojit_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..e99f4d3c8808d9592c264310f0d60c9d16875396
Binary files /dev/null and b/data/rqc/qibojit_singlethread_dp.h5 differ
diff --git a/data/rqc/qibojit_singlethread_sp.h5 b/data/rqc/qibojit_singlethread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..b374127ea31c6ed0719a3020cf2b28012dee6082
Binary files /dev/null and b/data/rqc/qibojit_singlethread_sp.h5 differ
diff --git a/data/rqc/qiskit_gpu_dp.h5 b/data/rqc/qiskit_gpu_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..1157e7c6217b8d9458d67f6182e870bf19d8a347
Binary files /dev/null and b/data/rqc/qiskit_gpu_dp.h5 differ
diff --git a/data/rqc/qiskit_gpu_sp.h5 b/data/rqc/qiskit_gpu_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..0dc7079fcf625adbc2ba8bcec65a233bfeabc3d4
Binary files /dev/null and b/data/rqc/qiskit_gpu_sp.h5 differ
diff --git a/data/rqc/qiskit_multithread_dp.h5 b/data/rqc/qiskit_multithread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..40fe4b418d4310fa4af78e88ae375354f103b2d5
Binary files /dev/null and b/data/rqc/qiskit_multithread_dp.h5 differ
diff --git a/data/rqc/qiskit_multithread_sp.h5 b/data/rqc/qiskit_multithread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..9443db2c6c0fdfd16dba3d0da24338ee8c512e2a
Binary files /dev/null and b/data/rqc/qiskit_multithread_sp.h5 differ
diff --git a/data/rqc/qiskit_singlethread_dp.h5 b/data/rqc/qiskit_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..76ec4aff6f447efd529c9b5005420fd0cf29ad74
Binary files /dev/null and b/data/rqc/qiskit_singlethread_dp.h5 differ
diff --git a/data/rqc/qiskit_singlethread_sp.h5 b/data/rqc/qiskit_singlethread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..76d87d27c97bb67948998c17f88a4f7df315f07b
Binary files /dev/null and b/data/rqc/qiskit_singlethread_sp.h5 differ
diff --git a/data/rqc/qrack_sch_gpu_dp.h5 b/data/rqc/qrack_sch_gpu_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..bd42f5d484dff9eedf91421b4c2f21c844063577
Binary files /dev/null and b/data/rqc/qrack_sch_gpu_dp.h5 differ
diff --git a/data/rqc/qrack_sch_gpu_sp.h5 b/data/rqc/qrack_sch_gpu_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..2e1ec938add0a2868d11786e241c868268890af1
Binary files /dev/null and b/data/rqc/qrack_sch_gpu_sp.h5 differ
diff --git a/data/rqc/qrack_sch_multithread_dp.h5 b/data/rqc/qrack_sch_multithread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..67ababb6360306a945968cd7aea134126cc80d21
Binary files /dev/null and b/data/rqc/qrack_sch_multithread_dp.h5 differ
diff --git a/data/rqc/qrack_sch_multithread_sp.h5 b/data/rqc/qrack_sch_multithread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..703c6de1af500277f2e457fc0e3f46c5dc09e0c4
Binary files /dev/null and b/data/rqc/qrack_sch_multithread_sp.h5 differ
diff --git a/data/rqc/qrack_sch_singlethread_dp.h5 b/data/rqc/qrack_sch_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..8a7dd20cbc8f2d1992b5fac9c8d3bac5c13dda4a
Binary files /dev/null and b/data/rqc/qrack_sch_singlethread_dp.h5 differ
diff --git a/data/rqc/qrack_sch_singlethread_sp.h5 b/data/rqc/qrack_sch_singlethread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..bbb575a3e668750cc607e103ca18be1b69f41846
Binary files /dev/null and b/data/rqc/qrack_sch_singlethread_sp.h5 differ
diff --git a/data/rqc/qsimcirq_gpu_sp.h5 b/data/rqc/qsimcirq_gpu_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..0637040a48ff4f1d9435dd465a3cafa7d3de41bb
Binary files /dev/null and b/data/rqc/qsimcirq_gpu_sp.h5 differ
diff --git a/data/rqc/qsimcirq_multithread_sp.h5 b/data/rqc/qsimcirq_multithread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..d99fa2a9cd1981384a2e2aed0a659c20276c12d1
Binary files /dev/null and b/data/rqc/qsimcirq_multithread_sp.h5 differ
diff --git a/data/rqc/qsimcirq_singlethread_sp.h5 b/data/rqc/qsimcirq_singlethread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..1b72fa36996569d0975a05abb9dba046e2edf0e7
Binary files /dev/null and b/data/rqc/qsimcirq_singlethread_sp.h5 differ
diff --git a/data/rqc/quest_gpu_dp.h5 b/data/rqc/quest_gpu_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..4d7ee5472553a921b01628fe65f49e6a9d117c7f
Binary files /dev/null and b/data/rqc/quest_gpu_dp.h5 differ
diff --git a/data/rqc/quest_multithread_dp.h5 b/data/rqc/quest_multithread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..3f5907ca4096ba2e7a6ce33c793962508a4210cc
Binary files /dev/null and b/data/rqc/quest_multithread_dp.h5 differ
diff --git a/data/rqc/quest_multithread_sp.h5 b/data/rqc/quest_multithread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..1bdf0716cbe89cf9c51a8350e66de296283d72da
Binary files /dev/null and b/data/rqc/quest_multithread_sp.h5 differ
diff --git a/data/rqc/quest_singlethread_dp.h5 b/data/rqc/quest_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..2e4497ea8045af1a9f9f7fc3aa301bf6faf9b800
Binary files /dev/null and b/data/rqc/quest_singlethread_dp.h5 differ
diff --git a/data/rqc/quest_singlethread_sp.h5 b/data/rqc/quest_singlethread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..4ae94fb7192bed5f88d137c6833f1c1d2bb88ad1
Binary files /dev/null and b/data/rqc/quest_singlethread_sp.h5 differ
diff --git a/data/rqc/qulacs_gpu_dp.h5 b/data/rqc/qulacs_gpu_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..e471d12111aa3ac996a4bec169894128626a9dff
Binary files /dev/null and b/data/rqc/qulacs_gpu_dp.h5 differ
diff --git a/data/rqc/qulacs_multithread_dp.h5 b/data/rqc/qulacs_multithread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..bfdca69ab913bb5fb7cc503f150ff81a5a4c410a
Binary files /dev/null and b/data/rqc/qulacs_multithread_dp.h5 differ
diff --git a/data/rqc/qulacs_singlethread_dp.h5 b/data/rqc/qulacs_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..ce024a8161e1b598b0f787eb0abf73e4fd354a4e
Binary files /dev/null and b/data/rqc/qulacs_singlethread_dp.h5 differ
diff --git a/data/rqc/svsim_gpu_dp.h5 b/data/rqc/svsim_gpu_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..1ab562c4f2a37f5042d559c1abeef986938b04fb
Binary files /dev/null and b/data/rqc/svsim_gpu_dp.h5 differ
diff --git a/data/rqc/svsim_multithread_dp.h5 b/data/rqc/svsim_multithread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..c71f739745854631df35d03fc92588eac126c28e
Binary files /dev/null and b/data/rqc/svsim_multithread_dp.h5 differ
diff --git a/data/rqc/svsim_singlethread_dp.h5 b/data/rqc/svsim_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..836e9d161ee4f4edd812dd27a0abbfd590936146
Binary files /dev/null and b/data/rqc/svsim_singlethread_dp.h5 differ
diff --git a/data/rqc/yao_gpu_dp.h5 b/data/rqc/yao_gpu_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..a93aa6b1d907ebfab71dba4beccbeb4c57ff0e42
Binary files /dev/null and b/data/rqc/yao_gpu_dp.h5 differ
diff --git a/data/rqc/yao_gpu_sp.h5 b/data/rqc/yao_gpu_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..0657475cd3064607d82defc7ba9509f5dcbd0967
Binary files /dev/null and b/data/rqc/yao_gpu_sp.h5 differ
diff --git a/data/rqc/yao_multithread_dp.h5 b/data/rqc/yao_multithread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..6a25e832e3870ec9744dd7e60bed2305a935143d
Binary files /dev/null and b/data/rqc/yao_multithread_dp.h5 differ
diff --git a/data/rqc/yao_multithread_sp.h5 b/data/rqc/yao_multithread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..7fdabc318899a21be82c5c5830ff21370b9fb9f7
Binary files /dev/null and b/data/rqc/yao_multithread_sp.h5 differ
diff --git a/data/rqc/yao_singlethread_dp.h5 b/data/rqc/yao_singlethread_dp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..a9908a9493b0a327d2d317a657895cbc778c142f
Binary files /dev/null and b/data/rqc/yao_singlethread_dp.h5 differ
diff --git a/data/rqc/yao_singlethread_sp.h5 b/data/rqc/yao_singlethread_sp.h5
new file mode 100644
index 0000000000000000000000000000000000000000..8f7eda5d4d1afd906eeee4a56c4e97aa3838cee4
Binary files /dev/null and b/data/rqc/yao_singlethread_sp.h5 differ
diff --git a/plot_scripts/map_packages_colors_1v1.py b/plot_scripts/map_packages_colors_1v1.py
new file mode 100644
index 0000000000000000000000000000000000000000..344afa73e555dbddf5fbbe5f6841006e5d8d08da
--- /dev/null
+++ b/plot_scripts/map_packages_colors_1v1.py
@@ -0,0 +1,299 @@
+import matplotlib.pyplot as plt
+import numpy as np
+from matplotlib import rc
+import matplotlib.ticker as ticker
+from matplotlib.ticker import MaxNLocator
+from matplotlib.lines import Line2D
+# from matplotlib import pyplot
+
+fig_width_pt = 246.0 # Get this from LaTeX using \showthe\columnwidth
+inches_per_pt = 1.0/72.27 # Convert pt to inch
+golden_mean = (np.sqrt(5)-1.0)/2.0 # Aesthetic ratio
+fig_width = fig_width_pt*inches_per_pt # width in inches
+fig_height = fig_width*golden_mean # height in inches
+# fig_size = [fig_width+1.25,fig_height+1.25]
+# rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})
+params = {'backend': 'ps',
+ 'axes.labelsize': 14,
+ 'axes.titlesize': 12,
+ 'font.size': 8,
+ 'legend.fontsize': 12,
+ 'xtick.labelsize': 14,
+ 'ytick.labelsize': 14,}
+# 'text.usetex': True}
+# 'figure.figsize': fig_size}
+# plt.rc('text.latex', preamble=r'\usepackage{braket}')
+plt.rcParams.update(params)
+
+cm = plt.get_cmap('tab20')
+n_colors = 20
+x_arr = [cm(1.*i/n_colors) for i in range(n_colors)]
+# s_arr = ["o", "*", "s", "^", "D", "v"]
+# s_arr = Line2D.filled_markers*100
+s_arr = ['o', 'v', '^', '<', '>', '8', 's', 'p', '*', 'h', 'H', 'D', 'd', 'P', 'X', '+', '1', '2', '3', '4']*50
+
+pkg_str = ['cirq', 'hybridq', 'intel_qs_cpp', 'pennylane_l', 'projectq', 'qcgpu', 'qibojit', 'qsimcirq', 'quest', 'svsim', 'yao', 'hiq', 'pennylane', 'qibo', 'qiskit', 'qrack_sch', 'qulacs', 'cuquantum_qiskit', 'cuquantum_qsimcirq']
+
+task = ['hdyn', 'rqc', 'qft']
+
+com_cap = ['singlethread', 'multithread', 'gpu']
+
+prec = ['sp', 'dp']
+
+storage_dict = {}
+for pkg in pkg_str:
+ storage_dict.update({pkg:pkg})
+
+label_dict = {}
+for pkg in pkg_str:
+ for t in task:
+ for cc in com_cap:
+ for p in prec:
+ label_dict.update({pkg+'_'+t+'_'+cc+'_'+p:pkg+'_'+t+'_'+cc+'_'+p})
+
+
+color_dict = {}
+n_c = 0
+for pkg in pkg_str:
+ for t in task:
+ for cc in com_cap:
+ for p in prec:
+ color_dict.update({pkg+'_'+t+'_'+cc+'_'+p:x_arr[n_c]})
+ n_c = n_c + 1
+
+symbol_dict = {}
+n_s = 0
+for pkg in pkg_str:
+ for t in task:
+ for cc in com_cap:
+ for p in prec:
+ symbol_dict.update({pkg+'_'+t+'_'+cc+'_'+p:s_arr[n_s]})
+ n_s = n_s + 1
+
+r"""
+label_dict = {"qiskit":"qiskit",
+ "qiskit_singlethread":"singlethread",
+ "qiskit_multithread":"multithread (42x2)",
+ "qiskit_gpu":"qiskit(gpu-rtx)",
+ "qiskit_nvidia":"qiskit(nvidia-rtx()",
+ #
+ "cirq":"cirq",
+ "qsimcirq":"qsimcirq",
+ "qsimcirq_singlethread":"singlethread",
+ "qsimcirq_multithread":"multithread (42x2)",
+ "qsimcirq_gpu":"qsimcirq(gpu-rtx)",
+ "qsimcirq_nvidia":"qsimcirq(nvidia-rtx)",
+ #
+ "pennylane":"pennylane(py)",
+ "pennylane_l":"pennylane(cpp)",
+ "pennylane_gpu":"pennylane(nvidia-rtx)",
+ "pennylane_singlethread":"st(py)",
+ "pennylane_lightning_singlethread":"st(cpp)",
+ #
+ "qibo":"qibo",
+ "qibojit":"qibojit",
+ "qibojit_gpu":"qibojit(gpu-rtx)",
+ "qibojit_singlethread":"st",
+ #
+ "yao":"yao",
+ "yao_singlethread":"st",
+ "yao_multithread":"mt (42x2)",
+ "yao_gpu":"yao(gpu-rtx)",
+ #
+ "quest":"quest",
+ "quest_intel":"quest(intel)",
+ "quest_singlethread":"singlethread",
+ "quest_multithread":"multithread (42x2)",
+ "quest_gpu":"quest(gpu-rtx)",
+ #
+ "qulacs":"qulacs",
+ "qulacs_singlethread":"singlethread",
+ "qulacs_multithread":"multithread (42x2)",
+ "qulacs_gpu":"qulacs(gpu-rtx)",
+ #
+ "intel_qs":"intel(py)",
+ "intel_qs_cpp":"intel(cpp)",
+ "intel_qs_cpp_singlethread":"st",
+ "intel_qs_cpp_multithread":"mt (42x2)",
+ #
+ "projectq":"projectq",
+ "projectq_singlethread":"singlethread",
+ "projectq_multithread":"multithread (42x2)",
+ #
+ "bare_metal":"bare_metal(numba)",
+ #
+ "qcgpu":"qcgpu",
+ "qcgpu_gpu":"qcgpu(gpu-rtx)",
+ #
+ "qrack_q_gpu":"pyqrack(qis-gpu-rtx)",
+ #
+ "qrack_gpu":"pyqrack(gpu-rtx)",
+ #
+ "qrack_sch":"qrack",
+ "qrack_opt":"qrack(opt)",
+ #
+ "hiq":"hiq",
+ #
+ "svsim":"sv_sim",
+ "svsim_gpu":"sv_sim(gpu-rtx)",
+ #
+ "toaster":"qubit toaster",
+ #
+ "hybridq":"hybridq",
+ "hybridq_gpu":"hybdridq(gpu-rtx)",
+ #
+ "ddsim":"ddsim",
+ #
+ "braket":"braket",
+ #
+ "myqlm_cpp":"myqlm(cpp)",
+ "myqlm_py":"myqlm(py)"
+ }
+
+storage_dict = label_dict.copy()
+storage_dict["pennylane"] = "pennylane"
+storage_dict["pennylane_l"] = "pennylane_l"
+storage_dict["quest"]="quest"
+storage_dict["quest_intel"]="quest"
+storage_dict["intel_qs"]="intel_qs"
+storage_dict["intel_qs_cpp"]="intel_qs_cpp"
+storage_dict["projectq"] = "projectq"
+storage_dict["bare_metal"] = "bare_metal"
+storage_dict["yao_gpu"] = "yao"
+storage_dict["qcgpu"] = "qcgpu"
+storage_dict["hiq"] = "hiq"
+storage_dict["svsim"] = "svsim"
+storage_dict["toaster"] = "toaster"
+storage_dict["hybridq_gpu"] = "hybridq"
+storage_dict["qrack"] = "qrack"
+storage_dict["qrack_q"] = "pyqrack_q"
+storage_dict["myqlm_cpp"] = "myqlm_cpp"
+storage_dict["myqlm_py"] = "myqlm_py"
+storage_dict["qrack_sch"] = "qrack_sch"
+storage_dict["qrack_opt"] = "qrack_opt"
+
+color_dict = {"qiskit":x_arr[0],
+ "cirq":x_arr[2],
+ "qsimcirq":x_arr[2],
+ "pennylane":x_arr[10],
+ "pennylane_l":x_arr[10],
+ "qibo":x_arr[4],
+ "qibojit":x_arr[4],
+ "yao":x_arr[5],
+ "quest":x_arr[6],
+ "quest_intel":x_arr[6],
+ "qulacs":x_arr[7],
+ "intel_qs":x_arr[8],
+ "intel_qs_cpp":x_arr[8],
+ "projectq":x_arr[9],
+ "bare_metal":x_arr[11],
+ "qiskit_gpu":x_arr[0],
+ "qiskit_nvidia":x_arr[0],
+ "qsimcirq_gpu":x_arr[2],
+ "qsimcirq_nvidia":x_arr[2],
+ "qibojit_gpu":x_arr[4],
+ "pennylane_gpu":x_arr[10],
+ "quest_gpu":x_arr[6],
+ "qulacs_gpu":x_arr[7],
+ "qcgpu":x_arr[3],
+ "yao_gpu":x_arr[5],
+ "qiskit_multithread":x_arr[0],
+ "qiskit_singlethread":x_arr[0],
+ "qsimcirq_singlethread":x_arr[2],
+ "qsimcirq_multithread":x_arr[2],
+ "quest_singlethread":x_arr[6],
+ "quest_multithread":x_arr[6],
+ "qulacs_singlethread":x_arr[7],
+ "qulacs_multithread":x_arr[7],
+ "intel_qs_cpp_singlethread":x_arr[8],
+ "intel_qs_cpp_multithread":x_arr[8],
+ "projectq_singlethread":x_arr[9],
+ "projectq_multithread":x_arr[9],
+ "qibojit_singlethread":x_arr[4],
+ "pennylane_singlethread":x_arr[10],
+ "pennylane_lightning_singlethread":x_arr[10],
+ "yao_singlethread":x_arr[5],
+ "yao_multithread":x_arr[5],
+ "qrack_sch":x_arr[13],
+ "qrack_opt":x_arr[14],
+ "qrack":x_arr[14],
+ "hiq":x_arr[16],
+ "svsim":x_arr[19],
+ "svsim_gpu":x_arr[19],
+ "toaster":x_arr[12],
+ "hybridq":x_arr[18],
+ "hybridq_gpu":x_arr[18],
+ "ddsim":x_arr[1],
+ "braket":x_arr[3],
+ "myqlm_cpp":x_arr[13],
+ "myqlm_py":x_arr[13]
+ }
+
+
+symbol_dict = {"qiskit":s_arr[0], "qiskit_gpu":s_arr[1], "qiskit_nvidia":s_arr[3], "qiskit_multithread":s_arr[2], "qiskit_singlethread":s_arr[0],
+ "cirq":s_arr[0], "qsimcirq":s_arr[1], "qsimcirq_gpu":s_arr[2], "qsimcirq_nvidia":s_arr[3], "qsimcirq_singlethread":s_arr[1],
+ "qsimcirq_multithread":s_arr[4],
+ "pennylane":s_arr[0], "pennylane_l":s_arr[1], "pennylane_gpu":s_arr[2], "pennylane_singlethread":s_arr[0], "pennylane_lightning_singlethread":s_arr[1],
+ "qibo":s_arr[0], "qibojit":s_arr[1], "qibojit_gpu":s_arr[2], "qibojit_singlethread":s_arr[1],
+ "yao":s_arr[0], "yao_gpu":s_arr[1], "yao_singlethread":s_arr[0], "yao_multithread":s_arr[2],
+ "quest":s_arr[0], "quest_intel":s_arr[1], "quest_gpu":s_arr[2], "quest_singlethread":s_arr[0], "quest_multithread":s_arr[4],
+ "qulacs":s_arr[0], "qulacs_gpu":s_arr[1], "qulacs_singlethread":s_arr[0], "qulacs_multithread":s_arr[2],
+ "intel_qs":s_arr[0], "intel_qs_cpp":s_arr[1], "intel_qs_cpp_singlethread":s_arr[1], "intel_qs_cpp_multithread":s_arr[2],
+ "projectq":s_arr[0], "projectq_intel":s_arr[1], "projectq_singlethread":s_arr[0], "projectq_multithread":s_arr[2],
+ "bare_metal":s_arr[1], #"bare_metal_numba":s_arr[0],
+ "qcgpu":s_arr[0],
+ "xacc_aer":s_arr[0],
+ "qrack_sch":s_arr[0],
+ "qrack_opt":s_arr[0],
+ "hiq":s_arr[0],
+ "svsim":s_arr[0], "svsim_gpu":s_arr[1],
+ "toaster":s_arr[0],
+ "hybridq":s_arr[0], "hybridq_gpu":s_arr[1],
+ "myqlm_cpp":s_arr[0], "myqlm_py":s_arr[1],
+ "ddsim":s_arr[0],
+ "braket":s_arr[0]
+}
+
+color_dict_old = {"qiskit":x_arr[0],
+ "cirq":x_arr[1],
+ "qsimcirq":x_arr[2],
+ "pennylane":x_arr[10],
+ "qibo":x_arr[4],
+ "yao":x_arr[5],
+ "quest":x_arr[6],
+ "qulacs":x_arr[7],
+ "intel_qs":x_arr[8],
+ "intel_qs_cpp":x_arr[8],
+ "projectq_gfon":x_arr[9],
+ "bare_metal":x_arr[10],
+ "bare_metal_numba":x_arr[11],
+ "qsimcirq_gpu":x_arr[12],
+ "qsimcirq_nvidia":x_arr[13],
+ "yao_gpu":x_arr[14],
+ "qiskit_gpu":x_arr[15],
+ "quest_intel":x_arr[16],
+ "projectq_gfon_intel":x_arr[17],
+ "pennylane_cp":x_arr[18],
+ "qibojit":x_arr[4],
+ "qibojit_gpu":x_arr[4],
+ "pennylane_gpu":x_arr[10],
+ "quest_gpu":x_arr[6],
+ "qulacs_gpu":x_arr[7],
+ "qcgpu_gpu":x_arr[3],
+ "xacc_aer":x_arr[12],
+}
+
+symbol_dict_old = {"qiskit":s_arr[0], "qiskit_gpu":s_arr[1],
+ "cirq":s_arr[0], "qsimcirq":s_arr[1], "qsimcirq_gpu":s_arr[2], "qsimcirq_nvidia":s_arr[3],
+ "pennylane":s_arr[0], "pennylane_cp":s_arr[1], "pennylane_gpu":s_arr[2],
+ "qibo":s_arr[0], "qibojit":s_arr[1], "qibojit_gpu":s_arr[2],
+ "yao":s_arr[0], "yao_gpu":s_arr[1],
+ "quest":s_arr[0], "quest_intel":s_arr[1], "quest_gpu":s_arr[2],
+ "qulacs":s_arr[0], "qulacs_gpu":s_arr[1],
+ "intel_qs":s_arr[0], "intel_qs_cpp":s_arr[1],
+ "projectq_gfon":s_arr[0], "projectq_gfon_intel":s_arr[1],
+ "bare_metal":s_arr[0], "bare_metal_numba":s_arr[1],
+ "qcgpu_gpu":s_arr[0],
+ "xacc_aer":s_arr[0]
+}
+"""
diff --git a/plot_scripts/map_packages_colors_all.py b/plot_scripts/map_packages_colors_all.py
new file mode 100644
index 0000000000000000000000000000000000000000..4e31182dd625fcc644c164d13c5ad6d42bba18f1
--- /dev/null
+++ b/plot_scripts/map_packages_colors_all.py
@@ -0,0 +1,84 @@
+import matplotlib.pyplot as plt
+import numpy as np
+from matplotlib import rc
+import matplotlib.ticker as ticker
+from matplotlib.ticker import MaxNLocator
+# from matplotlib import pyplot
+
+fig_width_pt = 246.0 # Get this from LaTeX using \showthe\columnwidth
+inches_per_pt = 1.0/72.27 # Convert pt to inch
+golden_mean = (np.sqrt(5)-1.0)/2.0 # Aesthetic ratio
+fig_width = fig_width_pt*inches_per_pt # width in inches
+fig_height = fig_width*golden_mean # height in inches
+# fig_size = [fig_width+1.25,fig_height+1.25]
+# rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})
+params = {'backend': 'ps',
+ 'axes.labelsize': 14,
+ 'axes.titlesize': 12,
+ 'font.size': 8,
+ 'legend.fontsize': 12,
+ 'xtick.labelsize': 14,
+ 'ytick.labelsize': 14,}
+# 'text.usetex': True}
+# 'figure.figsize': fig_size}
+# plt.rc('text.latex', preamble=r'\usepackage{braket}')
+plt.rcParams.update(params)
+
+cm = plt.get_cmap('tab20')
+n_colors = 20
+x_arr = [cm(1.*i/n_colors) for i in range(n_colors)]
+# s_arr = ["o", "*", "s", "^", "D", "v"]
+# s_arr = Line2D.filled_markers*100
+s_arr = ['o', 'v', '^', '<', '>', '8', 's', 'p', '*', 'h', 'H', 'D', 'd', 'P', 'X', '+', '2', '4']*70
+
+pkg_str = ['cirq', 'hybridq', 'intel_qs_cpp', 'pennylane_l', 'projectq', 'qcgpu', 'qibojit', 'qsimcirq', 'quest', 'svsim', 'yao', 'hiq', 'pennylane', 'qibo', 'qiskit', 'qrack_sch', 'qulacs', 'cuquantum_qiskit', 'cuquantum_qsimcirq']
+
+task = ['hdyn', 'rqc', 'qft']
+
+com_cap = ['singlethread', 'multithread', 'gpu']
+
+prec = ['sp', 'dp']
+
+storage_dict = {}
+for pkg in pkg_str:
+ storage_dict.update({pkg:pkg})
+
+label_dict = {}
+for pkg in pkg_str:
+ for t in task:
+ for cc in com_cap:
+ for p in prec:
+ label_dict.update({pkg+'_'+t+'_'+cc+'_'+p:pkg})
+
+label_dict.update({'cuquantum_qiskit_hdyn_gpu_sp':'cuquantum(qiskit)'})
+label_dict.update({'cuquantum_qiskit_hdyn_gpu_dp':'cuquantum(qiskit)'})
+label_dict.update({'cuquantum_qiskit_rqc_gpu_sp':'cuquantum(qiskit)'})
+label_dict.update({'cuquantum_qiskit_rqc_gpu_dp':'cuquantum(qiskit)'})
+label_dict.update({'cuquantum_qiskit_qft_gpu_sp':'cuquantum(qiskit)'})
+label_dict.update({'cuquantum_qiskit_qft_gpu_dp':'cuquantum(qiskit)'})
+
+label_dict.update({'cuquantum_qsimcirq_hdyn_gpu_sp':'cuquantum(qsimcirq)'})
+label_dict.update({'cuquantum_qsimcirq_rqc_gpu_sp':'cuquantum(qsimcirq)'})
+label_dict.update({'cuquantum_qsimcirq_qft_gpu_sp':'cuquantum(qsimcirq)'})
+label_dict.update({'gate_count':'ngates ratio'})
+
+color_dict = {}
+n_c = 0
+for pkg in pkg_str:
+ for t in task:
+ for cc in com_cap:
+ for p in prec:
+ color_dict.update({pkg+'_'+t+'_'+cc+'_'+p:x_arr[n_c]})
+ n_c = n_c + 1
+
+color_dict.update({'gate_count':'black'})
+
+symbol_dict = {}
+n_s = 0
+for pkg in pkg_str:
+ for t in task:
+ for cc in com_cap:
+ for p in prec:
+ symbol_dict.update({pkg+'_'+t+'_'+cc+'_'+p:s_arr[n_s]})
+ n_s = n_s + 1
+symbol_dict.update({'gate_count':'3'})
diff --git a/plot_scripts/map_packages_colors_mgpu.py b/plot_scripts/map_packages_colors_mgpu.py
new file mode 100644
index 0000000000000000000000000000000000000000..44cc552e6c5c1f5571d8c619892dd304f945ff01
--- /dev/null
+++ b/plot_scripts/map_packages_colors_mgpu.py
@@ -0,0 +1,116 @@
+import matplotlib.pyplot as plt
+import numpy as np
+from matplotlib import rc
+import matplotlib.ticker as ticker
+from matplotlib.ticker import MaxNLocator
+# from matplotlib import pyplot
+
+fig_width_pt = 246.0 # Get this from LaTeX using \showthe\columnwidth
+inches_per_pt = 1.0/72.27 # Convert pt to inch
+golden_mean = (np.sqrt(5)-1.0)/2.0 # Aesthetic ratio
+fig_width = fig_width_pt*inches_per_pt # width in inches
+fig_height = fig_width*golden_mean # height in inches
+# fig_size = [fig_width+1.25,fig_height+1.25]
+# rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})
+params = {'backend': 'ps',
+ 'axes.labelsize': 14,
+ 'axes.titlesize': 12,
+ 'font.size': 8,
+ 'legend.fontsize': 12,
+ 'xtick.labelsize': 14,
+ 'ytick.labelsize': 14,}
+# 'text.usetex': True}
+# 'figure.figsize': fig_size}
+# plt.rc('text.latex', preamble=r'\usepackage{braket}')
+plt.rcParams.update(params)
+
+cm = plt.get_cmap('tab20')
+n_colors = 20
+x_arr = [cm(1.*i/n_colors) for i in range(n_colors)]
+# s_arr = ["o", "*", "s", "^", "D", "v"]
+# s_arr = Line2D.filled_markers*100
+s_arr = ['o', 'v', '^', '<', '>', '8', 's', 'p', '*', 'h', 'H', 'D', 'd', 'P', 'X', '+', '2', '4']*70
+
+pkg_str = ['cirq', 'hybridq', 'intel_qs_cpp', 'pennylane_l', 'projectq', 'qcgpu', 'qibojit', 'qsimcirq', 'quest', 'svsim', 'yao', 'hiq', 'pennylane', 'qibo', 'qiskit', 'qrack_sch', 'qulacs', 'cuquantum_qiskit', 'cuquantum_qsimcirq']
+
+task = ['hdyn', 'rqc', 'qft']
+
+com_cap = ['singlethread', 'multithread', 'gpu']
+
+prec = ['sp', 'dp']
+
+storage_dict = {}
+for pkg in pkg_str:
+ storage_dict.update({pkg:pkg})
+
+label_dict = {}
+for pkg in pkg_str:
+ for t in task:
+ for cc in com_cap:
+ for p in prec:
+ label_dict.update({pkg+'_'+t+'_'+cc+'_'+p:pkg})
+
+
+for t in task:
+ for p in prec:
+ for ngpu in [1, 2, 4, 8]:
+ label_dict.update({'cuquantum_qiskit_{}_gpu_{}_{}'.format(t, ngpu, p):'[{}]cuquantum(qiskit)'.format(ngpu)})
+
+for t in task:
+ for p in prec:
+ for ngpu in [1, 2, 4, 8]:
+ label_dict.update({'cuquantum_qsimcirq_{}_gpu_{}_{}'.format(t, ngpu, p):'[{}]cuquantum(qsimcirq)'.format(ngpu)})
+
+for t in task:
+ for p in prec:
+ for ngpu in [1, 2, 4, 8]:
+ label_dict.update({'qibojit_{}_gpu_{}_{}'.format(t, ngpu, p):'[{}]qibojit'.format(ngpu)})
+
+color_dict = {}
+n_c = 0
+for pkg in pkg_str:
+ for t in task:
+ for cc in com_cap:
+ for p in prec:
+ color_dict.update({pkg+'_'+t+'_'+cc+'_'+p:x_arr[n_c]})
+ n_c = n_c + 1
+
+for t in task:
+ for p in prec:
+ for ngpu in [1, 2, 4, 8]:
+ color_dict.update({'cuquantum_qiskit_{}_gpu_{}_{}'.format(t, ngpu, p):color_dict['cuquantum_qiskit_{}_gpu_{}'.format(t, p)]})
+
+for t in task:
+ for p in prec:
+ for ngpu in [1, 2, 4, 8]:
+ color_dict.update({'cuquantum_qsimcirq_{}_gpu_{}_{}'.format(t, ngpu, p):color_dict['cuquantum_qsimcirq_{}_gpu_{}'.format(t, p)]})
+
+for t in task:
+ for p in prec:
+ for ngpu in [1, 2, 4, 8]:
+ color_dict.update({'qibojit_{}_gpu_{}_{}'.format(t, ngpu, p):color_dict['qibojit_{}_gpu_{}'.format(t, p)]})
+
+symbol_dict = {}
+n_s = 0
+for pkg in pkg_str:
+ for t in task:
+ for cc in com_cap:
+ for p in prec:
+ symbol_dict.update({pkg+'_'+t+'_'+cc+'_'+p:s_arr[n_s]})
+ n_s = n_s + 1
+
+m_arr = ['v', '^', '<', '>']
+for t in task:
+ for p in prec:
+ for ind, ngpu in enumerate([1, 2, 4, 8]):
+ symbol_dict.update({'cuquantum_qiskit_{}_gpu_{}_{}'.format(t, ngpu, p):m_arr[ind]})
+
+for t in task:
+ for p in prec:
+ for ind, ngpu in enumerate([1, 2, 4, 8]):
+ symbol_dict.update({'cuquantum_qsimcirq_{}_gpu_{}_{}'.format(t, ngpu, p):m_arr[ind]})
+
+for t in task:
+ for p in prec:
+ for ind, ngpu in enumerate([1, 2, 4, 8]):
+ symbol_dict.update({'qibojit_{}_gpu_{}_{}'.format(t, ngpu, p):m_arr[ind]})
diff --git a/plot_scripts/plot_display_1v1.py b/plot_scripts/plot_display_1v1.py
new file mode 100644
index 0000000000000000000000000000000000000000..f035abe2ee3714e66c709dab8627ac0eb24aa666
--- /dev/null
+++ b/plot_scripts/plot_display_1v1.py
@@ -0,0 +1,212 @@
+import numpy as np
+import h5py
+import os
+
+import sys
+sys.path.append('/plot_scripts/')
+from map_packages_colors_1v1 import *
+from plot_scripts_1v1 import *
+
+# print(" Tasks to choose from : ")
+# print(" Heisenberg dynamics (hdyn), Random Quantum Circuits (rqc), Quantum Fourier Transform (qft)")
+# print("###############################")
+# print(" Package list to choose from :")
+# print(" cirq, hybridq, intel_qs_cpp, pennylane_l, projectq, qcgpu, qibojit, qrack_sch, qsimcirq, quest, svsim, yao, hiq, pennylane, qibo, qiskit, qulacs")
+# print("###############################")
+# print(" Compute capability choices for packages :")
+# print(" singlethread, multithread, gpu")
+# print("###############################")
+# print(" Precision choices for different compute capabilities :")
+# print(" sp (single precision), dp (double precision)")
+# print("###############################")
+
+# task_1 = input(" Enter the task for the first package : ")
+# package_1 = input(" Enter the choice of the package, package 1 : ")
+# p1_com_cap = input(" Enter the choice of the compute capability for package 1 : ")
+# p1_prec = input(" Enter the choice of the precision for package 1 : ")
+
+# task_2 = input("Enter the task for the second package : ")
+# package_2 = input(" Enter the choice of the package, package 2 : ")
+# p2_com_cap = input(" Enter the choice of the compute capability for package 2 : ")
+# p2_prec = input(" Enter the choice of the precision for package 2 : ")
+
+def abs_time(t1, p1, p1_cc, p1_pr, t2, p2, p2_cc, p2_pr, N_end):
+
+ if t1 == "Heisenberg dynamics":
+ t1 = "hdyn"
+ elif t1 == "Random Quantum Circuit":
+ t1 = "rqc"
+ elif t1 == "Quantum Fourier Transform":
+ t1 = "qft"
+
+ if p1_cc == "Singlethread":
+ p1_cc = "singlethread"
+ elif p1_cc == "Multithread":
+ p1_cc = "multithread"
+ elif p1_cc == "GPU":
+ p1_cc = "gpu"
+
+ if p1_pr == "Single":
+ p1_pr = "sp"
+ elif p1_pr == "Double":
+ p1_pr = "dp"
+
+ if t2 == "Heisenberg dynamics":
+ t2 = "hdyn"
+ elif t2 == "Random Quantum Circuit":
+ t2 = "rqc"
+ elif t2 == "Quantum Fourier Transform":
+ t2 = "qft"
+
+ if p2_cc == "Singlethread":
+ p2_cc = "singlethread"
+ elif p2_cc == "Multithread":
+ p2_cc = "multithread"
+ elif p2_cc == "GPU":
+ p2_cc = "gpu"
+
+ if p2_pr == "Single":
+ p2_pr = "sp"
+ elif p2_pr == "Double":
+ p2_pr = "dp"
+
+ if t1 == 'hdyn' or t1 == 'qft':
+ N_arr_t1 = np.arange(6, N_end, 2)
+ elif t1 == 'rqc':
+ N_arr_t1 = np.arange(12, N_end, 2)
+
+ if t2 == 'hdyn' or t2 == 'qft':
+ N_arr_t2 = np.arange(6, N_end, 2)
+ elif t2 == 'rqc':
+ N_arr_t2 = np.arange(12, N_end, 2)
+
+ dir = os.getcwd()
+ data_file_p1 = dir + '/data/{}/{}_{}_{}.h5'.format(t1, p1, p1_cc, p1_pr)
+ data_file_p2 = dir + '/data/{}/{}_{}_{}.h5'.format(t2, p2, p2_cc, p2_pr)
+
+ fig, ax = plt.subplots()
+
+ if os.path.isfile(data_file_p1) and os.path.isfile(data_file_p2):
+ h5f_1 = h5py.File(data_file_p1, 'r')
+ dat_1 = h5f_1[storage_dict[p1]][:]
+ h5f_1.close()
+
+ h5f_2 = h5py.File(data_file_p2, 'r')
+ dat_2 = h5f_2[storage_dict[p2]][:]
+ h5f_2.close()
+
+ plot_abs_data_n_arr(N_arr_t1, dat_1, p1+'_'+t1+'_'+p1_cc+'_'+p1_pr)
+ plot_abs_data_n_arr(N_arr_t2, dat_2, p2+'_'+t2+'_'+p2_cc+'_'+p2_pr)
+ # save_flag = input("Do you want to save the plot?")
+ # if save_flag == "Y":
+ # gen_settings(fig, ax, r"N (system size)", r"Time ($t_{package}$)", False, True, True, 10**-1, 10**5, "out", "perf_{}_{}_{}_{}_{}_{}_{}_{}.pdf".format(t1, p1, p1_cc, p1_pr, t2, p2, p2_cc, p2_pr))
+ # else:
+ gen_settings(fig, ax, r"N (system size)", r"Time ($t_{package}$)", False, True, True, 10**-1, 10**5, "out", None)
+ else:
+ print(" Re-select the options as the requested option data is not available.")
+
+# abs_time(task_1, package_1, p1_com_cap, p1_prec, task_2, package_2, p2_com_cap, p2_prec)
+
+def relative_time_wrt_pack(t1, p1, p1_cc, p1_pr, t2, p2, p2_cc, p2_pr, N_end):
+
+ print("-----------------------------------------------------")
+ print("Relative time")
+
+ if t1 == "Heisenberg dynamics":
+ t1 = "hdyn"
+ elif t1 == "Random Quantum Circuit":
+ t1 = "rqc"
+ elif t1 == "Quantum Fourier Transform":
+ t1 = "qft"
+
+ if p1_cc == "Singlethread":
+ p1_cc = "singlethread"
+ elif p1_cc == "Multithread":
+ p1_cc = "multithread"
+ elif p1_cc == "GPU":
+ p1_cc = "gpu"
+
+ if p1_pr == "Single":
+ p1_pr = "sp"
+ elif p1_pr == "Double":
+ p1_pr = "dp"
+
+ if t2 == "Heisenberg dynamics":
+ t2 = "hdyn"
+ elif t2 == "Random Quantum Circuit":
+ t2 = "rqc"
+ elif t2 == "Quantum Fourier Transform":
+ t2 = "qft"
+
+ if p2_cc == "Singlethread":
+ p2_cc = "singlethread"
+ elif p2_cc == "Multithread":
+ p2_cc = "multithread"
+ elif p2_cc == "GPU":
+ p2_cc = "gpu"
+
+ if p2_pr == "Single":
+ p2_pr = "sp"
+ elif p2_pr == "Double":
+ p2_pr = "dp"
+
+ if t1 == 'hdyn' or t1 == 'qft':
+ N_arr_t1 = np.arange(6, N_end, 2)
+ elif t1 == 'rqc':
+ N_arr_t1 = np.arange(12, N_end, 2)
+
+ if t2 == 'hdyn' or t2 == 'qft':
+ N_arr_t2 = np.arange(6, N_end, 2)
+ elif t2 == 'rqc':
+ N_arr_t2 = np.arange(12, N_end, 2)
+
+ fig, ax = plt.subplots()
+
+ dir = os.getcwd()
+ data_file_p1 = dir + '/data/{}/{}_{}_{}.h5'.format(t1, p1, p1_cc, p1_pr)
+ data_file_p2 = dir + '/data/{}/{}_{}_{}.h5'.format(t2, p2, p2_cc, p2_pr)
+
+ if os.path.isfile(data_file_p1) and os.path.isfile(data_file_p2):
+
+ h5f_1 = h5py.File(data_file_p1, 'r')
+ dat_1 = h5f_1[storage_dict[p1]][:]
+ h5f_1.close()
+
+ h5f_2 = h5py.File(data_file_p2, 'r')
+ dat_2 = h5f_2[storage_dict[p2]][:]
+ h5f_2.close()
+
+ if np.sum(dat_1) > np.sum(dat_2):
+ if N_arr_t1[0] > N_arr_t2[0]:
+ dat_2 = dat_2[3:]
+ N_arr = N_arr_t1
+ elif N_arr_t1[0] < N_arr_t2[0]:
+ dat_1 = dat_1[3:]
+ N_arr = N_arr_t2
+ else:
+ N_arr = N_arr_t1
+ plot_comp_data_n_arr(N_arr, dat_1, dat_2, p1+'_'+t1+'_'+p1_cc+'_'+p1_pr)
+ plot_comp_data_n_arr(N_arr, dat_2, dat_2, p2+'_'+t2+'_'+p2_cc+'_'+p2_pr)
+ # save_flag = input("Do you want to save the plot?")
+ # if save_flag == "Y":
+ # gen_settings(fig, ax, r"N (system size)", r"Relative time - " + p2, False, True, True, 10**-1, 10**3, "out", "relative_perf_{}_{}_{}_{}_{}_{}_{}_{}.pdf".format(t1, p1, p1_cc, p1_pr, t2, p2, p2_cc, p2_pr))
+ # else:
+ gen_settings(fig, ax, r"N (system size)", r"Relative time", False, True, True, 10**-1, 10**3, "out", None)
+ else:
+ if N_arr_t1[0] > N_arr_t2[0]:
+ dat_2 = dat_2[3:]
+ N_arr = N_arr_t1
+ elif N_arr_t1[0] < N_arr_t2[0]:
+ dat_1 = dat_1[3:]
+ N_arr = N_arr_t2
+ else:
+ N_arr = N_arr_t1
+ plot_comp_data_n_arr(N_arr, dat_2, dat_1, p2+'_'+t2+'_'+p2_cc+'_'+p2_pr)
+ plot_comp_data_n_arr(N_arr, dat_1, dat_1, p1+'_'+t1+'_'+p1_cc+'_'+p1_pr)
+ # save_flag = input("Do you want to save the plot?")
+ # if save_flag == "Y":
+ # gen_settings(fig, ax, r"N (system size)", r"Relative time", False, True, True, 10**-1, 10**3, "out", "relative_perf_{}_{}_{}_{}_{}_{}_{}_{}.pdf".format(t1, p1, p1_cc, p1_pr, t2, p2, p2_cc, p2_pr))
+ # else:
+ gen_settings(fig, ax, r"N (system size)", r"Relative time", False, True, True, 10**-1, 10**3, "out", None)
+
+# relative_time_wrt_pack(task_1, package_1, p1_com_cap, p1_prec, task_2, package_2, p2_com_cap, p2_prec)
diff --git a/plot_scripts/plot_display_all.py b/plot_scripts/plot_display_all.py
new file mode 100644
index 0000000000000000000000000000000000000000..8b6add38cd78eab06477446879e1184b154111a8
--- /dev/null
+++ b/plot_scripts/plot_display_all.py
@@ -0,0 +1,104 @@
+import numpy as np
+import h5py
+import os
+
+import sys
+sys.path.append('/plot_scripts')
+from map_packages_colors_all import *
+from plot_scripts_all import *
+
+# print(" Tasks to choose from : ")
+# print(" Heisenberg dynamics (hdyn), Random Quantum Circuits (rqc), Quantum Fourier Transform (qft)")
+# print("###############################")
+# print(" Compute capability choices for packages :")
+# print(" singlethread, multithread, gpu")
+# print("###############################")
+# print(" Precision choices for different compute capabilities :")
+# print(" sp (single precision), dp (double precision)")
+# print("###############################")
+
+# task_1 = input(" Enter the task to compare : ")
+# package_1 = input(" Enter the choice of the package, package 1 : ")
+# p_com_cap = input(" Enter the choice of the compute capability : ")
+# p_prec = input(" Enter the choice of the precision : ")
+
+package_str = ['qiskit' , 'cirq', 'qsimcirq', 'pennylane', 'pennylane_l', 'qibo', 'qibojit', 'yao', 'quest', 'qulacs', 'intel_qs_cpp', 'projectq', 'svsim', 'hybridq', 'hiq', 'qcgpu', 'qrack_sch', 'cuquantum_qiskit', 'cuquantum_qsimcirq']
+
+def abs_time(t, cc, pr, compare_pack, N_end):
+
+ if t == "Heisenberg dynamics":
+ t = "hdyn"
+ elif t == "Random Quantum Circuit":
+ t = "rqc"
+ elif t == "Quantum Fourier Transform":
+ t = "qft"
+
+ if cc == "Singlethread":
+ cc = "singlethread"
+ elif cc == "Multithread":
+ cc = "multithread"
+ elif cc == "GPU":
+ cc = "gpu"
+
+ if pr == "Single":
+ pr = "sp"
+ elif pr == "Double":
+ pr = "dp"
+
+ fig, ax = plt.subplots()
+
+ dir = os.getcwd()
+
+ pack_list = []
+
+ for package in package_str:
+ data_file = dir + '/data/{}/{}_{}_{}.h5'.format(t, package, cc, pr)
+
+ if os.path.isfile(data_file):
+ h5f = h5py.File(data_file, 'r')
+ dat = h5f[storage_dict[package]][:]
+ h5f.close()
+ pack_list.append(package)
+
+ if t == 'hdyn' or t == 'qft':
+ N_arr = range(6, N_end, 2)
+ else:
+ N_arr = range(12, N_end, 2)
+ plot_abs_data_n_arr(N_arr, dat, package+'_'+t+'_'+cc+'_'+pr)
+
+ # save_flag = input("Do you want to save the plot?")
+ # if save_flag == "Y":
+ # gen_settings(fig, ax, r"N (system size)", r"Time ($t_{package}$)", False, True, True, 10**-1, 10**5, "out", "perf_{}_{}_{}_{}_{}_{}_{}_{}.pdf".format(t1, p1, p1_cc, p1_pr, t2, p2, p2_cc, p2_pr))
+ # else:
+ gen_settings(fig, ax, r"N (system size)", r"Time ($t_{package}$)", False, True, True, 10**-1, 10**5, "out", None)
+ # else:
+ # print(" Re-select the options as the requested option data is not available.")
+
+ if compare_pack not in pack_list:
+ print("Select one from the list: ", pack_list)
+
+ else:
+ print(" -------------------------------------------------------- ")
+ print(" Comparison to the selected package ")
+
+ fig, ax = plt.subplots()
+
+ p_main = dir + '/data/{}/{}_{}_{}.h5'.format(t, compare_pack, cc, pr)
+ h5f = h5py.File(p_main, 'r')
+ main_dat = h5f[storage_dict[compare_pack]][:]
+ h5f.close()
+
+ for package in package_str:
+ dat_file = dir + '/data/{}/{}_{}_{}.h5'.format(t, package, cc, pr)
+ if os.path.isfile(dat_file):
+ h5f = h5py.File(dat_file, 'r')
+ dat = h5f[storage_dict[package]][:]
+ h5f.close()
+ plot_comp_data_n_arr(N_arr, dat, main_dat, package+'_'+t+'_'+cc+'_'+pr)
+
+ gen_settings(fig, ax, r"N (system size)", r"Relative time", False, True, True, 10**-1, 10**3, "out", None)
+
+# pkg_str = ['qiskit' , 'cirq', 'qsimcirq', 'pennylane', 'pennylane_l', 'qibo', 'qibojit', 'yao', 'quest', 'qulacs', 'intel_qs_cpp', 'projectq', 'svsim', 'hybridq', 'hiq', 'qcgpu', 'qrack_sch']
+
+# abs_time(pkg_str, task_1, p_com_cap, p_prec)
+# abs_time("Heisenberg dynamics", "Singlethread", "Single", 'qsimcirq', 34)
diff --git a/plot_scripts/plot_display_com_pack.py b/plot_scripts/plot_display_com_pack.py
new file mode 100644
index 0000000000000000000000000000000000000000..7099da48f44b12e324543013a90ba4f4cfcc68fa
--- /dev/null
+++ b/plot_scripts/plot_display_com_pack.py
@@ -0,0 +1,133 @@
+import numpy as np
+import h5py
+import os
+
+import sys
+sys.path.append('/plot_scripts')
+from map_packages_colors_all import *
+from plot_scripts_all import *
+
+# print(" Tasks to choose from : ")
+# print(" Heisenberg dynamics (hdyn), Random Quantum Circuits (rqc), Quantum Fourier Transform (qft)")
+# print("###############################")
+# print(" Compute capability choices for packages :")
+# print(" singlethread, multithread, gpu")
+# print("###############################")
+# print(" Precision choices for different compute capabilities :")
+# print(" sp (single precision), dp (double precision)")
+# print("###############################")
+
+# task_1 = input(" Enter the task to compare : ")
+# package_1 = input(" Enter the choice of the package, package 1 : ")
+# p_com_cap = input(" Enter the choice of the compute capability : ")
+# p_prec = input(" Enter the choice of the precision : ")
+
+package_str = ['qiskit' , 'cirq', 'qsimcirq', 'pennylane', 'pennylane_l', 'qibo', 'qibojit', 'yao', 'quest', 'qulacs', 'intel_qs_cpp', 'projectq', 'svsim', 'hybridq', 'hiq', 'qcgpu', 'qrack_sch', 'cuquantum_qiskit', 'cuquantum_qsimcirq']
+
+# N = 36
+ngates_hdyn = [5544, 7722, 9900, 12078, 14256, 16434, 18612, 20790, 22968, 25146, 27324, 29502, 31680, 33858, 36036, 38214]
+ngates_rqc = [3300, 3850, 4400, 5158, 5760, 6362, 7120, 7670, 8220, 8978, 9580, 10182, 10940]
+ngates_qft = [186, 344, 550, 804, 1106, 1456, 1854, 2300, 2794, 3336, 3926, 4564, 5250, 5984, 6766, 7596]
+
+def abs_time_pack(t1, t2, cc, pr, N_end):
+
+ if t1 == "Heisenberg dynamics":
+ t1 = "hdyn"
+ ng1 = ngates_hdyn
+ elif t1 == "Random Quantum Circuit":
+ t1 = "rqc"
+ ng1 = ngates_rqc
+ elif t1 == "Quantum Fourier Transform":
+ t1 = "qft"
+ ng1 = ngates_qft
+
+ if t2 == "Heisenberg dynamics":
+ t2 = "hdyn"
+ ng2 = ngates_hdyn
+ elif t2 == "Random Quantum Circuit":
+ t2 = "rqc"
+ ng2 = ngates_rqc
+ elif t2 == "Quantum Fourier Transform":
+ t2 = "qft"
+ ng2 = ngates_qft
+
+ if cc == "Singlethread":
+ cc = "singlethread"
+ elif cc == "Multithread":
+ cc = "multithread"
+ elif cc == "GPU":
+ cc = "gpu"
+
+ if pr == "Single":
+ pr = "sp"
+ elif pr == "Double":
+ pr = "dp"
+
+ fig, ax = plt.subplots()
+
+ dir = os.getcwd()
+
+ if t1 == 'hdyn' or t1 == 'qft':
+ N_arr_t1 = np.arange(6, N_end, 2)
+ elif t1 == 'rqc':
+ N_arr_t1 = np.arange(12, N_end, 2)
+
+ if t2 == 'hdyn' or t2 == 'qft':
+ N_arr_t2 = np.arange(6, N_end, 2)
+ elif t2 == 'rqc':
+ N_arr_t2 = np.arange(12, N_end, 2)
+
+ # pack_list = []
+
+ for package in package_str:
+ dat_f1 = dir + '/data/{}/{}_{}_{}.h5'.format(t1, package, cc, pr)
+ dat_f2 = dir + '/data/{}/{}_{}_{}.h5'.format(t2, package, cc, pr)
+
+ if os.path.isfile(dat_f1) and os.path.isfile(dat_f2):
+ h5f1 = h5py.File(dat_f1, 'r')
+ dat1 = h5f1[storage_dict[package]][:]
+ h5f1.close()
+ # pack_list.append(package)
+
+ h5f2 = h5py.File(dat_f2, 'r')
+ dat2 = h5f2[storage_dict[package]][:]
+ h5f2.close()
+
+ if N_arr_t1[0] > N_arr_t2[0]:
+ dat2 = dat2[3:]
+ N_arr = N_arr_t1
+ elif N_arr_t1[0] < N_arr_t2[0]:
+ dat1 = dat1[3:]
+ N_arr = N_arr_t2
+ else:
+ N_arr = N_arr_t1
+ plot_comp_data_n_arr(N_arr, dat1, dat2, package+'_'+t1+'_'+cc+'_'+pr)
+
+
+ # save_flag = input("Do you want to save the plot?")
+ # if save_flag == "Y":
+ # gen_settings(fig, ax, r"N (system size)", r"Time ($t_{package}$)", False, True, True, 10**-1, 10**5, "out", "perf_{}_{}_{}_{}_{}_{}_{}_{}.pdf".format(t1, p1, p1_cc, p1_pr, t2, p2, p2_cc, p2_pr))
+ # else:
+ if N_arr_t1[0] > N_arr_t2[0]:
+ N_arr = N_arr_t1
+ ng2 = ng2[3:]
+ elif N_arr_t1[0] < N_arr_t2[0]:
+ N_arr = N_arr_t2
+ ng1 = ng1[3:]
+ else:
+ N_arr = N_arr_t1
+
+ print(" Number of gates of Task 1: ", ng1)
+ print(" Number of gates of Task 2: ", ng2)
+
+ plot_comp_data_n_arr(N_arr, ng1, ng2, 'gate_count')
+ gen_settings(fig, ax, r"N (system size)", r"Task I/Task II ($t_{T1}/t_{T2}$)", False, False, True, -3, 25, "out", None)
+ # else:
+ # print(" Re-select the options as the requested option data is not available.")
+
+# pkg_str = ['qiskit' , 'cirq', 'qsimcirq', 'pennylane', 'pennylane_l', 'qibo', 'qibojit', 'yao', 'quest', 'qulacs', 'intel_qs_cpp', 'projectq', 'svsim', 'hybridq', 'hiq', 'qcgpu', 'qrack_sch']
+
+# abs_time(pkg_str, task_1, p_com_cap, p_prec)
+# abs_time("Heisenberg dynamics", "Singlethread", "Single", 'qsimcirq')
+# abs_time_pack("Heisenberg dynamics", "Random Quantum Circuit", "Singlethread", "Single", 34)
+# abs_time_pack("Heisenberg dynamics", "Quantum Fourier Transform", "GPU", "Single", 38)
diff --git a/plot_scripts/plot_display_mgpu.py b/plot_scripts/plot_display_mgpu.py
new file mode 100644
index 0000000000000000000000000000000000000000..e0c6fe4deb3412703a3c25f916004460e35298c9
--- /dev/null
+++ b/plot_scripts/plot_display_mgpu.py
@@ -0,0 +1,129 @@
+import numpy as np
+import h5py
+import os
+
+import sys
+sys.path.append('/plot_scripts')
+from map_packages_colors_mgpu import *
+from plot_scripts_mgpu import *
+
+package_str = ['qiskit' , 'cirq', 'qsimcirq', 'pennylane', 'pennylane_l', 'qibo', 'qibojit', 'yao', 'quest', 'qulacs', 'intel_qs_cpp', 'projectq', 'svsim', 'hybridq', 'hiq', 'qcgpu', 'qrack_sch', 'cuquantum_qiskit', 'cuquantum_qsimcirq']
+
+def abs_time(t, pr, n_gpu, compare_pack, N_end):
+
+ if t == "Heisenberg dynamics":
+ t = "hdyn"
+ elif t == "Random Quantum Circuit":
+ t = "rqc"
+ elif t == "Quantum Fourier Transform":
+ t = "qft"
+
+ if pr == "Single":
+ pr = "sp"
+ elif pr == "Double":
+ pr = "dp"
+
+ fig, ax = plt.subplots()
+
+ dir = os.getcwd()
+
+ pack_list = []
+
+ for package in package_str:
+ data_file = dir + '/data/{}/{}_gpu_{}_{}.h5'.format(t, package, n_gpu, pr)
+
+ if os.path.isfile(data_file):
+ h5f = h5py.File(data_file, 'r')
+ dat = h5f[storage_dict[package]][:]
+ h5f.close()
+ pack_list.append(package)
+
+ if t == 'hdyn' or t == 'qft':
+ N_arr = range(6, N_end, 2)
+ else:
+ N_arr = range(12, N_end, 2)
+ plot_abs_data_n_arr(N_arr, dat, package+'_'+t+'_'+'gpu_'+str(n_gpu)+'_'+pr)
+
+ gen_settings(fig, ax, r"N (system size)", r"Time ($t_{package}$)", False, True, True, 10**-1, 10**4, "out", None)
+ # else:
+ # print(" Re-select the options as the requested option data is not available.")
+
+ p_main = dir + '/data/{}/{}_gpu_{}_{}.h5'.format(t, compare_pack, n_gpu, pr)
+ if not os.path.isfile(p_main):
+ return "Please select other package"
+ fig, ax = plt.subplots()
+ h5f = h5py.File(p_main, 'r')
+ main_dat = h5f[storage_dict[compare_pack]][:]
+ h5f.close()
+
+ for package in package_str:
+ dat_file = dir + '/data/{}/{}_gpu_{}_{}.h5'.format(t, package, n_gpu, pr)
+ if os.path.isfile(dat_file):
+ h5f = h5py.File(dat_file, 'r')
+ dat = h5f[storage_dict[package]][:]
+ h5f.close()
+ plot_comp_data_n_arr(N_arr, dat, main_dat, package+'_'+t+'_'+'gpu_'+str(n_gpu)+'_'+pr)
+
+ gen_settings(fig, ax, r"N (system size)", r"Relative time", False, False, True, -1, 10, "out", None)
+
+# abs_time("Heisenberg dynamics", "Single", 1, "cuquantum_qsimcirq", 36)
+
+def abs_time_ngpus(t, pr, pack, compare_ngpu, N_end):
+
+ if t == "Heisenberg dynamics":
+ t = "hdyn"
+ elif t == "Random Quantum Circuit":
+ t = "rqc"
+ elif t == "Quantum Fourier Transform":
+ t = "qft"
+
+ if pr == "Single":
+ pr = "sp"
+ elif pr == "Double":
+ pr = "dp"
+
+ fig, ax = plt.subplots()
+
+ dir = os.getcwd()
+
+ if t == 'hdyn' or t == 'qft':
+ N_arr = range(6, N_end, 2)
+ else:
+ N_arr = range(12, N_end, 2)
+
+ for ngpu in [1, 2, 4, 8]:
+
+ data_file = dir + '/data/{}/{}_gpu_{}_{}.h5'.format(t, pack, ngpu, pr)
+ if not os.path.isfile(data_file):
+ return "Please select other package"
+
+ if os.path.isfile(data_file):
+ h5f = h5py.File(data_file, 'r')
+ dat = h5f[storage_dict[pack]][:]
+ h5f.close()
+
+ plot_abs_data_n_arr(N_arr, dat, pack+'_'+t+'_'+'gpu_'+str(ngpu)+'_'+pr)
+
+ gen_settings(fig, ax, r"N (system size)", r"Time ($t_{package}$)", False, True, True, 10**-1, 10**4, "out", None)
+ # else:
+ # print(" Re-select the options as the requested option data is not available.")
+
+
+ fig, ax = plt.subplots()
+
+ p_main = dir + '/data/{}/{}_gpu_{}_{}.h5'.format(t, pack, compare_ngpu, pr)
+ h5f = h5py.File(p_main, 'r')
+ main_dat = h5f[storage_dict[pack]][:]
+ h5f.close()
+
+ for n_gpu in [1, 2, 4, 8]:
+ dat_file = dir + '/data/{}/{}_gpu_{}_{}.h5'.format(t, pack, n_gpu, pr)
+ if os.path.isfile(dat_file):
+ h5f = h5py.File(dat_file, 'r')
+ dat = h5f[storage_dict[pack]][:]
+ h5f.close()
+ plot_comp_data_n_arr(N_arr, dat, main_dat, pack+'_'+t+'_'+'gpu_'+str(n_gpu)+'_'+pr)
+
+ gen_settings(fig, ax, r"N (system size)", r"Relative time", False, False, True, -1, 10, "out", None)
+
+# abs_time_ngpus("Heisenberg dynamics", "Single", "cuquantum_qsimcirq", 8, 36)
diff --git a/plot_scripts/plot_scripts_1v1.py b/plot_scripts/plot_scripts_1v1.py
new file mode 100644
index 0000000000000000000000000000000000000000..b12394068e91cbdf5a8279bf33d3615ecf1b6bb8
--- /dev/null
+++ b/plot_scripts/plot_scripts_1v1.py
@@ -0,0 +1,69 @@
+# pack_str_list = []
+# import matplotlib.pyplot as plt
+# import matplotlib.ticker as ticker
+from map_packages_colors_1v1 import *
+
+def plot_abs_data_n_arr(n_arr, data, pack_str):
+ if len(n_arr) > len(data):
+ plt.plot(n_arr[0:len(data)], data, linestyle='-', marker=symbol_dict[pack_str], label=label_dict[pack_str], color=color_dict[pack_str], markersize=5)
+ elif len(n_arr) < len(data):
+ plt.plot(n_arr, data[0:len(n_arr)], linestyle='-', marker=symbol_dict[pack_str], label=label_dict[pack_str], color=color_dict[pack_str], markersize=5)
+ else:
+ plt.plot(n_arr, data, linestyle='-', marker=symbol_dict[pack_str], label=label_dict[pack_str], color=color_dict[pack_str], markersize=5)
+
+def plot_comp_data_n_arr(n_arr, data_1, data_2, pack_str):
+ ratio_arr = []
+ if len(data_1) == len(data_2):
+ for i, elem in enumerate(data_1):
+ ratio_arr.append(elem/float(data_2[i]))
+ # plt.plot(n_arr[0:len(data_1)], ratio_arr, linestyle='-', marker=symbol_dict[pack_str], label=label_dict[pack_str], color=color_dict[pack_str], markersize=5)
+ elif len(data_1) > len(data_2):
+ for i, elem in enumerate(data_2):
+ ratio_arr.append(data_1[i]/float(elem))
+ # plt.plot(n_arr[0:len(data_2)], ratio_arr, linestyle='-', marker=symbol_dict[pack_str], label=label_dict[pack_str], color=color_dict[pack_str], markersize=5)
+ elif len(data_2) > len(data_1):
+ for i, elem in enumerate(data_1):
+ ratio_arr.append(elem/data_2[i])
+ # plt.plot(n_arr[0:len(data_1)], ratio_arr, linestyle='-', marker=symbol_dict[pack_str], label=label_dict[pack_str], color=color_dict[pack_str], markersize=5)
+ if len(n_arr) > len(ratio_arr):
+ plt.plot(n_arr[0:len(ratio_arr)], ratio_arr, linestyle='-', marker=symbol_dict[pack_str], label=label_dict[pack_str], color=color_dict[pack_str], markersize=5)
+ elif len(n_arr) < len(ratio_arr):
+ plt.plot(n_arr, ratio_arr[0:len(n_arr)], linestyle='-', marker=symbol_dict[pack_str], label=label_dict[pack_str], color=color_dict[pack_str], markersize=5)
+ else:
+ plt.plot(n_arr, ratio_arr, linestyle='-', marker=symbol_dict[pack_str], label=label_dict[pack_str], color=color_dict[pack_str], markersize=5)
+
+def gen_settings(fig, ax, xlabel_str, ylabel_str, log_x_on, log_y_on, ylim_on, ylim_low, ylim_upp, leg_loc, fn):
+
+ ax.tick_params(direction='in', which='both', bottom=True, top=True, left=True, right=True)
+ # ax.xaxis.set_major_locator(MaxNLocator(integer=True))
+ ax.xaxis.set_major_locator(ticker.AutoLocator())
+ ax.xaxis.set_minor_locator(ticker.AutoMinorLocator())
+ ax.yaxis.set_major_locator(ticker.AutoLocator())
+ ax.yaxis.set_minor_locator(ticker.AutoMinorLocator())
+
+ if log_x_on:
+ ax.set_xscale('log')
+ if log_y_on:
+ ax.set_yscale('log')
+ if ylim_on == True:
+ plt.ylim([ylim_low, ylim_upp])
+ # plt.xlabel(r"N (system size)")
+ # plt.ylabel(r"Time ($t_{package}$)")
+ plt.xlabel(xlabel_str)
+ plt.ylabel(ylabel_str)
+ if leg_loc== "out":
+ ax.legend(loc='center left', bbox_to_anchor=(1, 0.5), prop={'size': 8})
+
+ elif leg_loc == None:
+ ax.legend(loc=0)
+
+ plt.tight_layout()
+ fig.set_dpi(100)
+ if fn == None:
+ pass
+ else:
+ plt.savefig(fn)
+ plt.show()
+ # plt.savefig("perf_heisenberg_pure_evolution_single_thread_wallclock_absolute.pdf")
+ # plt.savefig("perf_heisenberg_pure_evolution_single_thread_wallclock_relative_line.svg", format="svg", dpi=1200)
+ # plt.show()
diff --git a/plot_scripts/plot_scripts_all.py b/plot_scripts/plot_scripts_all.py
new file mode 100644
index 0000000000000000000000000000000000000000..ae9eb5b5a3a40f752b0778233e20a4f427a3ebe9
--- /dev/null
+++ b/plot_scripts/plot_scripts_all.py
@@ -0,0 +1,70 @@
+# pack_str_list = []
+# import matplotlib.pyplot as plt
+# import matplotlib.ticker as ticker
+from map_packages_colors_all import *
+
+def plot_abs_data_n_arr(n_arr, data, pack_str):
+ if len(n_arr) > len(data):
+ plt.plot(n_arr[0:len(data)], data, linestyle='-', marker=symbol_dict[pack_str], label=label_dict[pack_str], color=color_dict[pack_str], markersize=5)
+ elif len(n_arr) < len(data):
+ plt.plot(n_arr, data[0:len(n_arr)], linestyle='-', marker=symbol_dict[pack_str], label=label_dict[pack_str], color=color_dict[pack_str], markersize=5)
+ else:
+ plt.plot(n_arr, data, linestyle='-', marker=symbol_dict[pack_str], label=label_dict[pack_str], color=color_dict[pack_str], markersize=5)
+
+def plot_comp_data_n_arr(n_arr, data_1, data_2, pack_str):
+ ratio_arr = []
+ if len(data_1) == len(data_2):
+ for i, elem in enumerate(data_1):
+ ratio_arr.append(elem/float(data_2[i]))
+ elif len(data_1) > len(data_2):
+ for i, elem in enumerate(data_2):
+ ratio_arr.append(data_1[i]/float(elem))
+ # plt.plot(n_arr[0:len(data_2)], ratio_arr, linestyle='-', marker=symbol_dict[pack_str], label=label_dict[pack_str], color=color_dict[pack_str], markersize=5)
+ elif len(data_2) > len(data_1):
+ for i, elem in enumerate(data_1):
+ ratio_arr.append(elem/data_2[i])
+ # plt.plot(n_arr[0:len(data_1)], ratio_arr, linestyle='-', marker=symbol_dict[pack_str], label=label_dict[pack_str], color=color_dict[pack_str], markersize=5)
+ # print(ratio_arr)
+ if len(n_arr) > len(ratio_arr):
+ plt.plot(n_arr[0:len(ratio_arr)], ratio_arr, linestyle='-', marker=symbol_dict[pack_str], label=label_dict[pack_str], color=color_dict[pack_str], markersize=5)
+ elif len(n_arr) < len(ratio_arr):
+ plt.plot(n_arr, ratio_arr[0:len(n_arr)], linestyle='-', marker=symbol_dict[pack_str], label=label_dict[pack_str], color=color_dict[pack_str], markersize=5)
+ else:
+ plt.plot(n_arr, ratio_arr, linestyle='-', marker=symbol_dict[pack_str], label=label_dict[pack_str], color=color_dict[pack_str], markersize=5)
+
+
+def gen_settings(fig, ax, xlabel_str, ylabel_str, log_x_on, log_y_on, ylim_on, ylim_low, ylim_upp, leg_loc, fn):
+
+ ax.tick_params(direction='in', which='both', bottom=True, top=True, left=True, right=True)
+ # ax.xaxis.set_major_locator(MaxNLocator(integer=True))
+ ax.xaxis.set_major_locator(ticker.AutoLocator())
+ ax.xaxis.set_minor_locator(ticker.AutoMinorLocator())
+ ax.yaxis.set_major_locator(ticker.AutoLocator())
+ ax.yaxis.set_minor_locator(ticker.AutoMinorLocator())
+
+ if log_x_on:
+ ax.set_xscale('log')
+ if log_y_on:
+ ax.set_yscale('log')
+ if ylim_on == True:
+ plt.ylim([ylim_low, ylim_upp])
+ # plt.xlabel(r"N (system size)")
+ # plt.ylabel(r"Time ($t_{package}$)")
+ plt.xlabel(xlabel_str)
+ plt.ylabel(ylabel_str)
+ if leg_loc== "out":
+ ax.legend(loc='center left', bbox_to_anchor=(1, 0.5), prop={'size': 8})
+
+ elif leg_loc == None:
+ ax.legend(loc=0)
+
+ plt.tight_layout()
+ fig.set_dpi(100)
+ if fn == None:
+ pass
+ else:
+ plt.savefig(fn)
+ plt.show()
+ # plt.savefig("perf_heisenberg_pure_evolution_single_thread_wallclock_absolute.pdf")
+ # plt.savefig("perf_heisenberg_pure_evolution_single_thread_wallclock_relative_line.svg", format="svg", dpi=1200)
+ # plt.show()
diff --git a/plot_scripts/plot_scripts_mgpu.py b/plot_scripts/plot_scripts_mgpu.py
new file mode 100644
index 0000000000000000000000000000000000000000..22a91c4870927322fe927cc3c7008c9e3c5ddad9
--- /dev/null
+++ b/plot_scripts/plot_scripts_mgpu.py
@@ -0,0 +1,70 @@
+# pack_str_list = []
+# import matplotlib.pyplot as plt
+# import matplotlib.ticker as ticker
+from map_packages_colors_mgpu import *
+
+def plot_abs_data_n_arr(n_arr, data, pack_str):
+ if len(n_arr) > len(data):
+ plt.plot(n_arr[0:len(data)], data, linestyle='-', marker=symbol_dict[pack_str], label=label_dict[pack_str], color=color_dict[pack_str], markersize=5)
+ elif len(n_arr) < len(data):
+ plt.plot(n_arr, data[0:len(n_arr)], linestyle='-', marker=symbol_dict[pack_str], label=label_dict[pack_str], color=color_dict[pack_str], markersize=5)
+ else:
+ plt.plot(n_arr, data, linestyle='-', marker=symbol_dict[pack_str], label=label_dict[pack_str], color=color_dict[pack_str], markersize=5)
+
+def plot_comp_data_n_arr(n_arr, data_1, data_2, pack_str):
+ ratio_arr = []
+ if len(data_1) == len(data_2):
+ for i, elem in enumerate(data_1):
+ ratio_arr.append(elem/float(data_2[i]))
+ elif len(data_1) > len(data_2):
+ for i, elem in enumerate(data_2):
+ ratio_arr.append(data_1[i]/float(elem))
+ # plt.plot(n_arr[0:len(data_2)], ratio_arr, linestyle='-', marker=symbol_dict[pack_str], label=label_dict[pack_str], color=color_dict[pack_str], markersize=5)
+ elif len(data_2) > len(data_1):
+ for i, elem in enumerate(data_1):
+ ratio_arr.append(elem/data_2[i])
+ # plt.plot(n_arr[0:len(data_1)], ratio_arr, linestyle='-', marker=symbol_dict[pack_str], label=label_dict[pack_str], color=color_dict[pack_str], markersize=5)
+ # print(ratio_arr)
+ if len(n_arr) > len(ratio_arr):
+ plt.plot(n_arr[0:len(ratio_arr)], ratio_arr, linestyle='-', marker=symbol_dict[pack_str], label=label_dict[pack_str], color=color_dict[pack_str], markersize=5)
+ elif len(n_arr) < len(ratio_arr):
+ plt.plot(n_arr, ratio_arr[0:len(n_arr)], linestyle='-', marker=symbol_dict[pack_str], label=label_dict[pack_str], color=color_dict[pack_str], markersize=5)
+ else:
+ plt.plot(n_arr, ratio_arr, linestyle='-', marker=symbol_dict[pack_str], label=label_dict[pack_str], color=color_dict[pack_str], markersize=5)
+
+
+def gen_settings(fig, ax, xlabel_str, ylabel_str, log_x_on, log_y_on, ylim_on, ylim_low, ylim_upp, leg_loc, fn):
+
+ ax.tick_params(direction='in', which='both', bottom=True, top=True, left=True, right=True)
+ # ax.xaxis.set_major_locator(MaxNLocator(integer=True))
+ ax.xaxis.set_major_locator(ticker.AutoLocator())
+ ax.xaxis.set_minor_locator(ticker.AutoMinorLocator())
+ ax.yaxis.set_major_locator(ticker.AutoLocator())
+ ax.yaxis.set_minor_locator(ticker.AutoMinorLocator())
+
+ if log_x_on:
+ ax.set_xscale('log')
+ if log_y_on:
+ ax.set_yscale('log')
+ if ylim_on == True:
+ plt.ylim([ylim_low, ylim_upp])
+ # plt.xlabel(r"N (system size)")
+ # plt.ylabel(r"Time ($t_{package}$)")
+ plt.xlabel(xlabel_str)
+ plt.ylabel(ylabel_str)
+ if leg_loc== "out":
+ ax.legend(loc='center left', bbox_to_anchor=(1, 0.5), prop={'size': 8})
+
+ elif leg_loc == None:
+ ax.legend(loc=0)
+
+ plt.tight_layout()
+ fig.set_dpi(100)
+ if fn == None:
+ pass
+ else:
+ plt.savefig(fn)
+ plt.show()
+ # plt.savefig("perf_heisenberg_pure_evolution_single_thread_wallclock_absolute.pdf")
+ # plt.savefig("perf_heisenberg_pure_evolution_single_thread_wallclock_relative_line.svg", format="svg", dpi=1200)
+ # plt.show()
diff --git a/plots_display_all.ipynb b/plots_display_all.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..4f51210e03c0f075dbc360de1f0e604022fadddd
--- /dev/null
+++ b/plots_display_all.ipynb
@@ -0,0 +1,419 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "4f22a659",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "application/mercury+json": "{\n \"widget\": \"App\",\n \"title\": \"Performance Benchmarks\",\n \"description\": \"Collated Performance Benchmarks\",\n \"show_code\": false,\n \"show_prompt\": false,\n \"output\": \"app\",\n \"schedule\": \"\",\n \"notify\": \"{}\",\n \"continuous_update\": true,\n \"static_notebook\": false,\n \"show_sidebar\": true,\n \"full_screen\": true,\n \"allow_download\": true,\n \"model_id\": \"mercury-app\",\n \"code_uid\": \"App.0.40.24.2-randed1d045e\"\n}",
+ "text/html": [
+ "
Mercury Application
This output won't appear in the web app."
+ ],
+ "text/plain": [
+ "mercury.App"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import mercury as mr\n",
+ "app = mr.App(title=\"Performance Benchmarks\", description=\"Collated Performance Benchmarks\", show_code=False)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "5f385b19",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "application/mercury+json": "{\n \"widget\": \"Checkbox\",\n \"value\": false,\n \"label\": \"Compare all\",\n \"model_id\": \"dc98d5e0c6004012af934a82c5365443\",\n \"code_uid\": \"Checkbox.0.40.11.1-rande2c1f6d1\",\n \"url_key\": \"\",\n \"disabled\": false,\n \"hidden\": false\n}",
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "dc98d5e0c6004012af934a82c5365443",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "mercury.Checkbox"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/mercury+json": "{\n \"widget\": \"Checkbox\",\n \"value\": false,\n \"label\": \"Compare 1 vs 1\",\n \"model_id\": \"da25650c451a4892adfba1a0b84c2d69\",\n \"code_uid\": \"Checkbox.0.40.11.2-rand354638c6\",\n \"url_key\": \"\",\n \"disabled\": false,\n \"hidden\": false\n}",
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "da25650c451a4892adfba1a0b84c2d69",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "mercury.Checkbox"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/mercury+json": "{\n \"widget\": \"Checkbox\",\n \"value\": false,\n \"label\": \"Compare between tasks\",\n \"model_id\": \"c4f5a49c203a40debcda4168dfafa204\",\n \"code_uid\": \"Checkbox.0.40.11.3-rand3fb93d33\",\n \"url_key\": \"\",\n \"disabled\": false,\n \"hidden\": false\n}",
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "c4f5a49c203a40debcda4168dfafa204",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "mercury.Checkbox"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/mercury+json": "{\n \"widget\": \"Checkbox\",\n \"value\": false,\n \"label\": \"Multi-GPU\",\n \"model_id\": \"86dfb969267d41d1b60157e463d10d14\",\n \"code_uid\": \"Checkbox.0.40.11.4-rand32e51fec\",\n \"url_key\": \"\",\n \"disabled\": false,\n \"hidden\": false\n}",
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "86dfb969267d41d1b60157e463d10d14",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "mercury.Checkbox"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "all_flag = mr.Checkbox(value=False, label=\"Compare all\")\n",
+ "ovo_flag = mr.Checkbox(value=False, label=\"Compare 1 vs 1\")\n",
+ "com_task_flag = mr.Checkbox(value=False, label=\"Compare between tasks\")\n",
+ "mgpu_flag = mr.Checkbox(value=False, label=\"Multi-GPU\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "2ce780ab",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "application/mercury+json": "{\n \"widget\": \"Select\",\n \"value\": \"Heisenberg dynamics\",\n \"choices\": [\n \"Heisenberg dynamics\",\n \"Random Quantum Circuit\",\n \"Quantum Fourier Transform\"\n ],\n \"label\": \"Select Task: \",\n \"model_id\": \"9b89bea5e12145f6a33ea33b1df7bfab\",\n \"code_uid\": \"Select.0.40.16.16-rand4b64add4\",\n \"url_key\": \"\",\n \"disabled\": false,\n \"hidden\": false\n}",
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "9b89bea5e12145f6a33ea33b1df7bfab",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "mercury.Select"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/mercury+json": "{\n \"widget\": \"Select\",\n \"value\": \"Singlethread\",\n \"choices\": [\n \"Singlethread\",\n \"Multithread\",\n \"GPU\"\n ],\n \"label\": \"Select Compute Capability: \",\n \"model_id\": \"0bdd2bc7a9d340ada494d5fa8c9eb01e\",\n \"code_uid\": \"Select.0.40.16.18-rande6f4499d\",\n \"url_key\": \"\",\n \"disabled\": false,\n \"hidden\": false\n}",
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "0bdd2bc7a9d340ada494d5fa8c9eb01e",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "mercury.Select"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/mercury+json": "{\n \"widget\": \"Select\",\n \"value\": \"Single\",\n \"choices\": [\n \"Single\",\n \"Double\"\n ],\n \"label\": \"Select Precision : \",\n \"model_id\": \"96deee2ddd3147d281453cfd2f082733\",\n \"code_uid\": \"Select.0.40.16.20-rand0f73ef84\",\n \"url_key\": \"\",\n \"disabled\": false,\n \"hidden\": false\n}",
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "96deee2ddd3147d281453cfd2f082733",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "mercury.Select"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/mercury+json": "{\n \"widget\": \"Select\",\n \"value\": \"qsimcirq\",\n \"choices\": [\n \"qiskit\",\n \"cirq\",\n \"qsimcirq\",\n \"pennylane\",\n \"pennylane_l\",\n \"qibo\",\n \"qibojit\",\n \"yao\",\n \"quest\",\n \"qulacs\",\n \"intel_qs_cpp\",\n \"projectq\",\n \"svsim\",\n \"hybridq\",\n \"hiq\",\n \"qcgpu\",\n \"qrack_sch\",\n \"cuquantum_qiskit\",\n \"cuquantum_qsimcirq\"\n ],\n \"label\": \"Select Package to compare: \",\n \"model_id\": \"7c22593599b949d0aacdfae764640f91\",\n \"code_uid\": \"Select.0.40.16.22-rand548cf121\",\n \"url_key\": \"\",\n \"disabled\": false,\n \"hidden\": false\n}",
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "7c22593599b949d0aacdfae764640f91",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "mercury.Select"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/mercury+json": "{\n \"widget\": \"Slider\",\n \"value\": 36,\n \"min\": 6,\n \"max\": 36,\n \"step\": 2,\n \"label\": \"Select System size: \",\n \"model_id\": \"027659e99221414c855f1390fd1d3dd6\",\n \"code_uid\": \"Slider.0.40.26.25-randad604fff\",\n \"url_key\": \"\",\n \"disabled\": false,\n \"hidden\": false\n}",
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "027659e99221414c855f1390fd1d3dd6",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "mercury.Slider"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Performance benchmarks of task: Heisenberg dynamics, with compute capability: Singlethread, precision: Single\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " -------------------------------------------------------- \n",
+ " Comparison to the selected package \n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "if [all_flag.value, ovo_flag.value, com_task_flag.value, mgpu_flag.value].count(True) > 1:\n",
+ " print(\"Select only one option!\")\n",
+ " \n",
+ "\n",
+ "elif all_flag.value == True:\n",
+ " import numpy as np\n",
+ " import h5py\n",
+ " import os\n",
+ "\n",
+ " import sys\n",
+ " sys.path.append('/plot_scripts')\n",
+ " from map_packages_colors_all import *\n",
+ " from plot_scripts_all import *\n",
+ " from plot_display_all import *\n",
+ " \n",
+ " task = mr.Select(label=\"Select Task: \", value=\"Heisenberg dynamics\", choices=[\"Heisenberg dynamics\", \"Random Quantum Circuit\", \"Quantum Fourier Transform\"])\n",
+ " \n",
+ " com_cap = mr.Select(label=\"Select Compute Capability: \", value=\"Singlethread\", choices=[\"Singlethread\", \"Multithread\", \"GPU\"])\n",
+ " \n",
+ " prec = mr.Select(label=\"Select Precision : \", value=\"Single\", choices=[\"Single\", \"Double\"])\n",
+ " \n",
+ " com_pack = mr.Select(label=\"Select Package to compare: \", value=\"qsimcirq\", choices=['qiskit' , 'cirq', 'qsimcirq', 'pennylane', 'pennylane_l', 'qibo', 'qibojit', 'yao', 'quest', 'qulacs', 'intel_qs_cpp', 'projectq', 'svsim', 'hybridq', 'hiq', 'qcgpu', 'qrack_sch', 'cuquantum_qiskit', 'cuquantum_qsimcirq'])\n",
+ " \n",
+ " if task.value == \"Heisenberg dynamics\" or task.value == \"Quantum Fourier Transform\":\n",
+ " N_slider = mr.Slider(value=36, min=6, max=36, label=\"Select System size: \", step=2)\n",
+ " elif task.value == \"Random Quantum Circuit\":\n",
+ " N_slider = mr.Slider(value=36, min=12, max=36, label=\"Select System size: \", step=2)\n",
+ " \n",
+ " print('Performance benchmarks of task: {}, with compute capability: {}, precision: {}'.format(task.value, com_cap.value, prec.value))\n",
+ " \n",
+ " abs_time(task.value, com_cap.value, prec.value, com_pack.value, N_slider.value+2)\n",
+ " \n",
+ " # print(\"----------------------------------------------------------------\")\n",
+ " \n",
+ " # task_2 = mr.Select(label=\"Select Task II:\", value=\"Random Quantum Circuit\", choices=[\"Heisenberg dynamics\", \"Random Quantum Circuit\", \"Quantum Fourier Transform\"])\n",
+ " \n",
+ " # com_cap_2 = mr.Select(label=\"Select Compute Capability II:\", value=\"Singlethread\", choices=[\"Singlethread\", \"Multithread\", \"GPU\"])\n",
+ " \n",
+ " # prec_2 = mr.Select(label=\"Select Precision II:\", value=\"Single\", choices=[\"Single\", \"Double\"])\n",
+ " \n",
+ " # com_pack_2 = mr.Select(label=\"Select Package to compare:\", value=\"qsimcirq\", choices=['qiskit' , 'cirq', 'qsimcirq', 'pennylane', 'pennylane_l', 'qibo', 'qibojit', 'yao', 'quest', 'qulacs', 'intel_qs_cpp', 'projectq', 'svsim', 'hybridq', 'hiq', 'qcgpu', 'qrack_sch'])\n",
+ " \n",
+ " # print('Performance benchmarks of task: {}, with compute capability: {}, precision: {}'.format(task_2.value, com_cap_2.value, prec_2.value))\n",
+ " \n",
+ " # abs_time(task_2.value, com_cap_2.value, prec_2.value, com_pack_2.value)\n",
+ " \n",
+ "elif ovo_flag.value == True:\n",
+ " import numpy as np\n",
+ " import h5py\n",
+ " import os\n",
+ "\n",
+ " import sys\n",
+ " sys.path.append('/plot_scripts')\n",
+ " from map_packages_colors_1v1 import *\n",
+ " from plot_scripts_1v1 import *\n",
+ " from plot_display_1v1 import *\n",
+ " \n",
+ " task = mr.Select(label=\"Select Task I:\", value=\"Heisenberg dynamics\", choices=[\"Heisenberg dynamics\", \"Random Quantum Circuit\", \"Quantum Fourier Transform\"])\n",
+ " \n",
+ " pack = mr.Select(label=\"Select Package I:\", value=\"qsimcirq\", choices=['qiskit' , 'cirq', 'qsimcirq', 'pennylane', 'pennylane_l', 'qibo', 'qibojit', 'yao', 'quest', 'qulacs', 'intel_qs_cpp', 'projectq', 'svsim', 'hybridq', 'hiq', 'qcgpu', 'qrack_sch', 'cuquantum_qiskit', 'cuquantum_qsimcirq'])\n",
+ " \n",
+ " com_cap = mr.Select(label=\"Select Compute Capability I:\", value=\"Singlethread\", choices=[\"Singlethread\", \"Multithread\", \"GPU\"])\n",
+ " \n",
+ " prec = mr.Select(label=\"Select Precision I:\", value=\"Single\", choices=[\"Single\", \"Double\"])\n",
+ " \n",
+ " # print(\"----------------------------------------------------------------\")\n",
+ " \n",
+ " task_2 = mr.Select(label=\"Select Task II:\", value=\"Random Quantum Circuit\", choices=[\"Heisenberg dynamics\", \"Random Quantum Circuit\", \"Quantum Fourier Transform\"])\n",
+ "\n",
+ " pack_2 = mr.Select(label=\"Select Package to compare: \", value=\"qsimcirq\", choices=['qiskit' , 'cirq', 'qsimcirq', 'pennylane', 'pennylane_l', 'qibo', 'qibojit', 'yao', 'quest', 'qulacs', 'intel_qs_cpp', 'projectq', 'svsim', 'hybridq', 'hiq', 'qcgpu', 'qrack_sch', 'cuquantum_qiskit', 'cuquantum_qsimcirq'])\n",
+ " \n",
+ " com_cap_2 = mr.Select(label=\"Select Compute Capability II:\", value=\"Singlethread\", choices=[\"Singlethread\", \"Multithread\", \"GPU\"])\n",
+ " \n",
+ " prec_2 = mr.Select(label=\"Select Precision II:\", value=\"Single\", choices=[\"Single\", \"Double\"])\n",
+ " \n",
+ " if task.value == \"Heisenberg dynamics\" or task.value == \"Quantum Fourier Transform\":\n",
+ " N_slider = mr.Slider(value=36, min=6, max=36, label=\"Select System size: \", step=2)\n",
+ " elif task.value == \"Random Quantum Circuit\":\n",
+ " N_slider = mr.Slider(value=36, min=12, max=36, label=\"Select System size: \", step=2) \n",
+ " \n",
+ " # print(\"Absolute Time\")\n",
+ " abs_time(task.value, pack.value, com_cap.value, prec.value, task_2.value, pack_2.value, com_cap_2.value, prec_2.value, N_slider.value+2)\n",
+ " # print(\"Relative Time\")\n",
+ " relative_time_wrt_pack(task.value, pack.value, com_cap.value, prec.value, task_2.value, pack_2.value, com_cap_2.value, prec_2.value, N_slider.value+2)\n",
+ "\n",
+ "elif com_task_flag.value == True:\n",
+ " import numpy as np\n",
+ " import h5py\n",
+ " import os\n",
+ "\n",
+ " import sys\n",
+ " sys.path.append('/plot_scripts')\n",
+ " from map_packages_colors_all import *\n",
+ " from plot_scripts_all import *\n",
+ " from plot_display_com_pack import *\n",
+ " \n",
+ " task_1 = mr.Select(label=\"Select Task I:\", value=\"Heisenberg dynamics\", choices=[\"Heisenberg dynamics\", \"Random Quantum Circuit\", \"Quantum Fourier Transform\"]) \n",
+ " task_2 = mr.Select(label=\"Select Task II:\", value=\"Random Quantum Circuit\", choices=[\"Heisenberg dynamics\", \"Random Quantum Circuit\", \"Quantum Fourier Transform\"])\n",
+ " \n",
+ " # print(task_1.value)\n",
+ " # print(task_2.value)\n",
+ " \n",
+ " com_cap = mr.Select(label=\"Select Compute Capability:\", value=\"Singlethread\", choices=[\"Singlethread\", \"Multithread\", \"GPU\"]) \n",
+ " \n",
+ " prec = mr.Select(label=\"Select Precision:\", value=\"Single\", choices=[\"Single\", \"Double\"])\n",
+ " \n",
+ " # if task_1.value == \"Heisenberg dynamics\" or task_1.value == \"Quantum Fourier Transform\":\n",
+ " # N_slider = mr.Slider(value=36, min=6, max=36, label=\"Select System size: \", step=2)\n",
+ " # elif task_1.value == \"Random Quantum Circuit\":\n",
+ " # N_slider = mr.Slider(value=36, min=12, max=36, label=\"Select System size: \", step=2)\n",
+ "\n",
+ " if task_2.value == \"Heisenberg dynamics\" or task_2.value == \"Quantum Fourier Transform\":\n",
+ " N_slider = mr.Slider(value=36, min=6, max=36, label=\"Select System size: \", step=2)\n",
+ " elif task_2.value == \"Random Quantum Circuit\":\n",
+ " N_slider = mr.Slider(value=36, min=12, max=36, label=\"Select System size: \", step=2)\n",
+ " \n",
+ " abs_time_pack(task_1.value, task_2.value, com_cap.value, prec.value, N_slider.value+2)\n",
+ "\n",
+ "elif mgpu_flag.value == True:\n",
+ " import numpy as np\n",
+ " import h5py\n",
+ " import os\n",
+ "\n",
+ " import sys\n",
+ " sys.path.append('/plot_scripts')\n",
+ " from map_packages_colors_mgpu import *\n",
+ " from plot_scripts_mgpu import *\n",
+ " from plot_display_mgpu import *\n",
+ " \n",
+ " gpu_all_flag = mr.Checkbox(value=False, label=\"Compare all\")\n",
+ " ngpu_flag = mr.Checkbox(value=False, label=\"Scaling with N GPU's\")\n",
+ "\n",
+ " if gpu_all_flag.value == True and ngpu_flag.value == True:\n",
+ " print(\"Select only one option!\")\n",
+ " \n",
+ " elif gpu_all_flag.value == True:\n",
+ " \n",
+ " task = mr.Select(label=\"Select Task:\", value=\"Heisenberg dynamics\", choices=[\"Heisenberg dynamics\", \"Random Quantum Circuit\", \"Quantum Fourier Transform\"])\n",
+ " prec = mr.Select(label=\"Select Precision:\", value=\"Single\", choices=[\"Single\", \"Double\"])\n",
+ " n_gpu = mr.Select(label=\"Select no. of GPUs:\", value=1, choices=[1, 2, 4, 8])\n",
+ " \n",
+ " compare_to = mr.Select(label=\"Select package to compare to:\", choices=[\"cuquantum_qiskit\", \"cuquantum_qsimcirq\", \"qibojit\"])\n",
+ "\n",
+ " if task.value == \"Heisenberg dynamics\" or task.value == \"Quantum Fourier Transform\":\n",
+ " N_slider = mr.Slider(value=36, min=6, max=36, label=\"Select System size: \", step=2)\n",
+ " elif task.value == \"Random Quantum Circuit\":\n",
+ " N_slider = mr.Slider(value=36, min=12, max=36, label=\"Select System size: \", step=2)\n",
+ " \n",
+ " abs_time(task.value, prec.value, n_gpu.value, compare_to.value, N_slider.value+2)\n",
+ " \n",
+ " elif ngpu_flag.value == True:\n",
+ " pack = mr.Select(label=\"Select package:\", value=\"cuquantum_qiskit\", choices=[\"cuquantum_qiskit\", \"cuquantum_qsimcirq\", \"qibojit\"])\n",
+ " task = mr.Select(label=\"Select Task:\", value=\"Heisenberg dynamics\", choices=[\"Heisenberg dynamics\", \"Random Quantum Circuit\", \"Quantum Fourier Transform\"])\n",
+ " prec = mr.Select(label=\"Select Precision:\", value=\"Single\", choices=[\"Single\", \"Double\"])\n",
+ " \n",
+ " compare_n_gpu = mr.Select(label=\"Compare to no. of GPUs:\", value=1, choices=[1, 2, 4, 8])\n",
+ " \n",
+ " if task.value == \"Heisenberg dynamics\" or task.value == \"Quantum Fourier Transform\":\n",
+ " N_slider = mr.Slider(value=36, min=6, max=36, label=\"Select System size: \", step=2)\n",
+ " elif task.value == \"Random Quantum Circuit\":\n",
+ " N_slider = mr.Slider(value=36, min=12, max=36, label=\"Select System size: \", step=2)\n",
+ " \n",
+ " abs_time_ngpus(task.value, prec.value, pack.value, compare_n_gpu.value, N_slider.value+2)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "e41b2e81",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.9.12"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}