zoukankan      html  css  js  c++  java
  • actor model vs tasked based parallizm

    举例子:计算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/

  • 相关阅读:
    javascript基础
    html基础
    css基础
    django-session和cookie
    rest架构
    django-models
    django-templates
    Alignment
    ural 1225.Flags
    ural 1009. K-based Numbers
  • 原文地址:https://www.cnblogs.com/cutepig/p/4750015.html
Copyright © 2011-2022 走看看