From 81eb0aefbd5329dc7614323a650663b891ef8ec8 Mon Sep 17 00:00:00 2001 From: Christian Eltzschig Date: Mon, 23 Sep 2024 14:22:56 +0200 Subject: [PATCH 1/3] [#4] Update benchmark numbers --- .../benchmark_architecture_os_comparision.dat | 16 ++-- ...chmark_mechanism_comparision_i7_13700h.dat | 83 +++++++++++++++++++ .../benchmark_mechanism_comparision_rp4.dat | 34 ++++---- ...k_mechanism_comparision_ryzen_7_7840s.dat} | 0 4 files changed, 108 insertions(+), 25 deletions(-) create mode 100644 internal/plots/benchmark_mechanism_comparision_i7_13700h.dat rename internal/plots/{benchmark_mechanism_comparision.dat => benchmark_mechanism_comparision_ryzen_7_7840s.dat} (100%) diff --git a/internal/plots/benchmark_architecture_os_comparision.dat b/internal/plots/benchmark_architecture_os_comparision.dat index a69071fc9..dd8e3798f 100644 --- a/internal/plots/benchmark_architecture_os_comparision.dat +++ b/internal/plots/benchmark_architecture_os_comparision.dat @@ -1,8 +1,8 @@ -# System OS Latency Same Core Latency Different Cores - "Raspberry Pi 4B" "Linux" 824 0 - "Intel i7-13700H" "Linux" 92 326 - "Intel i7-8565U" "Linux" 270 263 - "Intel i7-7500U" "Linux" 276 - "AMD Ryzen 7 7840S" "Linux" 109 222 - "AMD Ryzen 9 5950X" "Windows" 205 - "AMD Ryzen 9 5950X" "Linux" 168 173 +# System OS Latency Same Core (HyperThreading) Latency Different Cores + "Raspberry Pi 4B" "Linux" 774 0 + "Intel i7-13700H" "Linux" 92 326 + "Intel i7-8565U" "Linux" 270 263 + "Intel i7-7500U" "Linux" 276 0 + "AMD Ryzen 7 7840S" "Linux" 109 222 + "AMD Ryzen 9 5950X" "Windows" 205 0 + "AMD Ryzen 9 5950X" "Linux" 168 173 diff --git a/internal/plots/benchmark_mechanism_comparision_i7_13700h.dat b/internal/plots/benchmark_mechanism_comparision_i7_13700h.dat new file mode 100644 index 000000000..e6480fafc --- /dev/null +++ b/internal/plots/benchmark_mechanism_comparision_i7_13700h.dat @@ -0,0 +1,83 @@ +# i7-13700H +# iceoryx2 (index 0) +# X Y + 0.064 0.098 + 0.128 0.094 + 0.256 0.092 + 0.512 0.095 + 1 0.095 + 2 0.095 + 4 0.096 + 8 0.094 + 16 0.093 + 32 0.092 + 64 0.099 + 128 0.096 + 256 0.097 + 512 0.093 + 1024 0.094 + 2048 0.095 + 4096 0.094 + + +# iceoryx (index 1) +# X Y + 0.064 1.1 + 0.128 1.1 + 0.256 1.1 + 0.512 1.1 + 1 1.1 + 2 1.1 + 4 1.1 + 8 1.1 + 16 1.1 + 32 1.1 + 64 1.1 + 128 1.1 + 256 1.1 + 512 1.1 + 1024 1.1 + 2048 1.1 + 4096 1.1 + + +# message queue (index 2) +# X Y + 0.064 1.1 + 0.128 1.1 + 0.256 1.2 + 0.512 1.2 + 1 1.3 + 2 1.6 + 4 2.2 + 8 3.4 + 16 5.6 + 32 10. + 64 19. + 128 33. + 256 63. + 512 120. + 1024 250. + 2048 490. + 4096 980. + + +# unix domain sockets (index 3) +# X Y + 0.064 1.6 + 0.128 1.6 + 0.256 1.6 + 0.512 1.6 + 1 1.8 + 2 2. + 4 2.3 + 8 3.4 + 16 5.6 + 32 10. + 64 19. + 128 36. + 256 70. + 512 140. + 1024 280. + 2048 560. + 4096 1100. diff --git a/internal/plots/benchmark_mechanism_comparision_rp4.dat b/internal/plots/benchmark_mechanism_comparision_rp4.dat index c1f9d3db6..42e588be1 100644 --- a/internal/plots/benchmark_mechanism_comparision_rp4.dat +++ b/internal/plots/benchmark_mechanism_comparision_rp4.dat @@ -1,23 +1,23 @@ # Raspberry Pi 4 Model B # iceoryx2 (index 0) # X Y - 0.064 0.875 - 0.128 0.875 - 0.256 0.875 - 0.512 0.875 - 1 0.875 - 2 0.875 - 4 0.875 - 8 0.875 - 16 0.875 - 32 0.875 - 64 0.875 - 128 0.875 - 256 0.875 - 512 0.875 - 1024 0.875 - 2048 0.875 - 4096 0.875 + 0.064 0.922 + 0.128 0.951 + 0.256 0.850 + 0.512 0.775 + 1 0.787 + 2 0.812 + 4 0.858 + 8 0.890 + 16 0.790 + 32 0.783 + 64 0.791 + 128 0.798 + 256 0.823 + 512 0.852 + 1024 0.779 + 2048 0.797 + 4096 0.889 # iceoryx (index 1) diff --git a/internal/plots/benchmark_mechanism_comparision.dat b/internal/plots/benchmark_mechanism_comparision_ryzen_7_7840s.dat similarity index 100% rename from internal/plots/benchmark_mechanism_comparision.dat rename to internal/plots/benchmark_mechanism_comparision_ryzen_7_7840s.dat From 99d2f7ed6dcb7e4c9d2cb31a5fdb735499159dee Mon Sep 17 00:00:00 2001 From: Christian Eltzschig Date: Mon, 23 Sep 2024 16:05:45 +0200 Subject: [PATCH 2/3] [#4] Update plots --- README.md | 10 +- internal/plots/benchmark_architecture.svg | 71 +++--- internal/plots/benchmark_mechanism.svg | 207 +++++++++--------- ...t_benchmark_architecture_os_comparision.gp | 8 +- .../plot_benchmark_mechanism_comparision.gp | 10 +- 5 files changed, 151 insertions(+), 155 deletions(-) diff --git a/README.md b/README.md index 32f0a9979..b6deda9fe 100644 --- a/README.md +++ b/README.md @@ -89,11 +89,11 @@ The documentation can be found at: #### Benchmark-System -* **CPU:** AMD Ryzen 7 7840S with Radeon 780M Graphics -* **OS:** Linux 6.8.5-arch1-1 #1 SMP PREEMPT_DYNAMIC GNU/Linux -* **Compiler:** - * rustc 1.77.1 - * gcc 13.2.1 20230801 +- **CPU:** Intel i7 13700h +- **OS:** Linux 6.10.10-arch1-1 #1 SMP PREEMPT_DYNAMIC +- **Compiler:** + - rustc 1.81.0 + - gcc 14.2.1 20240910 ### Comparision Of Architectures diff --git a/internal/plots/benchmark_architecture.svg b/internal/plots/benchmark_architecture.svg index 5eb084147..703d48174 100644 --- a/internal/plots/benchmark_architecture.svg +++ b/internal/plots/benchmark_architecture.svg @@ -7,7 +7,7 @@ > Gnuplot -Produced by GNUPLOT 6.0 patchlevel 0 +Produced by GNUPLOT 6.0 patchlevel 1 @@ -142,82 +142,73 @@ - + - + 100 - + - + 200 - + - + 300 - + - + 400 - + - + 500 - + - + 600 - + - + 700 - - - - - 800 - - - - - 900 + 800 @@ -226,30 +217,30 @@ - 'benchmark_architecture_os_comparision.dat' using (0.5*$3):0:(0.5*$3):(myBoxWidth/2.):ytic(sprintf("%s\n{/*0.8 %s}", stringcolumn(1), stringcolumn(2))) + 'benchmark_architecture_os_comparision.dat' using (0.5*$3):0:(0.5*$3):((myBoxWidth)/2.):ytic(sprintf("%s\n{/*0.8 %s}", stringcolumn(1), stringcolumn(2))) - + - - + + - - + + - - + + - - + + - - + + - - + + - + diff --git a/internal/plots/benchmark_mechanism.svg b/internal/plots/benchmark_mechanism.svg index 8c80aa747..709db394d 100644 --- a/internal/plots/benchmark_mechanism.svg +++ b/internal/plots/benchmark_mechanism.svg @@ -7,7 +7,7 @@ > Gnuplot -Produced by GNUPLOT 6.0 patchlevel 0 +Produced by GNUPLOT 6.0 patchlevel 1 @@ -49,90 +49,89 @@ - + - + - + 0.1 - - + - + 1 - - + - + 10 - - + - + 100 - - + - + 1000 - + @@ -250,24 +249,24 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + @@ -278,24 +277,24 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + @@ -306,24 +305,24 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + @@ -334,24 +333,24 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + @@ -369,7 +368,7 @@ - Arch Linux on AMD Ryzen 7 7840S + Arch Linux on Intel i7 13700h diff --git a/internal/plots/plot_benchmark_architecture_os_comparision.gp b/internal/plots/plot_benchmark_architecture_os_comparision.gp index 0f0384019..d5285696e 100755 --- a/internal/plots/plot_benchmark_architecture_os_comparision.gp +++ b/internal/plots/plot_benchmark_architecture_os_comparision.gp @@ -2,7 +2,8 @@ color_graph_caption='#595959' color_graph_grid='#d6d7d9' -color_graph_box='#528c19' +color_graph_box='#44444444' +color_graph_box_multicore='#528c19' output_height=650 output_width=1400 @@ -35,4 +36,7 @@ set output 'benchmark_architecture.svg' myBoxWidth = 0.7 set offsets 0,0,0.5-myBoxWidth/2.,0.5 -plot 'benchmark_architecture_os_comparision.dat' using (0.5*$3):0:(0.5*$3):(myBoxWidth/2.):ytic(sprintf("%s\n{/*0.8 %s}", stringcolumn(1), stringcolumn(2))) with boxxy lc rgb color_graph_box +plot 'benchmark_architecture_os_comparision.dat' using (0.5*$3):0:(0.5*$3):((myBoxWidth)/2.):ytic(sprintf("%s\n{/*0.8 %s}", stringcolumn(1), stringcolumn(2))) with boxxy lc rgb color_graph_box_multicore + +# plot 'benchmark_architecture_os_comparision.dat' using (0.5*$4):0:(0.5*$4):((myBoxWidth)/2.):ytic(sprintf("%s\n{/*0.8 %s}", stringcolumn(1), stringcolumn(2))) with boxxy lc rgb color_graph_box, \ +# '' using (0.5*$3):0.5:(0.5*$3):((myBoxWidth)/2.):ytic(sprintf("%s\n{/*0.8 %s}", stringcolumn(1), stringcolumn(2))) with boxxy lc rgb color_graph_box_multicore diff --git a/internal/plots/plot_benchmark_mechanism_comparision.gp b/internal/plots/plot_benchmark_mechanism_comparision.gp index 5f66be3f5..65e8b8bfd 100755 --- a/internal/plots/plot_benchmark_mechanism_comparision.gp +++ b/internal/plots/plot_benchmark_mechanism_comparision.gp @@ -1,5 +1,8 @@ #!/usr/bin/gnuplot -p +data_file="benchmark_mechanism_comparision_i7_13700h.dat" +system_type="Arch Linux on Intel i7 13700h" + color_graph_caption='#595959' color_graph_grid='#d6d7d9' color_graph_box='#738f4d' @@ -25,14 +28,13 @@ set rmargin 5 set bmargin 6 set title "Benchmark" font ",36" offset 0,-0.75 -set x2label "Arch Linux on AMD Ryzen 7 7840S" font ",24" +set x2label system_type font ",24" set xlabel "payload size [KB]" font ",24" offset 0,-1.5 set ylabel "latency [µs]" font ",24" offset -1.5,0 set logscale x 2 set logscale y 10 -set logscale y2 10 set xrange [0:4096] -set yrange [0:5000] +set yrange [0.08:2000] set key left enhanced font ",16" width -3 set object rectangle from screen -0.1,-0.1 to screen 1.1,1.1 fs noborder solid 0.7 fc rgb "#FFFFFF" behind set term svg enhanced font "sans" size output_width,output_height @@ -55,7 +57,7 @@ set style line 4 \ linetype 1 linewidth 4 \ pointtype 9 pointsize 1.2 -plot 'benchmark_mechanism_comparision.dat' index 0 with linespoints linestyle 1 title "iceoryx2", \ +plot data_file index 0 with linespoints linestyle 1 title "iceoryx2", \ '' index 1 with linespoints linestyle 2 title "iceoryx", \ '' index 2 with linespoints linestyle 3 title "message queue", \ '' index 3 with linespoints linestyle 4 title "unix domain socket" \ From 05cc966a9842e21bdccb447b68d64c2368f0834a Mon Sep 17 00:00:00 2001 From: Christian Eltzschig Date: Tue, 24 Sep 2024 11:14:55 +0200 Subject: [PATCH 3/3] [#4] Store old benchmark results and compare them to v0.4 --- README.md | 10 +- .../benchmark_architecture_os_comparision.dat | 12 +- internal/plots/benchmark_progression.svg | 312 ++++++++++++++++++ ...architecture_os_comparision_progression.gp | 44 +++ 4 files changed, 367 insertions(+), 11 deletions(-) create mode 100644 internal/plots/benchmark_progression.svg create mode 100755 internal/plots/plot_benchmark_architecture_os_comparision_progression.gp diff --git a/README.md b/README.md index b6deda9fe..0255036f8 100644 --- a/README.md +++ b/README.md @@ -89,11 +89,11 @@ The documentation can be found at: #### Benchmark-System -- **CPU:** Intel i7 13700h -- **OS:** Linux 6.10.10-arch1-1 #1 SMP PREEMPT_DYNAMIC -- **Compiler:** - - rustc 1.81.0 - - gcc 14.2.1 20240910 +* **CPU:** Intel i7 13700h +* **OS:** Linux 6.10.10-arch1-1 #1 SMP PREEMPT_DYNAMIC +* **Compiler:** + * rustc 1.81.0 + * gcc 14.2.1 20240910 ### Comparision Of Architectures diff --git a/internal/plots/benchmark_architecture_os_comparision.dat b/internal/plots/benchmark_architecture_os_comparision.dat index dd8e3798f..0fbd5ca36 100644 --- a/internal/plots/benchmark_architecture_os_comparision.dat +++ b/internal/plots/benchmark_architecture_os_comparision.dat @@ -1,8 +1,8 @@ # System OS Latency Same Core (HyperThreading) Latency Different Cores - "Raspberry Pi 4B" "Linux" 774 0 - "Intel i7-13700H" "Linux" 92 326 - "Intel i7-8565U" "Linux" 270 263 - "Intel i7-7500U" "Linux" 276 0 - "AMD Ryzen 7 7840S" "Linux" 109 222 - "AMD Ryzen 9 5950X" "Windows" 205 0 "AMD Ryzen 9 5950X" "Linux" 168 173 + "AMD Ryzen 9 5950X" "Windows" 205 0 + "AMD Ryzen 7 7840S" "Linux" 109 222 + "Intel i7-7500U" "Linux" 276 0 + "Intel i7-8565U" "Linux" 270 263 + "Intel i7-13700H" "Linux" 92 326 + "Raspberry Pi 4B" "Linux" 774 0 diff --git a/internal/plots/benchmark_progression.svg b/internal/plots/benchmark_progression.svg new file mode 100644 index 000000000..0ecabf2f6 --- /dev/null +++ b/internal/plots/benchmark_progression.svg @@ -0,0 +1,312 @@ + + + +Gnuplot +Produced by GNUPLOT 5.4.10 patchlevel 9 (Gentoo revision r0) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AMD Ryzen 9 5950X + + + Linux + + + + + + + + + AMD Ryzen 9 5950X + + + Windows + + + + + + + + + AMD Ryzen 7 7840S + + + Linux + + + + + + + + + Intel i7-7500U + + + Linux + + + + + + + + + Intel i7-8565U + + + Linux + + + + + + + + + Intel i7-13700H + + + Linux + + + + + + + + + Raspberry Pi 4B + + + Linux + + + + + + + + + 0 + + + + + + + + + 100 + + + + + + + + + 200 + + + + + + + + + 300 + + + + + + + + + 400 + + + + + + + + + 500 + + + + + + + + + 600 + + + + + + + + + 700 + + + + + + + + + 800 + + + + + + + + + 900 + + + + + + + + + v0.3 [gray] + + + + + + v0.4 [green] + + + + + latency [ns] (less is better) + + + + + iceoryx2 Latency Improvement v0.3 -> v0.4 + + + + + 'archive/benchmark_architecture_os_comparision-v0.3.dat' using (0.5*$3):0:(0.5*$3):((myBoxWidth)/2.):ytic(sprintf("%s\n{/*0.8 %s}", stringcolumn(1), stringcolumn(2))) + + + + + + + + + + + + + + + + + + + + + + + + + 'benchmark_architecture_os_comparision.dat' using (0.5*$3):0:(0.5*$3):((myBoxWidth)/2.):ytic(sprintf("%s\n{/*0.8 %s}", stringcolumn(1), stringcolumn(2))) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/internal/plots/plot_benchmark_architecture_os_comparision_progression.gp b/internal/plots/plot_benchmark_architecture_os_comparision_progression.gp new file mode 100755 index 000000000..30367f1b9 --- /dev/null +++ b/internal/plots/plot_benchmark_architecture_os_comparision_progression.gp @@ -0,0 +1,44 @@ +#!/usr/bin/gnuplot -p + +color_graph_caption='#595959' +color_graph_grid='#d6d7d9' +color_graph_box_old='#bb000000' +color_graph_box_new='#44528c19' +output_height=650 +output_width=1400 + +set style line 101 lc rgb color_graph_caption lt 1 lw 1 +set tics center nomirror out scale 1 font ",20" + +set style line 102 lc rgb color_graph_grid lt 0 lw 1 +set grid back ls 102 + +set tmargin 5 +set lmargin 25 +set rmargin 5 +set bmargin 5 + +set xtics in offset 0,-0.5 scale 0.5 +set ytics right scale 0 +set x2label "iceoryx2 Latency Improvement v0.3 -> v0.4" offset 0,-0.5 font ",36" +set xlabel 'latency [ns] (less is better)' offset 0,-1 font ",24" +set ylabel offset -10,0 +set y2label "v0.3 [gray] \n\nv0.4 [green]" offset -6,12 rotate by 0 + +set yrange [0:*] # start at zero, find max from the data +set xrange [0:950] # start at zero, find max from the data +set style fill solid # solid color boxes + +unset key + +set object rectangle from screen -0.1,-0.1 to screen 1.1,1.1 fs noborder solid 0.7 fc rgb "#FFFFFF" behind +set term svg enhanced font "sans" size output_width,output_height +set output 'benchmark_progression.svg' + +myBoxWidth = 0.7 +set offsets 0,0,0.5-myBoxWidth/2.,0.5 + +plot \ + 'archive/benchmark_architecture_os_comparision-v0.3.dat' using (0.5*$3):0:(0.5*$3):((myBoxWidth)/2.):ytic(sprintf("%s\n{/*0.8 %s}", stringcolumn(1), stringcolumn(2))) with boxxy lc rgb color_graph_box_old, \ + 'benchmark_architecture_os_comparision.dat' using (0.5*$3):0:(0.5*$3):((myBoxWidth)/2.):ytic(sprintf("%s\n{/*0.8 %s}", stringcolumn(1), stringcolumn(2))) with boxxy lc rgb color_graph_box_new, \ +