Distributed processing.

Distributed processing

 

Tool

好处

坏处

类型

支持序列化

支持根据负载动态调度任务

支持c

支持dependency的调度

有成熟的library

Actor model

天生支持分布式,本身已经包含基本的serialization功能

比较底层

需要自己编写调度代码

没有广泛支持c的library

传统基于msg的系统

v

x

v

x

x

Apache Storm

http://storm.apache.org/

本身支持分布式,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/

https://parasol-lab.gitlab.io/stapl-home/docs/sgl/

https://gitlab.com/parasol-lab

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 系统

 

 

 

 

 

TBB

Charm++

Titanium

UPC

PSTL

 

 

 

 

 

 

 

 

 

Bonic

https://boinc.berkeley.edu/trac/wiki/ProjectMain

 

 

 

 

 

 

 

 

Tpl dataflow

 

 

 

 

 

 

 

 

Julia language

https://julialang.org/

语言层面支持分布式

没有图调度

 

v

v

vx

x

V

 

 

是一个标准

 

 

 

 

 

 

 

是一个标准

 

 

 

 

 

 

  • Apache graphx

 

 

 

 

 

 

 

 

  • Apache Storm,Trident,Spark Streaming,Samza和Apache Flink

 

 

 

 

 

 

 

 

 

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

 

Powered by Jekyll and Theme by solid

本站总访问量