Skip to content
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

Extremely high memory use when mintermizing some files #444

Open
jn1z opened this issue Oct 20, 2024 · 5 comments
Open

Extremely high memory use when mintermizing some files #444

jn1z opened this issue Oct 20, 2024 · 5 comments

Comments

@jn1z
Copy link

jn1z commented Oct 20, 2024

I'm attempting to mintermize some AFA-bits files from automata-bench.
I've been successful for several, but for noodler/str_2/quad-002-1-unsat/xx17064.mata and others, I go somewhere past 45GB of memory.

Maybe this is expected? But it doesn't seem like it's impossibly complex; if I understand the math of this operation for this file, there should be at most 2^25 labels, of which I assume a lot would collapse.

build/examples/example06-mintermization automata-bench/noodler/str_2/quad-002-1-unsat/xx17064.mata

@Adda0
Copy link
Collaborator

Adda0 commented Oct 20, 2024

Thank you for the issue and reproducible example. We will have a look when we have some time. We are aware that sometimes there are issues with Z3-Noodler failing on memory out error caused by Mata when running benchmarks. Sometimes it is to be expected due to the nature of the automata worked with and operations applied on them, but it is possible that in this case there is a bug somewhere. It might take us some time to get the time to work in this issue, however.

@jn1z
Copy link
Author

jn1z commented Oct 21, 2024

Thank you. This appears to be relatively common, even outside of Z3-Noodler.
automata_bench/ltl_afa/created_ltl/LTLf-specific/RespondedExistence/N510.mata takes more than 20GB (terminating early)

In this case, the file is only 7 lines long (only 4 lines describe states). There are a lot of variables being used, but they should collapse dramatically.

@Adda0
Copy link
Collaborator

Adda0 commented Oct 21, 2024

Thank you for the examples. It is busy for us at the moment, so we have not had the change to inspect this issue. I believe there is an issue with our parser (we are long due a full rewrite of our too general and abstract parser). We believe most of the similar issues will be solved once the parser is rewritten. If these examples are not the case, a more thorough review of this issue will have to follow (or precede) the rewrite.

@jn1z
Copy link
Author

jn1z commented Oct 21, 2024

Thank you for the responses. Yes, I think this issue is more prevalent than I originally realized: more than 50% of the files are failing. I hit an additional failure which I'll log separately as well.

@koniksedy
Copy link
Collaborator

koniksedy commented Dec 2, 2024

I believe that the high memory consumption is somehow expected. In the automaton automata_bench/ltl_afa/created_ltl/LTLf-specific/RespondedExistence/N510.mata, you have about 500 bits on the transition. This results, in the worst case (this case), in 2^500 minterms (combinations).

Such automata were not suppose to be mintermized.

Maybe this is expected? But it doesn't seem like it's impossibly complex; if I understand the math of this operation for this file, there should be at most 2^25 labels, of which I assume a lot would collapse.

build/examples/example06-mintermization automata-bench/noodler/str_2/quad-002-1-unsat/xx17064.mata

On the other hand, for this example (xx17064.mata), it seems to be too high.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants