Ray’s actor model, and its simplicity of implementation in Python-based frameworks is a primary motivation for using it in a higher-level research framework (Realm, to be published) for real-time analytic monitoring of critical events (e.g. suicide risk, infectious diseases, etc.) that my colleagues and I are working on.
The purpose of Realm is to provide:
- real time alerts in response to, for example, continuously occurring, high-frequency clinical events,
- support for online learning,
- distribution of model updates through the hierarchy of models (local/embedded, regional, and central), and
- targeted, selective, and context-specific updates to these models.
While other frameworks provide most of these functions (Akka, Spark, Kafka, etc.), we are exploring and using Ray because of its simplicity of implementation (using actors for models’ updates and maintenance, etc.), and integration of related sub-frameworks (Tune, RLib).
Research and engineering questions that we need to address in relation to Ray, and to the overall implementation is the synchronization of model updates in the context of online learning, related protocols (broadcast, targeting, etc.) and the conflict and collision resolution if, for example, two distributed models are to be updated from higher-order models.
I will be positing here what we/I learn in the process, as well as other relevant updates related to use of Ray, and other RISE-originating frameworks.