我有一组任务(通过GSM调制解调器发送短信),可以完全并行地执行,但是一个SMS任务不能执行。每个任务大约需要10秒来执行。因此,现在我试图评估它将如何使用4 GSM调制解调器。
Amdahl定律
Speedup=1/((1-p)+P/s)
在我的例子中,p=1作为任务是完全并行的,s=4 (GSM调制解调器)
因此
Speedup = s
问题我如何在我的计算中代表这样的案例?
NumberOfTasks % s != 0
例如,如果我有5个GSM调制解调器,但只有一个短信发送,我的任务是根本不平行的,但根据这项法律,我得到的加速比是5。
所以它真的需要10秒,但根据Amdahl定律,我得到10 /5=2秒
发布于 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。
间接费用-严格和资源意识的重新制定:
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
结果:
在模拟的情况下,实际时间是:
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个。
https://stackoverflow.com/questions/55174746
复制相似问题