Closed sergedurand closed 2 years ago
I've noticed this as well.
The property is SAT, which means that analysis terminates as soon as a counterexample to the property is found. multiprocessing divides up the work among the different processors based on factors that are hard to predict like timing. My interpretation is this seems to get lucky pretty often on this property, whereas a deterministic search (single-process) does not. The numerical instability is a factor of LP solving using GLPK. I'm slowly working on a new implementation with Gurobi, but that won't be ready for some time.
Hi, I would like to signal a potential bug: Running nnenum on ACAS property 7, network 1_9, using the provided property and network files, the analysis finished pretty quickly when using 3 or more processes (~0.3s), but doesn't seem to finish at all when using 1 or 2 processes.
yields
Running with one process:
First 1000 lines of outputs: first.txt Last 1000 lines: last.txt
It searches for ~38s, get stuck in numerical instability (thousands of
Warning: numerical instability (primal simplex, phase II)
printed), then picks up the search and reaches timeout with a reset:and a few
Note: minimize failed with fail_on_unsat was true, trying to reset basis... Using result after reset basis (soltion was now feasible)
.Running with two processes:
It also reaches timeout with a few
Note: minimize failed with fail_on_unsat was true, trying to reset basis... Using result after reset basis (soltion was now feasible)
but no numerical instability. Full output: 2_proc_prop_7.txtI get similar results with property 8 network 2_9, except that it seems to search forever with 3 processes too, but manages at 4 and above.
My machine: Ubuntu 20.04 cpu: 11th Gen Intel(R) Core(TM) i9-11950H @ 2.60GHz python version : 3.6.13 numpy==1.19.5 scipy==1.4.1 threadpoolctl==2.1.0 onnx==1.9.0 onnxruntime==1.8.0 skl2onnx==1.7.0 swiglpk==5.0.3 glpk: 4.65
Is this normal?