-
Notifications
You must be signed in to change notification settings - Fork 6
Open
Description
Добрый день.
Примерно раз на 30 запусков ловлю падение бенчмарка lua со стеком:
lua5.1: ./scimark2/Kernel.lua:35: bad MC result
stack traceback:
[C]: in function 'assert'
./scimark2/Kernel.lua:35: in function 'run'
./scimark2/scimark2.lua:99: in function 'measure'
./scimark2/scimark2.lua:55: in function <./scimark2/scimark2.lua:46>
(tail call): ?
./benchmarkBase.lua:15: in function 'bench'
main_scimark.lua:60: in main chunk
[C]: ?
Пример запуска:
.../EntityFX-Bench-master/src/lua $ for i in $(seq 1 100); do echo $i; lua5.1 main_scimark.lua > /dev/null || echo FAIL; done
1
2
3
4
5
6
lua5.1: ./scimark2/Kernel.lua:35: bad MC result
stack traceback:
[C]: in function 'assert'
./scimark2/Kernel.lua:35: in function 'run'
./scimark2/scimark2.lua:99: in function 'measure'
./scimark2/scimark2.lua:55: in function <./scimark2/scimark2.lua:46>
(tail call): ?
./benchmarkBase.lua:15: in function 'bench'
main_scimark.lua:60: in main chunk
[C]: ?
FAIL
7
8
Иногда не проходит assert из src/lua/scimark2/Kernel.lua:
function Kernel.MC()
return function(cycles)
local res = MonteCarlo.integrate(cycles)
assert(math.sqrt(cycles)*math.abs(res-math.pi) < 5.0, "bad MC result")
return cycles * 4 -- Way off, but same as SciMark in C/Java.
end
end
Это случается, если выражение внутри assert > 3.03110722, что, как мы видим, вполне вероятно.
Прошу обосновать, почему сделана именно такая проверка. Если можно, прошу проверку сделать более мягкой, чтобы не ловить случайные падения бенчмарка.
Информация о машине
lua5.1 -v
Lua 5.1.5 Copyright (C) 1994-2012 Lua.org, PUC-Rio
cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
uname -a
Linux mongoose 6.1.0-31-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.128-1 (2025-02-07) x86_64 GNU/Linux
Metadata
Metadata
Assignees
Labels
No labels