Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 阿姆达尔';针对特定繁重任务的s定律_Multithreading_Math_Parallel Processing_Multiprocessing_Parallelism Amdahl - Fatal编程技术网

Multithreading 阿姆达尔';针对特定繁重任务的s定律

Multithreading 阿姆达尔';针对特定繁重任务的s定律,multithreading,math,parallel-processing,multiprocessing,parallelism-amdahl,Multithreading,Math,Parallel Processing,Multiprocessing,Parallelism Amdahl,我有一组任务(通过GSM调制解调器发送SMS),可以完全并行执行,但一个SMS任务不能。每个任务执行大约需要10秒钟。因此,现在我试图评估它将如何与4 GSM调制解调器的行为 阿姆达尔定律 Speedup=1/((1-p)+P/s) 在我的例子中,p=1,因为任务完全并行,s=4(GSM调制解调器) 因此 问题 我如何在我的计数中代表这些案例 NumberOfTasks % s != 0 例如,如果我有5个GSM调制解调器,但只有一条短信要发送,我的任务根本不是并行的,但根据这个定律,我得到

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

阿姆达尔定律

Speedup=1/((1-p)+P/s)
在我的例子中,p=1,因为任务完全并行,s=4(GSM调制解调器)

因此

问题 我如何在我的计数中代表这些案例

NumberOfTasks % s != 0
例如,如果我有5个GSM调制解调器,但只有一条短信要发送,我的任务根本不是并行的,但根据这个定律,我得到的加速比是5

所以这确实需要10秒,但根据阿姆达尔定律,我得到了10/5=2秒

如何正确应用阿姆达尔的论点: Gene AMDAHL博士早就制定了这项法律,当时处理流组织改进的重点是大型机计算中心、工业生产和通用工作流优化。这项法律仍然有效,并有它的话语权

在传统公式的简单性中,以过程为导向的观点仍然有点看不见,但永远不应该如此。这同样适用于(某种程度上是专门化的,“产品”特定的)资源的“库存”。如果对更多细节感兴趣,可以重新阅读《历史》3中的细节

这两个段落,连同重新制定的阿姆达尔定律,在批评一章中,都详细说明了为什么我们不能简单地将数字放入公式并期望得到有效(即合理和可实现)的结果

因此,让我们从流程的抽象开始: 上面标识和命名的一个是发送SMS消息的过程。可能需要约10[秒]。这个过程是独立的(万岁,没有协调,没有障碍,没有信号灯,没有锁,没有进程到进程的通信),但长度不可分割,因此为了简洁起见,我们可以称之为原子过程,因为它不能以完全“原子”的方式执行,但它有一些延迟(持续时间),在达到进程完成状态之前

当且仅当映射(分配)和调度(激活/执行)到某个处理资源时,每个进程才会工作

因此,接下来是资源: 正如在最初的文章中已经定义的那样,有4个SMS调制解调器。这些是特定于进程的资源,负责独立于一个进程(任务)和另一个进程(这里是一个简单的例子,不会自动无限扩展,因为一旦无线接入网络(GSM最后一英里)、POP处理(BTS节点),载波网络将开始阻塞)和/或运营商网络(从BTS到MSC的上行链路)将开始达到各自资源的可用容量上限-所有复杂系统只是具有资源/容量/工作负载分配/性能相关上限的复杂层次结构,其中每个系统都可能开始阻塞我们感兴趣的一些“原子”过程延迟(持续时间)和“可调度性”(流程到“我们的”的映射)过程特定处理资源的识别单元…即GSM调制解调器具有一定数量的背景逻辑,与GSM网络协调有关,因此其行为与本地GSM小区通信量的复杂性无关,在本地BTS节点和复杂的BTS/MSC网络处理/通信量传输上处理端口协调条件,如果BTS节点无法处理我们的“原子”端口,我们不会观察到,而是通过延迟增加,甚至拒绝服务响应间接观察到-处理请求并在一些GSM标准驱动的超时后丢弃,因为它无法接收和传送SMS-因此SMS从设计上就被认为是一种不保证的消息服务(从那时起)

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

开销严格且资源敏感的重新表述: 结果: 对于实体模型情况,实际时间为:

   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=Ts+TpSO+max(TatomicP*nSMS/nre,TatomicP)+TpTO)=X+Y+max(10/nre,10)+Z

纯序列工艺流程中始终必须保持纯序列的部分将为:

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

主要的加速上限(有史以来可达到的最大值)为:

(Ts+TatomicP*Nsms)/(Ts+TpSO+max(TatomicP*Nsms/NRE,TatomicP)+TpTO)
,对于一条短信和任何数量的短信处理GSM调制解调器,这里将介绍如何正确应用Amdahl的参数: Gene AMDAHL博士早就制定了这项法律,当时,大型机计算中心、工业生产和通用工作流程优化的重点是处理流程组织的改进。这项法律仍然有效,并有它的说法

面向过程的观点在传统公式的简单性方面仍然有点过时,但不应该如此。这同样适用于资源的“库存”(有点专业化,“特定于产品”)资源。如果对更多细节感兴趣,可以在

这两个段落,连同重新制定的阿姆达尔定律,在《批评》一章中,都详细说明了为什么我们不能简单地将数字放入公式并期望一个有效的(即推理)公式
                          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,