Skip to content
This repository has been archived by the owner on Apr 14, 2022. It is now read-only.

Optimization possible #30

Open
jcp19 opened this issue Jan 20, 2020 · 1 comment
Open

Optimization possible #30

jcp19 opened this issue Jan 20, 2020 · 1 comment
Labels
enhancement New feature or request important

Comments

@jcp19
Copy link
Owner

jcp19 commented Jan 20, 2020

Basically, the races seem to be very "local" in the sense that even though they have hundreds of candidates, what happens, at least in the case of the cyclon, is that these races translate into a few unique locations. Therefore, a possible optimization would be to make a list of unique possible locations in race from the set of candidates to race conditions and then only solve until you find a race. All other candidates can be ignored because even if they are sat, they will give rise to a race that has already been detected

@jcp19 jcp19 added enhancement New feature or request important and removed important labels Jan 20, 2020
@jcp19
Copy link
Owner Author

jcp19 commented Jan 27, 2020

Another idea in line with the previous one:

Instead of querying the SAT solver for each data race candidate, we can instead, for each pair of candidate locations, gather all candidate pairs in a Collection P and then, generate the following assertion to be run with the HB model:

p1.fst = p1.snd || p2.fst = p2.snd || ... || pN.fst = pN.snd,

where pi is a pair of P.

The advantage of this is that the SAT solver will only be queried once per candidate location and it will stop whenever the first concurrent pair of events is found.

@jcp19 jcp19 closed this as completed Jan 27, 2020
@jcp19 jcp19 reopened this Jan 27, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request important
Projects
None yet
Development

No branches or pull requests

1 participant