Replies: 1 comment
-
It builds a search tree. THe root of the tree is sequential. So if all time is spent at the root there is no parallel effect. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
When using the Z3 solver, I've noticed that despite enabling parallel mode (set_param("parallel.enable", True)), the actual solving process doesn't seem to fully utilize multi-threading. I've observed only one thread being active, while others remain idle.
I've consulted the Z3 documentation, including parallel, which describes parallel processing. The documentation states that parallel mode affects tactics like qfbv that use the SAT solver for sub-goals, introducing a "cube-and-conquer" approach.
My code deals with two independent floating-point expressions, p1(x) and p2(y), connected by an AND operation: p1 > 0.5 && p2 < 0.2. Intuitively, this could be seen as two independent sub-problems that could potentially be solved in parallel. However, even with the parallel parameter set, I haven't observed multi-threading activity during execution.
Here's the code I'm using:
Under what specific conditions does Z3's parallel.enable parameter actually trigger parallel processing?
For this type of floating-point constraint with seemingly independent sub-problems, does Z3 consider it a suitable scenario for parallel solving? If so, why am I not observing multi-threading activity with my code?
Are there specific tactics or parameter configurations I need to explicitly use or adjust to ensure full utilization of Z3's parallel capabilities in this kind of floating-point problem?
Beta Was this translation helpful? Give feedback.
All reactions