对三种典型分布式任务分配算法的分析

合集下载

控制系统中的分布式控制技术

控制系统中的分布式控制技术

控制系统中的分布式控制技术随着科技的进步,控制系统在各个领域中扮演着重要的角色。

为了提高控制系统的效率和可靠性,分布式控制技术逐渐得到应用。

本文将介绍分布式控制技术的概念、基本原理以及在实际应用中的优势和挑战。

一、概述分布式控制技术是指将控制系统中的任务分散到多个节点上进行处理的技术。

相比传统集中式控制系统,分布式控制技术具有更高的系统可用性、更灵活的系统配置和更强大的计算能力。

二、基本原理1. 网络通信分布式控制系统中各个节点之间通过网络进行通信,实现任务的分配和信息的交换。

常用的通信方式包括以太网、无线通信等。

2. 数据同步分布式控制系统需要确保各个节点上的数据保持一致性。

数据同步可以通过时间同步和消息同步来实现,确保各个节点之间的数据一致性。

3. 分布式算法为了实现协同控制,分布式控制系统需要采用分布式算法来实现任务的分配和协调。

常见的分布式算法包括分布式PID控制算法、分布式模糊控制算法等。

三、实际应用1. 工业控制系统在工业生产中,分布式控制技术可以将任务分配到不同的节点上进行处理,提高生产效率和系统可靠性。

例如,在自动化生产线中,将不同的任务分配到各个节点上,可以同时处理多个环节,提高生产效率。

2. 智能交通系统分布式控制技术在智能交通系统中也得到广泛应用。

例如,在城市交通信号控制系统中,可以将信号控制任务分布到各个信号灯上,通过协同控制来优化交通流量,提高交通效率。

3. 智能电网在智能电网中,分布式控制技术可以将电力系统中的控制任务分配给不同的发电站和负载节点,实现对电力的分布式管理和优化控制,提高电力系统的可靠性和效率。

四、优势与挑战分布式控制技术的优势在于提高了系统的可靠性和鲁棒性,使系统更加灵活和可扩展。

然而,分布式控制技术也存在着一些挑战,如网络通信的延时和丢包问题、数据同步的复杂性以及分布式算法的设计和实现难度。

结论随着科技的不断进步,分布式控制技术在控制系统中的应用越来越广泛。

集中式算法和分布式算法

集中式算法和分布式算法

集中式算法和分布式算法
在计算机科学领域中,算法是指解决特定问题的方法和步骤。

随着计算机技术的发展,算法也分为了集中式算法和分布式算法两种类型。

集中式算法是指在一个中央节点上运行的算法,该节点处理所有的输入数据和输出结果。

这种算法适用于小规模的数据处理和计算任务,例如排序、搜索和简单的数值计算。

与之相反,分布式算法是指在多个计算节点上运行的算法,这些节点相互通信和协作,通过分摊任务来完成计算任务。

这种算法适用于大规模的数据处理和计算任务,例如大数据分析、机器学习和人工智能。

集中式算法和分布式算法各有优缺点。

集中式算法具有简单易用、易于维护和调试的优点,但是在面对大规模数据处理任务时,效率和性能会受到限制。

而分布式算法具有高效和强大的处理能力,但也存在数据不一致、网络延迟和通信开销等问题。

在实际应用中,我们需要根据具体的场景和需求选择合适的算法类型。

随着计算机技术的不断发展和进步,算法的研究和应用也将不断地推进和完善。

- 1 -。

分布式拍卖算法

分布式拍卖算法

分布式拍卖算法分布式拍卖算法是指在分布式系统中,通过竞价机制来分配资源和任务的算法。

这种算法被广泛应用于云计算、物联网、物流领域等大规模分布式场景中。

分布式拍卖算法的基本思想是将待分配的资源或任务拆分成多个子任务,在各个节点上进行本地竞价,最终选取竞价最高的节点执行任务或获得资源。

整个算法分为以下几个步骤:2.竞价:各个节点通过本地竞价机制,向全局竞价系统报价,竞价结果包括竞价者和竞价金额。

3.拍卖规则:竞价结果经过最高价优先原则排序,最高价的竞价者获得资源或任务执行权限。

4.协调机制:通过协调机制确保拍卖的公平性、高效性和安全性,协调内容包括竞价时间、竞价结束时间、报价信息传输安全等。

5.分配结果:分配结果通知各个节点,中标节点开始执行任务或获得资源使用权。

分布式拍卖算法主要有以下几种类型:1.中心化拍卖:在一个中心节点管理拍卖,并收集各节点的竞价信息。

2.互联网拍卖:采用去中心化的全网拍卖方式,所有节点之间通过协议协同完成拍卖过程,竞价结果通过区块链安全记录。

3.负载均衡:将系统中各个节点的负载均衡,通过竞价机制动态分配资源和任务,减小某些节点负载过重的问题。

4.异构拍卖:针对在节点间的性能异构性问题,将可用节点按性能等级进行分组拍卖,以保证任务得到最优的执行。

分布式拍卖算法的优点在于能够动态适应系统环境的变化,并能灵活地管理资源和任务,提供更高效、公平、安全的分配方式。

但其缺点在于增加了系统复杂度,需要处理协调机制和通信代价等问题。

当然分析适用的场景,优化算法和提高硬件设备的性能能够解决这些问题。

原位聚合的应用原理是什么

原位聚合的应用原理是什么

原位聚合的应用原理是什么什么是原位聚合原位聚合是一种特殊的分布式计算模式,将计算任务分解成小的子任务,在分布式计算节点上同时执行,最后将计算结果汇总。

原位聚合充分利用了分布式计算的优势,能够提高计算效率和可扩展性。

原位聚合的应用原理原位聚合通过将计算任务分解为多个小任务,让计算节点并行地执行这些小任务,最后将结果汇总得到最终的计算结果。

具体的应用原理如下:1.任务分解:原位置聚合首先将计算任务划分为多个小任务,每个小任务都是相对独立的,可以独立运行。

任务分解可以根据具体的应用场景和算法特点进行灵活设计。

2.并行计算:分布式计算节点并行执行各个小任务。

每个计算节点可以独立地执行一个或多个小任务,并且计算节点之间可以相互通信和协作,以便进行数据交换和同步。

3.结果汇总:每个计算节点完成小任务后,将计算结果汇总到一个中心节点。

中心节点负责收集、整合和处理分布式计算节点的结果,并最终生成最终的计算结果。

4.容错机制:原位置聚合还具备容错机制,当计算节点发生故障或计算任务失败时,系统能够自动检测并重新分配任务,保证计算的正确性和可靠性。

原位聚合的应用场景原位聚合广泛应用于科学计算、数据分析和大规模机器学习等领域。

下面列举了一些典型的应用场景:•图计算:在图计算中,原位聚合可以高效地处理大规模图数据。

将图计算任务分解为子任务可以显著提高计算效率和可扩展性,同时也便于实现图算法中的迭代计算。

•数据分析:在大数据分析中,原位聚合可以并行处理大量的数据片段。

通过将数据分解成小的任务单元,在多个计算节点上同时进行处理,可以大幅缩短计算时间,并提高分析结果的准确性。

•机器学习:在机器学习领域,原位聚合可以用于分布式训练模型。

将机器学习算法中的优化问题分解为多个小任务,可以并行地在不同计算节点上进行计算,从而加快模型训练的速度。

•模拟与预测:在科学计算领域,原位聚合可以用于模拟和预测复杂的物理过程。

将模拟任务分解为小的子任务,可以并行地在多个计算节点上进行计算,提高计算效率和模拟结果的准确性。

网格化分布式新安江模型并行计算算法

网格化分布式新安江模型并行计算算法

网格化分布式新安江模型并行计算算法随着计算机技术的发展和应用需求的增加,分布式计算系统在实践中得到了广泛的运用。

如何利用分布式计算系统高效地实现对新安江模型进行计算是当前研究的热点之一。

本文将介绍一种基于网格化分布式计算的新安江模型并行计算算法,该算法通过合理的任务划分和数据通信机制的设计,实现对新安江模型的快速计算。

一、引言新安江模型是一种经典的水文模型,用于模拟和预测河流的径流过程。

在实际应用中,对于大规模的河流系统,传统的串行计算方法往往效率低下,无法满足实时性和精度要求。

将新安江模型应用于分布式计算系统中,将大大提高计算效率。

二、算法设计1. 网格化分布式计算架构为了将新安江模型应用于分布式计算系统中,首先需要设计合适的计算架构。

本文采用网格化架构,将计算区域划分成均匀的网格单元,并将每个网格单元分配到不同的计算节点上。

这样可以实现对于不同区域的并行计算,提高整体计算效率。

2. 任务划分在网格化架构中,需要将整个计算过程划分成多个子任务,分配给不同的计算节点进行并行计算。

任务划分的关键是合理划定每个子任务的计算区域,以及确定子任务之间的数据依赖关系。

本文采用均匀划分的策略,将整个计算区域平均分配给不同的计算节点,并通过数据通信机制进行数据交换和同步。

3. 数据通信在并行计算过程中,不同计算节点之间需要进行数据通信,以实现数据的交换和共享。

本文采用消息传递机制,通过发送和接收消息来完成节点之间的数据通信。

每个计算节点计算完成后,将计算结果发送给相邻的节点,接收相邻节点的计算结果后进行数据合并,并进行下一轮的计算。

三、实验与结果分析为了验证所提出的算法设计的有效性,本文进行了一系列的实验。

实验结果表明,网格化分布式新安江模型并行计算算法在不同规模的计算任务中都具有较好的计算效率和可扩展性。

并且,随着计算节点数量的增加,算法的计算时间近似线性减小,说明算法能够充分利用分布式计算系统的计算资源。

【PPT】分布式调度.

【PPT】分布式调度.
任务聚类:在图模型中,任务的划分被称作任务聚类,即在给定 的图模型中对小任务进行分类。任务划分把任务图当作一个整体, 将图中的小任务(节点)划分成不同的聚类,聚类中的小任务串行 执行,不同的聚类之间并行执行。任务聚类中可以使用两种策略: 将不相关的任务映射到一个聚类中; 将DAG中一条优先路径上的任务映射到一个聚类中。
2019/6/11
中南大学信息科学与工程学院
7
第十章 分布式调度
10.1 调度算法概述
调度算法的目标和有效性评价
次优的调度算法分为两类: 近似的次优调度算法:在近似次优调度方法中,负载
分配算法仅搜索一个解空间的子集,当寻找到一个好 的解时,终止执行。使用近似的次优调度算法必须能 够判定所得到的解是否是可以被接受的,也就是说, 必须能够确定最优解和次优解之间的近似程度。 启发式的次优调度算法:使用比较简明的规则和一些 直觉的规则来进行调度。这些启发式的规则往往是不 能证明其正确性,在特定情况下可能还是错误的,但 是在绝大多数的情况下是能够被接受的。
务在处理、同步和通信方面的需求,以及硬件的处理 和时间特性的基础上才能实现。 实际的应用很难实现,特别是需要获知的信息处
于动态变化的情况下。 即使在这些需要的信息都是可以预见的情况下,
常用的调度问题仍然是一个NP难题。 调度的复杂性将随调度需要考虑的任务和约束特
性的数量呈现出指数增长。
2019/6/11
近似调度
启发式调度
中南大学信息科学与工程学院
2
第十章 分布式调度
10.1 调度算法概述
调度算法的分类
对于大量的实时调度方法而言,还存在着其他一些 划分方法:
抢占式(preemptive)和非抢占(non-preemptive) 调度:对抢占式调度算法,正在运行的任务可能被其 他任务所打断。而后者一旦任务开始运行,该任务只 有在运行完成而主动放弃CPU资源,或是因为等待其 他资源被阻塞的情况下才会停止运行。

分布式水文模型区域分解并行计算方法及其应用

分布式水文模型区域分解并行计算方法及其应用

分布式水文模型区域分解并行计算方法及其应用分布式水文模型区域分解并行计算方法及其应用分布式水文模型区域分解并行计算方法是近年来在水文领域备受关注的研究方向。

在水文模型的应用中,对于大规模复杂水文系统进行计算和模拟往往需要耗费大量的时间和计算资源。

传统的串行计算方法已难以满足大规模水文系统的快速准确模拟需求,因此分布式水文模型区域分解并行计算方法成为一种重要的研究方向。

在本文中,我们将对分布式水文模型区域分解并行计算方法进行深入探讨,并结合实际应用案例,展示其在水文领域的重要性和价值。

一、分布式水文模型区域分解并行计算方法概述分布式水文模型是一种基于地理信息系统和数学模型相结合的水文模拟方法,能够对流域内的水文过程进行精细化描述和模拟。

而区域分解并行计算方法则是将复杂的水文模型系统分解成多个子模型,每个子模型分别进行并行计算,最后将结果整合得到最终的模拟结果。

通过这种并行计算方法,可以显著提高水文模型的计算效率和模拟精度。

二、分布式水文模型区域分解并行计算方法的关键技术1. 分布式水文模型的网格化划分分布式水文模型需要将流域进行网格化划分,将流域划分成多个网格单元,并对每个网格单元进行水文过程模拟。

针对不同的水文过程模拟需求,可以采用不同的网格化划分方法,如等距网格划分、基于地形的网格划分等。

2. 区域分解并行计算方法的任务分配在区域分解并行计算方法中,需要将计算任务合理地分配给不同的子模型进行并行计算。

通常可以采用静态任务分配或动态任务分配的方法,根据实际情况动态调整计算任务的分配,以实现负载均衡和计算效率的最大化。

3. 子模型之间的信息交换和整合在分布式水文模型区域分解并行计算过程中,不同的子模型之间需要进行信息交换和结果整合,以确保模拟结果的一致性和准确性。

因此需要设计高效的信息交换和整合算法,以降低通讯开销和提高计算效率。

三、分布式水文模型区域分解并行计算方法的应用案例分布式水文模型区域分解并行计算方法已在多个水文模拟系统中得到了成功的应用,极大地提高了水文模型的计算效率和模拟精度。

分布式多智能体系统的优化算法研究

分布式多智能体系统的优化算法研究

分布式多智能体系统的优化算法研究随着人工智能技术的飞速发展,多智能体系统也逐渐成为研究热点。

多智能体系统是一种由多个智能体组成的网络系统,具有分布式的特点,每个智能体都可以相互通信和协作,在实际应用中具有广泛的潜力。

然而,如何优化多智能体系统的效率和性能,成为了一个重要的研究课题。

本文将重点探讨分布式多智能体系统的优化算法研究。

一、分布式多智能体系统介绍分布式多智能体系统(Distributed Multi-Agent System,DMAS)由多个智能体组成,每个智能体在不同的环境中可以执行独立任务或者互相合作,通过相互交流来完成任务。

多智能体系统由于具有多样性、灵活性、鲁棒性和可扩展性等优点,广泛应用于自动驾驶、机器人控制、智能交通、电力控制和分布式计算等领域。

二、多智能体系统中的优化问题在多智能体系统中,智能体之间的互动和协作对整个系统的效率和性能都有着至关重要的影响。

因此,如何优化系统的协作和效率成为研究的热点问题。

在多智能体系统中常见的优化问题包括资源分配、任务分配、联合协作和目标优化等。

1.资源分配资源分配是多智能体系统优化的重要问题之一,包括对空间、时间以及各种物质和能量等资源的分配。

例如,在机器人控制领域,多个机器人需要在一个环境中共同完成某些任务,需要合理分配资源和任务,以提高整个系统的效率和性能。

2.任务分配任务分配是多智能体系统中另一个重要的优化问题,包括将任务分配到具体的智能体上并安排任务的执行顺序,以最大化整个系统的效率和性能。

例如,在自动驾驶领域中,多个车辆需要协同完成路径规划和交通流控制任务,需要合理地分配任务,以避免交通拥堵和交通事故。

3.联合协作多智能体系统中的智能体之间可以进行联合协作,共同完成复杂任务。

当智能体之间存在合作关系时,需要找到最佳的合作策略来提高整个系统的效率和性能。

例如,在智能电网中,多个发电机需要协同控制,以保证电网的稳定性和可靠性,需要找到最好的合作策略。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第18卷 第11期小型微型计算机系统Vol.18No.11 1997年11月MINI-MICROSYSTEMSNov.1997

对三种典型分布式任务分配算法的分析*何炎祥 罗先林 吴 思 彭堂玉 祝向幸(武汉大学计算机科学与技术学院 武汉430072)摘 要 本文先分析了基于图论的分配算法,整数规划方法和试探法等几种典型的分布式任务分配算法的基本思想、特点,不足和算法复杂度,以及可进一步改进之处,然后给出了一种试探法的改进算法,并简单讨论了其特点和性能,最后指出了分布式任务分配的发展方向。关键词 通信开销,执行开销,负载平衡,合一,试探法

在分布式系统中非同居模块间的数据传递产生处理机间的通信,这种机间通信可能使得增加处理机数目反而会引起系统吞吐量的降低,即产生“饱和效应”。为降低饱和效应,人们倾向于把模块分配到尽可能少的处理机上,但这又导致系统负载不平衡,从而降低了系统的吞吐量。显然,这是任务分配中相互冲突的两个方面,不同的任务分配算法试图用不同的策略来平衡这两个方面。传统的分布式任务分配算法大致可分为三类:基于图论的分配算法,整数规划方法和试探法。这三类算法并非互斥的,一类算法中往往可以借鉴其它方法中的某些技术。下面,我们先对这三类典型算法进行分析和比较,然后给出一种试探法的改进算法。在讨论中,我们假定提交的任务已分解成一组模块并使模块间的通信量尽可能小。还假定分配模式为:一任务被分解成m个模块T={t1,t2,…,tm},系统中有n个可利用的处理机P={p1,p2,…,pn}。任务分配的目的就是将这m个模块分配到n个处理机上,使预期的性能目标函数值最小。

1 对三种典型算法的分析

1.1 基于图论的分配算法基本思想是给定矩阵Cmxm表示模块间的通信开销:C={ci,j󰀁1≤i≤m&1≤j≤m&ci,j为ti与tj

间的通信量}

给定矩阵Qmxn表示模块的执行开销:Q={qi,j󰀁1≤i≤m&1≤j≤n&qi,j为ti在pj上的执行开销}将模块t1,t2,…,tm作为图中结点,若两模块间有数据传递,则相应结点间有一条无向边,

1996-04-26收稿 *软件工程国家重点实验室开放基金部分资助。何炎祥,教授,研究方向:分布式OS与分布信息处理,并行程序设计与编译系统。罗先林、吴思,研究生,研究方向:分布式OS与分布信息处理。边上的权wi,j=ci,j;处理机p1,p2,…,pn也作为图中结点,若qi,k≠∞,则在ti与pk间有一条边,定义该边上的权为wi,k=1n-1∑j≠kqi,j-n-2n-1ci,k。于是,可将该图视为一个网络,并定义n度割集为将网络中各个结点分割成n个不相交的子集,使得每个子集中有且仅有一个处理机结点。可以证明,每个切口的开销正好是执行开销和通信开销之和,因此,在图上执行MaxFlow/MinCut算法,就可得到任务的最优分配方案[1]。在现阶段,仅有多项式复杂度n=2的MaxFlow/MinCut算法,因此,基于图论的分配算法仅限于在处理机数目小于3的环境中使用,因而局限性较大。Lo在[1]中提出了一种改进算法。该算法分为迭代、汇总和贪心三个阶段。在第一阶段的每一轮迭代中,依次考虑每个结点p1,p2,…,pn,把pj和p-j=P-{pj}作为两个独立的结点,并将所有到P-{pj}的边用一个到p-j的边代替,该边上的权为所有到P-{pj}的边上的权之和。利用MaxFlow/MinCut算法,可得到分配给pj的模块的一个子集。删去在此轮迭代中已分配给pj的那些模块结点,并定义未删除的模块tj与处理机pk间的权为qi,k=qi,j+∑tj为已分配给p-k的某个处理机的模块ci,j

若所有的模块结点已分配完,或在最后一轮迭代中没有模块分配给某个处理机,则迭代阶段结束。Lo证明了迭代的终止性及若此时模块分配完则将获得最优解。在汇总阶段,首先计算一个优化的n度割集的下界L=∑tj∈T′mink(qi,k)+minj≠rc(pj,pr)

其中,c(pj,pr)为任意选择的处理机间最小切口的开销,T′为所有第一阶段中没有分配的模块的集合。然后,检查将剩余模块指派到某个处理机上是否更合适,若是,则算法结束,也得到一个最优解。否则进入贪心阶段。将相互通信开销大的模块汇集成簇,同一簇中的模块分配到同一个处理机上,这样得到的结果是次最优的。这个改进算法解决了基本算法在处理机数目上的限制。为使此算法更能反映真实情况,Lo还考虑了每个处理机上可利用资源的限制和同居模块间的通信开销,并引入了冲突开销的因素。此外,Lo提出了一种限制各处理机上模块数的方法,其基本思想是:若m>2n,则先进行合一,并保证合一后的簇中模块数目不超过[B/2](B为一处理机上最大允许的模块数)。重复这种合一过程,直至模块簇数目m′≤2n,然后再用适当算法将m′个模块簇按最小执行开销分配到n个处理机上。这个改进算法利用了试探法中对模块进行合一的思想,并直接利用了现有的网络算法,因此实现较简单,但算法开销大,因为MaxFlow/MinCut算法的时间复杂度为O(a2log2+a/n

b),其中a,b分别为边数和结点数。每次迭代中,每获得分配给一个处理机的模块子集的复

杂度为O(m4log2m)(设系统为全互连的),这样,每次迭代的开销为O(nm4log2m),而最坏迭代次数为m。因此,最坏情况下的复杂度为O(nm5log2m)。此外,该算法没有明确反映实时性和存储方面的限制,没有提供保护模块优先关系的机制,也不能衡量排队延迟对吞吐量的影响。1.2 整数规划方法基本思想是仍用前面定义的Q矩阵表示执行开销,但用Vm×m表示模块间的通信开销:V={vi,j󰀁1≤i≤m&1≤j≤m&vi,j为ti向tj

传递的数据量}

2 小型微型计算机系统 1997年同时引进一个距离矩阵Dnxn:D={di,j󰀁1≤i≤n&1≤j≤n&di,j为pi与pj

间的距离}

模块分配函数用矩阵Xmxm来定义:

X={xi,j󰀁1≤i≤m&1≤j≤n&xi,j=1 表示ti分配到pj上xi,j=0 否则该分配方法的目标函数定义为:

T(X)=∑k∑i{qi,kxi,k+∑r其中,常数w用来调节通信开销和执行开销间的差异。此时任务分配即要找使T最小的那个X的指派。因此,这种方法实质上是带有某些限制条件的隐式枚举算法,其时间复杂度随问题规模成指数增长。这显然限制了算法的实用性。这种方法的优点是很容易加入适当的限制条件,以满足实际环境的需要。[2]提出了一种分支界限法,它用一棵搜索树来表示分配问题,每个叶子结点处表示一个分配方案。除了存储限制和实时限制外,它还引入了以下限制条件:

模块优先矩阵P*mxn

pi,j=1 表示ti不能分配给pj;

pi,j=0 否则

模块互斥矩阵E

mxm

ei,j=1 表示ti和tj不能分配给同一处理机;

ei,j=0 否则并允许一个任务(模块)的多份拷贝,以提高系统的可靠性。该算法在每个分支处检查P*,E关系和存储及实时限制条件,若不满足,则剪枝;若满足,则检查这次分配后的部分开销是否超过已得到的最小全部开销,若超过,则剪枝;否则就分配,并选择下一扩充结点。若全部可能的路径都被探查完,或规定的执行时间已到,则算法结束。该算法的空间复杂度较小,只需记录当前最小开销的分配方案和此开销即可,约为O

(mn)。但时间复杂度仍可能是指数级的,而且没有保护模块优先规定的机制和实施负载平衡的机制。对该算法,还可以进行如下改进:󰀁输入模块间的优先规定,利用拓扑排序算法对模块进行拓扑排序,并以此顺序作为扩

充下一结点的次序。󰀁在探查ti的pk分枝时,若ti有优先模块,则将它在pk上的执行时间作如下调整:

q′i,k=qi,k+max{0,qj′,r-qj″,k}其中,tj′为分配在pr(r≠k)上的ti的优先模块,tj″为分配在pk上的tj的优先模块。这样,就可有效地实现模块间的优先级的规定。还可以利用试探法的合一算法,将提交的模块合一成n个模块簇,这样搜索空间可降为n。1.3 试探法试探法[3,4]与前两种方法不同,它以次最优解为目标,其基本思想是先选择具有最大通信开销的一对模块,若有一处理机能按一定的实时限制和存储限制处理这对模块,则将它们合一(形成模块簇,以准备进入下一轮迭代);否则选择下一对具有最大通信量的模块,重复上述过程,直至再无可合一的模块对,迭代过程结束,将同一模块簇中的模块指派给同一处理机。这种算法的特点是执行开销小,其最坏情况下的时间复杂度为O(m2logm)。由于把m

311期 何炎祥等:对三种典型分布式任务配算法的分析 个模块分配到n个处理机上有nm种分配方案,最优解通常是很难获得的,但当不要求最优分配或不可能实现最优分配时,这种方法还是很有吸引力的,这种方法的不足之处在于:󰀁若合一过程结束后,模块簇的数目仍大于处理机的数目(设为n+k),显然应把这k

个多余的模块簇分配给各处理机,必要时,可能还得对模块簇进行分裂,但该算法并未考虑这一点。󰀁它未考虑模块互斥以及处理机性能可能不同等情况,因此,难能满足实际分配问题的

需要。󰀁该算法开销中的很大一部分用来寻找通信量最大的模块对。

Efe[3]提出的试探法含两个阶段:合一和调整,基本思想是先对模块进行合一,然后,若发现处理机间负载不平衡,则改变相应参数后重新进行合一。它以模块为结点,通信量为边将任务分配问题表示成一个process图。Efe指出某些模块可能仅能分配给某一或某几个处理机,这类模块称为附属模块,合一过程此时改为按附属模块形成簇。然后,先把包含仅能分配给某个处理机的模块的模块簇分配给该处理机,再分配包含其它附属模块的模块簇,最后分配不包括附属模块的模块簇。每次分配都以使系统负载最平衡为目标,如可用best-fit方法。模块分配完后,检查负载是否平衡,若平衡,则算法停止;否则进入调整阶段。在调整阶段,先根据各处理机的负载状况,标记各处理机为平衡、超载、轻载;将已分配给平衡处理机的模块从原process图中去掉;照抄分配给超载处理机的所有模块;用一个结点代表分配给轻载处理机的模块,并用原来所有到该结点相关模块的边的权之和作为到该结点的边的权;然后,对每个超载处理机执行下面的动作:寻找分配给超载处理机pk的模块簇到分配给轻载处理机pm的模块簇的边,设这样的边的个数为nk,m,在每条这样的边的权上增加󰀁Lk-Lm󰀁/nk,m,其中Li为pi上的负载。对这个新形成的process图重新执行合一过程。显然这种方法通过把因某种分配方案引起的负载不平衡方面的开销转移到通信开销上,并进行重新合一来试图得到更合理的分配方案,因此,它同时兼顾了减少通信量和均衡负载这两个因素。对这个算法,还存在以下需改进处:󰀁在合一阶段考虑了对附属模块的处理方法,但在调整阶段并未考虑附属模块的特殊

相关文档
最新文档