icaros-usc / pyribs

A bare-bones Python library for quality diversity optimization.
https://pyribs.org
MIT License
207 stars 33 forks source link

Minimize numba usage #232

Closed btjanaka closed 2 years ago

btjanaka commented 2 years ago

Description

Batching the archive operations resulted in massive speedups for the library. Since numba tends to overcomplicate the implementation, we have decided to remove as much of it as we can. This does result in ~5s slowdown on the sphere example (e.g. with cma_me_imp, cma_me_imp_mu, and map_elites) but the total runtime is still much lower than before, and we gain much in code readability and hackability.

Note that we will continue to depend on numba (1) since numpy_groupies depends on it and (2) in case we need to speed up any other bottlenecks in the future.

TODO

Questions

Status