-
Notifications
You must be signed in to change notification settings - Fork 46
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
Permute improvements #154
Comments
expanded version of #32 |
Basically, There's some subtleties around threading here: what happens is the parent keeps a Permuter per directory you pass in on the cmdline, and each worker keeps a copy of all the Permuters. For each candidate result found by a Permuter, it checks I see a couple of possible ways forward for this:
4 feels clearly easiest. UI is a bit unclear, but could perhaps have a flag for "in addition to the starting point, also try to start from the top N entries", or maybe some way of manually picking out which ones look reasonable to start from. 3 is pretty terrible, especially with how messy the scheduler code in main.py is (some of which is permuter@home's fault). 1/2 are about the same. If you wanted to sync between workers it would still need changes to the scheduler code, but the changes would be smaller. (It would need some p@h-specific changes though, which 3 does not.) I think probably you'd add a message like "found new good starting point: source X with score/hash Y". 2 is probably slightly nicer than 1 but on reflection the difference doesn't feel significant. |
The permuter should be able to work off of improvements it has already found, deepening the search space. Ideally this would work when running multithreaded.
Each
Permuter
would have an immutable starting point, and main.py or something else would create newPermuter
s when improvements to a base are found. We also need to worry about caching results between Permuters to avoid storing the same improvements multiple times. (simon to fill in details)One pitfall of this approach is that it's sure to generate tons of noisy mutations to the original code, especially with each new layer of findings. To address that, we should try to eliminate meaningless code mutations (#155).
The text was updated successfully, but these errors were encountered: