我有一组任务(通过GSM调制解调器发送SMS)可以完全并行执行,但一个短信任务却不能。每个任务大约要花10秒执行。所以现在我正在尝试评估4 GSM调制解调器的性能。
阿姆达尔定律
Speedup=1/((1-p)+P/s)
在我的情况下,因为任务完全并行,所以p = 1,而s = 4(GSM调制解调器)
因此
Speedup = s
问题 我该如何在我的案件中表示这种情况
NumberOfTasks % s != 0
例如,如果我有5个GSM调制解调器,但仅发送一个SMS,则我的任务根本没有完成,但是根据此法则,我得到的加速比是5。
所以确实需要10秒,但是根据阿姆达尔定律,我得到10/5 = 2秒
答案 0 :(得分:0)
博士Gene AMDAHL在很早以前就制定了法律,当时流程改进的组织重点是大型机计算中心,工业生产和通用工作流程的优化。该法律仍然有效,并且有话要说。
以流程为导向的观点在传统公式的简单性中仍然不可见,但绝不应该如此。这同样适用于(有些专门化的,“特定于产品”的)资源的“清单”。如果对更多详细信息感兴趣,则可以重新阅读parallelism-amdahl
中历史记录3中的 https://stackoverflow.com/revisions/18374629/3 详细信息在批评一章中,这两段均采用了重新制定的阿姆达尔定律,其中包含所有我们无法简单地将数字放入公式中并期望有效(即合理和合理)的理由的所有细节。可实现的)结果。
上面标识和命名的是发送SMS消息的过程。大约需要10 [s]。这个过程是独立的(万岁,没有协调,没有障碍,没有信号灯,没有锁,没有进程间通信),但是其长度是不可分割的,因此,为简便起见,我们可以称其为原子过程 strong>,因为它无法执行,但是以一种完全的“原子”不可分割的方式执行,但是在达到过程完成状态之前,它有一些等待时间(持续时间)。
每个流程仅在将其同时映射(分配)和计划(激活/执行)到某些处理资源上时,才有效。
由于原始帖子中已经定义,所以有4-SMS调制解调器。这些是特定于过程的资源,负责彼此独立地进行“原子”过程(任务)(这是一种简单情况,不会自动无限扩展,因为一旦运营商网络就会开始阻塞无线电接入网络(GSM最后一英里),POP处理(BTS节点)和/或运营商网络(从BTS到MSC的上行链路)将开始达到各自资源的可用容量上限-所有复杂的系统具有复杂的资源/容量/工作负载分配/与性能相关的上限层次结构,其中每个层次都可能开始阻止我们的某些“原子”过程的延迟(持续时间)和“可调度性”(过程到“我们的“确定的特定于过程的处理资源的单位...即GSM调制解调器具有一定数量的后台逻辑,与GSM网络的协调有关,因此其行为与本地GSM小区流量的复杂性没有隔离,proc在本地BTS节点上以及复杂的BTS / MSC网络处理/交通运输协调条件上都进行了评估,如果BTS节点是BTS节点,则我们不会观察到这种情况,而是通过增加等待时间甚至拒绝服务响应来间接观察到的由于无法接收和携带SMS,因此无法处理我们的“原子”处理请求并在某些GSM标准驱动的超时后将其丢弃-因此,众所周知,SMS被设计为无担保的消息服务,因为)。
因此,让我们假设一个简单的假设,即SMS调制解调器将始终处理发送SMS的请求,因此在这种简化资源管理的情况下,唯一的限制因素是SMS调制解调器的数量-在这里, 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
纯-s
处理流程中始终必须保持纯-SERIAL
的比例 SERIAL
为:
( Ts ) / ( T_E2E ) = X / ( X + Y + 10 + Z ) [1]
主要上限(最高可达到)加速 S
为:
( Ts + TatomicP*Nsms ) / ( Ts + TpSO + max(TatomicP*nSMS/Nres,TatomicP) + TpTO )
,这里仅包含一个SMS消息,以及大量SMS处理的GSM调制解调器将在这里<< 1,对,因为纯SERIAL
处理流程不会耗尽没有时间来建立子进程池并最终终止它们并释放该池的已分配资源,并且没有时间在主任务和任务池中安排真正的{{ 1}}时尚。
因此,在这里,您所获得的回报比所获得的回报还多(从流程组织的角度来看,为准备发送一个SMS而安排和控制的准备就绪的GSM调制解调器(资源)池非常昂贵。 -消息)。
如果端到端工作流开始处理更大范围的SMS消息,则性能将得到提高,而加速 PARALLEL
也会这样做。队列越大,处理越好。要处理的同类群组越大,并且处理该同类群组的GSM调制解调器越多,就越好。
然而,阿姆达尔(Amdahl)的论据设定了此类可实现的加速的主要上限:
S
原则上永远不会超过4个调制解调器的4个,不超过5个调制解调器的5个等。