您的位置:首页 > 其它

actor model vs tasked based parallizm

2015-08-22 12:26 465 查看
举例子:计算pi

actor model
概念:一般有n个actor(task),和一个调度线程(本身也是一个actor)
调度线程负责向每个task发送命令执行计算,以及接收每个task的结果并归并到一起
接口一般定义为:
addTask( new Task{ onReceive(msg,from)..., send(to,xxx)} )

tasked based parallizm
概念:可以定义task和io,io用来计算task的依赖关系。系统自动根据依赖关系执行所有task
使用流程:
创建子task,子task无依赖
创建汇总task,依赖所有的子task
最后启动所有task,等待完成即可
接口一般定义为:
addTask(new task(in, out, callbackfun))

如何用actor model实现tasked based parallizm?
MyTask
{
MyTask(in,out) //记录下io即可

onReceive(msg)
{
if msg.id in my dependencies
mark this dependency is done

if all dependencies are done
do the callbackfun
send msg to all out tasks
}
}

boost:;future实现任务并行化

for i in N
future_i =start subtask
ins.append(future_i)
start merge task(ins as input)
wait all task done

Actor model

c++ CAF http://actor-framework.org/pdf/cshw-nassp-13.pdf https://github.com/actor-framework/actor-framework

QP/C++

Akka
https://github.com/Neverlord/libcppa http://www.theron-library.com/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: