Closed rcnlee closed 4 years ago
Is there any progress on this? Is it because julia threads support experimental that you may want to do it later?
There hasn't been any progress. Mostly because I haven't had time to work on it. I've done some profiling since I opened the issue and both the genetic operations and the evaluation of the expressions are bottlenecks (since the introduction of SymbolTable, before it was all evaluation), so it might be a better idea to parallelize over both. e.g., in GP, crossover and mutation requires deepcopying and manipulating trees.
I tried to simply parallel the evaluation of loss in the cross entropy method via multi-threading and the performance gain is very obvious. I'd like to fire a PR soon if no one else is working on it. Besides, there is also https://github.com/sisl/ExprSearch.jl that seems to have a similar set of implementations - which package is actually maintained and I should be contributing to?
Yes please, I would welcome that. This is the newer one and is maintained. ExprSearch.jl is deprecated.
At the individual evaluation level. I'm thinking Threads.@thread might be the easiest way to go.