并发程序:含多个逻辑上的独立执行块,可以独立地并行执行,也可以串行执行。是同一时间处理(发生)多件事情的能力。

并行程序:比串行程序快得多,可以同时执行整个任务的多个部分。是同一时间执行多件事情的能力。

并行架构

  • 位级并行
  • 指令级并行(流水线、乱序执行、猜测执行等)
  • 数据级并行(单指令多数据)
  • 任务级并行(多处理器)——特征:内存模型(共享内存模型或分布式内存模型)

    模型

  • 线程与锁模型

  • 函数式编程
    • 消除了可变状态,所以从根本上是线程安全的
  • actor模型
    • 适用于共享内存模型和分布式内存模型
  • 通信顺序进程(Communicating Sequential Processes, CSP)模型
    • 与actor模型相似,都是基于消息传递。但CSP模型侧重于传递信息的通道;而actor模型侧重与通道两端的实体
  • reactor 与 proactor 模型

    https://www.kancloud.cn/idzqj/customer/1885415 https://gee.cs.oswego.edu/dl/cpjslides/nio.pdf https://blog.csdn.net/wlddhj/article/details/123872275

  • Lambda架构

    • 总和了MapReduce和流式处理的特点
  • 数据级并行——GPU