首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Amdahl关于特定繁重任务的定律

我有一组任务(通过GSM调制解调器发送短信),可以完全并行地执行,但是一个SMS任务不能执行。每个任务大约需要10秒来执行。因此,现在我试图评估它将如何使用4 GSM调制解调器。

Amdahl定律

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Speedup=1/((1-p)+P/s)

在我的例子中,p=1作为任务是完全并行的,s=4 (GSM调制解调器)

因此

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Speedup = s

问题我如何在我的计算中代表这样的案例?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
NumberOfTasks % s != 0

例如,如果我有5个GSM调制解调器,但只有一个短信发送,我的任务是根本不平行的,但根据这项法律,我得到的加速比是5。

所以它真的需要10秒,但根据Amdahl定律,我得到10 /5=2秒

EN

回答 1

Stack Overflow用户

发布于 2019-07-02 03:16:02

如何正确应用Amdahl的论点:

吉恩·安达尔博士早在很久以前就制定了这项法律,当时处理流程的组织改进是大型机计算中心、工业生产和通用工作流优化的重点。这项法律仍然有效,并有它的话要说。

以过程为导向的观点在传统公式的简单性方面仍然有些看不见,但不应如此。同样的情况也适用于“库存”(有些专门化的,“产品”-specific)资源。如果对更多细节感兴趣,可以从并行性-amdahl的历史#3中重新阅读https://stackoverflow.com/revisions/18374629/3的详细信息。

这两段,加上重新制定的Amdahl定律,在“批评评论”()一章中,都详细说明了为什么我们不能简单地将数字放入公式中,并期望得到有效的(即合理和可实现的)结果。

因此,让我们从流程的抽象开始:

其中一个,上面的标识和命名,是发送短信的过程。这个过程是独立的(万岁,没有协调,没有障碍,没有信号量,没有锁,没有进程到进程之间的通信),但是长度是不可分割的,所以为了简洁起见,我们可以称它为atomic-process,因为它不能以完全“原子化”的-indivisible方式执行,但是在进程完成状态能够达到之前,它有一些延迟(持续时间)。

每个进程只有在被映射(分配)和计划(激活/执行)到某些处理资源时才能工作,并且只有当被映射(分配)和调度(激活/执行)时才能工作。

接下来是资源:

由于在最初的帖子中已经有了定义,有4条短信调制解调器.这些都是特定于进程的资源,它们独立于其他任务来承载“原子”-process(任务)(这是一个简单的例子,不能自动无限扩展,因为一旦无线接入网( GSM )最后一英里,载波网络就会开始阻塞),POP处理( BTS -节点)和/或载波网络(从BTS到MSC的上行)将开始达到各自资源的可用容量上限--所有复杂系统都有资源/容量/工作负载分配/性能相关的复杂层次结构,其中每个系统可能开始阻塞我们的“原子”进程-兴趣延迟(持续时间)和“可调度性”(将进程映射到“我们”确定的进程特定处理-资源的单元).也就是说,GSM-调制解调器具有一定数量的背景逻辑,与GSM-网络协调有关,因此它的行为与本地GSM-cell通信量的复杂性无关,在本地BTS-节点和复杂的BTS/MSC-网络处理/流量传输协调条件下都进行了处理,但我们没有间接地观察到这种情况,即增加延迟,甚至拒绝服务响应,如果BTS-节点在某些GSM标准驱动超时之后无法处理“原子”-process请求和丢弃,由于它无法接收和携带短信,因此,自那时起,短信就被认为是一种无保障的短信服务。

因此,让我们保留一个简单的假设,即SMS-modem将始终处理发送短消息的请求,因此在这种资源管理简化的情况下,唯一的限制因素是短消息调制解调器的数量,这里是4

间接费用-严格和资源意识的重新制定:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
                          1                       Where: s      := a SERIAL only part of the End-to-End process-flow
S =  ____________________________________________        1 - s  := a PARALLEL organizable part
                   / ( 1 - s )           \               pSO    := a PARALLEL task setup overhead
     s + pSO + max|  _________ , atomicP  | + pTO        pTO    := a PARALLEL test termination overhead
                   \     N               /               N      := a number of resources that process  atomic-process-block
                                                         atomicP:= a duration of a further indivisible atomic-process-block

结果:

在模拟的情况下,实际时间是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   Ts       =  X [s] a duration to launch the End-to-End process-flow ( start the program ),
   TatomicP = 10 [s] a latency of sending one SMS-message will never be shorter,
    Nres    =  5 [1] a number of SMS-messages processing resources ( i.e. GSM-modems ),
    nSMS    =  1 [1] a number of SMS-messages to send,
   TpSO     =  Y [s] a duration to start a PARALLEL sub-process for GSM-modem pool handling,
   TpTO     =  Z [s] a duration to disengage the pool of PARALLEL sub-processes and to release all of their owned resources,

因此,端到端流程流持续时间T_E2E为:

T_E2E = Ts+TpSO+max(TatomicP*nSMS/Nres, TatomicP)+TpTO) = X + Y + max(10/Nres, 10) + Z

纯-SERIAL流程流的分数SERIAL必须始终保持为纯-SERIAL,它将是:

( Ts ) / ( T_E2E ) = X / ( X + Y + 10 + Z ) [1]

主要上限(可达到的最大值)加速比S将是:

( Ts + TatomicP*Nsms ) / ( Ts + TpSO + max(TatomicP*nSMS/Nres,TatomicP) + TpTO )只需要一条短信和任何数量的短消息处理GSM调制解调器就会出现在<< 1中,对吧,因为纯SERIAL进程流不会耗尽时间,既不需要设置子进程池,也不需要最终终止子进程池,并释放池分配的资源,并且不需要花费时间在主任务和以真正的PARALLEL方式组织的任务池之间安排数据的来回传输。

因此,在这里,您支付的费用比您收到的还多(从流程组织的角度来看,可处理的GSM调制解调器(资源)池的安排和控制成本相当高,只需发送一条短信)。

如果端到端工作流开始处理更多的短消息队列,性能将提高,加速比S也会这样做。处理的群体越多,处理越好。要处理的队列越多,处理的GSM调制解调器越多,越好。

然而,Amdahl的论点为这种可实现的加速设定了主要上限:

S主要不会超过4个调制解调器,不超过5个调制解调器等超过5个。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55174746

复制
相关文章
如何将HTML字符转换为DOM节点并动态添加到文档中
将字符串动态转换为DOM节点,在开发中经常遇到,尤其在模板引擎中更是不可或缺的技术。 字符串转换为DOM节点本身并不难,本篇文章主要涉及两个主题:<br />
用户1631416
2018/09/14
7.6K0
如何将HTML字符转换为DOM节点并动态添加到文档中
在 Debian 中如何将用户添加到 Sudoers
sudo是一个命令行工具,它允许被信任用户以另外一个用户身份运行命令,默认是 root 用户。
雪梦科技
2020/05/11
12.6K0
在 Debian 中如何将用户添加到 Sudoers
在 Ubuntu 中如何将用户添加到 Sudoers
sudo是一个命令行程序,它允许被信任的用户以 root 或者其他用户身份去运行命令。
雪梦科技
2020/05/09
34.4K0
在 Ubuntu 中如何将用户添加到 Sudoers
如何将MV中的音频添加到EasyNVR中做直播背景音乐?
EasyNVR已经支持自定义上传音频文件,可以做慢直播场景使用,前两天有一个开发者提出一个问题:想把一个MV中的音频拿出来放到EasyNVR中去做慢直播。
EasyNVR
2021/10/28
4.1K0
如何将MV中的音频添加到EasyNVR中做直播背景音乐?
Nexus高级配置之如何将本地jar添加到Nexus中
Java后端技术所推送文章,为本人原创、网上收集或其他作者投稿,对于网上收集部分除非确实无法确认,我们都会注明作者和来源。部分文章推送时未能与原作者取得联系。若涉及版权问题,烦请原作者联系我们,我们会在24小时内删除处理,谢谢!^_^ QQ:1573876303。
Java后端技术
2018/08/09
2.7K0
Nexus高级配置之如何将本地jar添加到Nexus中
IOS UITableViewCell 自定义高度动态调整 单元格 常用
//自定义单元格,单元格高度动态调整 1 import UIKit 2 3 class CustomizeUITableViewCell:UITableViewCell, UITableViewDataSource, UITableViewDelegate { 4 5 var tableView:UITableView!; 6 var comments:[String] = [] 7 8 override init(style:UITableViewCellStyle, reuseIde
用户5760343
2019/07/08
1K0
如何将WebRTC播放协议添加到EasyCVR?
自2020年浏览器的发展和兼容性发生了变化,WebRTC的延时性、安全性得到了提升和保护,尤其是疫情爆发后,实时视频的需求比之前增长了30倍,这更刺激了WebRTC产品的持续快速发展。因此我们也在EasyGBS、EasyDSS等平台内实现了WebRTC协议的播放。
TSINGSEE青犀视频
2021/11/23
1.4K0
在Oracle中,如何将一个数据库添加到CRS中?
虽然通过DBCA(DataBase Configuration Assistant,数据库配置助手)创建的数据库会自动加入CRS中,但通过RMAN创建的数据库是不会被加入CRS中的,在这种情况下就需要手动添加,将数据库加入CRS中后就可以通过srvctl来管理数据库了。
AiDBA宝典
2023/04/26
2.7K0
在Oracle中,如何将一个数据库添加到CRS中?
在 CentOS 上如何将用户添加到 Sudoers
sudo是一个命令行工具,它被设计为允许用户以其他用户(默认是 root 用户)身份去运行命令。
雪梦科技
2020/05/11
11.5K0
在 CentOS 上如何将用户添加到 Sudoers
VBA中动态数组的定义及创建
大家好,今日我们继续讲解VBA数组与字典解决方案的第19讲:动态数组的定义及创建。在VBA中,数组可分为固定数组和动态数组,也称为静态数组和动态数组。我们之前所定义的数组,都是静态数组。静态数组的特点是具有大小的数组。当我们事先知道数组的大小,我们可以直接声明为静态数组。固定数组定义方法:DIM 数组名(<下届>TO<上届>)。
用户8870853
2021/07/27
3.4K0
Maven项目中如何将自定义标签的tld文件添加到META-INF目录下
项目开发中为了提高复用性,经常把自定义标签打成单独的jar文件,同时将tld文件添加到jar文件中的META-INF目录下,这样其他的项目就能很方便的使用这些自定义标签。 tld文件中定义: 1 2 3 4 <tlib-version>1.0</tlib-version> <jsp-version>1.2</jsp-version> <short-name>demo</short-name> <uri>/demo-tags</uri> jsp中使用: 1 2
cloudskyme
2018/03/20
2.2K0
zabbix 5.0如何将esxi6.7添加到监控
今天有个需求,需要将一台esxi 6.7 server添加到我们的zabbix监控服务器上,将我做的操作踩的一点坑写出来
姚华
2022/06/29
1.8K0
zabbix 5.0如何将esxi6.7添加到监控
LeetCode 6016. Excel 表中某个范围内的单元格
Excel 表中的一个单元格 (r, c) 会以字符串 "<col><row>" 的形式进行表示,其中:
Michael阿明
2022/03/10
1.1K0
LeetCode 6016. Excel 表中某个范围内的单元格
问与答98:如何根据单元格中的值动态隐藏指定的行?
Q:我有一个工作表,在单元格B1中输入有数值,我想根据这个数值动态隐藏行2至行100。具体地说,就是在工作表中放置一个命令按钮,如果单元格B1中的数值是10时,当我单击这个命令按钮时,会显示前10行,即第2行至第11行;再次单击该按钮后,隐藏全部的行,即第2行至第100行;再单击该按钮,则又会显示第2行至第11行,又单击该按钮,隐藏第2行至第100行……也就是说,通过单击该按钮,重复显示第2行至第11行与隐藏第2行至第100行的操作。如图1所示。
fanjy
2021/03/12
6.4K0
Excel创建动态单元格区域
美术同学找我说想要一个查找引用功能,大体的表结构我看了一下有点奇怪(主要是命名一样),可能因为历史原因暂时也不太好修改,只好用Excel函数实现他所需要的功能。
meteoric
2022/09/08
1.6K0
Excel创建动态单元格区域
【已解决】UIView添加到KeyWindow上面自动会被 Release
?
君赏
2018/09/07
3660
如何将用户添加到Linux桌面【Linux-Command line】
我在 useradd command 上发布的文章阐述了对Linux系统用户管理的深层理解。Useradd 是一个命令行工具,但你也可以在Linux上通过图形方式管理用户。这就是本文主旨。
QRosie
2019/11/12
4.8K0
如何将用户添加到Linux桌面【Linux-Command line】
如何将Alexa添加到Raspberry Pi(或任何Linux设备)
我们的Amazon Alexa虚拟设备项目旨在提供将Alexa添加到任何Linux设备(包括Raspberry Pi板等嵌入式系统)的功能。
用户4122690
2020/03/14
1.5K0
如何将Alexa添加到Raspberry Pi(或任何Linux设备)
点击加载更多

相似问题

滚动条未在JTextArea中显示

12

Java Swing并发显示JTextArea

31

Java Swing JTextArea显示不正确

20

Java Swing JTextArea行号

20

JTextArea圆角Java Swing

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文