Package website: release | dev
rush is an R package for asynchronous and decentralized optimization.
It uses a database-centric architecture in which workers communicate
through a shared Redis database. To support
high-throughput workloads, rush combines sub-millisecond per-task
overhead with caching strategies that reduce database operations. The
package integrates with the mlr3 ecosystem and serves as the backend
for asynchronous optimization algorithms in
bbotk and
mlr3tuning.
- Database-centric architecture for decentralized optimization without a central controller.
- Asynchronous communication between workers using
Redis. - Sub-millisecond per-task overhead for high-throughput workloads.
- Efficient caching mechanism that minimizes database read/write operations.
- Task queue support for centralized tasks distribution when needed.
- Fast data transformation from Redis to
data.table. - Scales to large remote worker networks via the
miraipackage. - Worker logging directly into the Redis database using
lgr. - Minimal dependencies for lightweight integration.
Install the latest release from CRAN.
install.packages("rush")Install the development version from GitHub.
pak::pak("mlr-org/rush")And install Redis.
To test the package, set the RUSH_TEST_USE_REDIS environment variable
to true. The test suite deletes the Redis database before execution,
so never run it against a production server.
Sys.setenv(RUSH_TEST_USE_REDIS = "true")