python中的小演员运行时。
tartp的Python项目详细描述
受tart.js启发的Actor Model的python实现。
概述
关于tartpy的最初想法是从@dalnefre和 @tristanls。最初,目标是复制tart.js 在Python中。最近,它有点发散 版本3.4中引入了新的python异步模型。
tartpy旨在成为具有以下功能的actor库:
- 它实现了纯actor模型(而不是erlang模型),
- 它可以在实际情况下用来表示无锁和 并发算法,
- 它将网络传输抽象为允许任意协议,
- 它实现了capability based approach来隔离参与者, 使用薄膜(同样,这些想法是由于@dalnefre和 @tristanls)。膜的语义可能不同于 tartpy和tartjs。
安装
安装时使用:
$ pip install git+https://github.com/waltermoreira/tartpy
或者克隆此存储库并使用python3 setup.py install:
安装$ git clone https://github.com/waltermoreira/tartpy $ cd tartpy $ python3 setup.py install
测试
使用以下命令运行测试:
$ python3 setup.py test
示例
使用以下命令运行示例:
python3 tartpy/example.py
还有一个IPython notebook显示了actors的基本属性。
项目actor_model包含幻灯片和ipython笔记本 2014年4月17日在TACC发表的演讲。
Erlang挑战
创建一个由Mactors组成的环,在环周围发送N消息:
python3 tartpy/erlang_challenge.py M N
基准
对于M = 100000和N = 10:
Starting 100000 actor ring Construction time: 1.5192079544067383 seconds Loop times: 0.7743091583251953 seconds 0.7793149948120117 seconds 0.7702958583831787 seconds 0.7602570056915283 seconds 0.7704610824584961 seconds 0.779731035232544 seconds 0.7654228210449219 seconds 0.7625432014465332 seconds 0.7740719318389893 seconds 0.7699680328369141 seconds Average: 0.7706375122070312 seconds