并发计算模型BSP与SEDA
1 BSP批量同步并行计算
BSP(Bulk Synchronous Parallel)批量同步并行计算用来解决并发编程难的问题。名字听起来有点矛盾,又是同步又是并行的。因为计算被分组成一个个超步(super-step),超步内并行计算并且结点间不能通信。在超步之间设置同步栅栏(barrier synchronization),计算完成后相互通信,全部完成后才能继续下一个超步。
2 SEDA阶段式事件驱动架构
SEDA(staged event-driven architecture)分阶段的事件驱动架构。它不同于经典的基于线程的并发处理架构,也区别于现今流行的事件驱动。
Ø 基于线程的并发:资源使用率高(上下文切换,锁争夺),过多的线程难以实现高吞吐量、低响应时间。传统做法是限制总的线程数。
Ø 事件驱动的并发:用少量事件处理线程配合许多状态机(FSM),提供高效和可扩展的并发性能。FSM间没有错误和性能隔离,并且FSM代码不能阻塞。
事件驱动的有限状态机在Web服务器中很常见。
接下来要说的就是SEDA了,它具有以下特点:
Ø 将服务分解为把理发椅子。这样他可以同时给3个人理发:当其中一个人理到一定阶段需要调整或定型的时候,他就转向另外一个客户为其服务,依次类推。这样,他发现一天内他可以理的人数比以前增多了,但是还会有一些后来的客户抱怨等待时间太长。后来,理发师招了2名学徒帮他一起干活。他发现这样一来每天的理发效率增加了将近2倍,而且客户的等待时间也明显减少。但是成本增多了,理发用具、洗发水、发工资,这让他觉得开个理发店也要精打细算。“
FSM中的各个状态被划分成一系列的阶段,由不同的队列隔离开。每个阶段能被独立管理,并且阶段间可以或串行或并行或两者组合的方式地执行。
参考资料
1 The Staged Event-Driven Architecture for Highly-Concurrent Server Applications
2 SEDA: An Architecture for Scalable, Well-Conditioned Internet Services
并发计算模型BSP与SEDA的更多相关文章
- MapReduce计算模型二
之前写过关于Hadoop方面的MapReduce框架的文章MapReduce框架Hadoop应用(一) 介绍了MapReduce的模型和Hadoop下的MapReduce框架,此文章将进一步介绍map ...
- 【CDN+】 Spark入门---Handoop 中的MapReduce计算模型
前言 项目中运用了Spark进行Kafka集群下面的数据消费,本文作为一个Spark入门文章/笔记,介绍下Spark基本概念以及MapReduce模型 Spark的基本概念: 官网: http://s ...
- 性能测试学习之二 ——性能测试模型(PV计算模型)
PV计算模型 现有的PV计算公式是: 每台服务器每秒平均PV量 =( (总PV*80%)/(24*60*60*40%))/服务器数量 =2*(总PV)/* (24*60*60) /服务器数量 通过定积 ...
- MapReduce 计算模型
前言 本文讲解Hadoop中的编程及计算模型MapReduce,并将给出在MapReduce模型下编程的基本套路. 模型架构 在Hadoop中,用于执行计算任务(MapReduce任务)的机器有两个角 ...
- MapReduce计算模型
MapReduce计算模型 MapReduce两个重要角色:JobTracker和TaskTracker. MapReduce Job 每个任务初始化一个Job,没个Job划分为两个阶段:Map和 ...
- C++11并发内存模型学习
C++11标准已发布多年,编译器支持也逐渐完善,例如ms平台上从vc2008 tr1到vc2013.新标准对C++改进体现在三方面:1.语言特性(auto,右值,lambda,foreach):2.标 ...
- Spark计算模型
[TOC] Spark计算模型 Spark程序模型 一个经典的示例模型 SparkContext中的textFile函数从HDFS读取日志文件,输出变量file var file = sc.textF ...
- Java并发编程的艺术读书笔记(2)-并发编程模型
title: Java并发编程的艺术读书笔记(2)-并发编程模型 date: 2017-05-05 23:37:20 tags: ['多线程','并发'] categories: 读书笔记 --- 1 ...
- MapReduce计算模型的优化
MapReduce 计算模型的优化涉及了方方面面的内容,但是主要集中在两个方面:一是计算性能方面的优化:二是I/O操作方面的优化.这其中,又包含六个方面的内容. 1.任务调度 任务调度是Hadoop中 ...
随机推荐
- [BZOJ]4908: [BeiJing2017]开车
Time Limit: 30 Sec Memory Limit: 256 MB Description 你有n辆车,分别a1, a2, ..., an位置和n个加油站,分别在b1, b2, ... ...
- NOIP 2012
Prob.1 vigenere密码 模拟代码: #include<cstdio> #include<cstring> #include<iostream> usin ...
- poj 1704 Georgia and Bob(阶梯博弈)
Georgia and Bob Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 9363 Accepted: 3055 D ...
- hdu 5135(2014广州—状态dp)
t题意:给你n条边,构造任意个三角形,一个三角形恰好只用3条边,每条边只能一次,求面积最大值 思路: 最开始想的是先排序从大到小取,但感觉并不怎么靠谱. 最多12条边,所以可以求出所有可能的三角形面积 ...
- bzoj 4025: 二分图
Description 神犇有一个n个节点的图.因为神犇是神犇,所以在T时间内一些边会出现后消失.神犇要求出每一时间段内这个图是否是二分图.这么简单的问题神犇当然会做了,于是他想考考你. 解题报告: ...
- 测试修改gcs_server_processes参数
RAC部署前提是要求各节点的主机硬件一致的,但实际如果碰上一些不规范的客户,经费有限或是扩容时已买不到同样的机器,那么采购的机器会有一些区别,比如RAC各节点的CPU核数有区别,那么默认的gcs_se ...
- day5 liaoxuefeng---访问数据库、web开发、异步IO
一.访问数据库 二.web开发 三.异步IO
- 用js实现排列组合
在leetcode上看到一个题,代码实现排列组合的. 记得大学上课时候,就用c写过,现在用js试试,顺便看看耗时. 先看看3的阶乘: function permute(temArr,testArr){ ...
- Lintcode392 Is Subsequence solution 题解
[题目描述] Given a string s and a string t, check if s is subsequence of t. You may assume that there is ...
- FastReport报表MVC显示步骤
FastReport报表MVC使用步骤如下: 1.创建MVC网站项目 最终DEMO如下图所示 2.引用相关DLL FastReport.dll FastReport.Web.dll 3.Web.con ...