From 465b9ba07c47e1957ac97ec44984bf682422448c Mon Sep 17 00:00:00 2001 From: Tibor Frank Date: Wed, 2 Oct 2019 13:07:19 +0200 Subject: [PATCH] PAL: Add sortable html table for comparisons Change-Id: I2d690685c5728e5f36b09d542e0f6d1a08cd151a Signed-off-by: Tibor Frank --- .../comparisons/3n-skx_vs_2n-skx_testbeds.rst | 17 ++- .../comparisons/3n-skx_vs_3n-hsw_testbeds.rst | 13 +- .../comparisons/current_vs_previous_release.rst | 136 +++++++++++++++++-- .../comparisons/nic_comparison.rst | 26 +++- resources/tools/presentation/generator_tables.py | 151 ++++++++++++++++++--- 5 files changed, 300 insertions(+), 43 deletions(-) diff --git a/docs/report/vpp_performance_tests/comparisons/3n-skx_vs_2n-skx_testbeds.rst b/docs/report/vpp_performance_tests/comparisons/3n-skx_vs_2n-skx_testbeds.rst index a176f26b25..bb00f8663d 100644 --- a/docs/report/vpp_performance_tests/comparisons/3n-skx_vs_2n-skx_testbeds.rst +++ b/docs/report/vpp_performance_tests/comparisons/3n-skx_vs_2n-skx_testbeds.rst @@ -21,8 +21,10 @@ skx) and 2-Node Skylake (2n-skx) physical testbed types, in 1-core, NDR Comparison ~~~~~~~~~~~~~~ -Comparison tables in ASCII and CSV formats: +Comparison tables in HTML, ASCII and CSV formats: + - `HTML 1c NDR comparison <../../_static/vpp/performance-compare-topologies-3n-skx-2n-skx-1c-ndr.html>`_ + - `HTML 2c NDR comparison <../../_static/vpp/performance-compare-topologies-3n-skx-2n-skx-2c-ndr.html>`_ - `ASCII 1c NDR comparison <../../_static/vpp/performance-compare-topologies-3n-skx-2n-skx-1c-ndr.txt>`_ - `ASCII 2c NDR comparison <../../_static/vpp/performance-compare-topologies-3n-skx-2n-skx-2c-ndr.txt>`_ - `CSV 1c NDR comparison <../../_static/vpp/performance-compare-topologies-3n-skx-2n-skx-1c-ndr.csv>`_ @@ -31,18 +33,23 @@ Comparison tables in ASCII and CSV formats: PDR Comparison ~~~~~~~~~~~~~~ -Comparison tables in ASCII and CSV formats: +Comparison tables in HTML, ASCII and CSV formats: + - `HTML 1c PDR comparison <../../_static/vpp/performance-compare-topologies-3n-skx-2n-skx-1c-pdr.html>`_ + - `HTML 2c PDR comparison <../../_static/vpp/performance-compare-topologies-3n-skx-2n-skx-2c-pdr.html>`_ - `ASCII 1c PDR comparison <../../_static/vpp/performance-compare-topologies-3n-skx-2n-skx-1c-pdr.txt>`_ - - `ASCII 1c PDR comparison <../../_static/vpp/performance-compare-topologies-3n-skx-2n-skx-2c-pdr.txt>`_ - - `CSV 2c PDR comparison <../../_static/vpp/performance-compare-topologies-3n-skx-2n-skx-1c-pdr.csv>`_ + - `ASCII 2c PDR comparison <../../_static/vpp/performance-compare-topologies-3n-skx-2n-skx-2c-pdr.txt>`_ + - `CSV 1c PDR comparison <../../_static/vpp/performance-compare-topologies-3n-skx-2n-skx-1c-pdr.csv>`_ - `CSV 2c PDR comparison <../../_static/vpp/performance-compare-topologies-3n-skx-2n-skx-2c-pdr.csv>`_ MRR Comparison ~~~~~~~~~~~~~~ -Comparison tables in ASCII and CSV formats: +Comparison tables in HTML, ASCII and CSV formats: + - `HTML 1c MRR comparison <../../_static/vpp/performance-compare-topologies-3n-skx-2n-skx-1c-mrr.html>`_ + - `HTML 2c MRR comparison <../../_static/vpp/performance-compare-topologies-3n-skx-2n-skx-2c-mrr.html>`_ + - `HTML 4c MRR comparison <../../_static/vpp/performance-compare-topologies-3n-skx-2n-skx-4c-mrr.html>`_ - `ASCII 1c MRR comparison <../../_static/vpp/performance-compare-topologies-3n-skx-2n-skx-1c-mrr.txt>`_ - `ASCII 2c MRR comparison <../../_static/vpp/performance-compare-topologies-3n-skx-2n-skx-2c-mrr.txt>`_ - `ASCII 4c MRR comparison <../../_static/vpp/performance-compare-topologies-3n-skx-2n-skx-4c-mrr.txt>`_ diff --git a/docs/report/vpp_performance_tests/comparisons/3n-skx_vs_3n-hsw_testbeds.rst b/docs/report/vpp_performance_tests/comparisons/3n-skx_vs_3n-hsw_testbeds.rst index 84bdbeb620..a0fedc076d 100644 --- a/docs/report/vpp_performance_tests/comparisons/3n-skx_vs_3n-hsw_testbeds.rst +++ b/docs/report/vpp_performance_tests/comparisons/3n-skx_vs_3n-hsw_testbeds.rst @@ -18,8 +18,10 @@ skx) and 3-Node Haswell (3n-hsw) physical testbed types, in 1-core, NDR Comparison ~~~~~~~~~~~~~~ -Comparison tables in ASCII and CSV formats: +Comparison tables in HTML, ASCII and CSV formats: + - `HTML 1c NDR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-3n-skx-1c-ndr.html>`_ + - `HTML 2c NDR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-3n-skx-2c-ndr.html>`_ - `ASCII 1c NDR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-3n-skx-1c-ndr.txt>`_ - `ASCII 2c NDR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-3n-skx-2c-ndr.txt>`_ - `CSV 1c NDR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-3n-skx-1c-ndr.csv>`_ @@ -28,8 +30,10 @@ Comparison tables in ASCII and CSV formats: PDR Comparison ~~~~~~~~~~~~~~ -Comparison tables in ASCII and CSV formats: +Comparison tables in HTML, ASCII and CSV formats: + - `HTML 1c PDR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-3n-skx-1c-pdr.html>`_ + - `HTML 2c PDR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-3n-skx-2c-pdr.html>`_ - `ASCII 1c PDR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-3n-skx-1c-pdr.txt>`_ - `ASCII 2c PDR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-3n-skx-2c-pdr.txt>`_ - `CSV 1c PDR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-3n-skx-1c-pdr.csv>`_ @@ -38,8 +42,11 @@ Comparison tables in ASCII and CSV formats: MRR Comparison ~~~~~~~~~~~~~~ -Comparison tables in ASCII and CSV formats: +Comparison tables in HTML, ASCII and CSV formats: + - `HTML 1c MRR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-3n-skx-1c-mrr.html>`_ + - `HTML 2c MRR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-3n-skx-2c-mrr.html>`_ + - `HTML 4c MRR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-3n-skx-4c-mrr.html>`_ - `ASCII 1c MRR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-3n-skx-1c-mrr.txt>`_ - `ASCII 2c MRR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-3n-skx-2c-mrr.txt>`_ - `ASCII 4c MRR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-3n-skx-4c-mrr.txt>`_ diff --git a/docs/report/vpp_performance_tests/comparisons/current_vs_previous_release.rst b/docs/report/vpp_performance_tests/comparisons/current_vs_previous_release.rst index 9177e2ae4d..29abb0ac1a 100644 --- a/docs/report/vpp_performance_tests/comparisons/current_vs_previous_release.rst +++ b/docs/report/vpp_performance_tests/comparisons/current_vs_previous_release.rst @@ -36,8 +36,10 @@ results repeatability vary between the test cases. NDR Comparison `````````````` -Comparison tables in ASCII and CSV formats: +Comparison tables in HTML, ASCII and CSV formats: + - `HTML 2t1c NDR comparison <../../_static/vpp/performance-changes-2n-skx-2t1c-ndr.html>`_ + - `HTML 4t2c NDR comparison <../../_static/vpp/performance-changes-2n-skx-4t2c-ndr.html>`_ - `ASCII 2t1c NDR comparison <../../_static/vpp/performance-changes-2n-skx-2t1c-ndr.txt>`_ - `ASCII 4t2c NDR comparison <../../_static/vpp/performance-changes-2n-skx-4t2c-ndr.txt>`_ - `CSV 2t1c NDR comparison <../../_static/vpp/performance-changes-2n-skx-2t1c-ndr.csv>`_ @@ -46,8 +48,10 @@ Comparison tables in ASCII and CSV formats: PDR Comparison `````````````` -Comparison tables in ASCII and CSV formats: +Comparison tables in HTML, ASCII and CSV formats: + - `HTML 2t1c PDR comparison <../../_static/vpp/performance-changes-2n-skx-2t1c-pdr.html>`_ + - `HTML 4t2c PDR comparison <../../_static/vpp/performance-changes-2n-skx-4t2c-pdr.html>`_ - `ASCII 2t1c PDR comparison <../../_static/vpp/performance-changes-2n-skx-2t1c-pdr.txt>`_ - `ASCII 4t2c PDR comparison <../../_static/vpp/performance-changes-2n-skx-4t2c-pdr.txt>`_ - `CSV 2t1c PDR comparison <../../_static/vpp/performance-changes-2n-skx-2t1c-pdr.csv>`_ @@ -56,8 +60,11 @@ Comparison tables in ASCII and CSV formats: MRR Comparison `````````````` -Comparison tables in ASCII and CSV formats: +Comparison tables in HTML, ASCII and CSV formats: + - `HTML 2t1c MRR comparison <../../_static/vpp/performance-changes-2n-skx-2t1c-mrr.html>`_ + - `HTML 4t2c MRR comparison <../../_static/vpp/performance-changes-2n-skx-4t2c-mrr.html>`_ + - `HTML 8t4c MRR comparison <../../_static/vpp/performance-changes-2n-skx-8t4c-mrr.html>`_ - `ASCII 2t1c MRR comparison <../../_static/vpp/performance-changes-2n-skx-2t1c-mrr.txt>`_ - `ASCII 4t2c MRR comparison <../../_static/vpp/performance-changes-2n-skx-4t2c-mrr.txt>`_ - `ASCII 8t4c MRR comparison <../../_static/vpp/performance-changes-2n-skx-8t4c-mrr.txt>`_ @@ -71,8 +78,10 @@ Comparison tables in ASCII and CSV formats: NDR Comparison `````````````` -Comparison tables in ASCII and CSV formats: +Comparison tables in HTML, ASCII and CSV formats: + - `HTML 2t1c NDR comparison <../../_static/vpp/performance-changes-3n-skx-2t1c-ndr.html>`_ + - `HTML 4t2c NDR comparison <../../_static/vpp/performance-changes-3n-skx-4t2c-ndr.html>`_ - `ASCII 2t1c NDR comparison <../../_static/vpp/performance-changes-3n-skx-2t1c-ndr.txt>`_ - `ASCII 4t2c NDR comparison <../../_static/vpp/performance-changes-3n-skx-4t2c-ndr.txt>`_ - `CSV 2t1c NDR comparison <../../_static/vpp/performance-changes-3n-skx-2t1c-ndr.csv>`_ @@ -81,8 +90,10 @@ Comparison tables in ASCII and CSV formats: PDR Comparison `````````````` -Comparison tables in ASCII and CSV formats: +Comparison tables in HTML, ASCII and CSV formats: + - `HTML 2t1c PDR comparison <../../_static/vpp/performance-changes-3n-skx-2t1c-pdr.html>`_ + - `HTML 4t2c PDR comparison <../../_static/vpp/performance-changes-3n-skx-4t2c-pdr.html>`_ - `ASCII 2t1c PDR comparison <../../_static/vpp/performance-changes-3n-skx-2t1c-pdr.txt>`_ - `ASCII 4t2c PDR comparison <../../_static/vpp/performance-changes-3n-skx-4t2c-pdr.txt>`_ - `CSV 2t1c PDR comparison <../../_static/vpp/performance-changes-3n-skx-2t1c-pdr.csv>`_ @@ -91,8 +102,11 @@ Comparison tables in ASCII and CSV formats: MRR Comparison `````````````` -Comparison tables in ASCII and CSV formats: +Comparison tables in HTML, ASCII and CSV formats: + - `HTML 2t1c MRR comparison <../../_static/vpp/performance-changes-3n-skx-2t1c-mrr.html>`_ + - `HTML 4t2c MRR comparison <../../_static/vpp/performance-changes-3n-skx-4t2c-mrr.html>`_ + - `HTML 8t4c MRR comparison <../../_static/vpp/performance-changes-3n-skx-8t4c-mrr.html>`_ - `ASCII 2t1c MRR comparison <../../_static/vpp/performance-changes-3n-skx-2t1c-mrr.txt>`_ - `ASCII 4t2c MRR comparison <../../_static/vpp/performance-changes-3n-skx-4t2c-mrr.txt>`_ - `ASCII 8t4c MRR comparison <../../_static/vpp/performance-changes-3n-skx-8t4c-mrr.txt>`_ @@ -106,8 +120,10 @@ Comparison tables in ASCII and CSV formats: NDR Comparison `````````````` -Comparison tables in ASCII and CSV formats: +Comparison tables in HTML, ASCII and CSV formats: + - `HTML 1t1c NDR comparison <../../_static/vpp/performance-changes-3n-hsw-1t1c-ndr.html>`_ + - `HTML 2t2c NDR comparison <../../_static/vpp/performance-changes-3n-hsw-2t2c-ndr.html>`_ - `ASCII 1t1c NDR comparison <../../_static/vpp/performance-changes-3n-hsw-1t1c-ndr.txt>`_ - `ASCII 2t2c NDR comparison <../../_static/vpp/performance-changes-3n-hsw-2t2c-ndr.txt>`_ - `CSV 1t1c NDR comparison <../../_static/vpp/performance-changes-3n-hsw-1t1c-ndr.csv>`_ @@ -116,8 +132,10 @@ Comparison tables in ASCII and CSV formats: PDR Comparison `````````````` -Comparison tables in ASCII and CSV formats: +Comparison tables in HTML, ASCII and CSV formats: + - `HTML 1t1c PDR comparison <../../_static/vpp/performance-changes-3n-hsw-1t1c-pdr.html>`_ + - `HTML 2t2c PDR comparison <../../_static/vpp/performance-changes-3n-hsw-2t2c-pdr.html>`_ - `ASCII 1t1c PDR comparison <../../_static/vpp/performance-changes-3n-hsw-1t1c-pdr.txt>`_ - `ASCII 2t2c PDR comparison <../../_static/vpp/performance-changes-3n-hsw-2t2c-pdr.txt>`_ - `CSV 1t1c PDR comparison <../../_static/vpp/performance-changes-3n-hsw-1t1c-pdr.csv>`_ @@ -126,8 +144,11 @@ Comparison tables in ASCII and CSV formats: MRR Comparison `````````````` -Comparison tables in ASCII and CSV formats: +Comparison tables in HTML, ASCII and CSV formats: + - `HTML 1t1c MRR comparison <../../_static/vpp/performance-changes-3n-hsw-1t1c-mrr.html>`_ + - `HTML 2t2c MRR comparison <../../_static/vpp/performance-changes-3n-hsw-2t2c-mrr.html>`_ + - `HTML 4t4c MRR comparison <../../_static/vpp/performance-changes-3n-hsw-4t4c-mrr.html>`_ - `ASCII 1t1c MRR comparison <../../_static/vpp/performance-changes-3n-hsw-1t1c-mrr.txt>`_ - `ASCII 2t2c MRR comparison <../../_static/vpp/performance-changes-3n-hsw-2t2c-mrr.txt>`_ - `ASCII 4t4c MRR comparison <../../_static/vpp/performance-changes-3n-hsw-4t4c-mrr.txt>`_ @@ -136,14 +157,58 @@ Comparison tables in ASCII and CSV formats: - `CSV 4t4c MRR comparison <../../_static/vpp/performance-changes-3n-hsw-4t4c-mrr.csv>`_ .. + 3n-tsh + ~~~~~~ + + NDR Comparison + `````````````` + + Comparison tables in HTML, ASCII and CSV formats: + + - `HTML 1t1c NDR comparison <../../_static/vpp/performance-changes-3n-tsh-1t1c-ndr.html>`_ + - `HTML 2t2c NDR comparison <../../_static/vpp/performance-changes-3n-tsh-2t2c-ndr.html>`_ + - `ASCII 1t1c NDR comparison <../../_static/vpp/performance-changes-3n-tsh-1t1c-ndr.txt>`_ + - `ASCII 2t2c NDR comparison <../../_static/vpp/performance-changes-3n-tsh-2t2c-ndr.txt>`_ + - `CSV 1t1c NDR comparison <../../_static/vpp/performance-changes-3n-tsh-1t1c-ndr.csv>`_ + - `CSV 2t2c NDR comparison <../../_static/vpp/performance-changes-3n-tsh-2t2c-ndr.csv>`_ + + PDR Comparison + `````````````` + + Comparison tables in HTML, ASCII and CSV formats: + + - `HTML 1t1c PDR comparison <../../_static/vpp/performance-changes-3n-tsh-1t1c-pdr.html>`_ + - `HTML 2t2c PDR comparison <../../_static/vpp/performance-changes-3n-tsh-2t2c-pdr.html>`_ + - `ASCII 1t1c PDR comparison <../../_static/vpp/performance-changes-3n-tsh-1t1c-pdr.txt>`_ + - `ASCII 2t2c PDR comparison <../../_static/vpp/performance-changes-3n-tsh-2t2c-pdr.txt>`_ + - `CSV 1t1c PDR comparison <../../_static/vpp/performance-changes-3n-tsh-1t1c-pdr.csv>`_ + - `CSV 2t2c PDR comparison <../../_static/vpp/performance-changes-3n-tsh-2t2c-pdr.csv>`_ + + MRR Comparison + `````````````` + + Comparison tables in HTML, ASCII and CSV formats: + + - `HTML 1t1c MRR comparison <../../_static/vpp/performance-changes-3n-tsh-1t1c-mrr.html>`_ + - `HTML 2t2c MRR comparison <../../_static/vpp/performance-changes-3n-tsh-2t2c-mrr.html>`_ + - `HTML 4t4c MRR comparison <../../_static/vpp/performance-changes-3n-tsh-4t4c-mrr.html>`_ + - `ASCII 1t1c MRR comparison <../../_static/vpp/performance-changes-3n-tsh-1t1c-mrr.txt>`_ + - `ASCII 2t2c MRR comparison <../../_static/vpp/performance-changes-3n-tsh-2t2c-mrr.txt>`_ + - `ASCII 4t4c MRR comparison <../../_static/vpp/performance-changes-3n-tsh-4t4c-mrr.txt>`_ + - `CSV 1t1c MRR comparison <../../_static/vpp/performance-changes-3n-tsh-1t1c-mrr.csv>`_ + - `CSV 2t2c MRR comparison <../../_static/vpp/performance-changes-3n-tsh-2t2c-mrr.csv>`_ + - `CSV 4t4c MRR comparison <../../_static/vpp/performance-changes-3n-tsh-4t4c-mrr.csv>`_ + 2n-dnv ~~~~~~ NDR Comparison `````````````` - Comparison tables in ASCII and CSV formats: + Comparison tables in HTML, ASCII and CSV formats: + - `HTML 1t1c NDR comparison <../../_static/vpp/performance-changes-2n-dnv-1t1c-ndr.html>`_ + - `HTML 2t2c NDR comparison <../../_static/vpp/performance-changes-2n-dnv-2t2c-ndr.html>`_ - `ASCII 1t1c NDR comparison <../../_static/vpp/performance-changes-2n-dnv-1t1c-ndr.txt>`_ - `ASCII 2t2c NDR comparison <../../_static/vpp/performance-changes-2n-dnv-2t2c-ndr.txt>`_ - `CSV 1t1c NDR comparison <../../_static/vpp/performance-changes-2n-dnv-1t1c-ndr.csv>`_ @@ -152,8 +217,10 @@ Comparison tables in ASCII and CSV formats: PDR Comparison `````````````` - Comparison tables in ASCII and CSV formats: + Comparison tables in HTML, ASCII and CSV formats: + - `HTML 1t1c PDR comparison <../../_static/vpp/performance-changes-2n-dnv-1t1c-pdr.html>`_ + - `HTML 2t2c PDR comparison <../../_static/vpp/performance-changes-2n-dnv-2t2c-pdr.html>`_ - `ASCII 1t1c PDR comparison <../../_static/vpp/performance-changes-2n-dnv-1t1c-pdr.txt>`_ - `ASCII 2t2c PDR comparison <../../_static/vpp/performance-changes-2n-dnv-2t2c-pdr.txt>`_ - `CSV 1t1c PDR comparison <../../_static/vpp/performance-changes-2n-dnv-1t1c-pdr.csv>`_ @@ -162,11 +229,56 @@ Comparison tables in ASCII and CSV formats: MRR Comparison `````````````` - Comparison tables in ASCII and CSV formats: + Comparison tables in HTML, ASCII and CSV formats: + - `HTML 1t1c MRR comparison <../../_static/vpp/performance-changes-2n-dnv-1t1c-mrr.html>`_ + - `HTML 2t2c MRR comparison <../../_static/vpp/performance-changes-2n-dnv-2t2c-mrr.html>`_ + - `HTML 4t4c MRR comparison <../../_static/vpp/performance-changes-2n-dnv-4t4c-mrr.html>`_ - `ASCII 1t1c MRR comparison <../../_static/vpp/performance-changes-2n-dnv-1t1c-mrr.txt>`_ - `ASCII 2t2c MRR comparison <../../_static/vpp/performance-changes-2n-dnv-2t2c-mrr.txt>`_ - `ASCII 4t4c MRR comparison <../../_static/vpp/performance-changes-2n-dnv-4t4c-mrr.txt>`_ - `CSV 1t1c MRR comparison <../../_static/vpp/performance-changes-2n-dnv-1t1c-mrr.csv>`_ - `CSV 2t2c MRR comparison <../../_static/vpp/performance-changes-2n-dnv-2t2c-mrr.csv>`_ - `CSV 4t4c MRR comparison <../../_static/vpp/performance-changes-2n-dnv-4t4c-mrr.csv>`_ + + 3n-dnv + ~~~~~~ + + NDR Comparison + `````````````` + + Comparison tables in HTML, ASCII and CSV formats: + + - `HTML 1t1c NDR comparison <../../_static/vpp/performance-changes-3n-dnv-1t1c-ndr.html>`_ + - `HTML 2t2c NDR comparison <../../_static/vpp/performance-changes-3n-dnv-2t2c-ndr.html>`_ + - `ASCII 1t1c NDR comparison <../../_static/vpp/performance-changes-3n-dnv-1t1c-ndr.txt>`_ + - `ASCII 2t2c NDR comparison <../../_static/vpp/performance-changes-3n-dnv-2t2c-ndr.txt>`_ + - `CSV 1t1c NDR comparison <../../_static/vpp/performance-changes-3n-dnv-1t1c-ndr.csv>`_ + - `CSV 2t2c NDR comparison <../../_static/vpp/performance-changes-3n-dnv-2t2c-ndr.csv>`_ + + PDR Comparison + `````````````` + + Comparison tables in HTML, ASCII and CSV formats: + + - `HTML 1t1c PDR comparison <../../_static/vpp/performance-changes-3n-dnv-1t1c-pdr.html>`_ + - `HTML 2t2c PDR comparison <../../_static/vpp/performance-changes-3n-dnv-2t2c-pdr.html>`_ + - `ASCII 1t1c PDR comparison <../../_static/vpp/performance-changes-3n-dnv-1t1c-pdr.txt>`_ + - `ASCII 2t2c PDR comparison <../../_static/vpp/performance-changes-3n-dnv-2t2c-pdr.txt>`_ + - `CSV 1t1c PDR comparison <../../_static/vpp/performance-changes-3n-dnv-1t1c-pdr.csv>`_ + - `CSV 2t2c PDR comparison <../../_static/vpp/performance-changes-3n-dnv-2t2c-pdr.csv>`_ + + MRR Comparison + `````````````` + + Comparison tables in HTML, ASCII and CSV formats: + + - `HTML 1t1c MRR comparison <../../_static/vpp/performance-changes-3n-dnv-1t1c-mrr.html>`_ + - `HTML 2t2c MRR comparison <../../_static/vpp/performance-changes-3n-dnv-2t2c-mrr.html>`_ + - `HTML 4t4c MRR comparison <../../_static/vpp/performance-changes-3n-dnv-4t4c-mrr.html>`_ + - `ASCII 1t1c MRR comparison <../../_static/vpp/performance-changes-3n-dnv-1t1c-mrr.txt>`_ + - `ASCII 2t2c MRR comparison <../../_static/vpp/performance-changes-3n-dnv-2t2c-mrr.txt>`_ + - `ASCII 4t4c MRR comparison <../../_static/vpp/performance-changes-3n-dnv-4t4c-mrr.txt>`_ + - `CSV 1t1c MRR comparison <../../_static/vpp/performance-changes-3n-dnv-1t1c-mrr.csv>`_ + - `CSV 2t2c MRR comparison <../../_static/vpp/performance-changes-3n-dnv-2t2c-mrr.csv>`_ + - `CSV 4t4c MRR comparison <../../_static/vpp/performance-changes-3n-dnv-4t4c-mrr.csv>`_ diff --git a/docs/report/vpp_performance_tests/comparisons/nic_comparison.rst b/docs/report/vpp_performance_tests/comparisons/nic_comparison.rst index 2ba1c1204f..256b0dad44 100644 --- a/docs/report/vpp_performance_tests/comparisons/nic_comparison.rst +++ b/docs/report/vpp_performance_tests/comparisons/nic_comparison.rst @@ -34,8 +34,10 @@ results repeatability vary between the test cases. NDR Comparison `````````````` -Comparison tables in ASCII and CSV formats: +Comparison tables in HTML, ASCII and CSV formats: + - `HTML 2t1c NDR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-3n-skx-2t1c-nics-ndr.html>`_ + - `HTML 4t2c NDR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-3n-skx-4t2c-nics-ndr.html>`_ - `ASCII 2t1c NDR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-3n-skx-2t1c-nics-ndr.txt>`_ - `ASCII 4t2c NDR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-3n-skx-4t2c-nics-ndr.txt>`_ - `CSV 2t1c NDR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-3n-skx-2t1c-nics-ndr.csv>`_ @@ -44,8 +46,10 @@ Comparison tables in ASCII and CSV formats: PDR Comparison `````````````` -Comparison tables in ASCII and CSV formats: +Comparison tables in HTML, ASCII and CSV formats: + - `HTML 2t1c PDR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-3n-skx-2t1c-nics-pdr.html>`_ + - `HTML 4t2c PDR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-3n-skx-4t2c-nics-pdr.html>`_ - `ASCII 2t1c PDR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-3n-skx-2t1c-nics-pdr.txt>`_ - `ASCII 4t2c PDR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-3n-skx-4t2c-nics-pdr.txt>`_ - `CSV 2t1c PDR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-3n-skx-2t1c-nics-pdr.csv>`_ @@ -54,8 +58,11 @@ Comparison tables in ASCII and CSV formats: MRR Comparison `````````````` -Comparison tables in ASCII and CSV formats: +Comparison tables in HTML, ASCII and CSV formats: + - `HTML 2t1c MRR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-3n-skx-2t1c-nics-mrr.html>`_ + - `HTML 4t2c MRR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-3n-skx-4t2c-nics-mrr.html>`_ + - `HTML 8t4c MRR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-3n-skx-8t4c-nics-mrr.html>`_ - `ASCII 2t1c MRR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-3n-skx-2t1c-nics-mrr.txt>`_ - `ASCII 4t2c MRR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-3n-skx-4t2c-nics-mrr.txt>`_ - `ASCII 8t4c MRR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-3n-skx-8t4c-nics-mrr.txt>`_ @@ -69,8 +76,10 @@ Comparison tables in ASCII and CSV formats: NDR Comparison `````````````` -Comparison tables in ASCII and CSV formats: +Comparison tables in HTML, ASCII and CSV formats: + - `HTML 2t1c NDR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-2n-skx-2t1c-nics-ndr.html>`_ + - `HTML 4t2c NDR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-2n-skx-4t2c-nics-ndr.html>`_ - `ASCII 2t1c NDR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-2n-skx-2t1c-nics-ndr.txt>`_ - `ASCII 4t2c NDR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-2n-skx-4t2c-nics-ndr.txt>`_ - `CSV 2t1c NDR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-2n-skx-2t1c-nics-ndr.csv>`_ @@ -79,8 +88,10 @@ Comparison tables in ASCII and CSV formats: PDR Comparison `````````````` -Comparison tables in ASCII and CSV formats: +Comparison tables in HTML, ASCII and CSV formats: + - `HTML 2t1c PDR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-2n-skx-2t1c-nics-pdr.html>`_ + - `HTML 4t2c PDR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-2n-skx-4t2c-nics-pdr.html>`_ - `ASCII 2t1c PDR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-2n-skx-2t1c-nics-pdr.txt>`_ - `ASCII 4t2c PDR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-2n-skx-4t2c-nics-pdr.txt>`_ - `CSV 2t1c PDR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-2n-skx-2t1c-nics-pdr.csv>`_ @@ -89,8 +100,11 @@ Comparison tables in ASCII and CSV formats: MRR Comparison `````````````` -Comparison tables in ASCII and CSV formats: +Comparison tables in HTML, ASCII and CSV formats: + - `HTML 2t1c MRR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-2n-skx-2t1c-nics-mrr.html>`_ + - `HTML 4t2c MRR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-2n-skx-4t2c-nics-mrr.html>`_ + - `HTML 8t4c MRR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-2n-skx-8t4c-nics-mrr.html>`_ - `ASCII 2t1c MRR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-2n-skx-2t1c-nics-mrr.txt>`_ - `ASCII 4t2c MRR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-2n-skx-4t2c-nics-mrr.txt>`_ - `ASCII 8t4c MRR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-2n-skx-8t4c-nics-mrr.txt>`_ diff --git a/resources/tools/presentation/generator_tables.py b/resources/tools/presentation/generator_tables.py index 2e6cd593e6..1a47e81361 100644 --- a/resources/tools/presentation/generator_tables.py +++ b/resources/tools/presentation/generator_tables.py @@ -19,6 +19,10 @@ import logging import csv import re +import plotly.graph_objects as go +import plotly.offline as ploff +import pandas as pd + from string import replace from collections import OrderedDict from numpy import nan, isnan @@ -250,6 +254,99 @@ def _tpc_sort_table(table): return table +def _tpc_generate_html_table(header, data, output_file_name): + """Generate html table from input data with simple sorting possibility. + + :param header: Table header. + :param data: Input data to be included in the table. It is a list of lists. + Inner lists are rows in the table. All inner lists must be of the same + length. The length of these lists must be the same as the length of the + header. + :param output_file_name: The name (relative or full path) where the + generated html table is written. + :type header: list + :type data: list of lists + :type output_file_name: str + """ + + df = pd.DataFrame(data, columns=header) + + df_sorted = [df.sort_values( + by=[key, header[0]], ascending=[True, True] + if key != header[0] else [False, True]) for key in header] + df_sorted_rev = [df.sort_values( + by=[key, header[0]], ascending=[False, True] + if key != header[0] else [True, True]) for key in header] + df_sorted.extend(df_sorted_rev) + + fill_color = [["#d4e4f7" if idx % 2 else "#e9f1fb" + for idx in range(len(df))]] + table_header = dict( + values=["{item}".format(item=item) for item in header], + fill_color="#7eade7", + align=["left", "center"] + ) + + fig = go.Figure() + + for table in df_sorted: + columns = [table.get(col) for col in header] + fig.add_trace( + go.Table( + columnwidth=[30, 10], + header=table_header, + cells=dict( + values=columns, + fill_color=fill_color, + align=["left", "right"] + ) + ) + ) + + buttons = list() + menu_items = ["{0} (ascending)".format(itm) for itm in header] + menu_items_rev = ["{0} (descending)".format(itm) for itm in header] + menu_items.extend(menu_items_rev) + for idx, hdr in enumerate(menu_items): + visible = [False, ] * len(menu_items) + visible[idx] = True + buttons.append( + dict( + label=hdr.replace(" [Mpps]", ""), + method="update", + args=[{"visible": visible}], + ) + ) + + fig.update_layout( + updatemenus=[ + go.layout.Updatemenu( + type="dropdown", + direction="down", + x=0.03, + xanchor="left", + y=1.045, + yanchor="top", + active=len(menu_items) - 1, + buttons=list(buttons) + ) + ], + annotations=[ + go.layout.Annotation( + text="Sort by:", + x=0, + xref="paper", + y=1.035, + yref="paper", + align="left", + showarrow=False + ) + ] + ) + + ploff.plot(fig, show_link=False, auto_open=False, filename=output_file_name) + + def table_performance_comparison(table, input_data): """Generate the table(s) with algorithm: table_performance_comparison specified in the specification file. @@ -297,6 +394,7 @@ def table_performance_comparison(table, input_data): # Prepare data to the table: tbl_dict = dict() + topo = "" for job, builds in table["reference"]["data"].items(): topo = "2n-skx" if "2n-skx" in job else "" for build in builds: @@ -380,16 +478,16 @@ def table_performance_comparison(table, input_data): continue if tbl_dict[tst_name_mod].get("history", None) is None: tbl_dict[tst_name_mod]["history"] = OrderedDict() - if tbl_dict[tst_name_mod]["history"].get(item["title"], - None) is None: + if tbl_dict[tst_name_mod]["history"].\ + get(item["title"], None) is None: tbl_dict[tst_name_mod]["history"][item["title"]] = \ list() try: # TODO: Re-work when NDRPDRDISC tests are not used if table["include-tests"] == "MRR": - tbl_dict[tst_name_mod]["history"][item["title" - ]].append(tst_data["result"]["receive-rate"]. - avg) + tbl_dict[tst_name_mod]["history"][item[ + "title"]].append(tst_data["result"][ + "receive-rate"].avg) elif table["include-tests"] == "PDR": if tst_data["type"] == "PDR": tbl_dict[tst_name_mod]["history"][ @@ -398,7 +496,7 @@ def table_performance_comparison(table, input_data): elif tst_data["type"] == "NDRPDR": tbl_dict[tst_name_mod]["history"][item[ "title"]].append(tst_data["throughput"][ - "PDR"]["LOWER"]) + "PDR"]["LOWER"]) elif table["include-tests"] == "NDR": if tst_data["type"] == "NDR": tbl_dict[tst_name_mod]["history"][ @@ -407,7 +505,7 @@ def table_performance_comparison(table, input_data): elif tst_data["type"] == "NDRPDR": tbl_dict[tst_name_mod]["history"][item[ "title"]].append(tst_data["throughput"][ - "NDR"]["LOWER"]) + "NDR"]["LOWER"]) else: continue except (TypeError, KeyError): @@ -477,6 +575,10 @@ def table_performance_comparison(table, input_data): "tests. See release notes." ]) + # Generate html table: + _tpc_generate_html_table(header, tbl_lst, + "{0}.html".format(table["output-file"])) + def table_performance_comparison_nic(table, input_data): """Generate the table(s) with algorithm: table_performance_comparison @@ -525,6 +627,7 @@ def table_performance_comparison_nic(table, input_data): # Prepare data to the table: tbl_dict = dict() + topo = "" for job, builds in table["reference"]["data"].items(): topo = "2n-skx" if "2n-skx" in job else "" for build in builds: @@ -612,16 +715,16 @@ def table_performance_comparison_nic(table, input_data): continue if tbl_dict[tst_name_mod].get("history", None) is None: tbl_dict[tst_name_mod]["history"] = OrderedDict() - if tbl_dict[tst_name_mod]["history"].get(item["title"], - None) is None: + if tbl_dict[tst_name_mod]["history"].\ + get(item["title"], None) is None: tbl_dict[tst_name_mod]["history"][item["title"]] = \ list() try: # TODO: Re-work when NDRPDRDISC tests are not used if table["include-tests"] == "MRR": - tbl_dict[tst_name_mod]["history"][item["title" - ]].append(tst_data["result"]["receive-rate"]. - avg) + tbl_dict[tst_name_mod]["history"][item[ + "title"]].append(tst_data["result"][ + "receive-rate"].avg) elif table["include-tests"] == "PDR": if tst_data["type"] == "PDR": tbl_dict[tst_name_mod]["history"][ @@ -630,7 +733,7 @@ def table_performance_comparison_nic(table, input_data): elif tst_data["type"] == "NDRPDR": tbl_dict[tst_name_mod]["history"][item[ "title"]].append(tst_data["throughput"][ - "PDR"]["LOWER"]) + "PDR"]["LOWER"]) elif table["include-tests"] == "NDR": if tst_data["type"] == "NDR": tbl_dict[tst_name_mod]["history"][ @@ -639,7 +742,7 @@ def table_performance_comparison_nic(table, input_data): elif tst_data["type"] == "NDRPDR": tbl_dict[tst_name_mod]["history"][item[ "title"]].append(tst_data["throughput"][ - "NDR"]["LOWER"]) + "NDR"]["LOWER"]) else: continue except (TypeError, KeyError): @@ -709,6 +812,10 @@ def table_performance_comparison_nic(table, input_data): "tests. See release notes." ]) + # Generate html table: + _tpc_generate_html_table(header, tbl_lst, + "{0}.html".format(table["output-file"])) + def table_nics_comparison(table, input_data): """Generate the table(s) with algorithm: table_nics_comparison @@ -819,6 +926,10 @@ def table_nics_comparison(table, input_data): convert_csv_to_pretty_txt(csv_file, "{0}.txt".format(table["output-file"])) + # Generate html table: + _tpc_generate_html_table(header, tbl_lst, + "{0}.html".format(table["output-file"])) + def table_soak_vs_ndr(table, input_data): """Generate the table(s) with algorithm: table_soak_vs_ndr @@ -942,6 +1053,10 @@ def table_soak_vs_ndr(table, input_data): convert_csv_to_pretty_txt(csv_file, "{0}.txt".format(table["output-file"])) + # Generate html table: + _tpc_generate_html_table(header, tbl_lst, + "{0}.html".format(table["output-file"])) + def table_performance_trending_dashboard(table, input_data): """Generate the table(s) with algorithm: @@ -1028,9 +1143,8 @@ def table_performance_trending_dashboard(table, input_data): if classification_lst: if isnan(rel_change_last) and isnan(rel_change_long): continue - if (isnan(last_avg) or - isnan(rel_change_last) or - isnan(rel_change_long)): + if isnan(last_avg) or isnan(rel_change_last) or \ + isnan(rel_change_long): continue tbl_lst.append( [tbl_dict[tst_name]["name"], @@ -1417,6 +1531,9 @@ def table_failed_tests(table, input_data): tbl_lst = list() for tst_data in tbl_dict.values(): fails_nr = 0 + fails_last_date = "" + fails_last_vpp = "" + fails_last_csit = "" for val in tst_data["data"].values(): if val[0] == "FAIL": fails_nr += 1 -- 2.16.6