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

use R*-Tree for Pareto frontier #107

Merged
merged 9 commits into from
Dec 21, 2018
Merged

Conversation

alyst
Copy link
Contributor

@alyst alyst commented Nov 22, 2018

I've started SpatialIndexing.jl package (implements R*-tree), and this PR uses R*-tree as the container for the Pareto frontier in EpsBoxArchive as discussed in #82. Unfortunately, at the moment I'm hitting some internal Julia error JuliaLang/julia#30122. So either that would be fixed or I'll find some workaround to proceed further.

- minimal Julia version that compiles BBO+SpatialIndexing correctly
- minimal SpatialIndexing version that exposes necessary API
@robertfeldt
Copy link
Owner

Very nice. Please tell me when you feel it is stable enough to eval and merge.

alyst added 2 commits December 6, 2018 01:20
best_candidate should also be updated when its index coincides with the
eps-progressed candidate. In that case aggregated fitness may become
slightly worse because of the difference in eps-progress and aggscore
metrics. But this is required for correctness and convergence.
@alyst
Copy link
Contributor Author

alyst commented Dec 11, 2018

I was running it for a while with 24x parallel evaluator. It looks stable. It also reduces Pareto front update bottleneck, although that requires more benchmarking. JuliaLang/julia#30122 type intersection bug was fixed in 1.0.3/1.1.0/master, so for merging this PR we have to wait until any of these versions are released.

@coveralls
Copy link

coveralls commented Dec 11, 2018

Coverage Status

Coverage decreased (-29.2%) to 66.006% when pulling 4b33632 on alyst:pareto_rtree into 6bbd223 on robertfeldt:master.

@robertfeldt
Copy link
Owner

Ok, great, let's wait for at least 1.0.3 then. Did you need to do anything in particular for running he parallel evaluator or is this now well enough supported on master? Would be great if you can add some relevant examples/code for this just to help people get started.

@alyst alyst changed the title [WIP] use R*-Tree for Pareto frontier use R*-Tree for Pareto frontier Dec 21, 2018
this version is no longer maintained and has known bugs that affect BBO
@alyst
Copy link
Contributor Author

alyst commented Dec 21, 2018

Julia 1.0.3 is released, so this PR should be fine for evaluation

Did you need to do anything in particular for running he parallel evaluator or is this now well enough supported on master?

I was testing with async parallel evaluator from #46 (should be better for Borg). It works for me, but I'm hesitating a bit about about merging and promoting it, because it uses a strange/ugly mix of locks/semaphores and SharedArrays for synchronization (the result of trying to minimize the overhead of serialization during processes communication).

@robertfeldt robertfeldt merged commit 7d94728 into robertfeldt:master Dec 21, 2018
@alyst alyst deleted the pareto_rtree branch December 21, 2018 17:34
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

Successfully merging this pull request may close these issues.

3 participants