Added plot for bukets
This commit is contained in:
parent
dec1bae92e
commit
0ecca24d2e
BIN
Data/buckets.pdf
Normal file
BIN
Data/buckets.pdf
Normal file
Binary file not shown.
42210
Data/max_data.dat
Normal file
42210
Data/max_data.dat
Normal file
File diff suppressed because it is too large
Load Diff
305
Data/plot_buckets.plt
Normal file
305
Data/plot_buckets.plt
Normal file
@ -0,0 +1,305 @@
|
||||
#!/usr/bin/gnuplot -persist
|
||||
#
|
||||
#
|
||||
# G N U P L O T
|
||||
# Version 5.4 patchlevel 2 last modified 2021-06-01
|
||||
#
|
||||
# Copyright (C) 1986-1993, 1998, 2004, 2007-2021
|
||||
# Thomas Williams, Colin Kelley and many others
|
||||
#
|
||||
# gnuplot home: http://www.gnuplot.info
|
||||
# faq, bugs, etc: type "help FAQ"
|
||||
# immediate help: type "help" (plot window: hit 'h')
|
||||
# set terminal qt 0 font "Sans,9"
|
||||
# set output
|
||||
set term pdfcairo enhanced font "Times,14" linewidth 2 rounded size 5.0in, 3.0in
|
||||
set out 'buckets.pdf'
|
||||
set multiplot
|
||||
unset clip points
|
||||
set clip one
|
||||
unset clip two
|
||||
unset clip radial
|
||||
set errorbars front 1.000000
|
||||
set border 31 front lt black linewidth 1.000 dashtype solid
|
||||
set zdata
|
||||
set ydata
|
||||
set xdata
|
||||
set y2data
|
||||
set x2data
|
||||
set boxwidth
|
||||
set boxdepth 0
|
||||
set style fill empty border
|
||||
set style rectangle back fc bgnd fillstyle solid 1.00 border lt -1
|
||||
set style circle radius graph 0.02
|
||||
set style ellipse size graph 0.05, 0.03 angle 0 units xy
|
||||
set dummy x, y
|
||||
set format x "% h"
|
||||
set format y "% h"
|
||||
set format x2 "% h"
|
||||
set format y2 "% h"
|
||||
set format z "% h"
|
||||
set format cb "% h"
|
||||
set format r "% h"
|
||||
set ttics format "% h"
|
||||
set timefmt "%d/%m/%y,%H:%M"
|
||||
set angles radians
|
||||
set tics back
|
||||
set grid nopolar
|
||||
set grid xtics nomxtics ytics nomytics noztics nomztics nortics nomrtics \
|
||||
nox2tics nomx2tics noy2tics nomy2tics nocbtics nomcbtics
|
||||
set grid layerdefault lt 0 linecolor 0 linewidth 0.500 dashtype solid, lt 0 linecolor 0 linewidth 0.500 dashtype solid
|
||||
unset raxis
|
||||
set theta counterclockwise right
|
||||
set style parallel front lt black linewidth 2.000 dashtype solid
|
||||
set key notitle
|
||||
set key fixed right top vertical Right noreverse enhanced autotitle nobox
|
||||
set key noinvert samplen 4 spacing 1 width 0 height 0
|
||||
set key maxcolumns 0 maxrows 0
|
||||
set key opaque
|
||||
unset label
|
||||
unset arrow
|
||||
set arrow 1 from 1.00000, graph 0, 0 to 1.00000, graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 2 from 3116.00, graph 0, 0 to 3116.00, graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 3 from 7570.00, graph 0, 0 to 7570.00, graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 4 from 12859.0, graph 0, 0 to 12859.0, graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 5 from 18845.0, graph 0, 0 to 18845.0, graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 6 from 25458.0, graph 0, 0 to 25458.0, graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 7 from 32642.0, graph 0, 0 to 32642.0, graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 8 from 40360.0, graph 0, 0 to 40360.0, graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 9 from 48603.0, graph 0, 0 to 48603.0, graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 10 from 57369.0, graph 0, 0 to 57369.0, graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 11 from 66667.0, graph 0, 0 to 66667.0, graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 12 from 76504.0, graph 0, 0 to 76504.0, graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 13 from 86872.0, graph 0, 0 to 86872.0, graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 14 from 97756.0, graph 0, 0 to 97756.0, graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 15 from 109143., graph 0, 0 to 109143., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 16 from 121013., graph 0, 0 to 121013., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 17 from 133352., graph 0, 0 to 133352., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 18 from 146140., graph 0, 0 to 146140., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 19 from 159351., graph 0, 0 to 159351., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 20 from 172963., graph 0, 0 to 172963., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 21 from 186963., graph 0, 0 to 186963., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 22 from 201324., graph 0, 0 to 201324., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 23 from 216045., graph 0, 0 to 216045., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 24 from 231112., graph 0, 0 to 231112., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 25 from 246518., graph 0, 0 to 246518., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 26 from 262252., graph 0, 0 to 262252., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 27 from 278307., graph 0, 0 to 278307., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 28 from 294678., graph 0, 0 to 294678., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 29 from 311357., graph 0, 0 to 311357., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 30 from 328335., graph 0, 0 to 328335., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 31 from 345612., graph 0, 0 to 345612., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 32 from 363188., graph 0, 0 to 363188., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 33 from 381058., graph 0, 0 to 381058., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 34 from 399223., graph 0, 0 to 399223., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 35 from 417687., graph 0, 0 to 417687., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 36 from 436441., graph 0, 0 to 436441., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 37 from 455487., graph 0, 0 to 455487., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 38 from 474826., graph 0, 0 to 474826., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 39 from 494453., graph 0, 0 to 494453., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 40 from 514366, graph 0, 0 to 514366., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 41 from 534563, graph 0, 0 to 534563., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 42 from 555044, graph 0, 0 to 555044., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 43 from 575812, graph 0, 0 to 575812., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 44 from 596864, graph 0, 0 to 596864., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 45 from 618205, graph 0, 0 to 618205., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 46 from 639837, graph 0, 0 to 639837., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 47 from 661753, graph 0, 0 to 661753., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 48 from 683958, graph 0, 0 to 683958., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 49 from 706451, graph 0, 0 to 706451., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 50 from 729232, graph 0, 0 to 729232., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 51 from 752299, graph 0, 0 to 752299., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 52 from 775648, graph 0, 0 to 775648., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 53 from 799284, graph 0, 0 to 799284., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 54 from 823210, graph 0, 0 to 823210., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 55 from 847425, graph 0, 0 to 847425., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 56 from 871930, graph 0, 0 to 871930., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 57 from 896724, graph 0, 0 to 896724., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 58 from 921819, graph 0, 0 to 921819., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 59 from 947210, graph 0, 0 to 947210., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 60 from 972891, graph 0, 0 to 972891., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 61 from 998870, graph 0, 0 to 998870., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 62 from 1025145, graph 0, 0 to 1025145., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 63 from 1051720, graph 0, 0 to 1051720., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 64 from 1078599, graph 0, 0 to 1078599., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 65 from 1105779, graph 0, 0 to 1105779., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 66 from 1133272, graph 0, 0 to 1133272., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 67 from 1161079, graph 0, 0 to 1161079., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 68 from 1189202, graph 0, 0 to 1189202., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 69 from 1217648, graph 0, 0 to 1217648., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 70 from 1246418, graph 0, 0 to 1246418., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 71 from 1275518, graph 0, 0 to 1275518., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 72 from 1304951, graph 0, 0 to 1304951., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 73 from 1334725, graph 0, 0 to 1334725., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 74 from 1364841, graph 0, 0 to 1364841., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 75 from 1395319, graph 0, 0 to 1395319., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 76 from 1426161, graph 0, 0 to 1426161., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 77 from 1457376, graph 0, 0 to 1457376., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 78 from 1488974, graph 0, 0 to 1488974., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 79 from 1520967, graph 0, 0 to 1520967., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 80 from 1553358, graph 0, 0 to 1553358., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 81 from 1586170, graph 0, 0 to 1586170., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 82 from 1619408, graph 0, 0 to 1619408., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 83 from 1653095, graph 0, 0 to 1653095., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 84 from 1687253, graph 0, 0 to 1687253., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 85 from 1721896, graph 0, 0 to 1721896., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 86 from 1757051, graph 0, 0 to 1757051., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 87 from 1792739, graph 0, 0 to 1792739., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 88 from 1828991, graph 0, 0 to 1828991., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 89 from 1865851, graph 0, 0 to 1865851., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 90 from 1903361, graph 0, 0 to 1903361., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 91 from 1941581, graph 0, 0 to 1941581., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 92 from 1980568, graph 0, 0 to 1980568., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 93 from 2020413, graph 0, 0 to 2020413., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 94 from 2061235, graph 0, 0 to 2061235., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
set arrow 95 from 2103179, graph 0, 0 to 2103179., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
#set arrow 96 from 2146485, graph 0, 0 to 2146485., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
#set arrow 97 from 2191518, graph 0, 0 to 2191518., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
#set arrow 98 from 2238935, graph 0, 0 to 2238935., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
#set arrow 99 from 2290535, graph 0, 0 to 2290535., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
#set arrow 100 from 2349497, graph 0, 0 to 2349497., graph 1, 0 nohead back nofilled linecolor rgb "#999999" linewidth 1.000 dashtype solid
|
||||
unset style line
|
||||
unset style arrow
|
||||
set style histogram clustered gap 2 title textcolor lt -1
|
||||
unset object
|
||||
unset walls
|
||||
set style textbox transparent margins 1.0, 1.0 border lt -1 linewidth 1.0
|
||||
set offsets 0, 0, 0, 0
|
||||
set pointsize 1
|
||||
set pointintervalbox 1
|
||||
set encoding default
|
||||
unset polar
|
||||
unset parametric
|
||||
unset spiderplot
|
||||
unset decimalsign
|
||||
unset micro
|
||||
unset minussign
|
||||
set view 60, 30, 1, 1
|
||||
set view azimuth 0
|
||||
set rgbmax 255
|
||||
set samples 100, 100
|
||||
set isosamples 10, 10
|
||||
set surface
|
||||
unset contour
|
||||
set cntrlabel format '%8.3g' font '' start 5 interval 20
|
||||
set mapping cartesian
|
||||
set datafile separator whitespace
|
||||
set datafile nocolumnheaders
|
||||
unset hidden3d
|
||||
set cntrparam order 4
|
||||
set cntrparam linear
|
||||
set cntrparam levels 5
|
||||
set cntrparam levels auto
|
||||
set cntrparam firstlinetype 0 unsorted
|
||||
set cntrparam points 5
|
||||
set size ratio 0 1,1
|
||||
set origin 0,0
|
||||
set style data points
|
||||
set style function lines
|
||||
unset xzeroaxis
|
||||
unset yzeroaxis
|
||||
unset zzeroaxis
|
||||
unset x2zeroaxis
|
||||
unset y2zeroaxis
|
||||
set xyplane relative 0.5
|
||||
set tics scale 1, 0.5, 1, 1, 1
|
||||
set mxtics default
|
||||
set mytics default
|
||||
set mztics default
|
||||
set mx2tics default
|
||||
set my2tics default
|
||||
set mcbtics default
|
||||
set mrtics default
|
||||
set nomttics
|
||||
set xtics border in scale 1,0.5 mirror norotate autojustify
|
||||
set xtics norangelimit autofreq
|
||||
set ytics border in scale 1,0.5 mirror norotate autojustify
|
||||
set ytics norangelimit autofreq
|
||||
set ztics border in scale 1,0.5 nomirror norotate autojustify
|
||||
set ztics norangelimit autofreq
|
||||
unset x2tics
|
||||
unset y2tics
|
||||
set cbtics border in scale 1,0.5 mirror norotate autojustify
|
||||
set cbtics norangelimit autofreq
|
||||
set rtics axis in scale 1,0.5 nomirror norotate autojustify
|
||||
set rtics norangelimit autofreq
|
||||
unset ttics
|
||||
set title ""
|
||||
set title font "" textcolor lt -1 norotate
|
||||
set timestamp bottom
|
||||
set timestamp ""
|
||||
set timestamp font "" textcolor lt -1 norotate
|
||||
set trange [ * : * ] noreverse nowriteback
|
||||
set urange [ * : * ] noreverse nowriteback
|
||||
set vrange [ * : * ] noreverse nowriteback
|
||||
set xlabel "Index(a,b,c)"
|
||||
set xlabel font "" textcolor lt -1 norotate
|
||||
set x2label ""
|
||||
set x2label font "" textcolor lt -1 norotate
|
||||
set xrange [ 0:2100000 ] noreverse writeback
|
||||
set x2range [ * : * ] noreverse writeback
|
||||
set ylabel "E^{abc} / P^{abc}"
|
||||
set ylabel font "" textcolor lt -1 rotate
|
||||
set y2label ""
|
||||
set y2label font "" textcolor lt -1 rotate
|
||||
set yrange [ 0.00000 : 10.0000 ] noreverse writeback
|
||||
set y2range [ * : * ] noreverse writeback
|
||||
set zlabel ""
|
||||
set zlabel font "" textcolor lt -1 norotate
|
||||
set zrange [ * : * ] noreverse writeback
|
||||
set cblabel ""
|
||||
set cblabel font "" textcolor lt -1 rotate
|
||||
set cbrange [ * : * ] noreverse writeback
|
||||
set rlabel ""
|
||||
set rlabel font "" textcolor lt -1 norotate
|
||||
set rrange [ * : * ] noreverse writeback
|
||||
unset logscale
|
||||
unset jitter
|
||||
set zero 1e-08
|
||||
set lmargin -1
|
||||
set bmargin -1
|
||||
set rmargin -1
|
||||
set tmargin -1
|
||||
set locale "en_AU.UTF-8"
|
||||
set pm3d explicit at s
|
||||
set pm3d scansautomatic
|
||||
set pm3d interpolate 1,1 flush begin noftriangles noborder corners2color mean
|
||||
set pm3d clip z
|
||||
set pm3d nolighting
|
||||
set palette positive nops_allcF maxcolors 0 gamma 1.5 color model RGB
|
||||
set palette rgbformulae 7, 5, 15
|
||||
set colorbox default
|
||||
set colorbox vertical origin screen 0.9, 0.2 size screen 0.05, 0.6 front noinvert bdefault
|
||||
set style boxplot candles range 1.50 outliers pt 7 separation 1 labels auto unsorted
|
||||
set loadpath
|
||||
set fontpath
|
||||
set psdir
|
||||
set fit brief errorvariables nocovariancevariables errorscaling prescale nowrap v5
|
||||
GNUTERM = "qt"
|
||||
I = {0.0, 1.0}
|
||||
VoxelDistance = 0.0
|
||||
#set xtics 100000
|
||||
unset grid
|
||||
## Last datafile plotted: "max_data.dat"
|
||||
plot 'max_data.dat' every 1 index 0 u 1:(-$3 * 2420853) w impulses lw 3 title 'Uniform sampling', \
|
||||
'max_data.dat' every 1 index 0 u 1:(-$3 * $2) w impulses lw 3 title 'Importance sampling' , 0.051806920848 w l title ''
|
||||
#plot 'data.dat' every 1 index 0 u (-$3 * 2420853) w impulses lw 3 title 'Uniform sampling', \
|
||||
# 'data.dat' every 1 index 0 u (-$3 * $2) w impulses lw 3 title 'Importance sampling'
|
||||
|
||||
# Zoomed plot
|
||||
set grid
|
||||
set object 1 rect from screen 0.45, screen 0.3 to screen 0.94, screen 0.8 behind
|
||||
set object 1 rect fc rgb "white" fillstyle solid 1.0 # fully opaque white background
|
||||
set size 0.5, 0.5 # smaller plot size
|
||||
set origin 0.45, 0.3 # position the zoomed plot
|
||||
set xrange [0:3115] # set the x-range for the zoom
|
||||
set yrange [*:*] # auto-scale y-axis based on the zoomed data
|
||||
unset xlabel
|
||||
unset ylabel
|
||||
unset key
|
||||
replot
|
||||
|
||||
# Finish multiplot
|
||||
unset multiplot
|
||||
# EOF
|
||||
|
@ -87,7 +87,7 @@
|
||||
|
||||
\begin{abstract}
|
||||
We introduce a novel algorithm that leverages stochastic sampling
|
||||
techniques to approximate the perturbative triples correction in the
|
||||
techniques to compute the perturbative triples correction in the
|
||||
coupled-cluster (CC) framework.
|
||||
By combining elements of randomness and determinism, our algorithm
|
||||
achieves a favorable balance between accuracy and computational cost.
|
||||
@ -118,14 +118,11 @@ that were previously computationally prohibitive.
|
||||
\label{sec:introduction}
|
||||
|
||||
Coupled cluster (CC) theory is an accurate quantum mechanical approach widely used in computational chemistry to describe the electronic structure of atoms and molecules.\cite{Cizek_1966,Cizek_1969,Paldus_1992}
|
||||
In recent years, CC theories for both ground state and excited states have received considerable attention in the context of material
|
||||
In recent years, CC theories for both ground state and excited states
|
||||
have received considerable attention in the context of material
|
||||
science due to its good balance between accuracy and computational cost.\cite{APeriodicEquaGallo2021,Gaussian.based.James.2017}
|
||||
CC offers a systematic and rigorous framework for accurate predictions of
|
||||
molecular properties and reactions by accounting for electron correlation
|
||||
effects beyond the mean-field approximation. The CC framework starts with a
|
||||
parameterized wave function, typically referred to as the CC wave function,
|
||||
which is expressed as an exponential series of particle-hole excitation
|
||||
operators acting on a reference state:
|
||||
CC offers a systematic and rigorous framework for accurate predictions of molecular properties and reactions by accounting for electron correlation effects beyond the mean-field approximation.
|
||||
The CC framework starts with a parameterized wave function, typically referred to as the CC wave function, which is expressed as an exponential series of particle-hole excitation operators acting on a reference state:
|
||||
\begin{equation}
|
||||
\ket{\Psi_{\text{CC}}} = e^{\hat{T}} \ket{\Phi}
|
||||
\end{equation}
|
||||
@ -207,7 +204,7 @@ Thus, the computational expense of calculating the sample, which scales as $N_\t
|
||||
Consequently, employing a sufficient number of Monte Carlo samples to ensure that each contribution is selected at least once results in a total computational cost that is only negligibly higher than that of an exact computation.
|
||||
|
||||
|
||||
To reduce the variance, the samples are drawn using the probability
|
||||
To reduce the variance, we apply importance sampling: the samples are drawn using the probability
|
||||
\begin{equation}
|
||||
P^{abc} = \frac{1}{\mathcal{N}} \frac{1}{\max \left(\epsilon_{\min}, \epsilon_a + \epsilon_b + \epsilon_c \right)}
|
||||
\end{equation}
|
||||
@ -219,7 +216,18 @@ E_{(T)} = \left\langle \frac{E^{abc}}{P^{abc}} \right \rangle_{P^{abc}} =
|
||||
\end{equation}
|
||||
where $n^{abc}$ is the number of times the triplet $(a,b,c)$ was drawn with probability $P^{abc}$.
|
||||
|
||||
This approach effectively reduces the statistical error bars by approximately a factor of two for the same computational expense due to two primary reasons: i) the estimator exhibits reduced fluctuations, ii) triplet combinations with low-energy orbitals are significantly more likely to be selected than others, enhancing the efficiency of memoization.
|
||||
\begin{figure}[t]
|
||||
\centering
|
||||
\includegraphics[width=\columnwidth]{buckets.pdf}
|
||||
\caption{%
|
||||
Ratios $\frac{E^{abc}}{P^{abc}}$ obtained with the data of benzene/cc-pVTZ, using uniform or importance sampling.
|
||||
Every bucket, delimited by vertical bars, contains a number of triplets such that the sum
|
||||
\(\sum_{(a,b,c)}P^{abc}\) remains as uniform as possible. The zoomed window corresponds to the first bucket. The high fluctuations occurring in the first buckets are reduced by importance sampling.
|
||||
\label{fig:buckets}
|
||||
}
|
||||
\end{figure}
|
||||
|
||||
This approach effectively reduces the statistical error bars by approximately a factor of two for the same computational expense due to two primary reasons: i) the estimator exhibits reduced fluctuations, ii) triplet combinations with low-energy orbitals are significantly more likely to be selected than others, enhancing the efficiency of memoization (see Fig.~\ref{fig:buckets}).
|
||||
|
||||
We employ the inverse transform sampling technique to select samples, where an array of pairs $\qty(P^{abc}, (a,b,c))$ is stored.
|
||||
To further reduce the variance of the samples, this array is sorted in descending order based on $P^{abc}$ and subsequently partitioned into buckets, $B$, as can be seen diagrammatically in Figure~\ref{fig:buckets}.
|
||||
@ -228,18 +236,6 @@ as possible across all buckets.
|
||||
As each bucket is equally probable, samples are defined as combinations of triplets, with one triplet drawn from each bucket.
|
||||
Should the values of $E^{abc}$ be skewed, this advanced refinement significantly diminishes the variance.
|
||||
|
||||
\begin{figure}[h]
|
||||
\centering
|
||||
\includegraphics{buckets.pdf}
|
||||
\caption{%
|
||||
Diagrammatic representation of the bucket partition of the triplets \(a,b,c\).
|
||||
Every bucket \(B_i\) contains a number of triplets such that the sum
|
||||
\(\sum_{(a,b,c)}P^{abc}\) remains as uniform as possible.
|
||||
\label{fig:buckets}
|
||||
}
|
||||
\end{figure}
|
||||
|
||||
|
||||
The total perturbative contribution is computed as the aggregate of contributions from various buckets:
|
||||
\begin{equation}
|
||||
E_{(T)} = \sum_B E_B = \sum_B\sum_{(a,b,c) \in B} E^{abc}.
|
||||
@ -262,25 +258,6 @@ Therefore, it is possible to obtain the exact contribution, characterized by zer
|
||||
\subsection{Implementation Details}
|
||||
\label{sec:implementation}
|
||||
|
||||
The algorithm presented in Algorithm~\ref{alg:stoch} was implemented in the \textsc{Quantum Package} software.
|
||||
\cite{garniron_2019}
|
||||
The stochastic algorithm is implemented using OpenMP tasks, where each task
|
||||
consists in the computation of a single component $E^{abc}$.
|
||||
The computation of the running average and statistical error is executed every second,
|
||||
for printing or for exiting when the statistical error gets below a given threshold.
|
||||
|
||||
The number of samples $N^{abc}$ of each triplet $(a,b,c)$ is initialized to $-1$, to identify
|
||||
the contributions that have not been already computed.
|
||||
An outer \emph{for loop} runs over the maximum number of iteration, equal to
|
||||
the number of different triplets $N_{\text{triplets}}$.
|
||||
|
||||
Within a loop iteration, the index of the first non-computed triplet $(a,b,c)$ is identified, and the task associated with its computation is sent to the task queue.
|
||||
As this triplet has never been drawn, $N^{abc}$ is set to zero.
|
||||
Then, a triplet $(a,b,c)$ is drawn randomly.
|
||||
If the $E^{abc}$ has not been computed (identified by $N^{abc}=-1$), the number of samples is set to zero and the task for the computation of this contribution is enqueued.
|
||||
In any case, $N^{abc}$ is then incremented.
|
||||
|
||||
|
||||
\begin{algorithm}[H]
|
||||
\caption{\label{alg:stoch} Pseudo-code for the computation of the perturbative triples correction implemented in Quantum Package. $i_\text{min}$ denotes the first non-computed triplet, $w_{\text{accu}}$ contains the cumulative probability density, $\text{Search}(A, x)$ searches for $x$ in array $A$, $\text{First}(i)$ and $\text{Last}(i)$ return the first last indices belonging to bucket $i$.}
|
||||
$i_{\text{min}} \leftarrow 1$ ;
|
||||
@ -345,6 +322,25 @@ $t_0 \leftarrow \text{WallClockTime}()$ \;
|
||||
}
|
||||
\end{algorithm}
|
||||
|
||||
The algorithm presented in Algorithm~\ref{alg:stoch} was implemented in the \textsc{Quantum Package} software.
|
||||
\cite{garniron_2019}
|
||||
The stochastic algorithm is implemented using OpenMP tasks, where each task
|
||||
consists in the computation of a single component $E^{abc}$.
|
||||
The computation of the running average and statistical error is executed every second,
|
||||
for printing or for exiting when the statistical error gets below a given threshold.
|
||||
|
||||
The number of samples $N^{abc}$ of each triplet $(a,b,c)$ is initialized to $-1$, to identify
|
||||
the contributions that have not been already computed.
|
||||
An outer \emph{for loop} runs over the maximum number of iteration, equal to
|
||||
the number of different triplets $N_{\text{triplets}}$.
|
||||
|
||||
Within a loop iteration, the index of the first non-computed triplet $(a,b,c)$ is identified, and the task associated with its computation is sent to the task queue.
|
||||
As this triplet has never been drawn, $N^{abc}$ is set to zero.
|
||||
Then, a triplet $(a,b,c)$ is drawn randomly.
|
||||
If the $E^{abc}$ has not been computed (identified by $N^{abc}=-1$), the number of samples is set to zero and the task for the computation of this contribution is enqueued.
|
||||
In any case, $N^{abc}$ is then incremented.
|
||||
|
||||
|
||||
|
||||
\subsection{Convergence of the statistical error in benzene}
|
||||
|
||||
@ -353,13 +349,13 @@ The benzene molecule serves as our reference system for conducting frozen-core C
|
||||
Essentially, this involves the correlation of 30 (\(N_\text{o} = 15\)) electrons using either 258 (\(N_\text{v} = 243\)) or 503 (\(N_\text{v} = 488\)) molecular orbitals.
|
||||
The calculations were performed on an AMD \textsc{Epyc} 7513 dual socket server (64 cores in total).
|
||||
|
||||
\begin{figure}
|
||||
\begin{figure}[tb]
|
||||
\includegraphics[width=\columnwidth]{benzene_tz.pdf}
|
||||
\includegraphics[width=\columnwidth]{benzene_qz.pdf}
|
||||
\caption{\label{fig:benzene} Energy convergence of benzene plotted against the program execution time, showing comparisons between the cc-pVTZ (upper curve) and cc-pVQZ (lower curve) basis sets. The blue lines indicate the exact CCSD(T) energies.}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}
|
||||
\begin{figure}[tb]
|
||||
\includegraphics[width=\columnwidth]{benzene_err.pdf}
|
||||
\caption{\label{fig:benzene_err} Convergence of the statistical error of the perturbative triples contribution in benzene as a function of the percentage of computed contributions, for both cc-pVTZ and cc-pVQZ basis sets.}
|
||||
\end{figure}
|
||||
@ -405,7 +401,7 @@ where $E(r)$ represents the energy at a bond length $r$, $D_e$ the depth of the
|
||||
\end{equation}
|
||||
with $\mu$ denoting the reduced mass of the \ce{CuCl} molecule, and $c$ the speed of light.
|
||||
|
||||
\begin{figure}
|
||||
\begin{figure}[tb]
|
||||
\includegraphics[width=\columnwidth]{cucl.pdf}
|
||||
\caption{\label{fig:cucl} CCSD(T) energies of CuCl obtained with the exact CCSD(T) algorithm (stars), the stochastic algorithm using only 1\% of the contributions (error bars), and the Morse potential fitting the points obtained with the stochastic algorithm.}
|
||||
\end{figure}
|
||||
@ -430,7 +426,7 @@ We linked our code with the Intel MKL library for BLAS operations.
|
||||
Additionally, we executed the code on an ARM Q80 server featuring 80 cores at \SI{2.8}{\giga\hertz}, and although performance counters were unavailable, we approximated the Flop/s rate by comparing the total execution time with that measured on the AMD CPU.
|
||||
For this, we utilized the \textsc{ArmPL} library for BLAS operations.
|
||||
|
||||
\begin{table*}
|
||||
\begin{table*}[htb]
|
||||
\begin{ruledtabular}
|
||||
\begin{tabular}{lcccccc}
|
||||
CPU & $N_{\text{cores}}$ & $V$ & $F$ & Memory Bandwidth & Peak DP & Measured performance \\
|
||||
@ -464,7 +460,7 @@ By leveraging memory bandwidth and double precision throughput peak, we determin
|
||||
|
||||
\subsection{Parallel efficiency}
|
||||
|
||||
\begin{figure}
|
||||
\begin{figure}[tb]
|
||||
\includegraphics[width=\columnwidth]{scaling.pdf}
|
||||
\caption{\label{fig:speedup} Parallel speedup obtained with the ARM Q80 and AMD \textsc{Epyc} servers.}
|
||||
\end{figure}
|
||||
|
Loading…
Reference in New Issue
Block a user