首页> 中国专利> 一种面向软件定义卫星的神经网络动态重构部署的方法以及装置

一种面向软件定义卫星的神经网络动态重构部署的方法以及装置

摘要

本申请实施例提供一种面向软件定义卫星的神经网络动态重构部署方法以及装置,所述方法包括:读取部署需求表,其中,所述部署需求表用于记录部署神经网络所需的节点数量和所需各节点的资源需求;根据所需的节点数量和所需各节点的资源需求,从多个节点中选择部署节点;根据所述部署需求表和所述部署节点完成神经网络部署。本申请的一些实施例通过部署需求表解耦了星地之间频繁的通讯,大大降低了地面参与度,提高了星载部署自主化和智能化程度。

著录项

  • 公开/公告号CN113190344A

    专利类型发明专利

  • 公开/公告日2021-07-30

    原文格式PDF

  • 申请/专利权人 中国科学院软件研究所;

    申请/专利号CN202110325941.2

  • 申请日2021-03-26

  • 分类号G06F9/50(20060101);G06N3/063(20060101);

  • 代理机构11463 北京超凡宏宇专利代理事务所(特殊普通合伙);

  • 代理人李飞

  • 地址 100000 北京市海淀区中关村南四街4号

  • 入库时间 2023-06-19 12:02:28

说明书

技术领域

本申请涉及神经网络的星上部署领域,具体而言本申请实施例涉及一种面向软件定义卫星的神经网络动态重构部署的方法以及装置。

背景技术

随着人工智能领域行业的飞速发展,卷积神经网络在图像处理应用(比如目标的检测和识别)中有着出色的表现,地面已经发展出众多针对神经网络在嵌入式平台上部署的方案,使得神经网络在嵌入式平台中得到了广泛的使用,大大了提高了计算效率,方便了人们的生活。越来越多的人为了提高卫星的在轨智能信息处理能力想将神经网络算法部署到卫星上,而神经网络算法不仅是计算密集型也是存储密集型结构,运行算法需要大量权值参数,相较于地面,星上计算能力很低,存储资源也较为昂贵,极大限制了神经网络在星上的部署。

因此如何提升神经网络在卫星上的部署以及任务执行效果成了亟待解决的技术问题。

发明内容

本申请实施例的目的在于提供一种面向软件定义卫星的神经网络动态重构部署的方法以及装置,通过部署需求表,可根据当前星上的状态自主完成神经网络的部署和运行,同时具备智能故障检测和修复的能力,不需要地面或仅需要非常少的地面干预,相比于传统的程序部署,解耦了星上部署对地面运控的依赖,大大降低了地面的参与度,提高星载部署自主化和智能化程度。

第一方面,本申请的一些实施例提供一种面向软件定义卫星的神经网络动态重构部署的方法,所述方法包括:读取部署需求表,其中,所述部署需求表用于记录部署神经网络所需的节点数量和所需各节点的资源需求;根据所需的节点数量和所需各节点的资源需求,从多个节点中选择部署节点;根据所述部署需求表和所述部署节点完成神经网络部署。

本申请的一些实施例通过部署需求表解耦了星上部署(例如,神经网络部署)对地面运控的依赖,大大降低了地面参与度,提高了星载部署自主化和智能化程度。

在一些实施例中,所述根据所述部署需求表和所述部署节点完成神经网络部署,包括:控制所有的部署节点从数据库读取部署数据,其中,所述部署数据包括:可执行应用程序、比特流、网络参数和指令集;控制所述所有的部署节点,根据所述数据流加载各自对应的可执行应用程序并配置比特流;根据所述节点拓扑结构,配置所述所有的部署节点的连接关系,以使所述部署节点能够以链表的网络拓扑结构完成并行计算。

本申请的一些实施例通过加载应用程序等使得部署节点执行各自的计算任务,并根据配置的连接关系构成链表结构完成最终的并行计算。

在一些实施例中,所述根据所需的节点数量和所需各节点的资源需求,从多个节点中选择部署节点,包括:根据所述所需各节点的资源需求,确认所述多个节点包括的满足资源需求的空闲节点的数目大于或等于所述所需的节点数目;将所述空闲节点作为所述部署节点。

本申请的一些实施例优先从空闲节点选择部署节点,这样可以最大程度避免中断其他节点正在执行的任务,保证其余任务的顺利执行。

在一些实施例中,所述根据所需的节点数量和所需各节点的资源需求,从多个节点中选择部署节点,包括:根据所述所需各节点的资源需求,确认所述多个节点包括的满足资源需求的空闲节点的数目小于所述所需的节点数目;根据未匹配到的节点的资源需求,从可中断业务的节点中选择目标中断节点;将所述满足资源需求的空闲节点和所述目标中断节点作为所述部署节点。

本申请的一些实施例在判断空闲节点不能满足需求时,再从可中断业务的节点中选择部署节点,这既保证了本次神经网络部署的顺利进行,提高了在轨计算资源的利用率,这是传统应用程序部署没有的优点。

在一些实施例中,在所述根据未匹配到的节点的资源需求,从可中断业务的节点中选择目标中断节点之后,所述方法还包括:将所述可中断业务的节点上被中断的业务迁移至其他节点,并生成第一备份迁移记录表;或者将所述可中断业务的节点被中断的业务特征数据保存至数据库中,并生成第二备份迁移记录表;其中,所述第一备份迁移记录表和所述第二备份迁移记录表用于记录恢复被中断业务所需的数据。

本申请的一些实施例通过将被中断的业务需要迁移至其他可运行被中断业务的节点继续运行,或者在其他节点均不能运行被中断业务时将被中断业务的特征数据存入数据库以便后续由被中断业务的节点继续执行未完成的任务,通过这种处理方式可以在保证本次神经网络顺利部署的情况下,也保证其余被中断业务的顺利执行。

在一些实施例中,所述部署需求表还用于存储所需各节点的ID号和各节点的部署数据标识号,所述根据所述部署需求表和所述部署节点完成神经网络部署,还包括:生成所述部署节点对应的IP地址与所述部署需求表中相应节点的ID号的映射表;根据所述映射表,通知每个部署节点依据相应节点的部署数据标识号从数据库中读取部署数据,其中,所述部署数据包括:可执行程序、比特数据、网络参数和指令集。

本申请的一些实施例根据部署需求表中所需节点的ID号建立部署节点和相应的需求节点之间的映射关系,并使得各部署节点通过与它相应的部署数据标识号读取部署数据,完成各部署节点应用程序(例如神经网络)部署过程。

在一些实施例中,所述根据所述节点拓扑结构,配置所述所有的部署节点的连接关系,包括:配置每个部署节点对应的上级节点IP和下级节点IP。

本申请的一些实施例为每个部署节点配置上下级节点,使得每个部署节点可处理上级节点的输出数据,完成对应网络层的计算后,将计算结果传输至下级节点,最终完成并行计算。

在一些实施例中,在所述根据所述部署需求表和所述部署节点完成神经网络部署之后,所述方法还包括:根据场景执行任务;采集每个部署节点的任务执行状态;对所述任务执行状态进行实时状态分析,得到状态分析结果;根据不同的状态分析结果生成相应的决策。

本申请的一些实施例完成神经网络部署后,再监控各部署节点的任务执行状态,以即时发现部署节点出现的故障并置换故障节点,这样一方面可以保证正在执行的任务的顺利执行,另一方面也能减轻地面对星上任务执行过程的干预,增强了在轨智能化程度,减轻了星地链路之间的数据传输量。

在一些实施例中,所述对所述任务执行状态进行实时状态分析,得到状态分析结果包括:根据所述任务执行状态检测故障部署节点;所述根据不同的状态分析结果生成相应的决策,包括:向所述故障部署节点发送“结束任务”指令暂停任务;向加电节点发送加电重启指令,以使所述故障部署节点根据加电重启指令完成重启。

本申请的一些实施例能够对发现的故障部署节点进行加电预处理,从而尽快恢复故障部署节点的任务执行过程。

在一些实施例中,在所述向加电节点发送加电重启指令,以使所述故障从节点根据加电重启指令完成重启之后,所述方法还包括:确认所述故障部署节点的加电重启过程失败;根据除所述部署节点之外的其它节点中选择可替代的节点;向所述可替代的节点发送数据加载指令,以使所述可替代的节点读取被替换的故障部署节点的当前数据,并控制所述可替代的节点完成配置部署;修改所述被替换故障部署节点的上一级节点的数据目的地址为所述空闲从节点的地址,重启所述故障部署节点正在执行的任务。

本申请的一些实施例通过对加电重启失败的故障部署节点进行节点置换,这样一方面可以保证正在执行的任务的顺利执行,另一方面也能减轻地面对星上任务执行过程的干预,增强了在轨智能化程度,减轻了星地链路之间的数据传输量。

在一些实施例中,在所述读取部署需求表之前,所述方法还包括:接收注入数据,其中,所述注入数据包括:所述部署需求表和部署所述神经网络所需的各节点的部署数据,所述部署数据包括:可执行应用程序、比特文件和数据流;将所述部署数据存入数据库,其中,所述部署需求表至少包括各节点部署数据和节点的映射关系。

本申请的一些实施通过接收地面注入的部署需求表和部署数据,一次性注入部署需求文件可以有效减少部署过程中星地链路之间的通信次数,降低对地面运控的依赖,减轻了星地链路之间的通信压力。

第二方面,本申请的一些实施例提供一种神经网络的星上动态部署及任务执行的装置,所述装置包括:部署需求表读取模块,被配置为读取部署需求表,其中,所述部署需求表用于记录部署神经网络所需的节点数量和所需各节点的资源需求;部署节点获取模块,被配置为根据所需的节点数量和所需各节点的资源需求,从多个节点中选择部署节点;部署模块,被配置为根据所述部署需求表和所述部署节点完成神经网络部署;监控模块,被配置为监控所述部署节点的任务执行情况。

第三方面,本申请的一些实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现上述第一方面所述的方法。

第四方面,本申请的一些实施例提供一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现上述第一方面所述的方法。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的超算平台的结构组成框图;

图2为本申请实施例提供的面向软件定义卫星的神经网络动态重构部署的方法的流程图之一;

图3为本申请实施例提供的面向软件定义卫星的神经网络动态重构部署的方法的流程图之二;

图4为本申请实施例提供的面向软件定义卫星的神经网络动态重构部署的方法的流程图之三;

图5为本申请实施例提供的面向软件定义卫星的神经网络动态重构部署的方法的流程图之四;

图6为本申请实施例提供的神经网络的星上动态部署及任务执行的装置的组成框图;

图7为本申请实施例提供的电子设备的组成框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

本申请的实施例提供的技术方案可以应用于面向软件定义卫星超算平台,提供了一种神经网络的星上动态部署方法,针对计算和存储能力都相对有限的星载运算环境,本申请的实施例的方法通过部署需求表解耦了星地之间频繁的通讯,降低了卫星对地面运控的依赖,大大降低了地面参与度,提高了星载部署自主化和智能化程度。本申请的另一些实施例,还充分利用星上空闲计算和存储资源,并使用节点置换的方案提高神经网络部署的灵活度和可靠度,为神经网络的星上部署提供了一种新的思路和切实可行的方法。

请参看图1,图1为本申请的一些实施例提供的基于软件定义卫星超算平台的硬件架构示意图。图1的超算平台由2台千兆网交换节点(即图1的POE/TSN交换节点)及若干个计算节点组成,例如,各计算节点与交换节点采用PoE方式进行互联。

POE/TSN交换节点完成载荷数据分组收发和路由,实现计算节点间的数据共享和信息交互。

作为一个示例,图1的各计算节点有如下特点:

1)计算节点采用CPU(Central Processing Unit)加FPGA(Field ProgrammableGate Array)异构的计算架构。CPU主要完成复杂算法的控制流,FPGA为并行度高的计算器件,可实现计算密集型的算法加速。

2)通过星地链路自地面装置在轨注入不同的编译码流,赋予计算节点不同的功能,实现不同的在轨任务;CPU对应的可执行程序简称为应用程序(App),FPGA对应的可执行程序简称为比特文件(Bitfile)。

3)计算节点之间可通过交换节点共享数据。

需要说明的是本申请实施例所需的部署节点是从计算节点中选择的。

下面结合图2-图5示例性说明本申请实施例的由卫星上的超算平台执行的神经网络的星上动态部署及任务执行的方法。

如图2所示,本申请的一些实施例提供一种神经网络的星上动态部署及任务执行的方法,所述方法包括:S101,读取部署需求表,其中,所述部署需求表用于记录部署神经网络所需的节点数量和所需各节点的资源需求;S102,根据所需的节点数量和所需各节点的资源需求,从多个节点中选择部署节点;S103,根据所述部署需求表和所述部署节点完成神经网络部署;S104,监控所述部署节点的任务执行情况。

可以理解的是为了执行S101,需要首先通过地面装置向超算平台发送注入数据,其中,注入数据包括S101的部署需求表、部署应用程序或者神经网络所需多个节点中各节点所需的可执行程序、配置文件、网络参数、指令集等等。例如,在执行S101之前,由超算平台执行神经网络的星上动态部署及任务执行的方法还包括:接收注入数据,其中,所述注入数据包括:所述部署需求表和部署所述神经网络所需的各节点的部署数据,所述部署数据包括:可执行应用程序、比特文件、网络参数和指令集等;将所述部署数据存入数据库,其中,所述部署需求表至少包括各节点部署数据和节点的映射关系。

需要说明的是,部署需求表至少用于说明部署神经网络所需的所有节点(例如采用节点ID号表征这些节点),以及所有节点中每个节点所需的部署数据对应的序列号。星上部署应用程序会将选择的部署节点对应的部署数据的序列号发给对应的部署节点,部署节点根据部署数据的序列号从数据库取出对应的数据,然后运行即完成了单节点部署。作为一个示例,部署节点和部署节点所需的部署数据都有唯一的标识ID号,这些ID好均存储在部署需求表中,待星上部署应用程序找到所有部署节点后,根据每个节点的需求,生成每个ID对应的IP映射表,即确定了选择的每个部署节点的对应的IP地址。部署需求表中指明了每个节点对应的部署数据对应的ID号,而这些部署数据通过注入预先存储在数据库中。部署应用程序会提取每个节点对应的部署数据对应的ID序列,将其发给对应的部署节点(因为部署APP知道节点ID对应的IP地址),这些部署节点收到这些部署数据ID序列后,从数据库中读取对应的部署数据,然后完成部署。

下面示例性阐述上述相关步骤。

为了优先从卫星上的空闲节点中选择部署节点,在本申请的一些实施例中S102包括:根据所述所需各节点的资源需求,确认所述多个节点包括的满足资源需求的空闲节点的数目大于或等于所述所需的节点数目;将所述空闲节点作为所述部署节点。本申请的一些实施例优先从空闲节点选择部署节点,这样可以最大程度避免中断其他节点正在执行的任务,保证其余任务的顺利执行。

当从空闲节点不能满足神经网络部署所需的数据的节点时,在本申请的一些实施例中,S102包括:根据所述所需各节点的资源需求,确认所述多个节点包括的满足资源需求的空闲节点的数目小于所述所需的节点数目;根据未匹配到的节点的资源需求,从可中断业务的节点中选择目标中断节点;将所述满足资源需求的空闲节点和所述目标中断节点作为所述部署节点。为了保证被中断任务的执行效果,在所述根据未匹配到的节点的资源需求,从可中断业务的节点中选择目标中断节点之后,本申请实施例的神经网络的星上动态部署及任务执行的方法还包括:将所述可中断业务的节点上被中断的业务迁移至其他节点,并生成备份迁移记录表。

在本申请的一些实施例中,所述部署需求表还用于记录:节点拓扑结构、所需各节点对应的应用程序以及所需各节点对应的部署数据;相应的,S103包括:控制所有的部署节点从数据库读取部署数据,其中,所述部署数据包括:可执行应用程序、比特流、网络参数和指令集;控制所述所有的部署节点,加载各自对应的可执行应用程序并配置比特流;根据所述节点拓扑结构,配置所述所有的部署节点的连接关系,以使所述部署节点能够以链表的网络拓扑结构完成并行计算。

在本申请的一些实施例中,所述部署需求表还用于存储所需各节点的ID号和各节点的部署数据标识号,S103还包括:生成所述部署节点对应的IP地址与所述部署需求表中相应节点的ID号的映射表;根据所述映射表,通知每个部署节点依据相应节点的部署数据标识号从数据库中读取部署数据,其中,所述部署数据包括:可执行程序、比特数据、网络参数和指令集。

在一些实施例中,S103所述根据所述节点拓扑结构,配置所述所有的部署节点的连接关系具体包括:配置每个部署节点对应的上级节点IP和下级节点IP。

需要说明的是,当完成网络部署之后,各部署节点就可以开始执行任务。为了进一步提升各节点执行任务的效率,本申请的神经网络的星上动态部署及任务执行的方法还包括监控部署节点任务执行过程的步骤。下面对监控过程进行示例性说明。

可以理解的是,在执行S103之后,S104还包括:根据场景执行任务;采集每个部署节点的任务执行状态;对所述任务执行状态进行实时状态分析,得到状态分析结果;根据不同的状态分析结果生成相应的决策。

例如,为了即时修复电因太空恶劣环境导致单粒子翻转等原因引起的部署节点故障,在本申请的一些实施例中,所述对所述任务执行状态进行实时状态分析,得到状态分析结果包括:根据所述任务执行状态检测故障部署节点;所述根据不同的状态分析结果生成相应的决策,包括:向所述故障部署节点发送“结束任务”指令暂停任务;向加电节点发送加电重启指令,以使所述故障部署节点根据加电重启指令完成重启。

例如,当重新加电还是不能恢复部署节点的故障时,在本申请的一些实施例中,在所述向加电节点发送加电重启指令,以使所述故障从节点根据加电重启指令完成重启之后,所述神经网络的星上动态部署及任务执行的方法还包括:确认所述故障部署节点的加电重启过程失败;根据除所述部署节点之外的其它节点中选择可替代的节点;向所述可替代的节点发送数据加载指令,以使所述可替代的节点读取被替换的故障部署节点的当前数据,并控制所述可替代的节点完成配置部署;修改所述被替换故障部署节点的上一级节点的数据目的地址为所述空闲从节点的地址并配置被替换故障节点的下一级节点地址为所述空闲节点或者可中断业务的节点的下一级地址,重启所述故障部署节点正在执行的任务。

在一些实施例之后,S104之后,面向软件定义卫星的神经网络动态重构部署的方法还包括:任务执行完成后,如果有置换节点的情况,需要根据备份迁移表将置换节点回滚至之前的状态。

需要说明的是,传统的任务执行,是地面装置通过星上下传的遥测数据监控各节点的任务执行状态的,由于现有的星上智能化程度并不高,因此当星上出现了故障只能在通知地面装置后由地面装置指示采取相应的措施,例如,这些措施包括在下次任务执行的时候进行人为修复。而与这些技术手段不同的是,本申请的一些实施例在星上加入了监控各节点的状态的过程,具体的,当某节点出现故障时,采取置换的措施,不用地面装置干预,星上即可在一定程度上排除并解决故障,增强了在轨智能化程度,在地面装置运控干预少的情况下,自主完成任务。

下面结合图3示例性阐述本申请实施例的由地面装置和超算平台协助完成的神经网络的星上动态部署及任务执行的方法。

S201,注入数据。

S202,存储注入数据至数据库。

例如,地面装置将部署需求表以及各部署节点所需的可执行应用程序、比特流文件、数据流等通过星地链路注入至星上,星上接收到注入数据后,存储在超算平台的数据库中。

作为一个示例,注入数据和部署需求表的具体格式和内容如下所述。

地面经训练和部署编译后,将部署神经网络所需的星载文件经星地链路注入至超算平台,注入数据类型说明参见表1。

表1注入数据的类型

说明如下:

1)每个可执行应用程序和比特文件有一个统一的16位整型的ID,ID的高8位为所属节点ID,低8位为所属节点内可执行应用程序或比特文件的ID;如注入一个可执行应用程序,ID为0x1003,则该可执行应用程序属于ID=0x10的节点,该应用程序在ID=0x01的节点的内部ID=0x03;

2)数据流有一个32位的整型ID,ID的高16位为对应的可执行应用程序或比特文件ID号,ID的低16位为数据流类型,1代表神经网络权值,2代表神经网络偏置,3代表指令集等.比如,数据流ID=0x01020001,代表ID为0x01的节点,对应软件ID为0x02的神经网络权值;

3)部署需求表:说明神经网络的部署需求,包含信息参见表2。

表2部署需求表

S203,读取部署需求表。

S204,统计所需节点数量。

例如,由超算平台上部署的应用程序读取配置需求表,根据需求表中的各项需求统计部署神经网络所需的节点数目及每个节点的资源需求。

S205,寻找部署节点。

S206,判断节点是否满足需求,如果否则执行S208生成错误信息并通过遥测传至地面,部署结束;如果是,则执行S207。

S207,生成节点ID对应的IP地址,即生成星上部署节点IP地址与部署需求表中节点ID的映射表。

例如,根据需求节点的个数和各节点的资源需求,结合当前运行节点的状态和资源情况,参照以下流程寻找合适的部署节点。首先,检查节点个数。如果需求节点个数超过当前平台可用节点数,则部署失败,生成错误信息;如需求节点个数在可部署范围内,先从可部署的空闲节点中匹配需求资源,如匹配到所有合适节点,则部署成功;否则从可部署的节点中搜索可中断业务的节点,如匹配到可中断业务的节点则将这些节点作为目标部署节点,根据当前情况将被中断业务的节点运行时的数据备份在数据库中,为部署神经网络做好准备。为了保证被中断业务的顺利执行,还需要将被中断的业务迁移至其他资源匹配的可配置节点,并生成第一备份迁移记录表(用于记录被中断业务的属性信息以及中断业务迁移的节点,属性信息包括人物状态加载的应用程序等),或者当其他节点不能运行被中断业务时将被中断业务的特征数据存入数据库并生成第二备份迁移记录表(用于记录被中断业务的属性信息,属性信息包括人物状态加载的应用程序等),其中,所述第一备份迁移记录表和所述第二备份迁移记录表用于记录恢复被中断业务所需的数据。如果空闲节点和可中断节点均无合适节点匹配,则节点查询失败,生成错误部署信息,通过遥测下传至地面。待总体任务结束后,再根据备份或迁移记录表回滚至备份或迁移之前的状态。

需要说明的是,对于被中断业务的处理方式包括如下两种方式:第一种,将被中断业务迁移到其他资源满足条件的节点。比如某节点其可用资源不足以部署神经网络,但可支撑被中断节点的业务量,这个时候可将被中断节点的业务迁移至该节点,同时保证了被中断节点当前的业务不中断进行;第二种,当其他节点不足以支撑被中断业务的继续执行时,可将被中断业务对应的当前的关键重要数据和运行时状态保存至数据库中,中断当前的业务。待神经网络部署和计算任务执行完成后,被中断业务的节点可以通过上述的第一备份迁移记录表和第二备份迁移记录表从数据库中读取存储的关键重要数据并根据中断前的状态恢复执行被中断的业务,使被中断节点恢复至中断前的状态。将中断数据记录在备份迁移记录表中,以保证任务执行后根据不同的情况进行回滚(即恢复被中断业务的节点状态,使其可以继续执行被中断的业务)。采用第一备份迁移记录表和第二备份迁移记录表仅用于说明存储的数据有差异性,并不表征这是两个独立的数据表。

作为一个示例,选择所有部署节点的方法包括:S301,判断所需节点数量是否超过卫星上当前可用节点的数,如果是则执行S306生成部署失败生成错误信息;如果否,则执行S302;S302,匹配可用节点中空闲节点和所需各节点的资源需求;S303,判断是否均匹配到合适的空闲节点,如果是,则找到了所有部署节点,可继续执行S208;如果否则执行S304;S304,匹配可用节点中可中断节点和未匹配到的所需节点的资源需求;S305,判断是否找到合适的可中断节点,如果否则执行S306部署失败生成错误信息;如果是,则执行S307;S307,备份可中断节点运行时数据;S308,找到所有部署节点可继续执行S208。

S208,部署节点从数据库中读取部署数据。

S209,判断所有部署节点是否读取完成,如果否则返回S208继续控制部署节点读取部署数据;如果是,则执行S210。

S210,部署节点加载程序和配置文件。

例如,根据部署需求表、节点ID和IP的映射表,通知每个节点依据ID号从数据库中读取其对应的可执行程序、比特流和数据流等信息。部署节点完成可执行程序、比特流和数据流等信息的读取后,加载可执行程序,配置比特流。

S211,配置节点拓扑结构。

例如,根据部署需求表,配置每个节点对应的上级节点IP和下级节点IP。如此每个节点可处理上级节点的输出数据,完成对应网络层的计算后,将计算结果传输至下级节点。

S212,部署结束。

下面结合图5示例性阐述检测到部署故障节点后的处理过程。

S401,任务暂停。

例如,当检测到部署节点故障时,向故障部署节点发送“结束任务”指令暂停任务。

S402,重启故障节点。

例如,部署应用请求故障部署节点断电重启,接收到该请求后,对故障部署节点加电重启。

S403,判断故障节点是否恢复正常,如果是,则执行S406;如果否,则执行S404;

例如,由部署应用重新发送“任务开始”指令,检测故障部署节点的运行状态。如故障部署节点恢复正常,则故障排除,继续任务模式直至任务结束。

S404,是否有替换节点,如果是,则执行S405,否则执行S409的任务结束。

例如,如故障经过加电重启部署节点无法恢复任务模式,则根据当前所有节点的状态,在剩余可部署的节点中搜索是否有可匹配的空闲节点(根据部署需求表),如搜索失败,则将当前状态打包发送至地面,任务执行失败;如搜索成功,则准备置换节点。

S405,置换可替换节点。例如,读取部署数据,加载应用程序,根据更新ID和IP的映射表,将故障部署节点上一级节点的数据目的IP更新为置换节点IP,配置置换节点下一级IP为故障节点下一级IP,重启任务。

S406,完成加速任务。

S407,是否置换节点,如果是则执行S408,否则执行S409任务结束。

S408,恢复置换节点。例如,任务结束后,置换节点从数据库中读取基础镜像并加载(即加载被中断的业务),读取之前保存的关键数据和状态,恢复至置换之前的状态。

S409,任务结束。

请参考图6,图6示出了本申请实施例提供的面向软件定义卫星的神经网络动态重构部署的装置,应理解,该装置与上述图2方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该装置的具体功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。装置包括至少一个能以软件或固件的形式存储于存储器中或固化在装置的操作系统中的软件功能模块,该神经网络的星上动态部署及任务执行的装置,包括:部署需求表读取模块601,被配置为读取部署需求表,其中,所述部署需求表用于记录部署神经网络所需的节点数量和所需各节点的资源需求;部署节点获取模块602,被配置为根据所需的节点数量和所需各节点的资源需求,从多个节点中选择部署节点;部署模块603,被配置为根据所述部署需求表和所述部署节点完成神经网络部署;监控模块604,被配置为监控所述部署节点的任务执行情况。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。

本申请的一些实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现图2的方法。

如图7所示,本申请的一些实施例提供一种电子设备700,包括存储器710、处理器720以及存储在所述存储器710上并可在所述处理器720上运行的计算机程序,其中,所述处理器720通过总线730从存储器710读取程序并执行所述程序时可实现图2所述的方法。

处理器520可以处理数字信号,可以包括各种计算结构。例如复杂指令集计算机结构、结构精简指令集计算机结构或者一种实行多种指令集组合的结构。在一些示例中,处理器520可以是微处理器。

存储器510可以用于存储由处理器520执行的指令或指令执行过程中相关的数据。这些指令和/或数据可以包括代码,用于实现本申请实施例描述的一个或多个模块的一些功能或者全部功能。本公开实施例的处理器520可以用于执行存储器510中的指令以实现图2中所示的方法。存储器510包括动态随机存取存储器、静态随机存取存储器、闪存、光存储器或其它本领域技术人员所熟知的存储器。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号