Skip to content

Commit bcf98ff

Browse files
committed
add benchmark results and plots
1 parent 2515ff5 commit bcf98ff

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+4761
-2
lines changed

Diff for: .gitignore

+1-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
*.jl.*.cov
33
*.jl.mem
44
.DS_Store
5-
benchmark-old/*
5+
*-old
66
__pycache__
77
.ipynb*
8-
benchmark/results*

Diff for: benchmark/meraresults.pdf

36 KB
Binary file not shown.

Diff for: benchmark/mporesults.pdf

62.9 KB
Binary file not shown.

Diff for: benchmark/peporesults.pdf

63.7 KB
Binary file not shown.

Diff for: benchmark/plotmera.jl

+83
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
using DelimitedFiles
2+
using Plots, StatsPlots
3+
gr()
4+
5+
M = 1 # markersize
6+
7+
include("bonds.jl")
8+
# MPO results
9+
10+
numplots = 6
11+
12+
meraplots = Matrix{Any}(undef, (numplots, 3))
13+
14+
data = ["_mera_triv.txt", "_mera_z2.txt", "_mera_u1.txt"]
15+
dims = [meradims_triv, meradims_z2, meradims_u1]
16+
name = ["Trivial", "Z2 symmetry", "U1 symmetry"]
17+
for j = 1:3
18+
s = data[j]
19+
data_tensorkit = try
20+
readdlm("results/tensorkit"*s)
21+
catch
22+
nothing
23+
end
24+
ymin = minimum(data_tensorkit)
25+
ymax = maximum(data_tensorkit)
26+
data_itensors = try
27+
readdlm("results/itensors"*s)
28+
catch
29+
nothing
30+
end
31+
if !isnothing(data_itensors)
32+
ymin = min(ymin, minimum(data_itensors))
33+
ymax = max(ymax, maximum(data_itensors))
34+
end
35+
data_tenpy = try
36+
readdlm("results/tenpy"*s)
37+
catch
38+
nothing
39+
end
40+
if !isnothing(data_tenpy)
41+
ymin = min(ymin, minimum(data_tenpy))
42+
ymax = max(ymax, maximum(data_tenpy))
43+
end
44+
data_tensornetwork = try
45+
readdlm("results/tensornetwork"*s)
46+
catch
47+
nothing
48+
end
49+
if !isnothing(data_tensornetwork)
50+
ymin = min(ymin, minimum(data_tensornetwork))
51+
ymax = max(ymax, maximum(data_tensornetwork))
52+
end
53+
ymin = 10^(floor(log10(ymin)))
54+
ymax = 10^(ceil(log10(ymax)))
55+
56+
for i = 1:numplots
57+
Dmera = dims[j][1][i]
58+
59+
p = boxplot(data_tensorkit[:,i], label="TensorKit.jl", markersize = M)
60+
!isnothing(data_itensors) &&
61+
boxplot!(p, data_itensors[:,i], label="ITensors.jl", markersize = M)
62+
!isnothing(data_tenpy) &&
63+
boxplot!(p, data_tenpy[:,i], label="Tenpy", markersize = M)
64+
!isnothing(data_tensornetwork) &&
65+
boxplot!(p, data_tensornetwork[:,i], label="TensorNetwork", markersize = M)
66+
plot!(p, yscale = :log10, yminorticks = true, xticks = [], xgrid = false, xshowaxis = false, ylim = (ymin, ymax))
67+
if i == 1
68+
plot!(p, yguide = name[j], yguide_position = :left, yguidefontsize = 10, ytickfontsize = 8, left_margin = 6mm)
69+
plot!(p, title = "χ = $Dmera", titlefontsize = 10)
70+
else
71+
plot!(p, title = "$Dmera", titlefontsize = 10)
72+
plot!(p, left_margin = -5mm, yformatter = _->"", yshowaxis = false)
73+
end
74+
if i == numplots && j == 3
75+
plot!(p, legendfontsize = 10, legend = :bottomright)
76+
else
77+
plot!(p, legend = false)
78+
end
79+
meraplots[i, j] = p
80+
end
81+
end
82+
plotgrid = plot(meraplots..., layout=grid(3,numplots), link = :y, thickness_scaling = 1, size = (1500, 800))
83+
savefig(plotgrid, "meraresults.pdf")

Diff for: benchmark/plotmpo.jl

+84
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
using DelimitedFiles
2+
using Plots, StatsPlots, Measures
3+
gr()
4+
5+
M = 1 # markersize
6+
7+
include("bonds.jl")
8+
# MPO results
9+
10+
numplots = 8
11+
mpoplots = Matrix{Any}(undef, (numplots, 3))
12+
13+
data = ["_mpo_triv.txt", "_mpo_z2.txt", "_mpo_u1.txt"]
14+
dims = [mpodims_triv, mpodims_z2, mpodims_u1]
15+
name = ["Trivial", "Z2 symmetry", "U1 symmetry"]
16+
for j = 1:3
17+
s = data[j]
18+
data_tensorkit = try
19+
readdlm("results/tensorkit"*s)
20+
catch
21+
nothing
22+
end
23+
ymin = minimum(data_tensorkit)
24+
ymax = maximum(data_tensorkit)
25+
data_itensors = try
26+
readdlm("results/itensors"*s)
27+
catch
28+
nothing
29+
end
30+
if !isnothing(data_itensors)
31+
ymin = min(ymin, minimum(data_itensors))
32+
ymax = max(ymax, maximum(data_itensors))
33+
end
34+
data_tenpy = try
35+
readdlm("results/tenpy"*s)
36+
catch
37+
nothing
38+
end
39+
if !isnothing(data_tenpy)
40+
ymin = min(ymin, minimum(data_tenpy))
41+
ymax = max(ymax, maximum(data_tenpy))
42+
end
43+
data_tensornetwork = try
44+
readdlm("results/tensornetwork"*s)
45+
catch
46+
nothing
47+
end
48+
if !isnothing(data_tensornetwork)
49+
ymin = min(ymin, minimum(data_tensornetwork))
50+
ymax = max(ymax, maximum(data_tensornetwork))
51+
end
52+
ymin = 10^(floor(log10(ymin)))
53+
ymax = 10^(ceil(log10(ymax)))
54+
55+
for i = 1:numplots
56+
Dmps = dims[j][1][i]
57+
Dmpo = dims[j][2][i]
58+
Dphys = dims[j][3][i]
59+
60+
p = boxplot(data_tensorkit[:,i], label="TensorKit.jl", markersize = M)
61+
!isnothing(data_itensors) &&
62+
boxplot!(p, data_itensors[:,i], label="ITensors.jl", markersize = M)
63+
!isnothing(data_tenpy) &&
64+
boxplot!(p, data_tenpy[:,i], label="Tenpy", markersize = M)
65+
!isnothing(data_tensornetwork) &&
66+
boxplot!(p, data_tensornetwork[:,i], label="TensorNetwork", markersize = M)
67+
plot!(p, yscale = :log10, yminorticks = true, xticks = [], xgrid = false, xshowaxis = false, ylim = (ymin, ymax))
68+
if i == 1
69+
plot!(p, title = "(D, M, d) = ($Dmps, $Dmpo, $Dphys)", titlefontsize = 10)
70+
plot!(p, yguide = name[j], yguide_position = :left, yguidefontsize = 10, ytickfontsize = 8, left_margin = 6mm)
71+
else
72+
plot!(p, title = "($Dmps, $Dmpo, $Dphys)", titlefontsize = 10)
73+
plot!(p, left_margin = -5mm, yformatter = _->"", yshowaxis = false)
74+
end
75+
if i == numplots && j == 3
76+
plot!(p, legendfontsize = 10, legend = :bottomright)
77+
else
78+
plot!(p, legend = false)
79+
end
80+
mpoplots[i, j] = p
81+
end
82+
end
83+
plotgrid = plot(mpoplots..., layout=grid(3,numplots), link = :y, thickness_scaling = 1, size = (1500, 800))
84+
savefig(plotgrid, "mporesults.pdf")

Diff for: benchmark/plotpepo.jl

+84
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
using DelimitedFiles
2+
using Plots, StatsPlots
3+
gr()
4+
5+
M = 1 # markersize
6+
7+
include("bonds.jl")
8+
# MPO results
9+
numplots = 8
10+
pepoplots = Matrix{Any}(undef, (numplots, 3))
11+
12+
data = ["_pepo_triv.txt", "_pepo_z2.txt", "_pepo_u1.txt"]
13+
dims = [pepodims_triv, pepodims_z2, pepodims_u1]
14+
name = ["Trivial", "Z2 symmetry", "U1 symmetry"]
15+
for j = 1:3
16+
s = data[j]
17+
data_tensorkit = try
18+
readdlm("results/tensorkit"*s)
19+
catch
20+
nothing
21+
end
22+
ymin = minimum(data_tensorkit)
23+
ymax = maximum(data_tensorkit)
24+
data_itensors = try
25+
readdlm("results/itensors"*s)
26+
catch
27+
nothing
28+
end
29+
if !isnothing(data_itensors)
30+
ymin = min(ymin, minimum(data_itensors))
31+
ymax = max(ymax, maximum(data_itensors))
32+
end
33+
data_tenpy = try
34+
readdlm("results/tenpy"*s)
35+
catch
36+
nothing
37+
end
38+
if !isnothing(data_tenpy)
39+
ymin = min(ymin, minimum(data_tenpy))
40+
ymax = max(ymax, maximum(data_tenpy))
41+
end
42+
data_tensornetwork = try
43+
readdlm("results/tensornetwork"*s)
44+
catch
45+
nothing
46+
end
47+
if !isnothing(data_tensornetwork)
48+
ymin = min(ymin, minimum(data_tensornetwork))
49+
ymax = max(ymax, maximum(data_tensornetwork))
50+
end
51+
ymin = 10^(floor(log10(ymin)))
52+
ymax = 10^(ceil(log10(ymax)))
53+
54+
for i = 1:numplots
55+
Dpeps = dims[j][1][i]
56+
Dpepo = dims[j][2][i]
57+
Dphys = dims[j][3][i]
58+
Denv = dims[j][4][i]
59+
60+
p = boxplot(data_tensorkit[:,i], label="TensorKit.jl", markersize = M)
61+
!isnothing(data_itensors) &&
62+
boxplot!(p, data_itensors[:,i], label="ITensors.jl", markersize = M)
63+
!isnothing(data_tenpy) &&
64+
boxplot!(p, data_tenpy[:,i], label="Tenpy", markersize = M)
65+
!isnothing(data_tensornetwork) &&
66+
boxplot!(p, data_tensornetwork[:,i], label="TensorNetwork", markersize = M)
67+
plot!(p, yscale = :log10, yminorticks = true, xticks = [], xgrid = false, xshowaxis = false, ylim = (ymin, ymax))
68+
if i == 1
69+
plot!(p, title = "(D, M, d, χ) = ($Dpeps, $Dpepo, $Dphys, $Denv)", titlefontsize = 10)
70+
plot!(p, yguide = name[j], yguide_position = :left, yguidefontsize = 10, ytickfontsize = 8, left_margin = 6mm)
71+
else
72+
plot!(p, title = "($Dpeps, $Dpepo, $Dphys, $Denv)", titlefontsize = 10)
73+
plot!(p, left_margin = -5mm, yformatter = _->"", yshowaxis = false)
74+
end
75+
if i == numplots && j == 3
76+
plot!(p, legendfontsize = 10, legend = :bottomright)
77+
else
78+
plot!(p, legend = false)
79+
end
80+
pepoplots[i, j] = p
81+
end
82+
end
83+
plotgrid = plot(pepoplots..., layout=grid(3,numplots), link = :y, thickness_scaling = 1, size = (1500, 800))
84+
savefig(plotgrid, "peporesults.pdf")

Diff for: benchmark/results/itensors_mera_triv.txt

+100
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
0.001405112 0.000104554 0.000195165 0.019538767 0.511626897 5.688246247
2+
0.000190103 0.000101619 0.000187349 0.019318769 0.440675748 5.515691958
3+
7.0209e-5 9.3655e-5 0.000190833 0.019530513 0.512412562 5.427843534
4+
5.57e-5 9.3458e-5 0.000175956 0.019448964 0.439345026 5.412914103
5+
5.3678e-5 9.196e-5 0.000174441 0.019507896 0.511929939 5.463413799
6+
4.8559e-5 0.000103274 0.000174323 0.019317633 0.440292594 5.427677694
7+
4.7104e-5 8.8547e-5 0.000175656 0.019554282 0.512114206 5.421401325
8+
4.817e-5 9.0552e-5 0.000184035 0.019355881 0.439258764 5.457082735
9+
4.5552e-5 8.8368e-5 0.000173661 0.019564762 0.511257029 5.535322941
10+
4.6921e-5 9.1171e-5 0.000177473 0.019298316 0.440374334 5.480076018
11+
4.7607e-5 8.6958e-5 0.000178938 0.019571444 0.513809914 5.755722941
12+
4.7741e-5 8.9688e-5 0.000180545 0.01935542 0.44049505 5.425649859
13+
4.6539e-5 9.0121e-5 0.000177439 0.019522064 0.519829151 5.455347444
14+
4.6339e-5 9.1159e-5 0.000176783 0.019486664 0.438952357 5.422330821
15+
4.6095e-5 9.0346e-5 0.000176808 0.01951291 0.514756513 5.422210153
16+
4.585e-5 9.2262e-5 0.000174872 0.019448174 0.439264488 5.42859094
17+
5.6718e-5 9.0163e-5 0.000172161 0.020078342 0.511421644 5.634153641
18+
6.393e-5 0.009712396 0.000172192 0.019306171 0.43886328 5.541303191
19+
6.487e-5 9.5996e-5 0.000171477 0.019530166 0.514487385 5.536103283
20+
6.0888e-5 8.5747e-5 0.000167209 0.019421989 0.438882281 5.579832628
21+
6.246e-5 7.4445e-5 0.000167197 0.019639302 0.512545885 5.581810628
22+
6.4206e-5 7.4288e-5 0.000169983 0.019366211 0.439153239 5.533705504
23+
6.0035e-5 7.0631e-5 0.000171703 0.019482178 0.514369556 5.530633466
24+
5.6134e-5 7.2212e-5 0.000171224 0.019348621 0.439363375 5.657950018
25+
5.9818e-5 7.1065e-5 0.00017339 0.019511115 0.512019602 5.543246068
26+
5.8464e-5 7.0544e-5 0.000173394 0.019294137 0.475300768 5.535563184
27+
5.4673e-5 7.8138e-5 0.000171002 0.019524607 0.59710305 5.61941576
28+
5.6487e-5 6.9844e-5 0.000172711 0.019312511 0.507573229 5.528537762
29+
5.7322e-5 6.7797e-5 0.000171673 0.019513712 0.586116419 5.535583341
30+
5.6725e-5 6.7909e-5 0.000172474 0.019383594 0.438645534 5.533434764
31+
5.8236e-5 7.046e-5 0.000191666 0.019498623 0.513067172 5.604635206
32+
5.7615e-5 6.8657e-5 0.000179399 0.019361863 0.439362558 5.630135565
33+
6.0394e-5 6.7482e-5 0.000178984 0.019535198 0.512152998 5.539299469
34+
6.1768e-5 6.9682e-5 0.000174979 0.019363122 0.439013451 5.543905443
35+
6.2087e-5 6.9443e-5 0.000175772 0.019488196 0.521652721 5.543303656
36+
6.377e-5 6.7548e-5 0.000186034 0.019358837 0.472824979 5.526101883
37+
6.4031e-5 6.9626e-5 0.000176229 0.019526198 0.511901793 5.538952898
38+
6.4071e-5 7.256e-5 0.000178147 0.019456421 0.438832941 5.532715491
39+
6.9406e-5 7.5143e-5 0.006601228 0.019486805 0.511911801 5.553945668
40+
6.7782e-5 7.269e-5 0.000192028 0.019695506 0.440716215 5.535438876
41+
6.5004e-5 7.5185e-5 0.000178012 0.019546194 0.511588593 5.543077847
42+
6.2446e-5 7.2659e-5 0.000177779 0.01938912 0.439196665 5.599870603
43+
6.4053e-5 7.3962e-5 0.000176288 0.019625068 0.510973375 5.617723361
44+
5.9749e-5 7.6924e-5 0.000171661 0.019432558 0.440039383 5.526893056
45+
6.1554e-5 7.3767e-5 0.00017395 0.019573826 0.511253553 5.526870244
46+
6.2213e-5 7.516e-5 0.000173115 0.019294352 0.441218225 5.527921462
47+
6.4934e-5 7.3364e-5 0.000174645 0.01950103 0.511500961 5.555884567
48+
6.2105e-5 7.2478e-5 0.000170662 0.01928667 0.440080498 5.548278513
49+
6.2788e-5 7.6792e-5 0.000171493 0.019544741 0.519956088 5.535390058
50+
6.4618e-5 7.3526e-5 0.000172869 0.019317102 0.43981602 5.535192409
51+
6.3076e-5 7.398e-5 0.000174775 0.019525136 0.511957826 5.576941655
52+
6.4314e-5 7.3624e-5 0.000170654 0.019423743 0.44006512 5.552068622
53+
6.1184e-5 7.1483e-5 0.000173156 0.019592091 0.514385085 5.592913872
54+
6.1228e-5 7.2195e-5 0.000174377 0.019542036 0.441173145 5.583133413
55+
6.5743e-5 7.3049e-5 0.000176637 0.019530208 0.519620033 5.552537842
56+
6.0885e-5 7.3221e-5 0.000170079 0.019413901 0.439256453 5.527828416
57+
6.238e-5 7.2159e-5 0.000172002 0.019568205 0.512993241 5.537301605
58+
6.3185e-5 7.3892e-5 0.000171271 0.019325881 0.439515375 5.568764089
59+
6.3971e-5 7.1766e-5 0.00016994 0.019529291 0.511411827 5.601163798
60+
6.294e-5 7.2711e-5 0.000170936 0.019327663 0.439009686 5.605295803
61+
6.5931e-5 7.1451e-5 0.000168229 0.019607877 0.513971912 5.602265966
62+
6.6545e-5 7.3148e-5 0.00017236 0.019647553 0.440220259 5.572356831
63+
6.1917e-5 7.1804e-5 0.000182711 0.0195385 0.512015232 5.570147469
64+
6.6932e-5 7.3526e-5 0.000171787 0.019542514 0.438782289 5.595818572
65+
5.9984e-5 7.3574e-5 0.000181617 0.019650566 0.512902077 5.546427787
66+
6.2843e-5 7.2889e-5 0.000169948 0.019343676 0.439261267 5.581679092
67+
6.6732e-5 7.2855e-5 0.000171891 0.019733686 0.511734389 5.536876432
68+
6.4563e-5 7.1287e-5 0.000173083 0.019619585 0.438727646 5.539741377
69+
6.2832e-5 7.281e-5 0.000169263 0.019957595 0.511920927 5.528340267
70+
6.4206e-5 7.3623e-5 0.000171987 0.019421318 0.438818453 5.528061907
71+
6.3891e-5 7.125e-5 0.000186014 0.019563983 0.511980023 5.537025043
72+
6.1922e-5 7.4396e-5 0.000174337 0.019421401 0.438677351 5.53038028
73+
6.474e-5 7.2272e-5 0.000179017 0.01950332 0.511686085 5.56053243
74+
6.622e-5 7.3849e-5 0.00017387 0.019339891 0.440094648 5.612686235
75+
6.2654e-5 9.0559e-5 0.000182849 0.019595624 0.512640354 5.617053053
76+
6.2112e-5 7.7724e-5 0.000173845 0.019437687 0.43899421 5.548340366
77+
6.3512e-5 7.4744e-5 0.000174334 0.019608508 0.512140579 5.58159151
78+
6.2466e-5 7.7457e-5 0.000174317 0.019366808 0.439630525 5.531422755
79+
6.5986e-5 7.3457e-5 0.000173523 0.019499243 0.519201332 5.533426498
80+
6.0459e-5 7.7727e-5 0.000173504 0.019380558 0.475054089 5.548979997
81+
6.5129e-5 7.1232e-5 0.000174503 0.019641227 0.512197635 5.568257079
82+
6.4373e-5 7.3004e-5 0.00017092 0.019298033 0.442431829 5.533583034
83+
6.2487e-5 7.1003e-5 0.000180851 0.019645105 0.51712385 5.537470022
84+
6.3401e-5 7.3504e-5 0.000174242 0.019425257 0.444650545 5.542404475
85+
6.6313e-5 7.5123e-5 0.000175561 0.019616179 0.515319123 5.596923223
86+
6.8614e-5 7.6308e-5 0.000204779 0.019372899 0.443764236 5.540569963
87+
6.4673e-5 7.5373e-5 0.000176212 0.020149475 0.523611488 5.530873085
88+
6.9379e-5 7.0804e-5 0.000174355 0.020025542 0.444068632 5.53441926
89+
6.4272e-5 7.2732e-5 0.000172753 0.019891914 0.515013185 5.567867528
90+
6.5545e-5 7.5124e-5 0.000173151 0.019330562 0.44273967 5.540488829
91+
6.7697e-5 7.3376e-5 0.000174504 0.019596225 0.515783612 5.537833197
92+
6.3328e-5 7.7824e-5 0.000174986 0.019560677 0.443143288 5.582406918
93+
6.5773e-5 7.4038e-5 0.000173291 0.01970572 0.515187168 5.5376309
94+
6.5919e-5 7.6844e-5 0.000174993 0.019355368 0.443840717 5.539231656
95+
6.3849e-5 7.2765e-5 0.00017277 0.019586211 0.515317287 5.547008786
96+
6.7289e-5 7.5013e-5 0.000170657 0.019442465 0.444971095 5.614785941
97+
6.7875e-5 7.4135e-5 0.000171105 0.019570995 0.514761387 5.57998079
98+
6.6647e-5 7.3459e-5 0.000170172 0.019361098 0.442830228 5.535066255
99+
6.5129e-5 7.1971e-5 0.00017083 0.019535223 0.515308792 5.530590056
100+
6.5549e-5 7.2265e-5 0.000172959 0.019358396 0.44312153 5.570678203

0 commit comments

Comments
 (0)