如何正确应用阿姆达尔论点:
博士。 Gene AMDAHL 很久以前就制定了这项法律,当时处理流程组织改进是大型机计算中心、工业生产和通用工作流程优化的重点。这条法律仍然有效,并且有话说。
以过程为导向的观点在传统公式的简单性中仍然有些看不见,但绝不应该如此。这同样适用于(有些专门的,“产品”特定的)资源的“库存”。如果对更多细节感兴趣,可以重新阅读 https://stackoverflow.com/revisions/18374629/3
中历史 #3 中的
parallelism-amdahl 详细信息
这两段,在批评一章中重新制定了阿姆达尔定律,详细介绍了为什么我们不能简单地将数字放入公式并期望有效(即合理且) 结果。
那么,让我们从 PROCESS 的抽象开始:
上面已识别和命名的一个是发送 SMS 消息的过程。它可能需要〜10 [s]。这个进程是独立的(万岁,没有协调,没有障碍,没有信号量,没有锁,没有进程间通信),但在长度上是不可分割的,所以为了简洁,我们可以称它为原子进程 因为它不能执行,只能以完整的“原子”不可分割的方式执行,但它有一些延迟(持续时间),然后才能达到流程完成状态。
每个进程只有在当且仅当同时被映射(分配)和调度(激活/执行)到某个处理资源上时才能工作。
那么,接下来是资源:
正如原帖中已经定义的那样,有 4 个短信调制解调器。这些是特定于进程的资源,负责独立于其他进程承载“原子”进程(任务)(这是一个简单的情况,不是自动无限扩展,因为一旦运营商网络开始阻塞无线电接入网络(GSM 最后一英里)、POP 处理(BTS 节点)和/或运营商网络(从 BTS 到 MSC 的上行链路)将开始达到其各自资源的可用容量上限——所有复杂系统都简单具有复杂的资源/容量/工作负载分配/与性能相关的上限,其中每个都可能开始阻塞我们的一些“原子” - 感兴趣的进程延迟(持续时间)和“可调度性”(一个进程到“我们的" 特定进程处理资源的识别单元...即 GSM 调制解调器具有一定数量的背景逻辑,与 GSM 网络协调相关,因此其行为与本地 GSM 小区流量的复杂性无关, 过程对本地 BTS 节点和复杂的 BTS/MSC 网络处理/流量传输协调条件进行了评估,如果 BTS 节点是无法处理我们的“原子”进程请求并在一些 GSM 标准驱动的超时后将其丢弃,因为它无法接收和携带 SMS - 因此 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
纯-SERIAL 工艺流程的s部分,将始终保持纯-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 调制解调器将在这里 SERIAL 处理流程确实没有时间来设置子进程池并最终终止它们并释放池分配的资源,并且不花时间在主任务和以真正PARALLEL方式组织的任务池之间安排数据传输。
因此,在这里,您支付的费用比收到的多得多(从流程组织的角度来看,处理就绪的 GSM 调制解调器(资源)池的安排和控制成本相当高,以便仅发送一条 SMS -消息)。
如果端到端工作流开始处理更大的 SMS 消息队列,性能将得到提升,并且加速 S 也会这样做。要处理的队列越大越好。要处理的群组越大,处理群组的 GSM 调制解调器越多越好。
然而,Amdahl 的论点设定了这种可实现加速的主要上限:
S 原则上对于 4 个调制解调器永远不会超过 4,对于 5 个调制解调器等不会超过 5。