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

Amdahl关于特定繁重任务的定律
EN

Stack Overflow用户
提问于 2019-03-15 02:33:12
回答 1查看 75关注 0票数 1

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

Amdahl定律

代码语言:javascript
运行
复制
Speedup=1/((1-p)+P/s)

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

因此

代码语言:javascript
运行
复制
Speedup = s

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

代码语言:javascript
运行
复制
NumberOfTasks % s != 0

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

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

EN

回答 1

Stack Overflow用户

发布于 2019-07-02 11: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
运行
复制
                          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
运行
复制
   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

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档