APP下载

分散计算:技术、应用与挑战*

2020-05-13吴虹佳蔡志平

计算机与生活 2020年5期
关键词:异构范式应用程序

吴虹佳,刘 芳,刘 斌,蔡志平+

1.国防科技大学 计算机学院,长沙 410073

2.中山大学 数据科学与计算机学院,广州 510006

3.中国科学院 电子学研究所,北京 100190

1 引言

云技术为人们提供了强大的计算服务,用户可以通过电脑或手机等方式进入数据中心,并根据自己的需要进行计算。然而,随着越来越多的设备连接到互联网并生成数据,云计算的集中式处理和长距离传输会导致网络的拥塞,数据不能及时反馈,无法满足用户的实时需求,尤其是在对时延敏感的使用场景中。例如,具有重要计算需求的军事用户依赖访问大型共享数据中心来获取数据,他们需要将自己的图像、视频或网络日志文件进行回传处理。然而,回传的成本和时延可能在不同的战斗环境中引起问题,尤其是在网络吞吐量严重受限或用户应用需要接近实时响应的情况下[1]。为了缓解这些情况,研究人员开始寻找可用的计算范式,研究如何利用网络中分散的闲置/可用的计算资源减少网络时延。

在这种应用背景下,分散计算(dispersed computing,DC)应运而生,并受到越来越多的关注。将这种新的、以资源为中心的体系架构描述为雾/边缘网络的演化。

如图1 所示,它由一组网络计算节点(如服务器、基站和用户的计算机等)组成。在分散计算场景中,不同节点之间的通信带宽非常有限且异构,不同的计算节点支持广泛的计算能力。分散计算将具有计算能力的设备连接到网络中,节点直接或间接进行通信,大大减少了数据的远程传输时间[2]。在分散计算范式中,事物不仅是数据的消费者,也是数据的生产者。

在一个分散的网络中,数据不仅可以在本地处理,还可以在地理上分散的其他节点上处理[3]。网络计算节点可以执行计算卸载、数据缓存和处理,以及移动性管理等功能。为了更好地实现这些功能,计算节点本身需要仔细设计,以有效满足节点之间的可靠性、安全性和协作性等服务需求。这是一种功能强大的计算范式,可以显著提高应用程序在延迟和可用吞吐量方面的性能,从而对其他性能(如能耗)产生间接影响。

Fig.1 Dispersed computing paradigm图1 分散计算范式图

分散计算由于其突出的优点,广泛用于军事场景中。2017 年11 月9 日,美国国防部高级研究计划局(Defense Advanced Research Projects Agency,DARPA)启动了分散计算项目(dispersed computing project,DCOMP)[1,4],旨在利用智能手机、平板电脑、联网汽车、物联网终端等随处可见的设备的计算资源,随时满足用户的需求。

本文总结了分散计算的相关概念,分析了分散计算的核心技术,介绍了相关实际应用场景,并阐述了分散计算面临的挑战。

2 分散计算概念

2.1 分散计算定义

分散计算是一种将所有具有计算能力的设备连接到一个网络有机体的计算范式。当需要大量计算时,利用网络中闲置的计算资源来划分任务,以计算节点协作和共享的方式给用户提供服务,并使其中任何一个节点能够在全球范围内共享、访问和执行信息。此外,分散计算是分布式计算的一种特定范式,给包括雾计算、边缘计算和分布式计算在内的一系列新兴技术增加了另一个名称[1]。同时,将这些计算范式又向前推进了一步。

分散还意味着并行使用多个类似的资源,每个子单元至少使用其中一个资源以防止不可靠性[5]。其数据不沿逻辑单元边界(即变量或结构)划分,而是将单元划分为子单元。分散计算设想这样一种网络,可以从其他许多节点借用计算和通信资源,以满足用户的需求,并帮助完成他们可能抛出的任何任务。通过分散计算最终想要达到的目的是:

(1)利用无处不在但物理上分散的计算平台,将应用程序和网络性能提高几个数量级。这种计算架构包括网络元件、无线电、具有可编程执行环境的智能电话或传感器,以及不同形式的便携式微云。

(2)能够支持用户跨众多不同计算平台进行安全、集体的计算任务分配。

(3)能够在网络连接存在变数或降级的环境下运行,使用户能够在代码和数据之间切换,以更好地满足用户、应用程序和任务需求。

综上所述可知,分散计算是一种新的计算范式,用于设计能够在高度可变和不可预测(也可能是退化的)网络连接条件下运行的系统。

2.2 分散计算架构

分散计算架构能够根据任务需求在最合适的位置进行计算,并利用协议栈的可编程性来缓解当今通信网络中的设计约束。分散计算利用网络中计算点的多样性,以及网络链接和连接它们的协议栈的异构性,应运而生一种新的以资源为中心的体系架构[6]。与其他计算范式相对比,其特点是:

(1)从用户和任务的角度出发,在最方便的地方进行计算。

(2)利用逐跳堆栈编程能力来消除当前的端到端协议设计约束,例如TCP(transmission control protocol)。

分散计算的目标是将计算转移到地理上分散的、异构的计算点,这些计算点可以位于网络核心、网络边缘,或者介于两者之间的任何位置。它是一个以跨层计算和通信资源为中心的体系架构,使异构网络资源能够处理数据到代码(或代码到数据)位置的战略移动,以满足应用程序的需求。此架构的目标是解决当前网络架构的缺点,进一步提高网络的稳定性和可用性。

2.3 网络计算节点

在分散计算中,引入了网络计算节点(networked computation point,NCP)的概念(https://www.darpa.mil/program/dispersed-computing/2016.9.7)。NCP 可以执行支持用户应用程序的功能。具有当前NCP 功能的可能设备包括可编程网络元素、带有嵌入式可编程处理器的传感器和智能手机等。

NCP 需要满足三个属性:(1)一个NCP 必须包含一个可编程执行环境,该环境可以根据应用程序的需要执行数据计算;(2)NCP 必须支持安全的、任务响应式的资源共享和代码-数据移动,能够将数据路由到指定的路径和不同的协议栈;(3)用户必须能够通过守护进程或类似的透明软件在终端主机上与NCPs交互。

2.4 计算范式对比分析

云计算(could computing,CC)[7]是一种服务范式,其中远程可用的计算服务允许用户根据需要通过高度异构的访问设备访问网络上的应用程序、数据和物理计算资源。正如大型硬件机器一样,云计算数据中心将基础设施、平台和软件应用程序作为服务交付给消费者。云计算基础设施包括三种服务范式[8],分别是软件即服务(software as a service,SaaS)、平台即服务(platform as a service,PaaS)和基础设施即服务(infrastructure as a service,IaaS)。但是,随着云中数据处理和存储的大量增加,大量数据在网络上传播,增加了它们与第三方和攻击者的接触,因此数据安全成为一个重要的挑战[9]。除了安全性之外,在使用和实现云服务方面还有其他障碍,如数据延迟不可靠、不稳定和缺乏位置意识等。另外,随着接入设备数量的增加,在传输数据和获取信息时,带宽变得越来越不充足。这些问题给网格计算、雾计算和边缘计算等新的计算范式的产生提供了空间。

网格计算(grid computing,GC)[10]是分布式计算的一种,与云不同主要侧重于不同组织间计算能力的连接。它的目标是使任何计算机都可以提供无限的计算能力和对海量信息的访问,主要针对的是各大学和研究实验室的高性能计算项目。这些项目需要大量的计算能力,或者访问大量的数据。网格计算关注的是超强的数据处理能力,适用于网络状态良好条件下的计算密集型应用。

引入雾计算(fog computing,FC)[11]是为了解决数十亿物联网设备无法通过简单地连接到云中服务器来运行的问题。与传统的云计算范式相比,雾计算更接近终端节点和设备,并且支持用户迁移。然而,雾并不是一个独立的计算范式,需要与云交互才能实现一致的数据管理[12]。雾计算为大多数应用提供了重要的优势,例如低延迟、位置感知、实时操作、异构性和终端设备移动性。

边缘计算(edge computing,EC)[13]是与雾计算相关的另一个概念,进一步推进了雾计算的理念。雾计算和边缘计算的关键区别在于处理数据的位置。雾计算更加分层和平坦,多个层形成网络[14],节点之间具有广泛的对等互连功能。而边缘计算依赖于不形成网络的单个节点,在孤岛中运行其节点。边缘计算是一个重载的概念,在不同的文献中有不同的定义,其宗旨是将移动设备上的计算卸载到附近的基站中,伴随着5G 技术的发展,把计算放到距离设备更近的骨干网络边缘上来降低延迟[15]。边缘计算的思想很大程度上补充了云计算的不足,雾计算和边缘计算都是基于边缘的想法利用具有计算资源的终端设备来处理数据。

随着海量数据的爆发,边缘计算将数据处理转移到边缘节点,试图减少发送到云的数据量,从而降低任务响应时间。当边缘节点不断增多,雾计算在本地部署微数据中心,以便分析来自多个边缘节点的数据。雾或边缘计算哪个更好将取决于物联网的具体应用及其要求。

分散计算是完全分散的架构,将每个计算设备都看作一个网络计算节点。这种架构更快,更高效,更具可扩展性。旨在提供可扩展且强大的计算网络,将所有设备连接成一个网络化的有机体,充分利用网络中的闲置计算资源,使用异构计算平台来处理大量数据。尽管分散计算、网格计算、雾计算和边缘计算不尽相同,但它们都反映了互联网计算范式在万物互联时代的新需求。网格计算、雾计算和边缘计算都是对云计算的补充,然而分散计算将这些计算范式又向前推进了一步。

上述五种计算范式在计算、网络、应用场景等方面的对比如表1 所示。

与云计算、网格计算、边缘计算和雾计算相比,分散计算更加适用于动态的任务处理和恶劣的网络,具有以下明显的优势。

Table 1 Comparison and analysis of five computing paradigms表1 五种计算范式的对比与分析

(1)充分利用空闲计算资源,实现单一设备的性能无法实现的功能应用。有效地使用网络化但地理上分散的计算资源[3],这将有利于那些由于延迟而难以与远程数据中心交互的用户,或者由于计算复杂性而不能完全依赖终端设备的用户。

(2)利用全球已有的计算资源,重新思考互联网的架构是如何连接和计算的。通过使用新的算法和协议栈提高应用程序和网络性能,开发新的网络协议,去除中心化,将云数据中心视为通用的计算节点。

(3)节点之间以合作共享的方式提供服务。计算节点间是相互连接的,因此它们中的任何一个都可以在整个网络范围内共享、访问和执行信息。

3 分散计算核心技术

本章将重点介绍分散计算中的三个核心技术:分散的任务感知计算算法、可编程节点和协议栈、分散计算的跨层方法。

三种核心技术的整体架构如图2 所示,突出显示了三个核心技术之间的相互关系[6]。分散的任务感知计算算法关注于如何联合管理计算和网络资源,共享任务细节、数据流细节和性能边界等信息。可编程节点和协议栈关注于如何实现应用程序的整体资源分配,提供NCPs 列表、覆盖网络抽象、流性能细节以及具有覆盖链路特征(包括延迟、可用带宽和损耗)的网络态势感知。

Fig.2 Core technology architecture diagram图2 核心技术架构图

跨层方法关注于如何增强核心技术的核心功能,将应用程序流如何对可变资源做出反应的知识与传输层和网络层的资源分配控制机制结合起来,进行联合管理。这种联合管理可以实现更智能、更动态的资源分配。

3.1 分散的任务感知计算算法

分散的任务感知计算旨在有效利用地理位置分散的计算资源来联合优化数据的移动和任务在可用的NCPs 之间的放置。严格限制延迟的用户应用程序很难与远程数据中心进行交互。在这种情况下,NCP可以根据负载、计算能力和网络路径等特性有效地利用附近NCPs 的计算能力,从用户的角度提供显著的性能优势。任务感知计算技术的具体三大需求:

(1)实现跨异构、物理上分散的平台的计算能力的可用性以及跨平台的计算任务的有效调度与分配。整个任务完成时间将取决于处理延迟、网络延迟和网络吞吐量。

(2)算法应该包括感知和从失败中恢复的能力,并将失败的风险纳入关于作业(和数据)放置和复制的决策中。

(3)算法必须能够以最能满足任务或企业总体需求的方式,在相互竞争的任务和用户之间优先分配资源。

在分散计算场景中,不同节点之间的通信带宽也可能非常有限且异构。因此,为了在这样的网络中调度计算任务,设计有效的动态算法来仔细考虑计算和通信的异构性是至关重要的。在动态调度问题上,任务以一个随机过程到达,并被动态调度。在现有文献的工作中,各任务在专用服务器中处理,其目标是确保网络的稳定[16]。在确保网络稳定后,下一个目标是计算各任务的期望完成时间或者时延分布。当任务没有专用服务器时,需要寻找一个吞吐量最优化的调度策略。

经分析发现,分散计算中任务感知的调度算法存在三个瓶颈:设备之间低带宽链路;前驱任务与后继任务大量数据的传输;单个任务的大量计算负载。

3.2 可编程节点和协议栈

可编程节点和协议栈旨在根据应用程序和动态路径特性开发终端-主机和路径内栈。它们提供了NCP 列表、覆盖网络抽象和数据流性能的详细信息,具体包含延迟、可用带宽和覆盖链路特征等。其技术核心包含但不限于以下几点:

(1)本地化NCP 启动探测,测量和分析,以通知路径内或端点协议修改,或促进有效的网络诊断。

(2)动态修改NCP 平台资源分配(如CPU、内存),以确保使用给定的NCP 在多个流之间实现集体效用的公平或最大化。

(3)自适应包或流操作(如复制、编码或重定向),当网络条件发生变化时,NCPs 会覆盖路径的某些部分,以满足任务和应用程序性能需求。

NCPs 和NCP 覆盖网络提供的灵活性支持各种数据传输方法。为了满足应用程序的数据传输需求,可以利用可编程节点和协议栈来动态确定流的路由,以及沿路由的覆盖链路上使用的协议栈。NCP 根据观察到的链路状况来显式避免瓶颈链路,它可实现动态的每跳(重叠)传输协议堆栈自适应,从而减轻每跳性能的降低。

其中,流、测量和协议修改的处理不能过于耗费资源,以致影响数据平面吞吐量或NCPs 响应网络中动态变化条件的能力。通过分布式控制和优化技术协调NCP 操作的方法比纯粹的集中方法更受欢迎,以支持可伸缩的、健壮的操作。可编程网络节点体系结构的主要目标不仅包括节点的可编程性,还包括用户的节点编程和通过封装在包中的代码进行编程。相比之下,分散计算专注于可编程性对构建未来分布式系统的影响,因此假定只有指定的实体(例如,管理员或自动边界控制器)才能编写和安装代码,并且代码将通过安装在NCP 中的专用安全通道。

3.3 分散计算的跨层技术

跨层技术的目标是使网络流带来的负面外部性内部化[6],进而减少显式应用需求和可变资源对性能的影响。分散计算的跨层方法主要是实现以下两点:

(1)联合管理数据的传输和计算。

(2)多个流程的联合管理。

跨层管理使应用层有关应用程序流如何对可变资源做出反应的信息与用于分配资源的传输层和网络层控制机制结合起来。这种联合管理可以实现更智能、更动态的资源分配。NCP 的可编程性允许分散的路径内路由和堆栈管理,从而可以更快地进行诊断和修复路径退化。

针对网络通信和计算资源有限的情况下,跨层技术以分散的方式联合优化多个作业,同时满足应用程序需求,进一步支持分散计算的可伸缩性目标。

4 应用实例

分散计算利用网络中可用的所有计算能力和资源,各节点之间相互合作提供服务,使其可以在物联网的应用上发挥巨大优势。本章将列举一些典型的应用实例,结合这些实例可以帮助人们更好地了解分散计算的现状和优势。

4.1 军事作战

现在,军方比以往任何时候都更依赖于对实时信息的处理。然而,由于战斗信息的高度机密性,不可能利用云的强大计算能力。同时,高度可变的战争环境会导致间歇性的连接,需要良好的网络鲁棒性。此外,由于战争破坏造成的通信环境恶劣,必须要有强大的网络修复能力来支持军事信息战。由此可知,这种军事战争环境需要依靠一个能够处理动态任务的网络。而现有的网络计算范式,包括云计算和边缘计算,是不能满足的。

为此,美国国防部专注于一个应用于军事作战场景的总体大战略。运用分散计算的思想,如图3 所示(http://cci.usc.edu/index.php/2017/06/28/turning-datainto-power/),将军方的所有设备连接起来,涵盖前线最基本的传感器,战场上的坦克、飞机和专用设备,以及海外指挥中心和美国本土的大型数据仓库等,将它们连接成为一个单一的网络化有机体,使得当中的任何一个节点都能够分享、访问和执行全球范围的信息。

Fig.3 Military operations图3 军事作战

分散计算可以很好地应用到网络环境恶劣、高度多变的场景中,具有很强的鲁棒性。将是未来支持军事作战环境的首选计算范式。

4.2 安珀警戒

安珀警戒(AMBER Alert)[17]是当国内确认发生儿童绑架案时,透过各种媒体向社会大众传播的一种警戒告知。最大限度地发布警报信息,并在第一时间让更多人知道,从而提高破案的可能性和公众参与保护儿童的意识。安珀警报系统已经在全美50个州、哥伦比亚特区、印第安人聚居区、波多黎各、美属维尔京群岛和其他30 个国家使用。截至2019 年9月,共有967 名儿童通过琥珀预警系统成功康复。

当执法机构确定一名儿童已被绑架并面临迫在眉睫的危险时发出紧急信息,信息将通过广播、电视、路标、手机和其他数据设备等进行传播。其中车辆作为网络计算节点,借助安珀响应,安装在仪表板上的摄像头可以捕获附近车辆的车牌,并将其与活动的安珀警报数据库进行比较。在安珀警戒的背后,需要一个十分强大的分散网络系统作为支撑,通过一系列几乎无死角的信息覆盖,使得失踪儿童找回的可能性大大提高。

分散计算的体系结构能够在高速变化、网络节点地理位置分散的条件下对数据进行时效性分析,将是未来支持公共安全的移动环境的首选计算范式。

4.3 火灾救援

在火灾救援中,借助分散计算的跨层技术管理,可以简化从边缘智能传感器到人类第一响应者的网络实体的传感、通信和协作[18]。

例如,当一架无人机在自然灾害现场上空飞行,需要运行图像识别以快速识别、分类和评估潜在幸存者的安全性。但是在火灾环境中,通信资源不仅受到破坏且高度可变,无人机等终端设备无法进行有效的数据处理和远距离的信息传播,这大大降低了救援的效率。因此研究者们提出了云边协作[19-20]的方法来提高网络性能,但是仍然无法克服远距离的信息传输带来的时延问题。而且,边缘协同通常都是假设在良好的网络环境下,无法很好地应用于恶劣多变的灾难场景中。

此时,可以利用分散计算的思想,将所有具有计算能力的移动设备连接成一个网络化的有机体,节点之间共享合作,无需依赖于云计算中心,减少了远距离通信带来的时间延迟。更重要的是,分散计算的设计目标是可操作性、安全性、稳定性,它能够根据任务需求在最合适的位置进行计算,并利用协议栈的可编程性来缓解路径退化。

5 研究方向与挑战

目前,关于分散计算在学术界的研究才刚刚起步,虽然分散计算作为物联网时代的一种新的计算范式,相对于传统的计算范式有一定的优势,但仍存在很多问题需要研究。最后提出几个未来实现分散计算架构需要面临的挑战和发展方向。

(1)任务驱动的服务同步是分散计算面临的一个挑战也是未来重点的研究方向。在分散计算中,终端节点发挥作用,端节点需要与其他端节点交互以进行快速信息交换。由于所有参与节点都由一个共享的任务驱动[21],因此它们必须以同步的方式共享部分数据和计算,并且必须在时域内正确标记交换的数据,以满足全局目标。

可能的解决方案:在不影响网络上的其他遗留作业和流的情况下,对NCP 上的计算资源和网络内的网络资源执行高效、同步、联合的控制。由于各种原因,联合优化[22]具有内在的挑战性。首先,不同任务的数据量和计算复杂度存在显著差异。因此,资源分配必须适应异构任务[23]需求。其次,由于争夺资源的设备通常是自治实体,因此任务的选择应该与设备的利益相一致。最后,必须协调各任务的卸载决策和各计算节点的资源分配,才能达到良好的整体节能效果。

(2)在优化传输和计算之间找到正确的平衡。计算和网络资源管理的时间尺度是不同的,发送和接收数据可能只持续几十或几百毫秒,但是图像识别可能需要几秒钟甚至更多的时间。因此,如何在优化传输和计算之间找到正确的平衡是一个具有挑战性的问题。

可能的解决方案:可以利用分散在网络各处的异构资源的计算能力来处理在网络边缘收集的大量数据。重点优化策略的延迟特性、开发不受服务速率等详细系统参数影响的鲁棒调度策略。在数学模型的基础上,将调度问题扩展到有向无环图(directed acyclic graph,DAG)模型,开发低复杂度的有向无环图调度与最优吞吐量策略。

(3)准确地识别网络何时发生变化(退化和/或故障)以及相关的影响。分散计算中节点可以在任何时候从网络中添加或删除[24],可以是由控制机构添加的,也可以是由于故障条件而无意中添加或删除的,这种动态特性给移动性带来了更大的挑战。

可能的解决方案:建立新的机制来实现切换策略,以应对移动性导致的网络不稳定连接。开发网络性能监控工具,实时监测网络动态,在第一时间处理异常情况。

(4)在有限和可变的带宽、高度分散的异构计算资源下,保证服务质量。严格的服务质量要求是分散计算面对的另一个挑战,一些分散的应用程序需要向用户提供实时服务,这就需要实施一些服务质量管理策略,以确保时间限制操作。

可能的解决方案:设计一种高效的服务划分方案,加速交互式分散计算,确保服务质量。在提供一个服务时,必须基于每个应用程序做出决策,明确地知道在何处进行处理。受到文献[25]的启发,在高度异构的环境中避开低带宽数据链接,可以从复制关键任务来重新路由通信路径的角度出发,设计复杂度更低、效率更高的管理策略。

6 分散计算研究现状

美国国防高级研究计划局(DARPA)希望通过分散计算项目开发一个决策系统,可以在大量分布式、异构平台上集中分配计算和评估任务。此外,DARPA还寻求开发利用物理上分散计算能力的算法和协议,以将应用程序和网络传输性能提高几个数量级。其目标是使网络成为云,自动化数据到代码的战略移动,最终促使人们远离当前互联网架构的问题。

通过开源跨机构公告,DARPA 的分散计算项目已收到42 份方案。其中,雷神BBN 公司将开发算法和控制机制,以有效利用网络化但地理分散的计算能力,预计2021 年完成。同时BAE 系统公司、LGS创新公司和Vencore Labs 也作为项目的参与者,加入分散计算的研究中。截止到2019 年,分散计算已有一些代表性研究成果。

其中南加利福尼亚大学的自主网络研究组(https://anrg.usc.edu/www/)的成果尤为突出,将理论的进步与实际的系统实现相结合,提供一个全面的分散计算框架,解决了以下三个问题。

(1)开发了一个创新的“分散任务调度框架和基于价格的算法”,用于分散计算中的资源分配。与传统的分布式计算和网格计算环境中的集中式调度器不同,提出的分散式任务调度框架将减少与不断从所有NCP 中收集有关计算和通信的新状态信息相关的协调开销,这将使分散计算系统不仅具有更强的可伸缩性,而且在发生网络故障或受到攻击时的响应更快。其中基于价格的资源分配方法将允许对竞争性工作的任务分配进行动态优化,为工作优先级和满足最后期限提供支持。

(2)提供了一种全新的体系结构[26-27],利用网络各个部分可用或未充分利用的计算能力。在此基础上,开发了一种新的编码类型,称为最大鲁棒性代码,它对最大数量的失败或掉线节点提供鲁棒性。与当今的非编码计算系统相比,显著提高了带宽利用率和对故障和掉队的恢复能力。

(3)设计并部署了一个异构的分散计算实验台(https://anrg.usc.edu/www/research/apac/),将模拟真实世界的场景,其中视频数据是通过分布式传感器节点收集的。该实验台将是一个独特的融合超低功率NCPs,集成了先进的收集视频和音频的传感器。在此基础上,开发了一套完整的软件功能,以统一的方式公开底层的异构测试床功能,以便应用程序能够透明地利用测试床。内部实验台将与商业分散计算实验台相补充。

此外,在系统架构方面,Schurgot 等人[6]描述了联合计算和通信资源管理的新愿景。利用网络中网络计算点的多样性,以及网络链接和连接它们的协议栈的异构性,提出了一种新的以资源为中心的体系结构。Ghosh 等人[28]提出了一个用于分散计算的容器编排体系结构。该系统可自动在一组联网的计算节点之间高效地分配任务,并在此之后协调任务的执行。Knezevic 等人[29]开发出一种用于分散计算的运行时调度软件工具。它可以在边缘和云中以有向无环图的形式在多个地理上分散的计算节点上部署流水线计算。

在任务感知算法方面,Nguyen 等人[30]开发了一个分散网络性能分析器,它对分散计算集群中的通信链路进行周期性分析,并对数据进行二次拟合,然后将信息发送回调度器。实验表明,此网络分析器能在运行的分散网络中有效地测量网络性能,并给出优化的分散网络调度策略。Hu 等人[25]针对计算机视觉和视频处理的应用程序提出了一个吞吐量优化的任务调度器,该调度器集成了两种创新技术:任务复制和任务分割。为了捕获网络中计算和通信的异构性,Yang 等人[2]提出了一种新的虚拟排队网络。将分散计算的调度问题扩展到一个更一般的计算范式。

在国内分散计算也受到了关注,根据美国的分散计算项目,中国航天系统科学与工程研究院的李臻等人[31]从分散计算的概念着手,对比DARPA 分散式计算需求,剖析了我军网络技术存在的主要问题及其对我军网络建设的启示与借鉴,提出了我军在分散计算研究领域的措施建议。

7 总结

分散计算是一种很有前途的新计算范式,将边缘和雾计算的理念更推进了一步。它适用于目前提供的主要基础设施服务,包括计算、存储和通信服务。本文首先介绍了分散计算的研究背景,其次介绍了分散计算的相关概念。为进一步理解分散计算的思想,详细阐述了分散计算的三个核心技术,并提出了三大实际应用。最后讨论分散计算面临的挑战及研究方向。这些阐述旨在为分散计算的研究人员提供未来的研究方向。

猜你喜欢

异构范式应用程序
ETC拓展应用场景下的多源异构交易系统
法治范式的沟通主义进路
——简评《中国法治的范式研究:沟通主义法范式及其实现》(郭金平)
离散异构线性多智能体系统的输出一致性
试论同课异构之“同”与“异”
以写促读:构建群文阅读教学范式
删除Win10中自带的应用程序
凝聚与铺张——孙绍振教授《以丑、呆为美》两岸同课异构教学观摩后记
中国传统哲学研究中的认知范式转移
谷歌禁止加密货币应用程序
管窥西方“诗辩”发展史的四次范式转换