Tarantool development patches archive
 help / color / mirror / Atom feed
From: Sergey Kaplun via Tarantool-patches <tarantool-patches@dev.tarantool.org>
To: Sergey Bronnikov <sergeyb@tarantool.org>
Cc: tarantool-patches@dev.tarantool.org
Subject: Re: [Tarantool-patches] [PATCH v1 luajit 21/41] perf: adjust partialsums in LuaJIT-benches
Date: Fri, 26 Dec 2025 11:27:06 +0300	[thread overview]
Message-ID: <aU5G2qmhseVhK20O@root> (raw)
In-Reply-To: <2dba4d8b-c82c-4eaf-a77f-bc4d2cb811f3@tarantool.org>

Hi, Sergey!
Thanks for the review.
Please, consider my answers below.

On 17.11.25, Sergey Bronnikov wrote:
> Hi, Sergey,
> 
> thanks for the patch! See my comments.
> 
> Sergey
> 
> On 10/24/25 13:50, Sergey Kaplun wrote:
> > This patch adjusts the aforementioned test to use the benchmark
> > framework introduced before. The default arguments are adjusted
> > according to the <PARAM_x86.txt> file. The arguments to the script still
> > can be provided in the command line run.
> > ---
> >   perf/LuaJIT-benches/partialsums.lua | 69 ++++++++++++++++++-----------
> >   1 file changed, 42 insertions(+), 27 deletions(-)
> >
> > diff --git a/perf/LuaJIT-benches/partialsums.lua b/perf/LuaJIT-benches/partialsums.lua
> > index 46bb9da3..ab24b30a 100644
> > --- a/perf/LuaJIT-benches/partialsums.lua
> > +++ b/perf/LuaJIT-benches/partialsums.lua

Added the comment with the short benchmark description, as we
discussed offline:

===================================================================
diff --git a/perf/LuaJIT-benches/partialsums.lua b/perf/LuaJIT-benches/partialsums.lua
index c9d48a2d..2e5967d2 100644
--- a/perf/LuaJIT-benches/partialsums.lua
+++ b/perf/LuaJIT-benches/partialsums.lua
@@ -1,3 +1,7 @@
+-- The benchmark to check the performance of FP arithmetic and
+-- math functions. Calculates the partial sums of several series
+-- in the single loop.
+
 local bench = require("bench").new(arg)
 
 local DEFAULT_N = 1e7
===================================================================

> > @@ -1,29 +1,44 @@
> > +local bench = require("bench").new(arg)
> >   
> > -local n = tonumber(arg[1])
> > -local function pr(fmt, x) io.write(string.format(fmt, x)) end
> > +local DEFAULT_N = 1e7
> > +local n = tonumber(arg[1]) or DEFAULT_N
> Why 1e7 is default?

It is the default for x86 arch. I've taken the values from PARAMS_x86,
since this is the most important architecture for the Tarantool, see the
commit message.

> >   
> > -local a1, a2, a3, a4, a5, a6, a7, a8, a9, alt = 1, 0, 0, 0, 0, 0, 0, 0, 0, 1
> > -local sqrt, sin, cos = math.sqrt, math.sin, math.cos
> > -for k=1,n do
> > -  local k2, sk, ck = k*k, sin(k), cos(k)
> > -  local k3 = k2*k
> > -  a1 = a1 + (2/3)^k
> > -  a2 = a2 + 1/sqrt(k)
> > -  a3 = a3 + 1/(k2+k)
> > -  a4 = a4 + 1/(k3*sk*sk)
> > -  a5 = a5 + 1/(k3*ck*ck)
> > -  a6 = a6 + 1/k
> > -  a7 = a7 + 1/k2
> > -  a8 = a8 + alt/k
> > -  a9 = a9 + alt/(k+k-1)
> > -  alt = -alt
> > -end
> > -pr("%.9f\t(2/3)^k\n", a1)
> > -pr("%.9f\tk^-0.5\n", a2)
> > -pr("%.9f\t1/k(k+1)\n", a3)
> > -pr("%.9f\tFlint Hills\n", a4)
> > -pr("%.9f\tCookson Hills\n", a5)
> > -pr("%.9f\tHarmonic\n", a6)
> > -pr("%.9f\tRiemann Zeta\n", a7)
> > -pr("%.9f\tAlternating Harmonic\n", a8)
> > -pr("%.9f\tGregory\n", a9)
> 
> debug prints were lost, is it intentional?

It is not the debug print, but verification of program correctness, also
it prevents DCE by the compilers in the compiled languages.

Here it is tested by the checker function.

> 
> In a previous benches debug prints were left, but suppressed.

No, there are no debug prints. Output to suppress is the program
behaviour (like in the life benchmark) or the result of the program
(like in the k-nucleotide). Since it is rather huge, to avoid saving the
result in the file, it is better to drop it into the /dev/null to avoid
dependence on the file system.

> 
> Also I propose to use the same printf function in all benches for 
> consistency.

There is no need for it since this is not the main payload of the
benchmark.

> 
> > +bench:add({
> > +  name = "partialsums",
> > +  payload = function()
> > +    local a1, a2, a3, a4, a5, a6, a7, a8, a9, alt = 1, 0, 0, 0, 0, 0, 0, 0, 0, 1
> > +    local sqrt, sin, cos = math.sqrt, math.sin, math.cos
> > +    for k=1,n do
> please add more whitespaces, here and below

Added:

===================================================================
diff --git a/perf/LuaJIT-benches/partialsums.lua b/perf/LuaJIT-benches/partialsums.lua
index ab24b30a..c9d48a2d 100644
--- a/perf/LuaJIT-benches/partialsums.lua
+++ b/perf/LuaJIT-benches/partialsums.lua
@@ -8,18 +8,18 @@ bench:add({
   payload = function()
     local a1, a2, a3, a4, a5, a6, a7, a8, a9, alt = 1, 0, 0, 0, 0, 0, 0, 0, 0, 1
     local sqrt, sin, cos = math.sqrt, math.sin, math.cos
-    for k=1,n do
-      local k2, sk, ck = k*k, sin(k), cos(k)
-      local k3 = k2*k
-      a1 = a1 + (2/3)^k
-      a2 = a2 + 1/sqrt(k)
-      a3 = a3 + 1/(k2+k)
-      a4 = a4 + 1/(k3*sk*sk)
-      a5 = a5 + 1/(k3*ck*ck)
-      a6 = a6 + 1/k
-      a7 = a7 + 1/k2
-      a8 = a8 + alt/k
-      a9 = a9 + alt/(k+k-1)
+    for k = 1, n do
+      local k2, sk, ck = k * k, sin(k), cos(k)
+      local k3 = k2 * k
+      a1 = a1 + (2 / 3) ^ k
+      a2 = a2 + 1 / sqrt(k)
+      a3 = a3 + 1 / (k2 + k)
+      a4 = a4 + 1 / (k3 * sk * sk)
+      a5 = a5 + 1 / (k3 * ck * ck)
+      a6 = a6 + 1 / k
+      a7 = a7 + 1 / k2
+      a8 = a8 + alt / k
+      a9 = a9 + alt / (k + k - 1)
       alt = -alt
     end
     return {a1, a2, a3, a4, a5, a6, a7, a8, a9}
===================================================================

> > +      local k2, sk, ck = k*k, sin(k), cos(k)
> > +      local k3 = k2*k
> > +      a1 = a1 + (2/3)^k
> > +      a2 = a2 + 1/sqrt(k)
> > +      a3 = a3 + 1/(k2+k)
> > +      a4 = a4 + 1/(k3*sk*sk)
> > +      a5 = a5 + 1/(k3*ck*ck)
> > +      a6 = a6 + 1/k
> > +      a7 = a7 + 1/k2
> > +      a8 = a8 + alt/k
> > +      a9 = a9 + alt/(k+k-1)
> > +      alt = -alt
> > +    end
> > +    return {a1, a2, a3, a4, a5, a6, a7, a8, a9}
> > +  end,
> > +  checker = function(a)
> > +    if n == DEFAULT_N then
> > +      assert(a[1] == 2.99999999999999866773)
> > +      assert(a[2] == 6323.09512394020111969439)
> > +      assert(a[3] == 0.99999989999981531152)
> > +      assert(a[4] == 30.31454593111029183206)
> > +      assert(a[5] == 42.99523427973661426904)
> > +      assert(a[6] == 16.69531136585727182364)
> > +      assert(a[7] == 1.64493396684725956547)
> > +      assert(a[8] == 0.69314713056010635039)
> > +      assert(a[9] == 0.78539813839744787582)
> > +    end
> > +    return true
> > +  end,
> > +  items = n,
> > +})
> > +
> > +bench:run_and_report()
> >

-- 
Best regards,
Sergey Kaplun

  reply	other threads:[~2025-12-26  8:27 UTC|newest]

Thread overview: 134+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-24 10:50 [Tarantool-patches] [PATCH v1 luajit 00/41] LuaJIT performance testing Sergey Kaplun via Tarantool-patches
2025-10-24 10:50 ` [Tarantool-patches] [PATCH v1 luajit 01/41] perf: add LuaJIT-test-cleanup perf suite Sergey Kaplun via Tarantool-patches
2025-11-11 14:28   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:04     ` Sergey Kaplun via Tarantool-patches
2025-10-24 10:50 ` [Tarantool-patches] [PATCH v1 luajit 02/41] perf: introduce clock module Sergey Kaplun via Tarantool-patches
2025-11-11 14:28   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:05     ` Sergey Kaplun via Tarantool-patches
2025-10-24 10:50 ` [Tarantool-patches] [PATCH v1 luajit 03/41] perf: introduce bench module Sergey Kaplun via Tarantool-patches
2025-11-11 15:41   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:06     ` Sergey Kaplun via Tarantool-patches
2025-10-24 10:50 ` [Tarantool-patches] [PATCH v1 luajit 04/41] perf: adjust array3d in LuaJIT-benches Sergey Kaplun via Tarantool-patches
2025-11-13 11:06   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:07     ` Sergey Kaplun via Tarantool-patches
2025-10-24 10:50 ` [Tarantool-patches] [PATCH v1 luajit 05/41] perf: adjust binary-trees " Sergey Kaplun via Tarantool-patches
2025-11-13 11:06   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:08     ` Sergey Kaplun via Tarantool-patches
2025-10-24 10:50 ` [Tarantool-patches] [PATCH v1 luajit 06/41] perf: adjust chameneos " Sergey Kaplun via Tarantool-patches
2025-11-13 11:11   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:10     ` Sergey Kaplun via Tarantool-patches
2025-10-24 10:50 ` [Tarantool-patches] [PATCH v1 luajit 07/41] perf: adjust coroutine-ring " Sergey Kaplun via Tarantool-patches
2025-11-13 11:17   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:11     ` Sergey Kaplun via Tarantool-patches
2025-10-24 10:50 ` [Tarantool-patches] [PATCH v1 luajit 08/41] perf: adjust euler14-bit " Sergey Kaplun via Tarantool-patches
2025-11-13 11:44   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:12     ` Sergey Kaplun via Tarantool-patches
2025-10-24 10:50 ` [Tarantool-patches] [PATCH v1 luajit 09/41] perf: adjust fannkuch " Sergey Kaplun via Tarantool-patches
2025-11-17  8:36   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:13     ` Sergey Kaplun via Tarantool-patches
2025-10-24 10:50 ` [Tarantool-patches] [PATCH v1 luajit 10/41] perf: adjust fasta " Sergey Kaplun via Tarantool-patches
2025-12-23 10:37   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:15     ` Sergey Kaplun via Tarantool-patches
2025-10-24 10:50 ` [Tarantool-patches] [PATCH v1 luajit 11/41] perf: adjust k-nucleotide " Sergey Kaplun via Tarantool-patches
2025-11-17  8:36   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:17     ` Sergey Kaplun via Tarantool-patches
2025-10-24 10:50 ` [Tarantool-patches] [PATCH v1 luajit 12/41] perf: adjust life " Sergey Kaplun via Tarantool-patches
2025-11-17  8:35   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:18     ` Sergey Kaplun via Tarantool-patches
2025-10-24 10:50 ` [Tarantool-patches] [PATCH v1 luajit 13/41] perf: adjust mandelbrot-bit " Sergey Kaplun via Tarantool-patches
2025-11-17 13:26   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:20     ` Sergey Kaplun via Tarantool-patches
2025-10-24 10:50 ` [Tarantool-patches] [PATCH v1 luajit 14/41] perf: adjust mandelbrot " Sergey Kaplun via Tarantool-patches
2025-12-23 10:38   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:20     ` Sergey Kaplun via Tarantool-patches
2025-10-24 10:50 ` [Tarantool-patches] [PATCH v1 luajit 15/41] perf: adjust md5 " Sergey Kaplun via Tarantool-patches
2025-11-17 13:26   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:22     ` Sergey Kaplun via Tarantool-patches
2025-10-24 10:50 ` [Tarantool-patches] [PATCH v1 luajit 16/41] perf: adjust meteor " Sergey Kaplun via Tarantool-patches
2025-12-23 10:38   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:23     ` Sergey Kaplun via Tarantool-patches
2025-10-24 10:50 ` [Tarantool-patches] [PATCH v1 luajit 17/41] perf: adjust nbody " Sergey Kaplun via Tarantool-patches
2025-11-17 13:26   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:24     ` Sergey Kaplun via Tarantool-patches
2025-10-24 10:50 ` [Tarantool-patches] [PATCH v1 luajit 18/41] perf: adjust nsieve-bit-fp " Sergey Kaplun via Tarantool-patches
2025-11-17 13:26   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:25     ` Sergey Kaplun via Tarantool-patches
2025-10-24 10:50 ` [Tarantool-patches] [PATCH v1 luajit 19/41] perf: adjust nsieve-bit " Sergey Kaplun via Tarantool-patches
2025-11-17 13:26   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:25     ` Sergey Kaplun via Tarantool-patches
2025-10-24 10:50 ` [Tarantool-patches] [PATCH v1 luajit 20/41] perf: adjust nsieve " Sergey Kaplun via Tarantool-patches
2025-11-17 13:25   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:26     ` Sergey Kaplun via Tarantool-patches
2025-10-24 10:50 ` [Tarantool-patches] [PATCH v1 luajit 21/41] perf: adjust partialsums " Sergey Kaplun via Tarantool-patches
2025-11-17 13:25   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:27     ` Sergey Kaplun via Tarantool-patches [this message]
2025-10-24 10:50 ` [Tarantool-patches] [PATCH v1 luajit 22/41] perf: adjust pidigits-nogmp " Sergey Kaplun via Tarantool-patches
2025-11-17 13:25   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:27     ` Sergey Kaplun via Tarantool-patches
2025-10-24 10:50 ` [Tarantool-patches] [PATCH v1 luajit 23/41] perf: adjust ray " Sergey Kaplun via Tarantool-patches
2025-11-17 13:25   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:29     ` Sergey Kaplun via Tarantool-patches
2025-10-24 10:50 ` [Tarantool-patches] [PATCH v1 luajit 24/41] perf: adjust recursive-ack " Sergey Kaplun via Tarantool-patches
2025-11-17 13:25   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:30     ` Sergey Kaplun via Tarantool-patches
2025-10-24 10:50 ` [Tarantool-patches] [PATCH v1 luajit 25/41] perf: adjust recursive-fib " Sergey Kaplun via Tarantool-patches
2025-11-17 13:59   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:30     ` Sergey Kaplun via Tarantool-patches
2025-10-24 10:50 ` [Tarantool-patches] [PATCH v1 luajit 26/41] perf: adjust revcomp " Sergey Kaplun via Tarantool-patches
2025-11-17 13:59   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:31     ` Sergey Kaplun via Tarantool-patches
2025-10-24 10:50 ` [Tarantool-patches] [PATCH v1 luajit 27/41] perf: adjust scimark-2010-12-20 " Sergey Kaplun via Tarantool-patches
2025-11-17 13:56   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:32     ` Sergey Kaplun via Tarantool-patches
2025-10-24 10:50 ` [Tarantool-patches] [PATCH v1 luajit 28/41] perf: move <scimark_lib.lua> to <libs/> directory Sergey Kaplun via Tarantool-patches
2025-11-17 13:58   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:32     ` Sergey Kaplun via Tarantool-patches
2025-10-24 10:50 ` [Tarantool-patches] [PATCH v1 luajit 29/41] perf: adjust scimark-fft in LuaJIT-benches Sergey Kaplun via Tarantool-patches
2025-11-17 14:00   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:33     ` Sergey Kaplun via Tarantool-patches
2025-10-24 10:50 ` [Tarantool-patches] [PATCH v1 luajit 30/41] perf: adjust scimark-lu " Sergey Kaplun via Tarantool-patches
2025-10-24 11:00   ` Sergey Kaplun via Tarantool-patches
2025-10-24 11:01   ` Sergey Kaplun via Tarantool-patches
2025-11-17 14:07   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:34     ` Sergey Kaplun via Tarantool-patches
2025-10-24 10:50 ` [Tarantool-patches] [PATCH v1 luajit 31/41] perf: add scimark-mc " Sergey Kaplun via Tarantool-patches
2025-10-24 11:00   ` Sergey Kaplun via Tarantool-patches
2025-10-24 11:02   ` Sergey Kaplun via Tarantool-patches
2025-11-17 14:09   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:35     ` Sergey Kaplun via Tarantool-patches
2025-10-24 10:50 ` [Tarantool-patches] [PATCH v1 luajit 32/41] perf: adjust scimark-sor " Sergey Kaplun via Tarantool-patches
2025-10-24 11:00   ` Sergey Kaplun via Tarantool-patches
2025-10-24 11:02   ` Sergey Kaplun via Tarantool-patches
2025-11-17 14:11   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:35     ` Sergey Kaplun via Tarantool-patches
2025-10-24 10:50 ` [Tarantool-patches] [PATCH v1 luajit 33/41] perf: adjust scimark-sparse " Sergey Kaplun via Tarantool-patches
2025-10-24 11:00   ` Sergey Kaplun via Tarantool-patches
2025-10-24 11:03   ` Sergey Kaplun via Tarantool-patches
2025-11-17 14:15   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:36     ` Sergey Kaplun via Tarantool-patches
2025-10-24 11:00 ` [Tarantool-patches] [PATCH v1 luajit 34/41] perf: adjust series " Sergey Kaplun via Tarantool-patches
2025-11-17 14:19   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:37     ` Sergey Kaplun via Tarantool-patches
2025-10-24 11:00 ` [Tarantool-patches] [PATCH v1 luajit 35/41] perf: adjust spectral-norm " Sergey Kaplun via Tarantool-patches
2025-11-17 14:23   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:37     ` Sergey Kaplun via Tarantool-patches
2025-10-24 11:00 ` [Tarantool-patches] [PATCH v1 luajit 36/41] perf: adjust sum-file " Sergey Kaplun via Tarantool-patches
2025-12-23 10:37   ` Sergey Bronnikov via Tarantool-patches
2025-12-23 10:44   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:38     ` Sergey Kaplun via Tarantool-patches
2025-10-24 11:00 ` [Tarantool-patches] [PATCH v1 luajit 37/41] perf: add CMake infrastructure Sergey Kaplun via Tarantool-patches
2025-11-18 12:21   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:40     ` Sergey Kaplun via Tarantool-patches
2025-10-24 11:00 ` [Tarantool-patches] [PATCH v1 luajit 38/41] perf: add aggregator helper for bench statistics Sergey Kaplun via Tarantool-patches
2025-11-18 12:31   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:41     ` Sergey Kaplun via Tarantool-patches
2025-10-24 11:00 ` [Tarantool-patches] [PATCH v1 luajit 39/41] perf: add a script for the environment setup Sergey Kaplun via Tarantool-patches
2025-11-18 12:36   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:41     ` Sergey Kaplun via Tarantool-patches
2025-10-24 11:00 ` [Tarantool-patches] [PATCH v1 luajit 40/41] perf: provide CMake option to setup the benchmark Sergey Kaplun via Tarantool-patches
2025-11-18 12:51   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:42     ` Sergey Kaplun via Tarantool-patches
2025-10-24 11:00 ` [Tarantool-patches] [PATCH v1 luajit 41/41] ci: introduce the performance workflow Sergey Kaplun via Tarantool-patches
2025-11-18 13:08   ` Sergey Bronnikov via Tarantool-patches
2025-12-26  8:43     ` Sergey Kaplun via Tarantool-patches
2025-11-18 13:13   ` Sergey Bronnikov via Tarantool-patches

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aU5G2qmhseVhK20O@root \
    --to=tarantool-patches@dev.tarantool.org \
    --cc=sergeyb@tarantool.org \
    --cc=skaplun@tarantool.org \
    --subject='Re: [Tarantool-patches] [PATCH v1 luajit 21/41] perf: adjust partialsums in LuaJIT-benches' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox