CN109815003B - 智能设备间协同计算方法、系统、智能设备和介质 - Google Patents
智能设备间协同计算方法、系统、智能设备和介质 Download PDFInfo
- Publication number
- CN109815003B CN109815003B CN201711166732.8A CN201711166732A CN109815003B CN 109815003 B CN109815003 B CN 109815003B CN 201711166732 A CN201711166732 A CN 201711166732A CN 109815003 B CN109815003 B CN 109815003B
- Authority
- CN
- China
- Prior art keywords
- computing
- target
- processing
- module
- target device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Hardware Redundancy (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种智能设备间协同计算方法、系统、智能设备和介质,智能设备位于同一局域网内,用以解决现有技术中智能设备的空闲资源不能被合理利用的问题。方法包括:作为主设备的智能设备接收包括至少两个计算模块的计算任务;针对每个计算模块,根据预先保存的每个设备的第一空闲资源,确定处理该计算模块的目标设备;根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,依次控制每个目标设备处理其对应的计算模块,并输出计算任务结果。由于在本发明实施例中,主设备确定处理每个计算模块的目标设备,使目标设备对计算模块进行处理,合理的利用了智能设备中的空闲资源,避免了资源的浪费。
Description
技术领域
本发明涉及家庭智能设备技术领域,特别涉及一种智能设备间协同计算方法、系统、智能设备和介质。
背景技术
随着科技的发展,智能设备越来越普及,家庭中出现越来越多的智能设备,比如机顶盒、智能路由器、智能家庭网关、智能音箱等等。这些智能设备一般都各自承担一些固定的独立业务。单个智能设备在承担独立业务时,可能会有一些计算资源被闲置,或者当用户暂时不需要这些智能设备承担其独立业务时,它们的计算资源将大部分被闲置下来。
在现有技术中,智能设备一般禁止安装其他应用程序,空闲的计算资源无法被合理的利用。并且单个智能设备本身的计算资源并不是很多,计算能力并不强大,单个智能设备空闲的计算资源无法支撑复杂的智能计算任务,为了避免资源的浪费,如何利用智能设备中的空闲资源是一件亟待解决的问题。
发明内容
本发明实施例公开了一种智能设备间协同计算方法、系统、智能设备和介质,用以解决现有技术中智能设备的空闲资源不能被合理利用的问题。
为达到上述目的,本发明实施例公开了一种智能设备间协同计算方法,智能设备位于同一局域网内,应用于作为主设备的智能设备,所述方法包括:
接收包括至少两个计算模块的计算任务;
针对每个计算模块,根据预先保存的每个设备的第一空闲资源,确定处理该计算模块的目标设备;
根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,依次控制每个目标设备处理其对应的计算模块,并输出计算任务结果。
进一步地,所述方法还包括:
当接收到从设备发送的携带变化后的空闲资源的更新通知消息时,根据该从设备变化后的空闲资源,对预先保存的该从设备的第一空闲资源进行更新;和/或
当识别到自身的空闲资源发生变化时,根据自身变化后的空闲资源,对预先保存的自身的第一空闲资源进行更新。
进一步地,所述方法还包括:
当接收到第一目标设备发送的处理其对应的第一计算模块异常的通知消息时,控制每个目标设备暂停处理其对应的计算模块;
并根据预先保存的每个设备的第二空闲资源,确定处理所述第一计算模块的第二目标设备;
并根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,依次控制每个目标设备处理其对应的计算模块,并输出计算任务结果。
进一步地,根据预先保存的每个设备的空闲资源,确定处理计算模块的目标设备的过程包括:
针对每个计算模块,根据预先保存的每个设备的空闲资源,以及预设的资源阈值,确定候选设备;在候选设备中选择第一设备,向该第一设备发送加载该计算模块的指令,使被选择的第一设备加载该计算模块对应的计算程序,如果接收到加载成功的通知消息,将被选择的第一设备确定为目标设备,否则,重新在候选设备中选择第二设备,直至确定出目标设备。
进一步地,所述根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,依次控制每个目标设备处理其对应的计算模块,包括:
根据所述至少两个计算模块的顺序,每个目标设备的标识信息,以及每个目标设备在处理其对应的计算模块时采用的端口的标识信息,生成计算链路的配置信息;
将所述计算链路的配置信息发送给每个目标设备,使每个目标设备根据所述计算链路的配置信息依次处理其对应的计算模块。
进一步地,所述将所述计算链路的配置信息发送给每个目标设备,使每个目标设备根据所述计算链路的配置信息依次处理其对应的计算模块包括:
针对每个第三目标设备,根据所述配置信息中,与该第三目标设备相邻的第四目标设备的第一标识信息及第四目标设备采用的端口的第二标识信息,生成针对所述第三目标设备的子配置信息;将所述子配置信息发送给该第三目标设备,使该第三目标设备根据所述子配置信息处理其对应的计算模块。
进一步地,在针对每个第三目标设备,根据所述配置信息中,与该第三目标设备相邻的第四目标设备的第一标识信息及第四目标设备采用的端口的第二标识信息,生成针对所述第三目标设备的子配置信息之前,所述方法还包括:
将替换后的第二目标设备和与第二目标设备相邻的其他目标设备作为第三目标设备,进行后续步骤。
进一步地,当所述主设备为处理计算模块的目标设备时,根据计算链路的信息处理自身对应的计算模块包括:
如果所述配置信息中存在与自身相邻的前一设备,则根据所述配置信息中记录的前一设备的第五标识信息及其端口的第六标识信息,采用自身对应的第一端口,接收该第五标识信息的前一设备通过该第六标识信息的端口发送的第二子计算结果,并根据自身对应的计算模块,对所述第二子计算结果进行计算,确定第一子计算结果;
如果所述配置信息中存在与自身相邻的后一设备,则根据所述配置信息中记录的后一设备的第三标识信息及其端口的第四标识信息,采用自身对应的第二端口,向该第三标识信息的后一设备的该第四标识信息的端口,发送所述第一子计算结果;如果不存在与自身相邻的后一设备,则输出所述第一子计算结果。
进一步地,所述针对每个计算模块,根据预先保存的每个设备的第一空闲资源,确定处理该计算模块的目标设备,包括:
根据所述计算任务包括的所述至少两个计算模块的顺序,由后至前依次针对每个计算模块,根据预先保存的每个设备的第一空闲资源,确定处理该计算模块的目标设备。
进一步地,所述方法还包括:
当接收到计算任务完成的通知消息后,根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,依次控制每个目标设备停止处理其对应的计算模块。
进一步地,接收计算任务完成通知消息包括:
接收数据产生者发送的计算任务完成的通知消息;或
接收数据消费者发送的计算任务完成的通知消息。
本发明实施例公开了一种智能设备间协同计算方法,智能设备位于同一局域网内,应用于作为从设备的智能设备,所述方法包括:
确定自身是否为处理计算任务的第二计算模块的目标设备,其中,所述计算任务包括至少两个计算模块;
如果是,根据主设备的控制,对自身对应的第二计算模块进行处理,并输出对应的计算结果,其中,所述主设备针对每个计算模块,根据预先保存的每个设备的第一空闲资源,确定处理该计算模块的目标设备;根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,控制作为目标设备的从设备进行处理的。
进一步地,所述方法还包括:
识别自身的空闲资源是否发生变化,如果是,则向主设备发送携带变化后的空闲资源的更新通知消息。
进一步地,所述方法还包括:
识别在处理自身对应的第二计算模块时是否异常,如果是,则向主设备发送处理其对应的第二计算模块异常的通知消息;或,
根据主设备的控制,暂停处理其对应的第二计算模块。
进一步地,所述确定自身是否为处理计算任务的第二计算模块的目标设备包括:
接收主设备发送的加载第二计算模块的指令;加载所述第二计算模块对应的计算程序,如果加载成功,则确定自身为处理计算任务的第二计算模块的目标设备,并向主设备发送加载成功的通知消息。
进一步地,所述根据主设备的控制,对自身对应的第二计算模块进行处理包括:
接收主设备发送的计算链路的配置信息,其中所述配置信息中依次记录每个目标设备的标识信息,以及每个目标设备在处理其对应的计算模块时采用的端口的标识信息;
如果所述配置信息中存在与自身相邻的前一设备,则根据所述配置信息中记录的前一设备的第一标识信息及其端口的第二标识信息,采用自身对应的第一端口,接收该第一标识信息的前一设备通过该第二标识信息的端口发送的第二子计算结果,并根据自身对应的第二计算模块对所述第二子计算结果进行计算,确定第一子计算结果;
如果所述配置信息中存在与自身相邻的后一设备,则根据所述配置信息中记录的后一设备的第三标识信息及其端口的第四标识信息,采用自身对应的第二端口,向该第三标识信息的后一设备的该第四标识信息的端口,发送所述第一子计算结果;如果不存在与自身相邻的后一设备,则输出所述第一子计算结果。
本发明实施例公开了一种作为主设备的智能设备,该智能设备与其他智能设备位于同一局域网内,包括:
接收模块,用于接收包括至少两个计算模块的计算任务;
确定模块,用于针对每个计算模块,根据预先保存的每个设备的第一空闲资源,确定处理该计算模块的目标设备;
控制模块,用于根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,依次控制每个目标设备处理其对应的计算模块,并输出计算任务结果。
本发明实施例公开了一种作为从设备的智能设备,该智能设备与其他智能设备位于同一局域网内,包括:
确定模块,用于确定自身是否为处理计算任务的第二计算模块的目标设备,其中,所述计算任务包括至少两个计算模块;
计算处理模块,用于在所述确定模块的确定结果为是时,根据主设备的控制,对自身对应的第二计算模块进行处理;
输出模块,用于并输出对应的计算结果,其中,所述主设备针对每个计算模块,根据预先保存的每个设备的第一空闲资源,确定处理该计算模块的目标设备;根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,控制作为目标设备的从设备进行处理的。
本发明实施例公开了一种作为主设备的智能设备,所述智能设备包括:处理器、存储器和收发机;
所述收发机,用于在所述处理器的控制下,接收包括至少两个计算模块的计算任务;
所述处理器,用于读取所述存储器中的程序,执行下列过程:针对每个计算模块,根据预先保存的每个设备的第一空闲资源,确定处理该计算模块的目标设备;
根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,依次控制每个目标设备处理其对应的计算模块,并输出计算任务结果。
进一步地,所述处理器,还用于当接收到从设备发送的携带变化后的空闲资源的更新通知消息时,根据该从设备变化后的空闲资源,对预先保存的该从设备的第一空闲资源进行更新;和/或当识别到自身的空闲资源发生变化时,根据自身变化后的空闲资源,对预先保存的自身的第一空闲资源进行更新。
进一步地,所述处理器,还用于当接收到第一目标设备发送的处理其对应的第一计算模块异常的通知消息时,控制每个目标设备暂停处理其对应的计算模块;并根据预先保存的每个设备的第二空闲资源,确定处理所述第一计算模块的第二目标设备;并根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,依次控制每个目标设备处理其对应的计算模块,并输出计算任务结果。
进一步地,所述处理器,具体用于针对每个计算模块,根据预先保存的每个设备的空闲资源,以及预设的资源阈值,确定候选设备;在候选设备中选择第一设备,向该第一设备发送加载该计算模块的指令,使被选择的第一设备加载该计算模块对应的计算程序,如果接收到加载成功的通知消息,将被选择的第一设备确定为目标设备,否则,重新在候选设备中选择第二设备,直至确定出目标设备。
进一步地,所述处理器,具体用于根据所述至少两个计算模块的顺序,每个目标设备的标识信息,以及每个目标设备在处理其对应的计算模块时采用的端口的标识信息,生成计算链路的配置信息;将所述计算链路的配置信息发送给每个目标设备,使每个目标设备根据所述计算链路的配置信息依次处理其对应的计算模块。
进一步地,所述处理器,具体用于针对每个第三目标设备,根据所述配置信息中,与该第三目标设备相邻的第四目标设备的第一标识信息及第四目标设备采用的端口的第二标识信息,生成针对所述第三目标设备的子配置信息;将所述子配置信息发送给该第三目标设备,使该第三目标设备根据所述子配置信息处理其对应的计算模块。
进一步地,所述处理器,具体用于在针对每个第三目标设备,根据所述配置信息中,与该第三目标设备相邻的第四目标设备的第一标识信息及第四目标设备采用的端口的第二标识信息,生成针对所述第三目标设备的子配置信息之前,将替换后的第二目标设备和与第二目标设备相邻的其他目标设备作为第三目标设备,进行后续步骤。
进一步地,当所述主设备为处理计算模块的目标设备时,所述处理器,具体用于如果所述配置信息中存在与自身相邻的前一设备,则根据所述配置信息中记录的前一设备的第五标识信息及其端口的第六标识信息,采用自身对应的第一端口,接收该第五标识信息的前一设备通过该第六标识信息的端口发送的第二子计算结果,并根据自身对应的计算模块,对所述第二子计算结果进行计算,确定第一子计算结果;
如果所述配置信息中存在与自身相邻的后一设备,则根据所述配置信息中记录的后一设备的第三标识信息及其端口的第四标识信息,采用自身对应的第二端口,向该第三标识信息的后一设备的该第四标识信息的端口,发送所述第一子计算结果;如果不存在与自身相邻的后一设备,则输出所述第一子计算结果。
进一步地,所述处理器,具体用于根据所述计算任务的所述至少两个计算模块的顺序,由后至前依次针对每个计算模块,根据预先保存的每个设备的第一空闲资源,确定处理该计算模块的目标设备。
进一步地,所述处理器,还用于当接收到计算任务完成的通知消息后,根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,依次控制每个目标设备停止处理其对应的计算模块。
进一步地,所述处理器,具体用于接收数据产生者发送的计算任务完成的通知消息;或接收数据消费者发送的计算任务完成的通知消息。
本发明实施例公开了一种作为从设备的智能设备,所述智能设备包括:处理器、存储器;
所述处理器,用于读取所述存储器中的程序,执行下列过程:确定自身是否为处理计算任务的第二计算模块的目标设备,其中,所述计算任务包括至少两个计算模块;如果是,根据主设备的控制,对自身对应的第二计算模块进行处理,并输出对应的计算结果,其中,所述主设备针对每个计算模块,根据预先保存的每个设备的第一空闲资源,确定处理该计算模块的目标设备;根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,控制作为目标设备的从设备进行处理的。
进一步地,所述处理器,还用于识别自身的空闲资源是否发生变化,如果是,则向主设备发送携带变化后的空闲资源的更新通知消息。
进一步地,所述处理器,还用于识别在处理自身对应的第二计算模块时是否异常,如果是,则向主设备发送处理其对应的第二计算模块异常的通知消息;或,根据主设备的控制,暂停处理其对应的第二计算模块。
进一步地,所述智能设备还包括:收发机;
所述收发机,用于在所述处理器的控制下,接收主设备发送的加载第二计算模块的指令;
所述处理器,还用于加载所述第二计算模块对应的计算程序,如果加载成功,则确定自身为处理计算任务的第二计算模块的目标设备;
所述收发机,还用于向主设备发送加载成功的通知消息。
进一步地,所述处理器,具体用于接收主设备发送的计算链路的配置信息,其中所述配置信息中依次记录每个目标设备的标识信息,以及每个目标设备在处理其对应的计算模块时采用的端口的标识信息;
如果所述配置信息中存在与自身相邻的前一设备,则根据所述配置信息中记录的前一设备的第一标识信息及其端口的第二标识信息,采用自身对应的第一端口,接收该第一标识信息的前一设备通过该第二标识信息的端口发送的第二子计算结果,并根据自身对应的第二计算模块对所述第二子计算结果进行计算,确定第一子计算结果;
如果所述配置信息中存在与自身相邻的后一设备,则根据所述配置信息中记录的后一设备的第三标识信息及其端口的第四标识信息,采用自身对应的第二端口,向该第三标识信息的后一设备的该第四标识信息的端口,发送所述第一子计算结果;如果不存在与自身相邻的后一设备,则输出所述第一子计算结果。
本发明实施例公开了一种智能设备间协同计算系统,包括上述任一项所述的作为主设备的智能设备和上述任一项所述的作为从设备的智能设备。
本发明实施例公开了一种智能设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器中存储有计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行上述任一项应用于作为主设备的智能设备的方法的步骤。
本发明实施例公开了一种智能设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器中存储有计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行上述任一项应用于作为从设备的智能设备的方法的步骤。
本发明实施例公开了一种智能设备,包括:处理器、存储器和存储在所述存储器并可在所述处理器上运行的计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行应用于作为主设备的智能设备的方法中的任一项所述方法的步骤;或者使得所述处理器执行应用于作为从设备的智能设备的方法中的任一项所述方法的步骤。
本发明实施例公开了一种计算机可读存储介质,其存储有可由智能设备执行的计算机程序,当所述程序在所述智能设备上运行时,使得所述智能设备执行上述任一项应用于作为主设备的智能设备的方法的步骤。
本发明实施例公开了一种计算机可读存储介质,其存储有可由智能设备执行的计算机程序,当所述程序在所述智能设备上运行时,使得所述智能设备执行上述任一项应用于作为从设备的智能设备的方法的步骤。
本发明实施例公开了一种智能设备间协同计算方法、系统、智能设备和介质,智能设备位于同一局域网内,所述方法包括:作为主设备的智能设备接收包括至少两个计算模块的计算任务;针对每个计算模块,根据预先保存的每个设备的第一空闲资源,确定处理该计算模块的目标设备;根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,依次控制每个目标设备处理其对应的计算模块,并输出计算任务结果。由于在本发明实施例中,主设备针对计算任务包括的至少两个计算模块,确定处理每个计算模块的目标设备,并控制目标设备对计算模块进行处理,目标设备间协同计算,合理的利用了智能设备中的空闲资源,避免了资源的浪费。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1提供的一种智能设备间协同计算过程示意图;
图2为本发明实施例8提供的一种智能设备间协同计算过程示意图;
图3为本发明实施例提供的一种智能设备间协同计算示意图;
图4为本发明实施例9提供的一种智能设备间协同计算过程示意图;
图5为本发明实施例14提供的一种智能设备结构图;
图6为本发明实施例15提供的一种智能设备结构图;
图7为本发明实施例16提供的一种作为主设备的智能设备;
图8为本发明实施例17提供的一种作为从设备的智能设备;
图9为本发明实施例18提供的一种智能设备间协同计算系统结构图;
图10为本发明实施例19提供的一种智能设备;
图11为本发明实施例20提供的一种智能设备。
具体实施方式
为了合理的利用智能设备中的空闲资源,本发明实施例提供了一种智能设备间协同计算方法、系统、智能设备和介质。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1:
图1为本发明实施例1提供的一种智能设备间协同计算过程示意图,该过程包括以下步骤:
S101:接收包括至少两个计算模块的计算任务。
本发明实施例提供的智能设备间协同计算方法应用于作为主设备的智能设备,多个智能设备位于同一局域网内,在同一局域网内,多个智能设备中可以有一个智能设备作为主设备,其它的智能设备作为从设备,主设备和从设备协同对计算任务进行处理。主设备负责对进行计算的设备的管理。多个智能设备中哪个作为主设备,哪个作为从设备,可以是用户预先设置的。
针对一个计算任务,用户可以将其拆分为至少两个计算模块,该至少两个计算模块的顺序是确定的,也就是说在处理该计算任务时,先处理哪个计算模块,再处理哪个计算模块是确定的,该计算任务可以包括至少两个计算模块,每个计算模块也可以称为每个子任务。
S102:针对每个计算模块,根据预先保存的每个设备的第一空闲资源,确定处理该计算模块的目标设备。
主设备在接收到包括至少两个计算模块的计算任务后,需要为每个计算模块寻找处理该计算模块的目标设备,使多个目标设备间协同对该计算任务进行处理。主设备可以作为目标设备。
主设备中保存有当前每个设备的空闲资源,称为第一空闲资源,包含自身的第一空闲资源和每个从设备的第一空闲资源,主设备在确定处理每个计算模块的目标设备时,可以是针对每个计算模块,根据预先保存的每个设备的第一空闲资源,确定处理该计算模块的目标设备。具体可以是根据每个设备的第一空闲资源,按第一空闲资源由多至少进行排序,将排序靠前的设备作为目标设备,并向该目标设备发送其对应的计算模块的标识信息,使该目标设备后续知道自身要对哪个计算模块进行处理。
在确定处理每个计算模块的目标设备时,可以不考虑计算模块的顺序进行确定,例如可以是同时确定处理每个计算模块的目标设备,也可以是先确定处理第一个计算模块的目标设备,再确定处理第三个计算模块的目标设备,再确定处理第二个计算模块的目标设备,……;当然还可以是按计算任务包括的至少两个计算模块的顺序,由前至后依次确定处理每个计算模块的目标设备。
每个设备中均预先保存有处理每个计算模块时对应的计算程序,如果该设备的空闲资源不是很多,该设备可能只能处理一个计算模块,如果该设备有足够的空闲资源,该设备可以处理计算任务的中的多个计算模块,甚至全部的计算模块。所以,一个目标设备可以处理一个计算模块,或多个计算模块。
S103:根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,依次控制每个目标设备处理其对应的计算模块,并输出计算任务结果。
主设备在确定了处理每个计算模块的目标设备后,则可以控制每个目标设备对各自对应的计算模块进行处理,即控制目标设备加载并启动该计算模块对应的计算程序。因为计算任务包括的至少两个计算模块的顺序是确定的,则主设备需要根据该至少两个计算模块的顺序,由前至后依次控制每个目标设备对各自对应的计算模块进行处理,处理最后一个计算模块的目标设备在处理完成后,可以输出计算任务的结果,具体可以是处理最后一个计算模块的目标设备在处理完成后将计算结果发送给主设备,主设备进行显示,也可以是发送给指定的某个设备,使指定的该设备进行显示。
在根据计算任务包括的至少两个计算模块的顺序,由前至后依次控制每个目标设备处理其对应的计算模块时,可以是主设备根据至少两个计算模块的顺序,先控制处理第一个计算模块的目标设备处理其对应的第一个计算模块,得到第一个计算子结果;主设备将该第一个计算子结果发送给处理第二个计算模块的目标设备,使该目标设备以第一个计算子结果作为输入数据,进行计算,得到第二个计算子结果;主设备再将第二个计算子结果发送给处理第三个计算模块的目标设备,……。每个目标设备在计算完成后,可将计算子结果发送给该主设备,主设备再将计算子结果发送给下一目标设备,使下一目标设备将上一目标设备的计算子结果作为输入数据进行计算,直至处理最后一个计算模块的目标设备输出计算结果。
由于在本发明实施例中,主设备针对计算任务包括的至少两个计算模块,确定处理每个计算模块的目标设备,并控制目标设备对计算模块进行处理,目标设备间协同计算,合理的利用了智能设备中的空闲资源,避免了资源的浪费。
实施例2:
为了使主设备后续更加准确地确定处理计算模块的目标设备,在上述实施例的基础上,在本发明实施例中,所述方法还包括:
当接收到从设备发送的携带变化后的空闲资源的更新通知消息时,根据该从设备变化后的空闲资源,对预先保存的该从设备的第一空闲资源进行更新;和/或
当识别到自身的空闲资源发生变化时,根据自身变化后的空闲资源,对预先保存的自身的第一空闲资源进行更新。
在本发明实施例中,主设备中保存有当前每个设备的空闲资源,包括主设备的和从设备的空闲资源。因此当主设备在确定存在空闲资源发生变化的设备时,可以根据变化后的空闲资源对自身保存的该空闲资源发生变化的设备的第一空闲资源进行更新。
空闲资源发生变化的设备可以是从设备,也可以是主设备自身。从设备可以通过向主设备上报该从设备的空闲资源,使主设备知晓该从设备的空闲资源发生了变化。主设备可以实时检测自身的空闲资源是否发生变化。
设备确定自身的空闲资源是否发生变化的过程属于现有技术,在本发明实施例中对该过程不进行赘述。
从设备在识别到自身的空闲资源发生变化时,可以向主设备发送更新通知消息,主设备在接收到从设备发送的携带变化后的空闲资源的更新通知消息后,根据该从设备变化后的空闲资源,对当前保存的该从设备的第一空闲资源进行更新,即将该从设备的第一空闲资源更新为更新通知消息中携带的变化后的空闲资源,更新后的空闲资源可以称为第二空闲资源。
当主设备识别自身的空闲资源发生变化时,可以根据自身变化后的空闲资源,对保存的自身的第一空闲资源进行更新,即将保存的自身的第一空闲资源更新为自身变化后的空闲资源,更新后的空闲资源可以称为第二空闲资源。
实施例3:
在处理计算任务的过程中,目标设备可能会出现异常,为了可以及时解决异常情况,在上述各实施例的基础上,在本发明实施例中,所述方法还包括:
当接收到第一目标设备发送的处理其对应的第一计算模块异常的通知消息时,控制每个目标设备暂停处理其对应的计算模块;
并根据预先保存的每个设备的第二空闲资源,确定处理所述第一计算模块的第二目标设备;
并根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,依次控制每个目标设备处理其对应的计算模块,并输出计算任务结果。
在本发明实施例中,每个目标设备均可识别自身在处理对应的计算模块时是否出现异常情况,如果存在,则可以向主设备发送处理异常的通知消息。
处理异常可以是指数据积压或计算停滞,相信本领域技术人员可以很清楚异常的概念,在此不再进行详细赘述。
将处理计算模块异常的目标设备称为第一目标设备,将该第一目标设备处理的计算模块称为第一计算模块。
主设备在接收到第一目标设备发送的该第一目标设备在处理其对应的第一计算模块异常的通知消息后,为了保证计算任务的正常处理,可以重新确定处理第一计算模块的目标设备,将重新确定的处理第一计算模块的目标设备称为第二目标设备。
在进行计算时,数据可能会一直产生,如果一个目标设备出现异常情况,其它目标设备继续处理,可能会导致计算结果不准确,为了避免计算结果不准确,主设备在接收到第一目标设备处理异常的通知消息时,可以控制每个目标设备暂停处理其对应的计算模块,具体的可以是向每个目标设备发送暂停处理的通知消息,目标设备在接收到暂停处理的通知消息后,暂停处理其对应的计算模块。
主设备中保存有每个设备的空闲资源,因为有些设备作为目标设备后,需要处理计算模块,其空闲资源会发生变化,或者因为其他的原因,如设备运行自身的独立业务,设备中原本的空闲资源可能也会发生变化,则主设备需要对当前保存的每个设备的第一空闲资源实时更新,该主设备更新后的每个设备的空闲资源可以称为第二空闲资源。
主设备可以根据预先保存的每个设备的第二空闲资源,确定处理该第一计算模块的第二目标设备。
在确定第二目标设备时,可以是将第二空闲资源最多的设备作为第二目标设备。
当确定了处理该第一计算模块的第二目标设备后,可以再次根据计算任务包括的至少两个计算模块的顺序及确定的处理计算模块的目标设备,依次控制每个目标设备处理其对应的计算模块,并输出计算任务结果。在整个控制处理的过程中,处理第一计算模块的目标设备由第一目标设备更新为第二目标设备。控制处理的具体过程可以与实施例1中的过程类似,在此不再进行赘述。
如果主设备自身为目标设备,自身在处理计算模块时,出现异常情况,也需重新确定可以处理自身对应的计算模块的另一目标设备,具体过程与上述类似,在次不再进行赘述。
实施例4:
为了更加准确地确定处理计算模块的目标设备,在上述各实施例的基础上,在本发明实施例中,根据预先保存的每个设备的空闲资源,确定处理计算模块的目标设备的过程包括:
针对每个计算模块,根据预先保存的每个设备的空闲资源,以及预设的资源阈值,确定候选设备;
在候选设备中选择第一设备,向该第一设备发送加载该计算模块的指令,使被选择的第一设备加载该计算模块对应的计算程序,如果接收到加载成功的通知消息,将被选择的第一设备确定为目标设备,否则,重新在候选设备中选择第二设备,直至确定出目标设备。
在本发明实施例中,设备在存在较多的空闲资源时,可能具有处理计算模块的能力,在空闲资源较少时,可能不具有处理计算模块的能力,主设备可以先筛选出一部分理论上具有处理计算模块的能力的候选设备,然后在候选设备中确定目标设备。
主设备中可以预先保存有资源阈值,在确定处理计算模块的目标设备时,可以是先根据该资源阈值,筛选出一部分设备,即根据预先保存的每个设备的空闲资源,以及预设的资源阈值,确定候选设备,具体可以是将空闲资源大于该资源阈值的设备作为候选设备。
当确定出候选设备后,可以在候选设备中任意选择一个设备,称为第一设备,向该第一设备发送加载计算模块的指令。
被选择的第一设备在接收到主设备发送的加载计算模块的指令后,加载该计算模块对应的计算程序,并在加载成功后,向主设备发送加载成功的通知消息。
主设备识别是否接收到该第一设备发送的加载成功的通知消息,如果接收到加载成功的通知消息,则说明该第一设备具有处理该计算模块的能力,则可以将该被选择第一设备确定为处理该计算模块的目标设备。
如果在设定的时间长度内没有接收到第一设备发送的加载成功的通知消息,或接收到加载失败的通知信息,则说明该第一设备不具有处理该计算模块的能力,则可以重新在候选设备中选择一个设备,称为第二设备,向该第二设备发送加载该计算模块的加载指令,并识别是否接收到该第二设备发送的加载成功的通知消息。持续执行上述的确定目标设备的过程,直至确定出目标设备。
每个设备中的计算程序可以是根据统一的计算封装模板,被封装为独立的计算程序保存于该设备中的,并且可以构建一个轻量级的计算容器,为该计算程序在异构的家庭智能设备中提供统一的动态加载及运行环境。
实施例5:
为了更加简单、准确地使每个目标设备处理其对应的计算模块,在上述实施例的基础上,在本发明实施例中,所述根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,依次控制每个目标设备处理其对应的计算模块,包括:
根据所述至少两个计算模块的顺序,每个目标设备的标识信息,以及每个目标设备在处理其对应的计算模块时采用的端口的标识信息,生成计算链路的配置信息;
将所述计算链路的配置信息发送给每个目标设备,使每个目标设备根据所述计算链路的配置信息依次处理其对应的计算模块。
在本发明实施中,主设备在确定出处理每个计算模块的目标设备后,可以根据每个目标设备以及计算模块的顺序,生成计算链路的配置信息,将计算链路的配置信息发送给每个目标设备,使每个目标设备根据该计算链路的配置信息依次处理其对应的计算模块。
为了保证目标设备在处理计算模块时,与目标设备自身的独立任务不冲突,在确定出目标设备后,还需要确定该目标设备在处理计算模块时采用的端口是哪个。具体可以是,设备即使空闲资源非常多,可以处理的计算模块的数量一般也是有限的,则针对计算模块保存的计算程序的数量也是有限的,在每个设备中,每段计算程序都有其对应的输入端口和输出端口,当确定了该目标设备处理哪个计算模块后,也就是确定了对应的端口;可以是主设备在确定了处理计算模块的目标设备后,目标设备向主设备上报自身当前空闲的输入端口和输出端口,主设备自动选择并保存,也可以是,目标设备向主设备上报自身当前空闲的输入端口和输出端口,主设备进行显示,根据用户的选择,确定每个目标设备对应的端口。
设备的标识信息可以是设备的IP地址。端口的标识信息可以是端口1,端口2等。
主设备可以根据至少两个计算模块的顺序,每个目标设备的标识信息,以及每个目标设备在处理其对应的计算模块时采用的端口的标识信息,生成计算链路的配置信息,并将该计算链路的配置信息发送给每个目标设备,使每个目标设备根据该计算链路的配置信息依次处理其对应的计算模块。具体可以是目标设备在该配置信息中识别与自身相邻的目标设备的标识信息,以及相邻的目标设备采用的端口的标识信息,根据与自身相邻的目标设备及该相邻的目标设备对应的端口,进行数据的输入与输出。
如果接收到第一目标设备发送的处理其对应的第一计算模块异常的通知消息,则需要确定处理第一计算模块的第二目标设备。在确定出第二目标设备后,主设备可以将根据第二目标设备的标识信息以及第二目标设备在处理第一计算模块时采用的端口的标识信息,对配置信息进行更新,并将更新后的配置信息发送给每个目标设备。
为了减少目标设备的工作量,在本发明实施例中,所述将所述计算链路的配置信息发送给每个目标设备,使每个目标设备根据所述计算链路的配置信息依次处理其对应的计算模块包括:
针对每个第三目标设备,根据所述配置信息中,与该第三目标设备相邻的第四目标设备的第一标识信息及第四目标设备采用的端口的第二标识信息,生成针对所述第三目标设备的子配置信息;将所述子配置信息发送给该第三目标设备,使该第三目标设备根据所述子配置信息处理其对应的计算模块。
在本发明实施例中,主设备在向目标设备发送配置信息时,可以是发送配置信息,使目标设备进行自身的子配置信息的识别。为了减少目标设备的工作量,主设备也可以仅发送针对每个目标设备的子配置信息。
第三目标设备可以是任意一个目标设备。在确定第三目标设备的子配置信息时,具体的可以是,根据配置信息中,与该第三目标设备相邻的第四目标设备的第一标识信息及第四目标设备在处理对应的计算模块时采用的端口的第二标识信息,生成针对所述第三目标设备的子配置信息。与第三目标设备相邻的第四目标设备可能是一个,也可能是两个。
第三目标设备与第四目标设备相邻,可以理解为,第三目标设备处理的计算模块与第四目标设备处理的计算模块相邻。
如果接收到第一目标设备发送的处理其对应的第一计算模块异常的通知消息,则需要确定处理第一计算模块的第二目标设备。在确定出第二目标设备后,可以先对配置信息进行更新,并且无需向每个目标设备发送配置信息,只向该第二目标设备和与该第二目标设备相邻的其他目标设备发送其对应的子配置信息即可。
因此在本发明实施例中,在针对每个第三目标设备,根据所述配置信息中,与该第三目标设备相邻的第四目标设备的第一标识信息及第四目标设备采用的端口的第二标识信息,生成针对所述第三目标设备的子配置信息之前,所述方法还包括:
将替换后的第二目标设备和与第二目标设备相邻的其他目标设备作为第三目标设备,进行后续步骤。
主设备可以判断第三目标设备是否为替换后的第二目标设备,如果是,则生成针对第三目标设备的子配置信息,并发送,主设备可以判断第三目标设备是否为在配置信息中与替换后的第二目标设备相邻的其他目标设备,如果是,则生成针对第三目标设备的子配置信息,并发送。
实施例6:
在上述各实施例的基础上,在本发明实施例中,当所述主设备为处理计算模块的目标设备时,根据计算链路的信息处理自身对应的计算模块包括:
如果所述配置信息中存在与自身相邻的前一设备,则根据所述配置信息中记录的前一设备的第五标识信息及其端口的第六标识信息,采用自身对应的第一端口,接收该第五标识信息的前一设备通过该第六标识信息的端口发送的第二子计算结果,并根据自身对应的计算模块,对所述第二子计算结果进行计算,确定第一子计算结果;
如果所述配置信息中存在与自身相邻的后一设备,则根据所述配置信息中记录的后一设备的第三标识信息及其端口的第四标识信息,采用自身对应的第二端口,向该第三标识信息的后一设备的该第四标识信息的端口,发送所述第一子计算结果;如果不存在与自身相邻的后一设备,则输出所述第一子计算结果。
在本发明实施例中,如图3所示,每个设备中均可以设置有计算协作管理引擎,检测自身的设备对计算模块的处理状态,主设备中设置的计算协作管理引擎,还可以根据每个设备的空闲资源,确定处理计算模块的目标设备,主设备中还设置有计算链路配置管理器,可以根据目标设备的标识信息和目标设备在处理计算模块时采用的输入端口和输出端口,确定计算链路的配置信息,并将计算链路的配置信息发送给每个目标设备,主设备中的计算协作管理引擎可以进行智能设备间协同计算管理。根据计算任务包括的至少两个计算模块的顺序,数据产生者将产生的数据,通过第一个计算模块对应的目标设备的输入端口,发送给处理第一个计算模块的第一个目标设备,第一目标设备在处理完自身的第一个计算模块后,得出第一个子计算结果,将第一个子计算结果通过自身的输出端口,发送给配置信息中针对自身来说的下一目标设备的输入端口。
下一目标设备作为当前的目标设备,根据该第一个子计算结果进行计算,得到第二个子计算结果,再发送针对自身来说的下一个目标设备,直至处理最后一个计算模块的目标设备在计算完成后,将最后一个子计算结果作为计算任务的计算结果,发送给数据消费者对应的设备。每个目标设备中构建有轻量级的计算容器,为目标设备处理计算模块时采用的计算程序提供统一的动态加载及运行环境。
在本发明实施例中,主设备作为目标设备,主设备确定配置信息中是否记录有与自身相邻的前一设备,如果是,则识别配置信息中记录的该前一设备的第五标识信息,及前一设备在处理前一计算模块时采用的端口的第六标识信息,第六标识信息标识的端口可以是前一设备的输出端口。
主设备采用自身在处理计算模块时采用的第一端口,即输入端口,接收前一设备的输出端口发送的第二子计算结果,前一设备为第五标识信息标识的设备,前一设备的端口为第六标识信息标识的输出端口。
主设备在接收到第二子计算结果后,根据自身对应的计算模块,对第二子计算结果进行计算,确定第一子计算结果。
主设备如果确定配置信息中不存在与自身相邻的前一设备,则自身处理的计算模块为计算任务包括的至少两个计算模块中的第一个计算模块,则自身接收数据产生者对应的设备发送的数据,进行计算,得出第一子计算结果。
主设备在确定出第一子计算结果后,可以确定配置信息中是否记录有与自身相邻的后一设备,如果存在与自身相邻的后一设备,则识别该后一设备的第三标识信息,以及后一设备在处理后一计算模块时采用的端口的第四标识信息,第四标识信息标识的端口可以是后一设备的输入端口。
主设备采用自身对应的第二端口,即输出端口,向该后一设备的端口发送第一子计算结果,后一设备为第三标识信息标识的设备,后一设备的端口为第四标识信息标识的输入端口。
如果主设备确定配置信息中不存在与自身相邻的后一设备,则可以确定自身处理的计算模块为计算任务包括的至少两个计算模块中的最后一个计算模块,主设备可以将自身计算得到的第一子计算结果输出,具体可以是输出给数据消息者对应的设备,使其进行显示。
实施例7:
为了准确地确定处理计算模块的目标设备,在上述各实施例的基础上,在本发明实施例中,所述针对每个计算模块,根据预先保存的每个设备的第一空闲资源,确定处理该计算模块的目标设备,包括:
根据所述计算任务包括的所述至少两个计算模块的顺序,由后至前依次针对每个计算模块,根据预先保存的每个设备的第一空闲资源,确定处理该计算模块的目标设备。
在本发明实施例中,主设备在确定处理每个计算模块的目标设备时,可以不考虑计算模块的顺序进行确定,可以是同时确定的,可以是按计算任务包括的至少两个计算模块的顺序,由前至后依次确定处理每个计算模块的目标设备。
为了保证有数据输入时,能够及时输出计算结果,避免顺序靠前的计算模块已经被处理,而顺序靠后的计算模块还未确定出处理其的目标设备,而导致数据丢失,主设备在确定处理每个计算模块的目标设备时,可以是根据至少两个计算模块的顺序,由后至前依次确定每个计算模块的目标设备。
实施例8:
为了合理地利用空闲资源,在上述各实施例的基础上,在本发明实施例中,所述方法还包括:
当接收到计算任务完成的通知消息后,根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,依次控制每个目标设备停止处理其对应的计算模块。
主设备在识别到计算任务完成后,可以控制每个目标设备停止处理器对应的计算模块,在进行控制时,可以是向每个目标设备发送停止处理的通知消息,使目标设备停止处理自身对应的计算模块。
在控制目标设备停止处理时,可以是同时控制,可以是根据计算模块的顺序由后至前依次控制,为了避免数据的丢失,在控制时,可以是根据计算任务包括的至少两个计算模块的顺序及确定的处理计算模块的目标设备,由前至后依次控制每个目标设备停止处理其对应的计算模块。
数据产生者为计算任务提供原始输入数据,当数据产生者不再产生数据时,可以认为计算任务完成;数据产生者可以是一个传感器,当传感器不再采集数据时,可以认为计算任务完成,传感器可以向主设备发送不再采集数据的通知消息。
数据消费者对计算任务的计算结果进行显示,当数据消费者不再显示数据时,可以认为计算任务完成,数据消费者可以是一个APP,当该APP被关闭时,不再显示数据,该APP可以向主设备发送不再显示数据的通知消息。
主设备在识别到计算任务完成时,可以是接收到计算任务完成通知消息。
主设备接收计算任务完成通知消息可以包括:
接收数据产生者发送的计算任务完成的通知消息;或
接收数据消费者发送的计算任务完成的通知消息。
图2为本发明实施例提供的一种智能设备间协同计算过程示意图,所述过程包括以下步骤:
S201:接收包括至少两个计算模块的计算任务。
S202:针对每个计算模块,根据预先保存的每个设备的第一空闲资源,确定处理该计算模块的目标设备。
S203:根据所述至少两个计算模块的顺序,每个目标设备的标识信息,以及每个目标设备在处理其对应的计算模块时采用的端口的标识信息,生成计算链路的配置信息。
S204:针对每个第三目标设备,根据所述配置信息中,与该第三目标设备相邻的第四目标设备的第一标识信息及第四目标设备采用的端口的第二标识信息,生成所述第三目标设备对应的子配置信息;将所述子配置信息发送给该第三目标设备,使该第三目标设备根据所述子配置信息处理其对应的计算模块。
S205:当接收到从设备发送的携带变化后的空闲资源的更新通知消息时,根据该从设备变化后的空闲资源,对预先保存的该从设备的第一空闲资源进行更新。
S206:当接收到第一目标设备发送的处理其对应的第一计算模块异常的通知消息时,控制每个目标设备暂停处理其对应的计算模块。
S207:根据预先保存的每个设备的第二空闲资源,确定处理所述第一计算模块的第二目标设备。
S208:根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,依次控制每个目标设备处理其对应的计算模块,并输出计算任务结果。
S209:当接收到计算任务完成的通知消息后,根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,依次控制每个目标设备停止处理其对应的计算模块。
实施例9:
图4为本发明实施例提供的一种智能设备间协同计算过程示意图,所述过程包括以下步骤:
S401:确定自身是否为处理计算任务的第二计算模块的目标设备,其中,所述计算任务包括至少两个计算模块,如果是,则进行S402。
S402:根据主设备的控制,对自身对应的第二计算模块进行处理,并输出对应的计算结果,其中,所述主设备针对每个计算模块,根据预先保存的每个设备的第一空闲资源,确定处理该计算模块的目标设备;根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,控制作为目标设备的从设备进行处理的。
本发明实施例提供的智能设备间协同计算方法应用于作为从设备的智能设备。
在本发明实施例中,从设备可以确定自身是否为目标设备,以及当为目标设备时,处理的计算模块是哪个,将该从设备处理的计算模块称为第二计算模块,从设备在自身是否为处理计算任务的第二计算模块的目标设备时,具体可以是判断是否接收到主设备发送的携带第二计算模块的标识信息的消息,如果是,则确定自身为处理计算任务的第二计算模块的目标设备。
主设备在确定了处理每个计算模块的目标设备后,则可以控制每个目标设备对各自对应的计算模块进行处理,因为计算任务包括的至少两个计算模块的顺序是确定的,哪个设备处理哪个计算模块也是确定的,则主设备需要根据该至少两个计算模块的顺序,由前至后依次控制每个目标设备对各自对应的计算模块进行处理。
该从设备根据主设备的控制对自身对应的第二计算模块进行处理,并输出对应的计算结果,该实施例中的第二计算模块是指该从设备处理的计算模块。该从设备在对自身的第二计算模块进行处理后,输出对应的计算结果。
由于在本发明实施例中,主设备针对计算任务包括的至少两个计算模块,确定处理每个计算模块的目标设备,并控制目标设备对计算模块进行处理,目标设备间协同计算,合理的利用了智能设备中的空闲资源,避免了资源的浪费。
实施例10:
为了使主设备后续更加准确地确定处理计算模块的目标设备,在上述实施例9的基础上,在本发明实施例中,所述方法还包括:
识别自身的空闲资源是否发生变化,如果是,则向主设备发送携带变化后的空闲资源的更新通知消息。
在本发明实施例中,从设备可以识别自身的空闲资源是否发生变化,如果发生变化,则可以向主设备上报变化后的空闲资源,具体可以是向主设备发送携带变化后的空闲资源的第一通知消息,使主设备根据该从设备变化后的空闲资源对预先保存的该从设备的第一空闲资源进行更新。
实施例11:
在处理计算任务的过程中,目标设备可能会出现异常,为了可以及时解决异常情况,在上述各实施例的基础上,在本发明实施例中,所述方法还包括:
识别在处理自身对应的第二计算模块时是否异常,如果是,则向主设备发送处理其对应的第二计算模块异常的通知消息;或,
根据主设备的控制,暂停处理其对应的第二计算模块。
在本发明实施例中,每个目标设备均可识别自身在处理对应的计算模块时是否出现异常情况,如果存在,则可以向主设备发送处理异常的通知消息。
处理异常可以是指数据积压或计算停滞,相信本领域技术人员可以很清楚异常的概念,在此不再进行详细赘述。
当出现异常的情况的目标设备非该从设备时,主设备可以控制每个目标设备暂停处理其对应的计算模块,则该从设备根据主设备的控制,暂停处理其对应的第二计算模块。
实施例12:
为了更加准确地确定处理计算模块的目标设备,在上述各实施例的基础上,在本发明实施例中,所述确定自身是否为处理计算任务的第二计算模块的目标设备包括:
接收主设备发送的加载第二计算模块的指令;加载所述第二计算模块对应的计算程序,如果加载成功,则确定自身为处理计算任务的第二计算模块的目标设备,并向主设备发送加载成功的通知消息。
主设备可以向某个设备发送加载计算模块的指令,确定该设备是否可以处理该计算模块。
为了更加准确的确定自身是否为处理第二计算模块的目标设备,从设备还可以接收主设备发送的加载第二计算模块的指令,并确定是否可以成功加载该第二计算模块的计算程序,如果加载成功,则确定自身为处理计算任务的第二计算模块的目标设备,并向主设备发送加载成功的通知消息,使主设备将自身确定为处理计算模块的目标设备;如果未能加载成功,则定自身非处理计算任务的第二计算模块的目标设备,可以不向主设备发送通知消息或向主设备发送加载失败的通知消息。
实施例13:
为了更加简单、准确地使每个目标设备处理其对应的计算模块,在上述实施例的基础上,在本发明实施例中,所述根据主设备的控制,对自身对应的第二计算模块进行处理包括:
接收主设备发送的计算链路的配置信息,其中所述配置信息中依次记录每个目标设备的标识信息,以及每个目标设备在处理其对应的计算模块时采用的端口的标识信息;
如果所述配置信息中存在与自身相邻的前一设备,则根据所述配置信息中记录的前一设备的第一标识信息及其端口的第二标识信息,采用自身对应的第一端口,接收该第一标识信息的前一设备通过该第二标识信息的端口发送的第二子计算结果,并根据自身对应的第二计算模块对所述第二子计算结果进行计算,确定第一子计算结果;
如果所述配置信息中存在与自身相邻的后一设备,则根据所述配置信息中记录的后一设备的第三标识信息及其端口的第四标识信息,采用自身对应的第二端口,向该第三标识信息的后一设备的该第四标识信息的端口,发送所述第一子计算结果;如果不存在与自身相邻的后一设备,则输出所述第一子计算结果。
在本发明实施例中,从设备作为目标设备,接收主设备发送的计算链路的配置信息,配置信息中依次记录每个目标设备的标识信息,以及每个目标设备在处理其对应的计算模块时采用的端口的标识信息。
从设备确定配置信息中是否记录有与自身相邻的前一设备,如果是,则识别配置信息中记录的该前一设备的第一标识信息,及前一设备在处理前一计算模块时采用的端口的第二标识信息,第二标识信息标识的端口可以是前一设备的输出端口。
从设备采用自身在处理计算模块时采用的第一端口,即输入端口,接收前一设备的输出端口发送的第二子计算结果,前一设备为第一标识信息标识的设备,前一设备的端口为第二标识信息标识的输出端口。
从设备在接收到第二子计算结果后,根据自身对应的第二计算模块,对第二子计算结果进行计算,确定第一子计算结果。
从设备如果确定配置信息中不存在与自身相邻的前一设备,则自身处理的计算模块为计算任务包括的至少两个计算模块中的第一个计算模块,则自身接收数据产生者对应的设备发送的数据,进行计算,得出第一子计算结果。
从设备在确定出第一子计算结果后,可以确定配置信息中是否记录有与自身相邻的后一设备,如果存在与自身相邻的后一设备,则识别该后一设备的第三标识信息,以及后一设备在处理后一计算模块时采用的端口的第四标识信息,第四标识信息标识的端口可以是后一设备的输入端口。
从设备采用自身对应的第二端口,即输出端口,向该后一设备的端口发送第一子计算结果,后一设备为第三标识信息标识的设备,后一设备的端口为第四标识信息标识的输入端口。
如果从设备确定配置信息中不存在与自身相邻的后一设备,则可以确定自身处理的计算模块为计算任务包括的至少两个计算模块中的最后一个计算模块,从设备可以将自身计算得到的第一子计算结果输出,具体可以是输出给数据消息者对应的设备,使其进行显示。
实施例14:
图5为本发明实施例提供的一种作为主设备的智能设备结构图,包括:
接收模块51,用于接收包括至少两个计算模块的计算任务;
确定模块52,用于针对每个计算模块,根据预先保存的每个设备的第一空闲资源,确定处理该计算模块的目标设备;
控制模块53,用于根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,依次控制每个目标设备处理其对应的计算模块,并输出计算任务结果。
进一步地,所述智能设备还包括:
更新模块54,用于当接收到从设备发送的携带变化后的空闲资源的更新通知消息时,根据该从设备变化后的空闲资源,对预先保存的该从设备的第一空闲资源进行更新;和/或当识别到自身的空闲资源发生变化时,根据自身变化后的空闲资源,对预先保存的自身的第一空闲资源进行更新。
进一步地,所述控制模块53,还用于当接收到第一目标设备发送的处理其对应的第一计算模块异常的通知消息时,控制每个目标设备暂停处理其对应的计算模块;
所述确定模块52,还用于根据预先保存的每个设备的第二空闲资源,确定处理所述第一计算模块的第二目标设备;
所述控制模块53,还用于根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,依次控制每个目标设备处理其对应的计算模块,并输出计算任务结果。
进一步地,所述确定模块52,具体用于针对每个计算模块,根据预先保存的每个设备的空闲资源,以及预设的资源阈值,确定候选设备;在候选设备中选择第一设备,向该第一设备发送加载该计算模块的指令,使被选择的第一设备加载该计算模块对应的计算程序,如果接收到加载成功的通知消息,将被选择的第一设备确定为目标设备,否则,重新在候选设备中选择第二设备,直至确定出目标设备。
进一步地,所述控制模块53,具体用于根据所述至少两个计算模块的顺序,每个目标设备的标识信息,以及每个目标设备在处理其对应的计算模块时采用的端口的标识信息,生成计算链路的配置信息;将所述计算链路的配置信息发送给每个目标设备,使每个目标设备根据所述计算链路的配置信息依次处理其对应的计算模块。
进一步地,所述控制模块53,具体用于针对每个第三目标设备,根据所述配置信息中,与该第三目标设备相邻的第四目标设备的第一标识信息及第四目标设备采用的端口的第二标识信息,生成针对所述第三目标设备的子配置信息;将所述子配置信息发送给该第三目标设备,使该第三目标设备根据所述子配置信息处理其对应的计算模块。
进一步地,所述控制模块53,还用于将替换后的第二目标设备和与第二目标设备相邻的其他目标设备作为第三目标设备,并针对每个第三目标设备,根据所述配置信息中,与该第三目标设备相邻的第四目标设备的第一标识信息及第四目标设备采用的端口的第二标识信息,生成针对所述第三目标设备的子配置信息。
进一步地,当所述主设备为处理计算模块的目标设备时,所述控制模块53,还用于如果所述配置信息中存在与自身相邻的前一设备,则根据所述配置信息中记录的前一设备的第五标识信息及其端口的第六标识信息,采用自身对应的第一端口,接收该第五标识信息的前一设备通过该第六标识信息的端口发送的第二子计算结果,并根据自身对应的计算模块,对所述第二子计算结果进行计算,确定第一子计算结果;
如果所述配置信息中存在与自身相邻的后一设备,则根据所述配置信息中记录的后一设备的第三标识信息及其端口的第四标识信息,采用自身对应的第二端口,向该第三标识信息的后一设备的该第四标识信息的端口,发送所述第一子计算结果;如果不存在与自身相邻的后一设备,则输出所述第一子计算结果。
进一步地,所述确定模块52,具体用于根据所述计算任务包括的所述至少两个计算模块的顺序,由后至前依次针对每个计算模块,根据预先保存的每个设备的第一空闲资源,确定处理该计算模块的目标设备。
进一步地,所述控制模块53,还用于当接收到计算任务完成的通知消息后,根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,依次控制每个目标设备停止处理其对应的计算模块。
实施例15:
图6为本发明实施例提供的一种智能设备结构图,该智能设备为从设备,包括:
确定模块61,用于确定自身是否为处理计算任务的第二计算模块的目标设备,其中,所述计算任务包括至少两个计算模块;
计算处理模块62,用于在所述确定模块61的确定结果为是时,根据主设备的控制,对自身对应的第二计算模块进行处理;
输出模块63,用于并输出对应的计算结果,其中,所述主设备针对每个计算模块,根据预先保存的每个设备的第一空闲资源,确定处理该计算模块的目标设备;根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,控制作为目标设备的从设备进行处理的。
所述智能设备还包括:
识别模块64,用于识别自身的空闲资源是否发生变化;
发送模块65,用于当所述识别模块64的识别结果为是时,向主设备发送携带变化后的空闲资源的更新通知消息。
进一步地,所述识别模块64,还用于识别在处理自身对应的第二计算模块时是否异常;
所述发送模块65,还用于当所述识别模块64的识别结果为是时,向主设备发送处理其对应的第二计算模块异常的通知消息;或,
所述计算处理模块62,还用于根据主设备的控制,暂停处理其对应的第二计算模块。
所述确定模块61,具体用于接收主设备发送的加载第二计算模块的指令;加载所述第二计算模块对应的计算程序;如果加载成功,则确定自身为处理计算任务的第二计算模块的目标设备,并向主设备发送加载成功的通知消息。
所述计算处理模块62,具体用于接收主设备发送的计算链路的配置信息,其中所述配置信息中依次记录每个目标设备的标识信息,以及每个目标设备在处理其对应的计算模块时采用的端口的标识信息;
如果所述配置信息中存在与自身相邻的前一设备,则根据所述配置信息中记录的前一设备的第一标识信息及其端口的第二标识信息,采用自身对应的第一端口,接收该第一标识信息的前一设备通过该第二标识信息的端口发送的第二子计算结果,并根据自身对应的第二计算模块对所述第二子计算结果进行计算,确定第一子计算结果;
如果所述配置信息中存在与自身相邻的后一设备,则根据所述配置信息中记录的后一设备的第三标识信息及其端口的第四标识信息,采用自身对应的第二端口,向该第三标识信息的后一设备的该第四标识信息的端口,发送所述第一子计算结果;如果不存在与自身相邻的后一设备,则输出所述第一子计算结果。
实施例16:
图7为本发明实施例提供的一种作为主设备的智能设备,所述智能设备包括:处理器71、存储器72和收发机73;
在图7中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器71代表的一个或多个处理器71和存储器72代表的存储器72的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。收发机73可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。处理器71负责管理总线架构和通常的处理,存储器72可以存储处理器71在执行操作时所使用的数据。
可选的,处理器71可以是CPU(中央处埋器)、ASIC(Application SpecificIntegrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)。
所述收发机,用于在所述处理器的控制下,接收包括至少两个计算模块的计算任务;
所述处理器,用于读取所述存储器中的程序,执行下列过程:针对每个计算模块,根据预先保存的每个设备的第一空闲资源,确定处理该计算模块的目标设备;
根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,依次控制每个目标设备处理其对应的计算模块,并输出计算任务结果。
进一步地,所述处理器,还用于当接收到从设备发送的携带变化后的空闲资源的更新通知消息时,根据该从设备变化后的空闲资源,对预先保存的该从设备的第一空闲资源进行更新;和/或当识别到自身的空闲资源发生变化时,根据自身变化后的空闲资源,对预先保存的自身的第一空闲资源进行更新。
进一步地,所述处理器,还用于当接收到第一目标设备发送的处理其对应的第一计算模块异常的通知消息时,控制每个目标设备暂停处理其对应的计算模块;并根据预先保存的每个设备的第二空闲资源,确定处理所述第一计算模块的第二目标设备;并根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,依次控制每个目标设备处理其对应的计算模块,并输出计算任务结果。
进一步地,所述处理器,具体用于针对每个计算模块,根据预先保存的每个设备的空闲资源,以及预设的资源阈值,确定候选设备;在候选设备中选择第一设备,向该第一设备发送加载该计算模块的指令,使被选择的第一设备加载该计算模块对应的计算程序,如果接收到加载成功的通知消息,将被选择的第一设备确定为目标设备,否则,重新在候选设备中选择第二设备,直至确定出目标设备。
进一步地,所述处理器,具体用于根据所述至少两个计算模块的顺序,每个目标设备的标识信息,以及每个目标设备在处理其对应的计算模块时采用的端口的标识信息,生成计算链路的配置信息;将所述计算链路的配置信息发送给每个目标设备,使每个目标设备根据所述计算链路的配置信息依次处理其对应的计算模块。
进一步地,所述处理器,具体用于针对每个第三目标设备,根据所述配置信息中,与该第三目标设备相邻的第四目标设备的第一标识信息及第四目标设备采用的端口的第二标识信息,生成针对所述第三目标设备的子配置信息;将所述子配置信息发送给该第三目标设备,使该第三目标设备根据所述子配置信息处理其对应的计算模块。
进一步地,所述处理器,具体用于在针对每个第三目标设备,根据所述配置信息中,与该第三目标设备相邻的第四目标设备的第一标识信息及第四目标设备采用的端口的第二标识信息,生成针对所述第三目标设备的子配置信息之前,将替换后的第二目标设备和与第二目标设备相邻的其他目标设备作为第三目标设备,进行后续步骤。
当所述主设备为处理计算模块的目标设备时,进一步地,所述处理器,还用于如果所述配置信息中存在与自身相邻的前一设备,则根据所述配置信息中记录的前一设备的第五标识信息及其端口的第六标识信息,采用自身对应的第一端口,接收该第五标识信息的前一设备通过该第六标识信息的端口发送的第二子计算结果,并根据自身对应的计算模块,对所述第二子计算结果进行计算,确定第一子计算结果;
如果所述配置信息中存在与自身相邻的后一设备,则根据所述配置信息中记录的后一设备的第三标识信息及其端口的第四标识信息,采用自身对应的第二端口,向该第三标识信息的后一设备的该第四标识信息的端口,发送所述第一子计算结果;如果不存在与自身相邻的后一设备,则输出所述第一子计算结果。
进一步地,所述处理器,具体用于根据所述计算任务包括的所述至少两个计算模块的顺序,由后至前依次针对每个计算模块,根据预先保存的每个设备的第一空闲资源,确定处理该计算模块的目标设备。
进一步地,所述处理器,还用于当接收到计算任务完成的通知消息后,根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,依次控制每个目标设备停止处理其对应的计算模块。
进一步地,所述处理器,具体用于接收数据产生者发送的计算任务完成的通知消息;或接收数据消费者发送的计算任务完成的通知消息。
实施例17:
图8为本发明实施例提供的一种作为从设备的智能设备,所述智能设备包括:处理器81、存储器82;
在图8中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器81代表的一个或多个处理器81和存储器82代表的存储器82的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。收发机83可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。处理器81负责管理总线架构和通常的处理,存储器82可以存储处理器81在执行操作时所使用的数据。
可选的,处理器81可以是CPU(中央处埋器)、ASIC(Application SpecificIntegrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)。
所述处理器,用于读取所述存储器中的程序,执行下列过程:确定自身是否为处理计算任务的第二计算模块的目标设备,其中,所述计算任务包括至少两个计算模块;如果是,根据主设备的控制,对自身对应的第二计算模块进行处理,并输出对应的计算结果,其中,所述主设备针对每个计算模块,根据预先保存的每个设备的第一空闲资源,确定处理该计算模块的目标设备;根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,控制作为目标设备的从设备进行处理的。
进一步地,所述处理器,还用于识别自身的空闲资源是否发生变化,如果是,则向主设备发送携带变化后的空闲资源的更新通知消息。
进一步地,所述处理器,还用于识别在处理自身对应的第二计算模块时是否异常,如果是,则向主设备发送处理其对应的第二计算模块异常的通知消息;或,根据主设备的控制,暂停处理其对应的第二计算模块。
进一步地,在对自身对应的第二计算模块进行处理之前,所述智能设备还包括:收发机83;
所述收发机,用于在所述处理器的控制下,接收主设备发送的加载第二计算模块的指令;
所述处理器,还用于加载所述第二计算模块对应的计算程序,如果加载成功,则确定自身为处理计算任务的第二计算模块的目标设备;
所述收发机,还用于向主设备发送加载成功的通知消息。
进一步地,所述处理器,具体用于接收主设备发送的计算链路的配置信息,其中所述配置信息中依次记录每个目标设备的标识信息,以及每个目标设备在处理其对应的计算模块时采用的端口的标识信息;
如果所述配置信息中存在与自身相邻的前一设备,则根据所述配置信息中记录的前一设备的第一标识信息及其端口的第二标识信息,采用自身对应的第一端口,接收该第一标识信息的前一设备通过该第二标识信息的端口发送的第二子计算结果,并根据自身对应的第二计算模块对所述第二子计算结果进行计算,确定第一子计算结果;
如果所述配置信息中存在与自身相邻的后一设备,则根据所述配置信息中记录的后一设备的第三标识信息及其端口的第四标识信息,采用自身对应的第二端口,向该第三标识信息的后一设备的该第四标识信息的端口,发送所述第一子计算结果;如果不存在与自身相邻的后一设备,则输出所述第一子计算结果。
实施例18:
图9为本发明实施例提供的一种智能设备间协同计算系统结构图,所述系统包括作为主设备的第一智能设备91和作为从设备的第二智能设备92。
实施例19:
图10为本发明实施例提供的一种智能设备,包括:处理器101、通信接口102、存储器103和通信总线104,其中,处理器101,通信接口102,存储器103通过通信总线104完成相互间的通信;
所述存储器103中存储有计算机程序,当所述程序被所述处理器101执行时,使得所述处理器101执行以下步骤:
接收包括至少两个计算模块的计算任务;
针对每个计算模块,根据预先保存的每个设备的第一空闲资源,确定处理该计算模块的目标设备;
根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,依次控制每个目标设备处理其对应的计算模块,并输出计算任务结果。
上述智能设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口102,用于上述智能设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括中央处理器、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路、现场可编程门陈列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
实施例20:
图11为本发明实施例提供的一种智能设备,包括:处理器111、通信接口112、存储器113和通信总线114,其中,处理器111,通信接口112,存储器113通过通信总线114完成相互间的通信;
所述存储器113中存储有计算机程序,当所述程序被所述处理器111执行时,使得所述处理器111执行以下步骤:
确定自身是否为处理计算任务的第二计算模块的目标设备,其中,所述计算任务包括至少两个计算模块;如果是,根据主设备的控制,对自身对应的第二计算模块进行处理,并输出对应的计算结果,其中,所述主设备针对每个计算模块,根据预先保存的每个设备的第一空闲资源,确定处理该计算模块的目标设备;根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,控制作为目标设备的从设备进行处理的。
上述智能设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口112,用于上述智能设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括中央处理器、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路、现场可编程门陈列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
实施例21:
本发明实施例提供了一种计算机可读存储介质,其存储有可由智能设备执行的计算机程序,当所述程序在所述智能设备上运行时,使得所述智能设备执行以下步骤:
接收包括至少两个计算模块的计算任务;
针对每个计算模块,根据预先保存的每个设备的第一空闲资源,确定处理该计算模块的目标设备;
根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,依次控制每个目标设备处理其对应的计算模块,并输出计算任务结果。
实施例22:
本发明实施例提供了一种计算机可读存储介质,其存储有可由智能设备执行的计算机程序,当所述程序在所述智能设备上运行时,使得所述智能设备执行以下步骤:
确定自身是否为处理计算任务的第二计算模块的目标设备,其中,所述计算任务包括至少两个计算模块;如果是,根据主设备的控制,对自身对应的第二计算模块进行处理,并输出对应的计算结果,其中,所述主设备,针对每个计算模块,根据预先保存的每个设备的第一空闲资源,确定处理该计算模块的目标设备;根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,控制作为目标设备的从设备进行处理的。
上述实施例中的计算机可读存储介质可以是智能设备中的处理器能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器如软盘、硬盘、磁带、磁光盘(MO)等、光学存储器如CD、DVD、BD、HVD等、以及半导体存储器如ROM、EPROM、EEPROM、非易失性存储器(NAND FLASH)、固态硬盘(SSD)等。
实施例23:
本发明实施例公开了一种智能设备,包括:处理器、存储器和存储在所述存储器并可在所述处理器上运行的计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行应用于作为主设备的智能设备的方法中的任一项所述方法的步骤;或者使得所述处理器执行应用于作为从设备的智能设备的方法中的任一项所述方法的步骤。
本发明实施例公开了一种智能设备间协同计算方法、系统、智能设备和介质,智能设备位于同一局域网内,所述方法包括:作为主设备的智能设备接收包括至少两个计算模块的计算任务;针对每个计算模块,根据预先保存的每个设备的第一空闲资源,确定处理该计算模块的目标设备;根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,依次控制每个目标设备处理其对应的计算模块,并输出计算任务结果。由于在本发明实施例中,主设备针对计算任务包括的至少两个计算模块,确定处理每个计算模块的目标设备,并控制目标设备对计算模块进行处理,目标设备间协同计算,合理的利用了智能设备中的空闲资源,避免了资源的浪费。
对于系统/装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者一个操作与另一个实体或者另一个操作区分开来,而不一定要求或者暗示这些实体或者操作之间存在任何这种实际的关系或者顺序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全应用实施例、或结合应用和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (22)
1.一种智能设备间协同计算方法,其特征在于,智能设备位于同一局域网内,所述方法应用于作为主设备的智能设备,所述方法包括:
接收包括至少两个计算模块的计算任务;
针对每个计算模块,根据预先保存的每个设备的第一空闲资源,确定处理该计算模块的目标设备;
根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,依次控制每个目标设备处理其对应的计算模块,并输出计算任务结果;
其中,所述根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,依次控制每个目标设备处理其对应的计算模块,包括:
根据所述至少两个计算模块的顺序,每个目标设备的标识信息,以及每个目标设备在处理其对应的计算模块时采用的端口的标识信息,生成计算链路的配置信息;
将所述计算链路的配置信息发送给每个目标设备,使每个目标设备根据所述计算链路的配置信息依次处理其对应的计算模块。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
当接收到从设备发送的携带变化后的空闲资源的更新通知消息时,根据该从设备变化后的空闲资源,对预先保存的该从设备的第一空闲资源进行更新;和/或
当识别到自身的空闲资源发生变化时,根据自身变化后的空闲资源,对预先保存的自身的第一空闲资源进行更新。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
当接收到第一目标设备发送的处理其对应的第一计算模块异常的通知消息时,控制每个目标设备暂停处理其对应的计算模块;
并根据预先保存的每个设备的第二空闲资源,确定处理所述第一计算模块的第二目标设备;
并根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,依次控制每个目标设备处理其对应的计算模块,并输出计算任务结果。
4.如权利要求1-3任一项所述的方法,其特征在于,根据预先保存的每个设备的第一空闲资源,确定处理计算模块的目标设备的过程包括:
针对每个计算模块,根据预先保存的每个设备的第一空闲资源,以及预设的资源阈值,确定候选设备;在候选设备中选择第一设备,向该第一设备发送加载该计算模块的指令,使被选择的第一设备加载该计算模块对应的计算程序,如果接收到加载成功的通知消息,将被选择的第一设备确定为目标设备,否则,重新在候选设备中选择第二设备,直至确定出目标设备。
5.如权利要求1所述的方法,其特征在于,所述将所述计算链路的配置信息发送给每个目标设备,使每个目标设备根据所述计算链路的配置信息依次处理其对应的计算模块包括:
针对每个第三目标设备,根据所述配置信息中,与该第三目标设备相邻的第四目标设备的第一标识信息及第四目标设备采用的端口的第二标识信息,生成针对所述第三目标设备的子配置信息;将所述子配置信息发送给该第三目标设备,使该第三目标设备根据所述子配置信息处理其对应的计算模块。
6.如权利要求5所述的方法,其特征在于,在针对每个第三目标设备,根据所述配置信息中,与该第三目标设备相邻的第四目标设备的第一标识信息及第四目标设备采用的端口的第二标识信息,生成针对所述第三目标设备的子配置信息之前,所述方法还包括:
将替换后的第二目标设备和与第二目标设备相邻的其他目标设备作为第三目标设备,进行后续步骤。
7.如权利要求1所述的方法,其特征在于,当所述主设备为处理计算模块的目标设备时,根据计算链路的信息处理自身对应的计算模块包括:
如果所述配置信息中存在与自身相邻的前一设备,则根据所述配置信息中记录的前一设备的第五标识信息及其端口的第六标识信息,采用自身对应的第一端口,接收该第五标识信息对应的设备通过该第六标识信息的端口发送的第二子计算结果,并根据自身对应的计算模块,对所述第二子计算结果进行计算,确定第一子计算结果;
如果所述配置信息中存在与自身相邻的后一设备,则根据所述配置信息中记录的后一设备的第三标识信息及其端口的第四标识信息,采用自身对应的第二端口,向该第三标识信息对应的设备的该第四标识信息的端口,发送所述第一子计算结果;如果不存在与自身相邻的后一设备,则输出所述第一子计算结果。
8.如权利要求1所述的方法,其特征在于,所述针对每个计算模块,根据预先保存的每个设备的第一空闲资源,确定处理该计算模块的目标设备,包括:
根据所述计算任务包括的所述至少两个计算模块的顺序,由后至前依次针对每个计算模块,根据预先保存的每个设备的第一空闲资源,确定处理该计算模块的目标设备。
9.如权利要求1所述的方法,其特征在于,所述方法还包括:
当接收到计算任务完成的通知消息后,根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,依次控制每个目标设备停止处理其对应的计算模块。
10.如权利要求9所述的方法,其特征在于,接收计算任务完成通知消息包括:
接收数据产生者发送的计算任务完成的通知消息;或
接收数据消费者发送的计算任务完成的通知消息。
11.一种智能设备间协同计算方法,其特征在于,智能设备位于同一局域网内,所述方法应用于作为从设备的智能设备,所述方法包括:
确定自身是否为处理计算任务的第二计算模块的目标设备,其中,所述计算任务包括至少两个计算模块;
如果是,根据主设备的控制,对自身对应的第二计算模块进行处理,并输出对应的计算结果,其中,所述主设备针对每个计算模块,根据预先保存的每个设备的第一空闲资源,确定处理该计算模块的目标设备;根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,控制作为目标设备的从设备进行处理的;
其中,所述根据主设备的控制,对自身对应的第二计算模块进行处理包括:
接收主设备发送的计算链路的配置信息,其中所述配置信息中依次记录每个目标设备的标识信息,以及每个目标设备在处理其对应的计算模块时采用的端口的标识信息;
将所述计算链路的配置信息发送给每个目标设备,使每个目标设备根据所述计算链路的配置信息依次处理其对应的计算模块。
12.如权利要求11所述的方法,其特征在于,所述方法还包括:
识别自身的空闲资源是否发生变化,如果是,则向主设备发送携带变化后的空闲资源的更新通知消息。
13.如权利要求11所述的方法,其特征在于,所述方法还包括:
识别在处理自身对应的第二计算模块时是否异常,如果是,则向主设备发送处理其对应的第二计算模块异常的通知消息;或,
根据主设备的控制,暂停处理其对应的第二计算模块。
14.如权利要求11-13任一项所述的方法,其特征在于,所述确定自身是否为处理计算任务的第二计算模块的目标设备包括:
接收主设备发送的加载第二计算模块的指令;加载所述第二计算模块对应的计算程序,如果加载成功,则确定自身为处理计算任务的第二计算模块的目标设备,并向主设备发送加载成功的通知消息。
15.如权利要求11-13任一项所述的方法,其特征在于,所述根据主设备的控制,对自身对应的第二计算模块进行处理包括:
如果所述配置信息中存在与自身相邻的前一设备,则根据所述配置信息中记录的前一设备的第一标识信息及其端口的第二标识信息,采用自身对应的第一端口,接收该第一标识信息对应的设备通过该第二标识信息的端口发送的第二子计算结果,并根据自身对应的第二计算模块对所述第二子计算结果进行计算,确定第一子计算结果;
如果所述配置信息中存在与自身相邻的后一设备,则根据所述配置信息中记录的后一设备的第三标识信息及其端口的第四标识信息,采用自身对应的第二端口,向该第三标识信息对应的设备的该第四标识信息的端口,发送所述第一子计算结果;如果不存在与自身相邻的后一设备,则输出所述第一子计算结果。
16.一种作为主设备的智能设备,其特征在于,该智能设备与其他智能设备位于同一局域网内,包括:
接收模块,用于接收包括至少两个计算模块的计算任务;
确定模块,用于针对每个计算模块,根据预先保存的每个设备的第一空闲资源,确定处理该计算模块的目标设备;
控制模块,用于根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,依次控制每个目标设备处理其对应的计算模块,并输出计算任务结果;
其中,所述控制模块,具体用于根据所述至少两个计算模块的顺序,每个目标设备的标识信息,以及每个目标设备在处理其对应的计算模块时采用的端口的标识信息,生成计算链路的配置信息;
将所述计算链路的配置信息发送给每个目标设备,使每个目标设备根据所述计算链路的配置信息依次处理其对应的计算模块。
17.一种作为从设备的智能设备,其特征在于,该智能设备与其他智能设备位于同一局域网内,包括:
确定模块,用于确定自身是否为处理计算任务的第二计算模块的目标设备,其中,所述计算任务包括至少两个计算模块;
计算处理模块,用于在所述确定模块的确定结果为是时,根据主设备的控制,对自身对应的第二计算模块进行处理;
输出模块,用于输出对应的计算结果,其中,所述主设备针对每个计算模块,根据预先保存的每个设备的第一空闲资源,确定处理该计算模块的目标设备;根据所述计算任务包括的所述至少两个计算模块的顺序及确定的处理计算模块的目标设备,控制作为目标设备的从设备进行处理的;
其中,所述计算处理模块,具体用于接收主设备发送的计算链路的配置信息,其中所述配置信息中依次记录每个目标设备的标识信息,以及每个目标设备在处理其对应的计算模块时采用的端口的标识信息;
将所述计算链路的配置信息发送给每个目标设备,使每个目标设备根据所述计算链路的配置信息依次处理其对应的计算模块。
18.一种作为主设备的智能设备,其特征在于,所述智能设备包括:处理器、存储器和收发机;
所述收发机,用于在所述处理器的控制下,接收包括至少两个计算模块的计算任务;
所述处理器,用于读取所述存储器中的程序,执行权利要求1-10任一项所述方法的步骤。
19.一种作为从设备的智能设备,其特征在于,所述智能设备包括:处理器、存储器;
所述处理器,用于读取所述存储器中的程序,执行权利要求11-15任一项所述方法的步骤。
20.一种智能设备间协同计算系统,其特征在于,包括如权利要求16所述的作为主设备的智能设备和如权利要求17所述的作为从设备的智能设备。
21.一种智能设备,其特征在于,包括:处理器、存储器和存储在所述存储器并可在所述处理器上运行的计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行权利要求1-10任一项所述方法的步骤;或者使得所述处理器执行权利要求11-15任一项所述方法的步骤。
22.一种计算机可读存储介质,其特征在于,其存储有可由智能设备执行的计算机程序,当所述程序在所述智能设备上运行时,使得所述智能设备执行权利要求1-10任一项所述方法的步骤;或者使得所述智能设备执行权利要求11-15任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711166732.8A CN109815003B (zh) | 2017-11-21 | 2017-11-21 | 智能设备间协同计算方法、系统、智能设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711166732.8A CN109815003B (zh) | 2017-11-21 | 2017-11-21 | 智能设备间协同计算方法、系统、智能设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109815003A CN109815003A (zh) | 2019-05-28 |
CN109815003B true CN109815003B (zh) | 2020-12-18 |
Family
ID=66600468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711166732.8A Active CN109815003B (zh) | 2017-11-21 | 2017-11-21 | 智能设备间协同计算方法、系统、智能设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109815003B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112131903B (zh) * | 2019-06-24 | 2024-02-20 | 浙江宇视科技有限公司 | 设备数据的分析方法、装置、服务平台、系统及介质 |
CN110659134A (zh) * | 2019-09-04 | 2020-01-07 | 腾讯云计算(北京)有限责任公司 | 一种应用于人工智能平台的数据处理方法及装置 |
CN113254219B (zh) * | 2021-06-28 | 2021-10-15 | 国汽智控(北京)科技有限公司 | 协同处理方法、协同处理装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741912A (zh) * | 2009-12-30 | 2010-06-16 | 中兴通讯股份有限公司 | 一种处理计算任务的方法、网络设备及分布式网络系统 |
CN102222213A (zh) * | 2010-07-29 | 2011-10-19 | 郑文明 | 一种基于开放式Web Service架构的分布式视觉计算方法 |
CN103150218A (zh) * | 2013-03-28 | 2013-06-12 | 广州供电局有限公司 | 资源调度服务器、智能终端及其调度方法 |
CN104506600A (zh) * | 2014-12-16 | 2015-04-08 | 苏州海博智能系统有限公司 | 一种共享计算资源方法、装置、系统及客户端和服务器 |
CN107040406A (zh) * | 2017-03-14 | 2017-08-11 | 西安电子科技大学 | 一种端云协同计算系统及其容错方法 |
CN107241767A (zh) * | 2017-06-14 | 2017-10-10 | 广东工业大学 | 一种移动协同计算的方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107038070B (zh) * | 2017-04-10 | 2021-04-16 | 郑州轻工业学院 | 一种云环境下执行可靠性感知的并行任务调度方法 |
-
2017
- 2017-11-21 CN CN201711166732.8A patent/CN109815003B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741912A (zh) * | 2009-12-30 | 2010-06-16 | 中兴通讯股份有限公司 | 一种处理计算任务的方法、网络设备及分布式网络系统 |
CN102222213A (zh) * | 2010-07-29 | 2011-10-19 | 郑文明 | 一种基于开放式Web Service架构的分布式视觉计算方法 |
CN103150218A (zh) * | 2013-03-28 | 2013-06-12 | 广州供电局有限公司 | 资源调度服务器、智能终端及其调度方法 |
CN104506600A (zh) * | 2014-12-16 | 2015-04-08 | 苏州海博智能系统有限公司 | 一种共享计算资源方法、装置、系统及客户端和服务器 |
CN107040406A (zh) * | 2017-03-14 | 2017-08-11 | 西安电子科技大学 | 一种端云协同计算系统及其容错方法 |
CN107241767A (zh) * | 2017-06-14 | 2017-10-10 | 广东工业大学 | 一种移动协同计算的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109815003A (zh) | 2019-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210182106A1 (en) | Resource configuration prediction method and device | |
CN107193750B (zh) | 一种脚本录制方法和装置 | |
CN108595157B (zh) | 区块链数据的处理方法、装置、设备和存储介质 | |
US10873512B2 (en) | Methods for managing self-healing cloud infrastructure and applications | |
CN111221643B (zh) | 任务处理方法和任务处理装置 | |
CN110738389A (zh) | 工作流处理方法、装置、计算机设备和存储介质 | |
CN109815003B (zh) | 智能设备间协同计算方法、系统、智能设备和介质 | |
US20190146904A1 (en) | Optimizing Execution Order of System Interval Dependent Test Cases | |
CN106713042B (zh) | 一种确定网络拓扑方法及装置 | |
CN114169536B (zh) | 数据管控方法及相关装置 | |
CN114064208A (zh) | 检测应用服务状态的方法、装置、电子设备及存储介质 | |
CN110875838B (zh) | 一种资源部署方法、装置和存储介质 | |
CN109508912B (zh) | 一种业务调度方法、装置、设备和存储介质 | |
CN110661828A (zh) | 一种资源分配方法、装置、服务器及可读存储介质 | |
CN113094224A (zh) | 服务器资产管理方法、装置、计算机设备和存储介质 | |
CN109992408B (zh) | 一种资源分配方法、装置、电子设备和存储介质 | |
CN113391970A (zh) | 一种面向异构众核处理器的芯片测试方法及装置 | |
CN110290172B (zh) | 容器应用克隆方法、装置、计算机设备及存储介质 | |
CN109274562B (zh) | 一种语音指令执行的方法、装置、智能家电设备及介质 | |
CN113238855B (zh) | 一种路径检测方法及装置 | |
CN112035368B (zh) | 自动化软件测试方法、装置、电子设备、存储介质 | |
US20210357123A1 (en) | Automated storage capacity provisioning using machine learning techniques | |
CN114546425A (zh) | 模型部署方法、装置、电子设备及存储介质 | |
CN109426505B (zh) | 一种软件的安装方法、装置、电子设备及存储介质 | |
CN111404715B (zh) | 一种网络服务实例化方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |