Tarantool development patches archive
 help / color / mirror / Atom feed
* [Tarantool-patches] [PATCH v2 luajit 00/41] LuaJIT performance testing
@ 2025-12-26  9:17 Sergey Kaplun via Tarantool-patches
  2025-12-26  9:17 ` [Tarantool-patches] [PATCH v2 luajit 01/41] perf: add LuaJIT-test-cleanup perf suite Sergey Kaplun via Tarantool-patches
                   ` (40 more replies)
  0 siblings, 41 replies; 42+ messages in thread
From: Sergey Kaplun via Tarantool-patches @ 2025-12-26  9:17 UTC (permalink / raw)
  To: Sergey Bronnikov; +Cc: tarantool-patches

This patchset introduces the performance testing suite for LuaJIT
benchmarks. It takes the LuaJIT test cleanup benches [1] and adapts them
to use a custom benchmark module with the GoogleBenchamark-similar
format. All results are collected and reported to InfluxDB, like it is
done for the Tarantool's tests.

The results for the following benchmarks are not very stable. It should
be investigated later (I appreciate any help with this):

* array3d
* binary-trees
* euler14-bit
* k-nukleotide
* nsieve (most unstable)
* nsieve-bit
* spectral-norm

Also, I've added notes to some commits where I'm not sure that the
implementation/solution is very good. Any insights are welcome :).

[1]: https://github.com/LuaJIT/LuaJIT-test-cleanup/tree/014708b/bench

---

Changes in the v2:

* Added the comments with the benchmark descriptions.
* Fixed code style mentioned by Sergey for the chunks that were touched
  during adjusting.
* Code style fixes.
* Fixed <coroutine-ring.lua> and <ray.lua> benchmark performance.
* Fixed naming of the CI workflow (incorrect JOFF flag).
* Fixed naming of the <meteor.lua> benchmark "subbench"
  "meteror" -> "meteor".
* Decreased number of iterations in array3d from 5 to 4 due to OOM
  errors.
* Rebased the branch on the current master branch.

Also, it is worth mentioning that array3d with 5 iterations in JOFF
non-GC64 mode may lead to the core dump [2]. Since it is rather rare
flak and the number of iterations is decreased, it can be ignored for
now, I suppose.

[2]: https://github.com/tarantool/luajit/actions/runs/20506964003/job/58922906212#step:6:24

Sergey Kaplun (41):
  perf: add LuaJIT-test-cleanup perf suite
  perf: introduce clock module
  perf: introduce bench module
  perf: adjust array3d in LuaJIT-benches
  perf: adjust binary-trees in LuaJIT-benches
  perf: adjust chameneos in LuaJIT-benches
  perf: adjust coroutine-ring in LuaJIT-benches
  perf: adjust euler14-bit in LuaJIT-benches
  perf: adjust fannkuch in LuaJIT-benches
  perf: adjust fasta in LuaJIT-benches
  perf: adjust k-nucleotide in LuaJIT-benches
  perf: adjust life in LuaJIT-benches
  perf: adjust mandelbrot-bit in LuaJIT-benches
  perf: adjust mandelbrot in LuaJIT-benches
  perf: adjust md5 in LuaJIT-benches
  perf: adjust meteor in LuaJIT-benches
  perf: adjust nbody in LuaJIT-benches
  perf: adjust nsieve-bit-fp in LuaJIT-benches
  perf: adjust nsieve-bit in LuaJIT-benches
  perf: adjust nsieve in LuaJIT-benches
  perf: adjust partialsums in LuaJIT-benches
  perf: adjust pidigits-nogmp in LuaJIT-benches
  perf: adjust ray in LuaJIT-benches
  perf: adjust recursive-ack in LuaJIT-benches
  perf: adjust recursive-fib in LuaJIT-benches
  perf: adjust revcomp in LuaJIT-benches
  perf: adjust scimark-2010-12-20 in LuaJIT-benches
  perf: move <scimark_lib.lua> to <libs/> directory
  perf: adjust scimark-fft in LuaJIT-benches
  perf: adjust scimark-lu in LuaJIT-benches
  perf: add scimark-mc in LuaJIT-benches
  perf: adjust scimark-sor in LuaJIT-benches
  perf: adjust scimark-sparse in LuaJIT-benches
  perf: adjust series in LuaJIT-benches
  perf: adjust spectral-norm in LuaJIT-benches
  perf: adjust sum-file in LuaJIT-benches
  perf: add CMake infrastructure
  perf: add aggregator helper for bench statistics
  perf: add a script for the environment setup
  perf: provide CMake option to setup the benchmark
  ci: introduce the performance workflow

 .github/actions/setup-performance/README.md  |   10 +
 .github/actions/setup-performance/action.yml |   18 +
 .github/workflows/performance.yml            |  110 ++
 .gitignore                                   |    5 +
 .luacheckrc                                  |    1 +
 CMakeLists.txt                               |   11 +
 perf/CMakeLists.txt                          |  119 +++
 perf/LuaJIT-benches/CMakeLists.txt           |   52 +
 perf/LuaJIT-benches/PARAM_arm.txt            |   29 +
 perf/LuaJIT-benches/PARAM_mips.txt           |   29 +
 perf/LuaJIT-benches/PARAM_ppc.txt            |   29 +
 perf/LuaJIT-benches/PARAM_x86.txt            |   29 +
 perf/LuaJIT-benches/SUMCOL_1.txt             | 1000 ++++++++++++++++++
 perf/LuaJIT-benches/TEST_md5sum.txt          |   20 +
 perf/LuaJIT-benches/array3d.lua              |   78 ++
 perf/LuaJIT-benches/binary-trees.lua         |  120 +++
 perf/LuaJIT-benches/chameneos.lua            |   88 ++
 perf/LuaJIT-benches/coroutine-ring.lua       |   64 ++
 perf/LuaJIT-benches/euler14-bit.lua          |   55 +
 perf/LuaJIT-benches/fannkuch.lua             |   88 ++
 perf/LuaJIT-benches/fasta.lua                |   35 +
 perf/LuaJIT-benches/k-nucleotide.lua         |  132 +++
 perf/LuaJIT-benches/libs/fasta.lua           |  105 ++
 perf/LuaJIT-benches/libs/scimark_lib.lua     |  297 ++++++
 perf/LuaJIT-benches/life.lua                 |  194 ++++
 perf/LuaJIT-benches/mandelbrot-bit.lua       |   68 ++
 perf/LuaJIT-benches/mandelbrot.lua           |   55 +
 perf/LuaJIT-benches/md5.lua                  |  201 ++++
 perf/LuaJIT-benches/meteor.lua               |  251 +++++
 perf/LuaJIT-benches/nbody.lua                |  146 +++
 perf/LuaJIT-benches/nsieve-bit-fp.lua        |   69 ++
 perf/LuaJIT-benches/nsieve-bit.lua           |   58 +
 perf/LuaJIT-benches/nsieve.lua               |   53 +
 perf/LuaJIT-benches/partialsums.lua          |   48 +
 perf/LuaJIT-benches/pidigits-nogmp.lua       |  128 +++
 perf/LuaJIT-benches/ray.lua                  |  166 +++
 perf/LuaJIT-benches/recursive-ack.lua        |   28 +
 perf/LuaJIT-benches/recursive-fib.lua        |   36 +
 perf/LuaJIT-benches/revcomp.lua              |   71 ++
 perf/LuaJIT-benches/scimark-2010-12-20.lua   |  412 ++++++++
 perf/LuaJIT-benches/scimark-fft.lua          |   18 +
 perf/LuaJIT-benches/scimark-lu.lua           |   19 +
 perf/LuaJIT-benches/scimark-mc.lua           |   19 +
 perf/LuaJIT-benches/scimark-sor.lua          |   19 +
 perf/LuaJIT-benches/scimark-sparse.lua       |   19 +
 perf/LuaJIT-benches/series.lua               |   46 +
 perf/LuaJIT-benches/spectral-norm.lua        |   65 ++
 perf/LuaJIT-benches/sum-file.lua             |   29 +
 perf/helpers/aggregate.lua                   |  132 +++
 perf/helpers/setup_env.sh                    |  135 +++
 perf/utils/bench.lua                         |  511 +++++++++
 perf/utils/clock.lua                         |   35 +
 52 files changed, 5555 insertions(+)
 create mode 100644 .github/actions/setup-performance/README.md
 create mode 100644 .github/actions/setup-performance/action.yml
 create mode 100644 .github/workflows/performance.yml
 create mode 100644 perf/CMakeLists.txt
 create mode 100644 perf/LuaJIT-benches/CMakeLists.txt
 create mode 100644 perf/LuaJIT-benches/PARAM_arm.txt
 create mode 100644 perf/LuaJIT-benches/PARAM_mips.txt
 create mode 100644 perf/LuaJIT-benches/PARAM_ppc.txt
 create mode 100644 perf/LuaJIT-benches/PARAM_x86.txt
 create mode 100644 perf/LuaJIT-benches/SUMCOL_1.txt
 create mode 100644 perf/LuaJIT-benches/TEST_md5sum.txt
 create mode 100644 perf/LuaJIT-benches/array3d.lua
 create mode 100644 perf/LuaJIT-benches/binary-trees.lua
 create mode 100644 perf/LuaJIT-benches/chameneos.lua
 create mode 100644 perf/LuaJIT-benches/coroutine-ring.lua
 create mode 100644 perf/LuaJIT-benches/euler14-bit.lua
 create mode 100644 perf/LuaJIT-benches/fannkuch.lua
 create mode 100644 perf/LuaJIT-benches/fasta.lua
 create mode 100644 perf/LuaJIT-benches/k-nucleotide.lua
 create mode 100644 perf/LuaJIT-benches/libs/fasta.lua
 create mode 100644 perf/LuaJIT-benches/libs/scimark_lib.lua
 create mode 100644 perf/LuaJIT-benches/life.lua
 create mode 100644 perf/LuaJIT-benches/mandelbrot-bit.lua
 create mode 100644 perf/LuaJIT-benches/mandelbrot.lua
 create mode 100644 perf/LuaJIT-benches/md5.lua
 create mode 100644 perf/LuaJIT-benches/meteor.lua
 create mode 100644 perf/LuaJIT-benches/nbody.lua
 create mode 100644 perf/LuaJIT-benches/nsieve-bit-fp.lua
 create mode 100644 perf/LuaJIT-benches/nsieve-bit.lua
 create mode 100644 perf/LuaJIT-benches/nsieve.lua
 create mode 100644 perf/LuaJIT-benches/partialsums.lua
 create mode 100644 perf/LuaJIT-benches/pidigits-nogmp.lua
 create mode 100644 perf/LuaJIT-benches/ray.lua
 create mode 100644 perf/LuaJIT-benches/recursive-ack.lua
 create mode 100644 perf/LuaJIT-benches/recursive-fib.lua
 create mode 100644 perf/LuaJIT-benches/revcomp.lua
 create mode 100644 perf/LuaJIT-benches/scimark-2010-12-20.lua
 create mode 100644 perf/LuaJIT-benches/scimark-fft.lua
 create mode 100644 perf/LuaJIT-benches/scimark-lu.lua
 create mode 100644 perf/LuaJIT-benches/scimark-mc.lua
 create mode 100644 perf/LuaJIT-benches/scimark-sor.lua
 create mode 100644 perf/LuaJIT-benches/scimark-sparse.lua
 create mode 100644 perf/LuaJIT-benches/series.lua
 create mode 100644 perf/LuaJIT-benches/spectral-norm.lua
 create mode 100644 perf/LuaJIT-benches/sum-file.lua
 create mode 100644 perf/helpers/aggregate.lua
 create mode 100755 perf/helpers/setup_env.sh
 create mode 100644 perf/utils/bench.lua
 create mode 100644 perf/utils/clock.lua

-- 
2.52.0


^ permalink raw reply	[flat|nested] 42+ messages in thread

end of thread, other threads:[~2025-12-26  9:38 UTC | newest]

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

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