Skip to content

use R*-Tree for Pareto frontier#107

Merged
robertfeldt merged 9 commits into
SciML:masterfrom
alyst:pareto_rtree
Dec 21, 2018
Merged

use R*-Tree for Pareto frontier#107
robertfeldt merged 9 commits into
SciML:masterfrom
alyst:pareto_rtree

Conversation

@alyst

@alyst alyst commented Nov 22, 2018

Copy link
Copy Markdown
Contributor

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
Copy Markdown
Collaborator

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

alyst commented Dec 11, 2018

Copy link
Copy Markdown
Contributor Author

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

coveralls commented Dec 11, 2018

Copy link
Copy Markdown

Coverage Status

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

@robertfeldt

Copy link
Copy Markdown
Collaborator

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

alyst commented Dec 21, 2018

Copy link
Copy Markdown
Contributor Author

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 SciML: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