Actor Model in Python
![](https://secure.gravatar.com/avatar/14bf6d3da49f6d717c0ea93acea8517b.jpg?s=120&d=mm&r=g)
Hello, I was wondering if there was any Python project aiming to implement the actor model for python concurrency. ¿Does anyone know it? Aratz.
![](https://secure.gravatar.com/avatar/dd4761743695d5efd3692f2a3b35d37d.jpg?s=120&d=mm&r=g)
On Sun, Mar 31, 2019 at 9:19 AM Aratz Manterola Lasa via Python-Dev <python-dev@python.org> wrote:
I was wondering if there was any Python project aiming to implement the actor model for python concurrency.
As far as the standard library goes, the explicitly supported concurrency models are: threading, multiprocessing, and async/await. Between these (and a few other parts provided by Python) anyone can build libraries that emulate various other concurrency models. Such libraries exist on the cheeseshop (PyPI), though I don't know about packages for the actor model specifically. I recommend searching there for such packages. If you don't find one then perhaps you've found a new project to start. :) Also, I have a proposal [1] for Python 3.9 that provides first class [low level] support for concurrency models like CSP and the actor model. This is done with multiple [mostly] isolated interpreters per process and with basic "channels" for safely passing messages between them. While the proposed library is intended to be useful on its own, it is also intended to provide effective building blocks for library authors. Note that the PEP has not been accepted and is not guaranteed to be accepted (though I'm hopeful). Regardless, consider posting to python-list@python.org for feedback from the broader Python community. This list is specifically used for the development of the Python language itself. Thanks! -eric [1] https://www.python.org/dev/peps/pep-0554/
![](https://secure.gravatar.com/avatar/63ca18e130d527d0741f1da54bb129a7.jpg?s=120&d=mm&r=g)
https://trio.readthedocs.io/en/latest/reference-core.html#synchronizing-and-... https://pypi.org/search/?q=Actor+model https://en.wikipedia.org/wiki/Actor_model https://en.wikipedia.org/wiki/Bulk_synchronous_parallel#The_model On Friday, April 26, 2019, Eric Snow <ericsnowcurrently@gmail.com> wrote:
On Sun, Mar 31, 2019 at 9:19 AM Aratz Manterola Lasa via Python-Dev <python-dev@python.org> wrote:
I was wondering if there was any Python project aiming to implement the actor model for python concurrency.
As far as the standard library goes, the explicitly supported concurrency models are: threading, multiprocessing, and async/await. Between these (and a few other parts provided by Python) anyone can build libraries that emulate various other concurrency models. Such libraries exist on the cheeseshop (PyPI), though I don't know about packages for the actor model specifically. I recommend searching there for such packages. If you don't find one then perhaps you've found a new project to start. :)
Also, I have a proposal [1] for Python 3.9 that provides first class [low level] support for concurrency models like CSP and the actor model. This is done with multiple [mostly] isolated interpreters per process and with basic "channels" for safely passing messages between them. While the proposed library is intended to be useful on its own, it is also intended to provide effective building blocks for library authors. Note that the PEP has not been accepted and is not guaranteed to be accepted (though I'm hopeful).
Regardless, consider posting to python-list@python.org for feedback from the broader Python community. This list is specifically used for the development of the Python language itself. Thanks!
Or python-ideas@python.org , though I'm not sure what would be needed from core Python or stdlib to create another actor model abstraction on top of the actual concurrency primitives. Truly functional actors are slow when/because the memory is not shared inter-process https://arrow.apache.org/docs/python/memory.html#referencing-and-allocating-... https://arrow.apache.org/docs/python/ipc.html#arbitrary-object-serialization https://www.python.org/dev/peps/pep-0554/#interpreter-isolation
-eric
"PEP 554 -- Multiple Interpreters in the Stdlib" https://www.python.org/dev/peps/pep-0554/ Is there / are there Issues, PRs, and Mailing List Threads regarding the status of this proposal? So sorry to interrupt,
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/ wes.turner%40gmail.com
![](https://secure.gravatar.com/avatar/ed6755234864091fbbfd9d6cea1277d7.jpg?s=120&d=mm&r=g)
Hello, ERP5 https://erp5.nexedi.com) implements the "Actalk" actor model in a library called "CMFActivity". Processing (ex. financial transactions, machine learning) can be distributed on a cluster of servers. Actalk is interesting because it provides a way to unify and combine multiple OOCP models within the same runtime, rather than being forced to use only one. * Actalk: http://www-poleia.lip6.fr/~briot/actalk/papers/PAPERS.html * CMFActivity: https://lab.nexedi.com/nexedi/erp5/tree/master/product/CMFActivity Go channels concurrency model is ported to python: https://pypi.org/project/pygolang/ Nexedi has plans to experiment a port of Actalk to Cython with GIL-less concurrency. Regards, JPS. Le 2019-03-31 12:30, Aratz Manterola Lasa via Python-Dev a écrit :
Hello, I was wondering if there was any Python project aiming to implement the actor model for python concurrency. ¿Does anyone know it? Aratz. _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/nicolas%40nexedi.com
![](https://secure.gravatar.com/avatar/ed6755234864091fbbfd9d6cea1277d7.jpg?s=120&d=mm&r=g)
Hello, ERP5 https://erp5.nexedi.com) implements the "Actalk" actor model in a library called "CMFActivity". Processing (ex. financial transactions, machine learning) can be distributed on a cluster of servers. Actalk is interesting because it provides a way to unify and combine multiple OOCP models within the same runtime, rather than being forced to use only one. * Actalk: http://www-poleia.lip6.fr/~briot/actalk/papers/PAPERS.html * CMFActivity: https://lab.nexedi.com/nexedi/erp5/tree/master/product/CMFActivity Go channels concurrency model is ported to python: https://pypi.org/project/pygolang/ Nexedi has plans to experiment a port of Actalk to Cython with GIL-less concurrency. Regards, JPS. Le 2019-03-31 12:30, Aratz Manterola Lasa via Python-Dev a écrit :
Hello, I was wondering if there was any Python project aiming to implement the actor model for python concurrency. ¿Does anyone know it? Aratz. _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/nicolas%40nexedi.com
participants (4)
-
Aratz Manterola Lasa
-
Eric Snow
-
Jean-Paul Smets
-
Wes Turner