-
-
Notifications
You must be signed in to change notification settings - Fork 187
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Performance hit when using -lncheck final
#869
Comments
The |
(update: I added benchmarks to my post.) Ah, I see. Interesting implementation detail. What's the difference between the behavior graph and state exploration graph? Also, it seems that when |
The behavior graph is the cross product of the state graph and the tableau that represents the liveness property. Can you elaborate on the offheap and banquet finding? |
It says here that two Java system properties might improve many-core performance, so I added them to my benchmarks when I was trying to figure out what was slowing model checking down. |
That's interesting. Can you keep digging? By the way, we unfortunately have lost our performance test infra (#864). |
I added another update to the benchmark table with "Total liveness check time" and "Total time - Total liveness check time". It seems there's no significant difference in Total Liveness Check Time between any of the configurations. As to why this is the case, I think we'd need to benchmark other models, no? I could certainly rerun these again just to make sure. #864 is very unfortunate. :-( |
Did you see the models in
Probably, are you volunteering. :-) |
Not in depth. Is the benchmark CSV stored somewhere? |
It's the build artifact of https://github.com/tlaplus/tlaplus/actions/runs/7565935840 snapshot: perf-results.zip |
Thanks! Correct me if I'm wrong, but it seems all tests in Since my benchmarks suggest there's a slowdown when |
You want |
Description
Given two models
M1
andM2
of some specification.M1
andM2
are identical except:M1
only contains invariants to check.M2
contains the same invariants and liveness properties to check.I checked
M1
andM2
permuting the following configurations, making it 8 different tests:-lncheck final
(or default);Expected Behavior
When
-lncheck final
is set and there are liveness properties to check, I'd expect safety checking throughput to be around the same forM1
andM2
.Actual Behavior
The throughput of safety checking of model
M1
is about 15 million states/min.The throughput of safety checking with
-lncheck final
of modelM2
is about 5 million states/min.BAQueue
OffHeapDiskFPSet
-lncheck final
BAQueue
OffHeapDiskFPSet
-lncheck final
Total liveness check time is the sum of "Finished checking temporal properties in ..." for a given model check;
Total time is the time displayed by TLC in minutes and seconds: "Finished in ... at (...)";
Throughput refers to generated states (not distinct states) displayed every minute by TLC during state space exploration: "... states generated (... s/min)". This is their average;
Steps to Reproduce
Environment
java 21.0.2 2024-01-16 LTS
The text was updated successfully, but these errors were encountered: