Distributed processing
Posted cutepig
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Distributed processing相关的知识,希望对你有一定的参考价值。
Distributed processing
Tool |
好处 |
坏处 |
类型 |
支持序列化 |
支持根据负载动态调度任务 |
支持c |
支持dependency的调度 |
有成熟的library |
|||||
Actor model |
天生支持分布式,本身已经包含基本的serialization功能 |
比较底层 需要自己编写调度代码 没有广泛支持c的library |
传统基于msg的系统 |
v |
x |
v |
x |
x |
|||||
Apache Storm |
本身支持分布式,dependency的调度 |
基于java,不支持c |
Streaming 系统 |
v |
v |
x |
v |
v |
|||||
Grpc |
支持c |
需要自己编写调度代码 效率不高(基于http) |
RPC |
v |
x |
v |
x |
v |
|||||
Stapl (Standard Adaptive Parallel Library) https://parasol.tamu.edu/stapl/ |
STAPL(标准模板自适应并行库)是用于在C ++中开发并行程序的框架。它设计用于共享和分布式内存并行计算机
TaskGraph
|
|
|
|
V? |
|
|
|
|||||
Stolos, https://github.com/sailthru/stolos/blob/master/README.md Chronos, luigi, Azkaban |
a task dependency scheduler that helps build distributed pipelines |
像是接近批处理框架,实时性可能会慢? |
|
|
V? |
|
|
|
|||||
Zeromq |
支持c |
只是消息队列,需要自己编写序列化,和调度 |
|
|
V? |
|
|
|
|||||
Celery http://www.celeryproject.org/ |
芹菜:分布式任务队列 Celery是基于分布式消息传递的异步任务队列/作业队列。它专注于实时操作,但也支持调度。 |
基于python |
|
|
V? |
x |
? |
v |
|||||
Thrift |
|
|
|
|
|
|
|
|
|||||
hadoop |
|
批处理系统,慢 Map reduce不是非常适用 Java |
MapReduce-like 系统 |
v |
v |
v |
x |
V |
|||||
MPI (mpich2 和 openmpi) |
|
|
传统基于msg的系统 |
|
|
|
|
|
|||||
GraphLab (dato) https://turi.com/ |
|
好像用于机器学习方面的 |
图计算系统 |
|
|
|
|
|
|||||
Giraph / Hama |
|
|
图计算系统 |
|
|
|
|
|
|||||
Spark Streaming |
|
不是纯粹的流处理,实时性可能会有影响 |
Streaming 系统 |
|
|
|
|
|
|||||
Flink |
|
|
Streaming 系统 |
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|||||
Bonic https://boinc.berkeley.edu/trac/wiki/ProjectMain |
|
|
|
|
|
|
|
|
|||||
Tpl dataflow |
|
|
|
|
|
|
|
|
|||||
Julia language https://julialang.org/ |
语言层面支持分布式 |
没有图调度 |
|
v |
v |
vx |
x |
V |
|||||
|
|
是一个标准 |
|
|
|
|
|
|
|||||
|
是一个标准 |
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
Keywords
Distributed processing
Distributed computing
Distributed task scheduler
并行计算
高性能计算
Task Dependence Graph
技术
Paxos
Consistent Hash
分布式存储系统还有一系列的理论、算法、技术作为支撑:例如 Paxos, CAP, ConsistentHash, Timing (时钟), 2PC, 3PC
分布式计算系统也做了一个分类,如下:
1. 传统基于msg的系统
2. MapReduce-like 系统
3. 图计算系统
4. 基于状态(state)的系统
5. Streaming 系统
https://en.wikipedia.org/wiki/List_of_concurrent_and_parallel_programming_languages
http://www.infoq.com/cn/articles/comparison-of-main-stream-processing-framework
http://www.infoq.com/cn/articles/comparison-of-main-stream-processing-framework
以上是关于Distributed processing的主要内容,如果未能解决你的问题,请参考以下文章
torch.distributed.barrier() 是如何工作的
[Big Data - ZooKeeper] ZooKeeper: A Distributed Coordination Service for Distributed Applications
ClickHouse 分布式原理:Distributed引擎
ClickHouse 分布式原理:Distributed引擎
The Microsoft Distributed Transaction Coordinator (MS DTC) has cancelled the distributed transaction