发明内容
为了解决上述技术问题,本发明提供了一种算力调度方法、系统、电子设备及计算机可读存储介质,解决了算力的跨平台部署问题,使得网络设备的剩余算力能够得到充分利用,提高了资源利用率。
根据本公开第一方面,提供了一种算力调度方法,该算力调度方法应用于算力请求设备,包括:向多个算力提供设备发送算力请求,所述算力请求包括所述算力请求设备的算力需求信息;接收多个算力提供设备中的至少一个可用算力提供设备发送的算力资源信息,所述可用算力提供设备为所述多个算力提供设备中剩余算力资源信息满足所述算力需求信息的算力提供设备;利用算力资源选择算法在所述至少一个可用算力提供设备中确定目标算力提供设备;将编译为特定格式的待处理应用发送至所述目标算力提供设备,其中,所述目标算力提供设备部署有与所述特定格式适配的运行环境,用于运行所述待处理应用;接收由所述目标算力提供设备反馈的所述待处理应用的执行结果。
可选地,利用算力资源选择算法在所述至少一个可用算力提供设备中确定目标算力提供设备包括:为所述至少一个可用算力提供设备中每个可用算力提供设备配置参数;根据配置的参数计算每个可用算力提供设备的算力资源质量;根据每个可用算力提供设备的所述算力资源质量确定所述目标算力提供设备。
可选地,所述算力请求设备还接收有多个算力提供设备中的所述至少一个可用算力提供设备发送的对应每个可用算力提供设备的费用标准信息;以及利用算力资源选择算法在所述至少一个可用算力提供设备中确定目标算力提供设备包括:为所述至少一个可用算力提供设备中每个可用算力提供设备配置参数;根据配置的参数计算每个可用算力提供设备的算力资源质量;根据每个可用算力提供设备的所述算力资源质量和所述费用标准信息确定所述目标算力提供设备。
可选地,为所述至少一个可用算力提供设备中每个可用算力提供设备配置参数包括:根据所述待处理应用的类型为每个可用算力提供设备的算力资源信息中的不同资源类型配置权重参数,其中,所述待处理应用的类型包括:CPU消耗型、GPU消耗型、内存消耗型和磁盘空间消耗型;以及所述算力资源信息中的资源类型包括:CPU型、GPU型、内存型和磁盘空间型。
可选地,每个可用算力提供设备的算力资源信息中与所述待处理应用的类型相同的资源信息对应的权重大于与所述待处理应用的类型不相同的资源信息对应的权重。
可选地,所述算力请求设备还接收有多个算力提供设备中的所述至少一个可用算力提供设备发送的对应每个可用算力提供设备的硬件信息;以及为所述至少一个可用算力提供设备中每个可用算力提供设备配置参数还包括:根据所述硬件信息为每个可用算力提供设备的算力资源信息中的不同资源类型配置增益参数。
可选地,所述算力请求还包括测试数据包,所述算力请求设备基于所述测试数据包测试并记录与多个算力提供设备中对应每个可用算力提供设备之间的网络传输速度;以及为所述至少一个可用算力提供设备中每个可用算力提供设备配置参数还包括:根据所述网络传输速度为每个可用算力提供设备配置通信参数。
可选地,每个类型的算力资源信息均包括已使用算力资源信息和剩余算力资源信息;以及根据配置的参数计算每个可用算力提供设备的算力资源质量包括:根据所述权重参数计算每个可用算力提供设备的各类型的全部或部分的剩余算力资源信息数值的加权和,以作为所述算力资源质量;或者根据所述权重参数计算每个可用算力提供设备的各类型的全部或部分的剩余算力资源信息占对应类型的算力资源信息的百分比的加权和,以作为所述算力资源质量。
可选地,根据配置的参数计算每个可用算力提供设备的算力资源质量包括:根据所述增益参数计算每个可用算力提供设备的各类型的标准化算力资源信息,所述标准化算力资源信息包括标准化已使用算力资源信息和标准化剩余算力资源信息;根据所述权重参数计算每个可用算力提供设备的各类型的全部或部分的标准化剩余算力资源信息数值的加权和,以作为所述算力资源质量;或者根据所述权重参数计算每个可用算力提供设备的各类型的全部或部分的标准化剩余算力资源信息占对应类型的标准化算力资源信息的百分比的加权和,以作为所述算力资源质量。
可选地,根据配置的参数计算每个可用算力提供设备的算力资源质量包括:根据所述权重参数和所述增益参数计算每个可用算力提供设备的初始算力资源质量;计算每个可用算力提供设备的所述初始算力资源质量与所述通信参数的乘积,以作为所述算力资源质量,其中,根据所述权重参数和所述增益参数计算每个可用算力提供设备的初始算力资源质量包括:根据所述增益参数计算每个可用算力提供设备的各类型的标准化算力资源信息,所述标准化算力资源信息包括标准化已使用算力资源信息和标准化剩余算力资源信息;根据所述权重参数计算每个可用算力提供设备的各类型的全部或部分的标准化剩余算力资源信息数值的加权和,以作为所述初始算力资源质量;或者根据所述权重参数计算每个可用算力提供设备的各类型的全部或部分的标准化剩余算力资源信息占对应类型的标准化算力资源信息的百分比的加权和,以作为所述初始算力资源质量。
可选地,所述算力调度方法还包括:在接收多个算力提供设备中的所述至少一个可用算力提供设备发送的算力资源信息时,记录所述至少一个可用算力提供设备的数量,并在记录的所述至少一个可用算力提供设备的数量达到第一阈值时,暂停发送所述算力请求;或者根据配置的参数计算每个可用算力提供设备的算力资源质量后,判断计算获得的所述算力资源质量是否满足第二阈值,若是,则暂停发送所述算力请求。
可选地,确定目标算力提供设备之后还包括:向所述目标算力提供设备发送确认信息和第一验证信息;在所述确认信息和所述第一验证信息通过后,接收由所述目标算力提供设备发送的第二验证信息;检测所述第二验证信息是否满足要求,若是,则将编译为所述特定格式的待处理应用发送至所述目标算力提供设备,反之,则在剩余的可用算力提供设备中重新确定目标算力提供设备。
可选地,将编译为特定格式的待处理应用发送至所述目标算力提供设备之后还包括:判断在预设时长内是否接收到所述目标算力提供设备反馈的所述待处理应用的执行结果,若在预设时长内没有接收到所述目标算力提供设备反馈的所述待处理应用的执行结果,则利用算力资源选择算法在剩余的可用算力提供设备中重新确定目标算力提供设备。
可选地,接收由所述目标算力提供设备反馈的所述待处理应用的执行结果之后,还包括:向所述目标算力提供设备发送应用卸载指令。
可选地,所述特定格式为WASM格式,所述运行环境为WASM运行环境。
根据本公开第二方面,提供了一种算力调度方法,该算力调度方法应用于算力提供设备,包括:接收由算力请求设备发送的算力请求,所述算力请求包括所述算力请求设备的算力需求信息;基于所述算力需求信息判断自身的剩余算力资源是否满足所述算力请求设备的算力需求,若是,则向所述算力请求设备发送自身的算力资源信息;在被确定为目标算力提供设备后,接收由算力请求设备发送的特定格式的待处理应用;基于预先部署的与所述特定格式适配的运行环境运行所述待处理应用;向所述算力请求设备反馈所述待处理应用的执行结果。
可选地,所述算力提供设备每间隔固定时间进行一次自身的算力资源信息检测,并在检测完成后记录检测结果,其中,所述算力资源信息包括:CPU型算力资源信息、GPU型算力资源信息、内存型算力资源信息和磁盘空间型算力资源信息;以及各类型的所述算力资源信息均包括已使用算力资源信息和剩余算力资源信息。
可选地,当所述算力提供设备基于所述算力需求信息判断自身的剩余算力资源满足所述算力请求设备的算力需求时,还包括向所述算力请求设备发送自身的硬件信息。
可选地,当所述算力提供设备基于所述算力需求信息判断自身的剩余算力资源满足所述算力请求设备的算力需求时,还包括向所述算力请求设备发送费用标准信息。
可选地,接收由算力请求设备发送的特定格式的待处理应用之前,还包括:接收所述算力请求设备发送的确认信息和第一验证信息;检测所述确认信息和所述第一验证信息是否满足要求,若是,则向所述目标算力请求设备发送的第二验证信息。
可选地,基于预先部署的与所述特定格式适配的运行环境运行所述待处理应用包括:在预先部署的与所述特定格式适配的运行环境中解析所述待处理应用,并将其部署于所述运行环境中;运行所述待处理应用,记录所述应用输出,并获取所述待处理应用的当前运行状态;以及在接收到由所述算力请求设备发送的应用卸载指令后,基于所述应用卸载指令卸载所述待处理应用。
可选地,运行所述待处理应用之后,还包括:记录所述待处理应用的运行时间以及消耗的算力资源,并基于所述运行时间和所述消耗的算力资源计算积分;以及向所述算力请求设备反馈所述待处理应用的执行结果中包括:所述待处理应用的运行结果和所述积分。
可选地,所述特定格式为WASM格式,所述运行环境为WASM运行环境。
根据本公开第三方面,提供了一种算力调度系统,包括:算力请求设备和多个算力提供设备;所述算力请求设备用于根据自身的待处理应用的算力需求及算力资源选择算法从所述多个算力提供设备中确定目标算力提供设备,并在确定目标算力提供设备后,将编译为特定格式的所述待处理应用发送至所述目标算力提供设备;所述多个算力提供设备中的每个算力提供设备中均预先部署有与所述特定格式适配的运行环境,每个算力提供设备均用于在被确定为目标算力提供设备后,基于预先部署的与所述特定格式适配的运行环境执行所接收的所述特定格式的待处理应用,并向所述算力请求设备反馈所述待处理应用的执行结果。
可选地,所述算力请求设备包括:第一通信模块,用于实现与所述多个算力提供设备之间的数据通信,包括向所述多个算力提供设备发送算力请求,以及接收并记录所述多个算力提供设备中至少一个可用算力提供设备中每个可用算力提供设备返回的自身信息和所述待处理应用的执行结果,所述第一通信模块还用于获取所述算力请求设备与每个可用算力提供设备之间的网络传输速度,所述可用算力提供设备为所述多个算力提供设备中自身的剩余算力资源满足所述算力需求的算力提供设备;设备选择模块,用于根据所述待处理应用的算力需求、所述算力资源选择算法以及所述至少一个可用算力提供设备中每个可用算力提供设备返回的自身信息和所述网络传输速度对每个算力提供设备的算力资源质量进行综合评估,并根据评估结果从所述至少一个可用算力提供设备中确定目标算力提供设备。
可选地,所述设备选择模块包括:参数配置单元,用于为所述至少一个可用算力提供设备中每个可用算力提供设备配置参数;算力资源质量计算单元,用于根据所述参数、所述至少一个可用算力提供设备中每个可用算力提供设备的自身信息和所述网络传输速度计算每个算力提供设备的算力资源质量;选择单元,用于根据所述算力资源质量计算单元的计算结果确定目标算力提供设备。
可选地,所述设备选择模块还包括:成本计算单元,用于根据每个可用算力提供设备的费用标准信息和所述算力资源质量确定所述目标算力提供设备。
可选地,所述算力请求设备还包括:第一检测模块,用于根据所确定的目标算力提供设备发送的第二验证信息检测所述目标算力提供设备的合法性。
可选地,每个算力提供设备均包括:算力资源自检模块,用于每间隔固定时间进行一次自身的算力资源信息检测,并在检测完成后记录检测结果;第二通信模块,用于实现与所述算力请求设备之间的数据通信,包括在自身的剩余算力资源满足所述算力需求的情况下向所述算力请求设备发送由所述算力资源自检模块最新记录的自身信息和所述待处理应用的执行结果,以及接收算力请求设备发送的算力请求;执行模块,用于基于预先部署的与所述特定格式适配的运行环境解析并执行所接收的所述特定格式的待处理应用,并记录所述待处理应用的执行结果。
可选地,所述算力资源自检模块包括:算力资源检测单元,用于每间隔固定时间检测自身的算力资源信息,包括已使用算力资源信息和剩余算力资源信息;硬件信息提取单元,用于每间隔固定时间扫描自身的硬件信息,以获取相应的性能参数。
可选地,所述执行模块包括:应用安装单元,用于在预先部署的与所述特定格式适配的运行环境中解析所述待处理应用,并将其部署于所述运行环境中;应用运行状态记录单元,用于在预先部署的与所述特定格式适配的运行环境中运行所述待处理应用,记录所述应用输出,并获取所述待处理应用的当前运行状态;应用卸载单元,用于在接收到由所述算力请求设备发送的应用卸载指令后,基于所述应用卸载指令卸载所述待处理应用。
可选地,所述执行模块还包括:应用迁移单元,用于根据所述应用运行状态记录单元获取的所述待处理应用的当前运行状态将所述待处理应用迁移到其他的可用算力提供设备。
可选地,每个算力提供设备均还包括:第二检测单元,用于根据所述算力请求设备发送的第一验证信息检测所述算力请求设备的合法性。
可选地,每个算力提供设备均还包括:积分模块,用于记录所述待处理应用的运行时间以及消耗的算力资源,并基于所述运行时间和所述消耗的算力资源计算积分,其中,所述执行结果中包括:所述积分和所述应用运行状态记录单元记录的所述应用输出。
可选地,所述特定格式为WASM格式,所述运行环境为WASM运行环境。
根据本公开第四方面,提供了一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如上所述的应用于算力请求设备中的算力调度方法的步骤。
根据本公开第五方面,提供了一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如上所述的应用于算力提供设备中的算力调度方法的步骤。
根据本公开第六方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序或指令,所述计算机程序或指令被处理器执行时实现如上所述的应用于算力请求设备中的算力调度方法的步骤。
根据本公开第七方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序或指令,所述计算机程序或指令被处理器执行时实现如上所述的应用于算力提供设备中的算力调度方法的步骤。
采用本申请的技术方案,使得同一个应用能够在不同操作系统和芯片架构的设备间跨平台运行,解决了算力的跨平台部署问题,使得网络设备的剩余算力能够得到充分利用,提高了资源利用率。
应当说明的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
具体实施方式
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的较佳实施例。但是,本发明可以通过不同的形式来实现,并不限于本文所描述的实施例。相反的,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。
下面,参照附图对本发明进行详细说明。
参考图1,本发明实施例提供一种算力调度方法,该方法可应用于算力请求设备100中,也可以应用于算力提供设备200中,进而实现算力的跨平台调度。其中,算力请求设备100可以是摄像头、考勤机、监控仪、平板设备、台式电脑、笔记本电脑、手机、电视机或者其他需要一定的算力资源来执行某些待处理任务且能够完成信息交互的终端设备。以及,算力提供设备200可以是摄像头、考勤机、监控仪、平板设备、台式电脑、笔记本电脑、手机、电视机或者其他具有一定的算力资源且能够完成信息交互的终端设备。
当该算力调度方法应用于算力请求设备100中时,包括执行步骤S10至步骤S16。
在步骤S10中,向多个算力提供设备发送算力请求。
当算力请求设备100需要一定的算力资源来执行某些待处理任务时,可以根据自身所需的算力需求向多个算力提供设备200发送算力请求,以在一定范围内搜索至少一个的可用算力提供设备。
算力请求设备100发送的算力请求至少包括有算力请求设备100中的待处理应用在运行时所需的算力需求信息。以及,本实施例中,定义可用算力提供设备(至少一个)为多个算力提供设备200中剩余算力资源信息满足算力请求中的算力需求信息的算力提供设备。
本公开中,算力资源的类型包括CPU资源、GPU资源、内存资源、磁盘空间资源。以及算力请求设备100中的待处理应用按资源消耗类型可对应包括CPU消耗型、GPU消耗型、内存消耗型和磁盘空间消耗型。进而,算力请求中的算力需求信息中至少包含有该待处理应用对各类型的算力资源的需求信息。且仅当一个算力提供设备的各类型算力资源的剩余量均对应满足待处理应用对各类型的算力资源的需求时,该算力提供设备才可被判定为可用算力提供设备。
本实施例中,算力请求设备100对至少一个的可用算力提供设备的搜索范围,也即算力请求设备100针对算力提供设备200发送算力请求的范围可以是一个固定范围,例如,一个家庭、一个商场、一个局域网内注册了算力提供服务的终端设备,或者所有权或使用权归属于算力请求设备100的使用者的所有终端设备。也可以是不固定的范围搜索,例如,可以随机的向整个互联网中注册了算力提供服务的终端设备中的部分终端设备发送算力请求,也可以算力请求设备100的地址为中心,逐层的增加搜索范围,具体应根据实际使用需求进行划分,本发明对此不做限定。
在步骤S11中,接收多个算力提供设备中的至少一个可用算力提供设备发送的算力资源信息。
多个算力提供设备中的每个算力提供设备均会周期性的进行自身算力资源信息(包括已使用算力资源信息和剩余算力资源信息)的自检和记录。当算力提供设备200接收到算力请求设备100发送的算力请求后,会根据算力请求包含的算力需求信息和最新一次记录的自身的剩余算力资源信息判断自身是否满足向该算力请求设备100提供算力的要求,即判断其自身针对该算力请求设备100是否可作为可用算力提供设备。当算力提供设备200判定其自身可作为可用算力提供设备后,会向算力请求设备100发送其最新一次记录的算力资源信息。进而,算力请求设备100将接收的多个算力提供设备中的至少一个可用算力提供设备发送的算力资源信息作为确定目标算力提供设备的依据之一。
本实施例中,将对算力提供设备200的剩余算力资源信息与算力请求设备100的算力需求信息的对比过程设置在对应的算力提供设备200中进行,即在算力提供设备200方面实现对可用算力提供设备的筛选。如此,可以将多个数据的对比过程均摊至多个终端设备中进行,进而可以极大的减少算力请求设备100接收的数据量和在后续确定目标算力提供设备时所需处理的数据量,有效的节省了算力请求设备100有限的算力资源,在降低了运算成本和数据通信成本的同时,也极大的提升了数据处理效率。
进一步的,算力请求设备100可通过多种协议(如TCP/IP协议、BLE协议、Thread协议等)与算力提供设备200建立连接,发送算力请求和请求算力提供设备的剩余算力资源信息。提供设备200能够根据自身的硬件支持情况选择合适的协议启动服务,为算力的跨平台流动提供了数据通信基础。当算力请求设备100与目标算力提供设备建立连接后,算力请求设备100就可使用目标算力提供设备提供的算力服务。同时应当理解的是,本技术使得算力请求设备100能够简便的连接周边设备,适用于在例如家庭场景下IOT设备与算力请求设备的连接,从而利用家庭设备的闲置资源算力。
在步骤S12中,利用算力资源选择算法在至少一个可用算力提供设备中确定目标算力提供设备。
算力请求设备100通过采用算力资源选择算法,可以选择一个最优设备作为最终的目标算力提供设备。具体的,当不考虑使用目标算力提供设备时所需花费的成本时,参考图2所示的流程来确定目标算力提供设备。如图2所示,该步骤S12进一步包括执行步骤S121、步骤S122和步骤S123。
具体的,在步骤S121中,为至少一个可用算力提供设备中每个可用算力提供设备配置参数。
在步骤S122中,根据配置的参数计算每个可用算力提供设备的算力资源质量。
在本发明的一个实施例中,当算力请求设备100接收到至少一个可用算力提供设备发送的算力资源信息后,会根据自身的待处理应用的类型为每个可用算力提供设备的算力资源信息中的不同资源类型配置权重参数。且进一步的,每个可用算力提供设备的算力资源信息中与待处理应用的类型相同的资源信息对应的权重大于与待处理应用的类型不相同的资源信息对应的权重。例如,对于一个内存消耗型的待处理应用,在为每个可用算力提供设备的算力资源信息中的例如CPU资源、GPU资源、内存资源、磁盘空间资源配置参数时,相应的内存资源所被配置的权重会大于其他的CPU资源、GPU资源和磁盘空间资源所被配置的权重,这样,能以更大容量的满足待处理应用的程序运行需求。
进一步的,根据配置的参数计算每个可用算力提供设备的算力资源质量包括:根据权重参数计算每个可用算力提供设备的各类型的全部或部分的剩余算力资源信息数值的加权和,以作为算力资源质量;或者根据权重参数计算每个可用算力提供设备的各类型的全部或部分的剩余算力资源信息占对应类型的算力资源信息的百分比的加权和,以作为算力资源质量。
示例性的,对于一个需要消耗300M内存的内存消耗型待处理应用,若当前存在三个算力提供设备,第一个设备剩余算力资源信息为CPU剩余算力0.5TOPS,内存剩余算力600M;第二个设备剩余算力资源信息为CPU剩余算力1TOPS,内存剩余算力400M;第三个设备剩余算力资源信息为CPU剩余算力1.5TOPS,内存剩余算力200M。则第三个设备将被判断为不符合应用运行需求。而第一个和第二个设备均满足程序运行需求,考虑到设备可能存在突发算力需求的情况,更倾向于选择内存剩余较多的第一个设备。当使用算力资源选择算法计算该第一个和第二个算力提供设备的算力资源质量时(假定该三个算力提供设备的其余类型的剩余算力资源信息相同),此时,可配置算力资源信息中的内存资源的权重为0.85,而GPU资源、CPU资源和磁盘空间资源的权重均为0.05,并且在计算算力资源质量时,可以将各类型的剩余算力资源信息的数值等比例调整至具有相同或相近的位值。例如,可以将前述600和400调整为0.6和0.4后再进行计算,以提高计算结果的合理性和可靠性。
在本发明的另一个实施例中,算力请求设备100还接收有多个算力提供设备中的至少一个可用算力提供设备发送的对应每个可用算力提供设备的硬件信息。此时,步骤S121中,为至少一个可用算力提供设备中每个可用算力提供设备配置的参数还包括:根据硬件信息为每个可用算力提供设备的算力资源信息中的不同资源类型配置增益参数。如此,可以考量算力提供设备的硬件性能对算力资源选择的影响,避免CPU、GPU、硬盘、内存等不同型号间巨大的性能差异对计算结果的影响。同样以内存为例,当前内存包括DDR1、DDR2、DDR3、DDR4、DDR5几种类型,后者往往比前者有超过50%的性能提升。那么对于剩余大小相同的内存,选择算力提供设备时倾向于排在后面的内存类型。
进一步地,该实施例中,根据配置的参数计算每个可用算力提供设备的算力资源质量包括:根据增益参数计算每个可用算力提供设备的各类型的标准化算力资源信息(标准化算力资源信息包括标准化已使用算力资源信息和标准化剩余算力资源信息);根据权重参数计算每个可用算力提供设备的各类型的全部或部分的标准化剩余算力资源信息数值的加权和,以作为算力资源质量;或者根据权重参数计算每个可用算力提供设备的各类型的全部或部分的标准化剩余算力资源信息占对应类型的标准化算力资源信息的百分比的加权和,以作为算力资源质量。
在本发明的再一个实施例中,算力请求设备100发送的算力请求还包括测试数据包,算力请求设备100基于该测试数据包测试并记录与多个算力提供设备中对应每个可用算力提供设备之间的网络传输速度,即网络传输时延。此时,步骤S121中,为至少一个可用算力提供设备中每个可用算力提供设备配置的参数还包括:根据记录的网络传输速度为每个可用算力提供设备配置通信参数,作为算力资源质量的评判标准之一。例如,在待选的可用算力提供设备的硬件性能、剩余算力大小相近的情况下,选择网络传输时延更小的设备。如此,能够减小算力调度时的数据传输时间,进而提高算力调度效率。
进一步地,该实施例中,根据配置的参数计算每个可用算力提供设备的算力资源质量包括:根据权重参数和增益参数计算每个可用算力提供设备的初始算力资源质量;计算每个可用算力提供设备的初始算力资源质量与通信参数的乘积,以作为算力资源质量。其中,根据权重参数和增益参数计算每个可用算力提供设备的初始算力资源质量包括:根据增益参数计算每个可用算力提供设备的各类型的标准化算力资源信息;根据权重参数计算每个可用算力提供设备的各类型的全部或部分的标准化剩余算力资源信息数值的加权和,以作为初始算力资源质量;或者根据权重参数计算每个可用算力提供设备的各类型的全部或部分的标准化剩余算力资源信息占对应类型的标准化算力资源信息的百分比的加权和,以作为初始算力资源质量。
计算算力资源质量时,可以计算每个可用算力提供设备的各类型的全部剩余算力资源信息的加权和,以充分利用设备的剩余算力,不造成算力资源的浪费;也可以保留一部分算力资源不纳入算力资源的计算,即仅计算每个可用算力提供设备的各类型的部分剩余算力资源信息的加权和,以保证设备能留有一部分剩余算力用于突发的算力需求,避免设备运行异常。以及,算力请求设备100接收到至少一个可用算力提供设备发送的算力资源信息可以是使用数值的方式和/或百分比的方式来描述,因此,在计算每个可用算力提供设备的算力资源质量时,应根据实际情况来合理选择计算算力资源质量所需的数据基础方式。例如,一台设备内存4G,已使用2G内存,剩余内存2G,剩余内存百分比为50%,而另一台设备内存1G,已使用256M内存,剩余内存768M,剩余内存百分比为75%。这种情况下认为前者算力资源更优,因此使用数值表示法记录算力资源信息更符合实际场景。
在步骤S123中,根据每个可用算力提供设备的算力资源质量确定目标算力提供设备。示例性的,可以比较计算获得的每个可用算力提供设备的算力资源质量,选取算力资源质量最大的算力提供设备作为目标算力提供设备。
可以理解的是,本发明实施例在计算获得每个可用算力提供设备的算力资源质量后,还可以采用其它的方式来根据每个可用算力提供设备的算力资源质量确定目标算力提供设备(即不一定非得是选取算力资源质量最大的算力提供设备),只要该方式能够综合考量至少一个可用算力提供设备的算力资源信息、硬件信息、网络传输速度、价格成本等因素即可。
例如,本发明实施例在确定出算力资源质量最大的算力提供设备后,还包括判断该算力提供设备的剩余算力资源信息中与待处理应用的类型相同的资源类型的剩余量与待处理应用所需的需求量之间的差值是否大于预设阈值,当其差值不大于预设阈值时,可提出该算力提供设备,并从剩余的可用算力提供设备中重新选取算力资源质量最大的算力提供设备重复该操作,直至选择出满足该差值要求的算力提供设备,将其作为目标算力提供设备。如此,可以避免剩余算力资源信息中与待处理应用的类型相同的资源类型的剩余量过小,但剩余算力资源信息中与待处理应用的类型不相同的资源类型的剩余量过大而导致计算获得的该算力提供设备的算力资源质量最大,却无突发算力需求应变能力的问题,进而使得算力资源选择算法能够确定最优、最合适的目标算力提供设备为当前的算力请求设备提供算力服务,有助于提高算力调度结果的可靠性。
当考虑使用目标算力提供设备时所需花费的成本时,参考图3所示的流程来确定目标算力提供设备。如图3所示,该步骤S12进一步包括执行步骤S121、步骤S122和步骤S124。其中,步骤S121和步骤S122的具体内容可参考前述对图2中的步骤S121和步骤S122的描述,此处不再赘述。
在步骤S124中,根据每个可用算力提供设备的算力资源质量和费用标准信息确定目标算力提供设备。如此,以将算力提供设备的使用价格作为目标算力提供设备的确定标准之一。
进一步的,算力请求设备100还接收有多个算力提供设备中的至少一个可用算力提供设备发送的对应每个可用算力提供设备的费用标准信息。示例性的,该费用标准信息可以为利用该算力提供设备时每积分(关于积分可参考后文描述)的价格花费。
示例性的,可以在算力请求设备100发送的请求信息中设置表明设备所有者的标识信息,算力提供设备200在接收到请求信息后,对该标识信息进行判断,当判定算力请求设备100与算力提供设备200自身同为一个所有者所有时,可返回为0的费用标准信息。而当判定算力请求设备100与算力提供设备200自身不是一个所有者所有时,可返回预先设定的费用标准信息。此种方式能够根据算力请求设备100的所有者和算力提供设备200的所有者返回不同的费用标准信息,在算力请求设备100的任何的至少一个可用算力提供设备的搜索方式中均可适用。
示例性的,在根据每个可用算力提供设备的算力资源质量和费用标准信息确定目标算力提供设备时,可以在低费用标准信息的至少一个可用算力提供设备中根据各可用算力提供设备的算力资源质量确定目标算力提供设备;也可以对费用标准信息进行范围划分,按照每个可用算力提供设备的费用标准信息所处的范围设置增益系数,计算每个可用算力提供设备的算力资源质量与该增益系数的乘积,根据乘积的大小确定目标算力提供设备。
通过算力资源选择算法确定目标算力提供设备,能够反映至少一个可用算力提供设备剩余算力资源的实时质量,有助于确定至少一个可用算力提供设备是否满足程序的运行条件。
在步骤S15中,将编译为特定格式的待处理应用发送至目标算力提供设备。
本发明实施例中,该特定格式例如为WASM(万维网汇编语言)格式。WASM(WebAssembly的缩写)是一个可移植、体积小、加载快并且兼容Web的二进制字节码格式,运行在一个沙箱化的执行环境中。同时,每个算力提供设备200在提供算力服务之前,都会在其设备内预先部署一个与该特定格式适配的运行环境作为该特定格式的待处理应用的执行环境。可以理解的是,本发明实施例中,当该特定格式为WASM格式时,与该特定格式适配的运行环境即为WASM运行环境(wasm Runtime)。因此,在确定了目标算力提供设备后,通过将待处理应用编译为WASM格式后传输至目标算力提供设备中进行执行,使得待处理的应用本身不需要考虑不同的操作系统(windows/linux/厂家定制系统等)和芯片架构(ARM/X86/RISC-V等)对程序运行的影响,只需保证目标算力提供设备中的wasm Runtime能够在当前设备的系统和架构下运行即可。
每个算力提供设备200中预先部署的与特定格式适配的运行环境可以在出厂时进行直接部署,也可以在该算力提供设备在注册成为算力服务提供设备后通过下载的方式进行部署。通过算力提供设备中预先部署的与该特定格式适配的运行环境,即可忽略不同设备的软硬件差异实现特定格式的待处理应用的跨平台执行,实现算力的跨平台流动。
进一步地,在步骤S12和步骤S15之间,还包括执行步骤S13和步骤S14。具体的,在步骤S13中,向目标算力提供设备发送确认信息和第一验证信息。
在步骤S14中,在确认信息和第一验证信息通过后,接收由目标算力提供设备发送的第二验证信息,并检测第二验证信息是否满足要求。
当算力请求设备100检测到目标算力提供设备发送的第二验证信息满足要求时,则执行步骤S15,将编译为特定格式的待处理应用发送至目标算力提供设备,反之,则在剩余的可用算力提供设备中重新确定目标算力提供设备,并发送提示信息。此时,如果该目标算力提供设备已接入公共网络,则将该目标算力提供设备从可用设备列表移入设备黑名单。
算力请求设备100通过发送确认信息来与目标算力提供设备建立连接,通过发送第一验证信息和接收并检测第二验证信息来实现与目标算力提供设备之间的相互合法性验证,避免非法设备接入,保证系统安全。
在步骤S16中,接收由目标算力提供设备反馈的待处理应用的执行结果。
本实施例中,在步骤S15之后,除了包括执行步骤S16以接收由目标算力提供设备反馈的待处理应用的执行结果之外,还包括:判断在预设时长内是否接收到目标算力提供设备反馈的待处理应用的执行结果,若在预设时长内没有接收到目标算力提供设备反馈的待处理应用的执行结果,则利用算力资源选择算法在剩余的可用算力提供设备中重新确定目标算力提供设备。如此,可以在待处理应用于目标算力提供设备的运行过程中,对目标算力提供设备可能存在的断电、死机等突发情况做出判断,有助于保证算力调度过程的顺利进行。
进一步的,在步骤S16之后还包括:向目标算力提供设备发送应用卸载指令。示例性的,以视频播放APP为例,如果算力请求设备100已经在一个共享设备上运行了APP,当不再需要观看视频时,即可发送卸载指令通知目标算力提供设备卸载运行的程序,释放设备算力资源。
进一步的,在本发明的一个可能的实施例中,算力请求设备100在接收多个算力提供设备中的至少一个可用算力提供设备发送的算力资源信息时,还被设置为记录至少一个可用算力提供设备的数量,并在记录的至少一个可用算力提供设备的数量达到第一阈值时,暂停对可用算力提供设备的搜索,即暂停发送算力请求、暂停接收算力资源信息、或仍接收算力资源信息,但暂停处理。
而在本发明的另一个可能的实施例中,算力请求设备100后续在根据配置的参数计算每个可用算力提供设备的算力资源质量后,还被设置为判断计算获得的算力资源质量是否满足第二阈值,若是,则暂停对可用算力提供设备的搜索,即暂停发送算力请求、暂停接收算力资源信息、或仍接收算力资源信息,但暂停处理。如此,在算力请求设备100进行不确定范围的设备搜索时,能够对算力请求设备100的搜索过程和范围进行量化,避免无用的搜索对算力请求设备100的资源的浪费,有助于减少算力调度时间,提升算力调度效率和算力调度结果的准确性。
需要说明的是,本公开中,算力请求设备100与算力提供设备200之间的数据传输(包括但不限于算力请求、算力资源信息、验证信息、执行结果等数据的传输)形式可以使用json格式或者url格式。其中,出于后续扩展的目的,优先选择使用json格式进行数据传输。
继续参考图1,当该算力调度方法应用于算力提供设备200中时,包括执行步骤S20至步骤S26。
在步骤S20中,接收由算力请求设备发送的算力请求。所述算力请求包括所述算力请求设备的算力需求信息;
当算力请求设备100需要一定的算力资源来执行某些待处理任务时,可以根据自身所需的算力需求向多个算力提供设备200发送算力请求,以在一定范围内搜索可用的算力提供设备。进而,每个算力提供设备200均会启动一个监听服务,以实时的接收算力请求设备100发送的算力请求。以及,算力请求设备100发送的算力请求至少包括有算力请求设备100中的待处理应用在运行时所需的算力需求信息。
在步骤S21中,基于算力需求信息判断自身的剩余算力资源是否满足算力请求设备的算力需求,若是,则向算力请求设备发送自身的算力资源信息。
本实施例中,每个算力提供设备200均会周期性的进行自检,即每间隔固定时间进行一次自身的算力资源信息检测,包括当前自身的剩余算力资源信息和已使用的算力资源信息,并在检测完成后记录检测结果。
应当理解的是,由于自检程序同样占用系统资源,因此每个算力提供设备200的算力自检测周期应进行合理设置,若检测太过频繁,则对系统带来性能消耗,而检测频率过低,又会导致剩余算力资源信息与当前实际算力消耗情况不符。示例性的,每个算力提供设备200的算力自检测周期可设置为每间隔10分钟进行一次检测。当然,该数值仅是示例性的,实际中也可根据具体情况设置为其它的合理数值。
进一步的,算力提供设备200除了周期性自检自身当前的算力资源信息外,同时也扫描收集自身的硬件信息作为算力资源质量的评判依据。且可以理解的是,相对于算力资源信息的自检周期,算力提供设备200对自身硬件信息的扫描周期可以设置的更长。
本公开中,当一个算力提供设备200基于算力请求设备100发送的算力请求判定自身的剩余算力资源可以满足算力请求设备100的算力需求时,该算力提供设备200即可作为一个可用的算力提供设备,并可进一步的将自身的最新记录的算力资源信息发送至算力请求设备100,以作为其自身算力资源质量的评判依据之一。
进一步的,当一个算力提供设备200为一个可用算力提供设备时,还可进一步的将自身的最新记录的硬件信息发送至算力请求设备100,以作为其自身算力资源质量的另一评判依据。
进一步的,当一个算力提供设备200为一个可用算力提供设备时,还可进一步的将自身的费用标准信息发送至算力请求设备100,以作为其自身算力资源质量的另一评判依据。
在步骤S24中,在被确定为目标算力提供设备后,接收由算力请求设备发送的特定格式的待处理应用。
当一个算力提供设备200被确定为目标算力提供设备后,还包括执行步骤S22和步骤S23。具体的,在步骤S22中,接收算力请求设备发送的确认信息和第一验证信息。
此时,步骤S22也可理解为,当一个算力提供设备200接收到算力请求设备100发送的确认信息和第一验证信息后,表明该算力提供设备200被该算力请求设备100确定为了目标算力提供设备。
在步骤S23中,检测确认信息和第一验证信息是否满足要求,若是,则向目标算力请求设备发送的第二验证信息。
当算力提供设备200检测到算力请求设备100发送的第一验证信息满足要求时,表明该算力请求设备100为合法接入设备,此时该算力提供设备200可基于确认信息与算力请求设备100建立连接,并发送第二验证信息至算力请求设备100,以请求算力请求设备100对自身的合法性进行验证。当算力请求设备100对算力提供设备200的合法性验证通过后,该算力提供设备200即可执行步骤S24,接收被编译为特定格式的待处理应用。
算力提供设备200通过接收确认信息来与算力请求设备100建立连接,通过接收并检测第一验证信息和发送第二验证信息来实现与目标算力提供设备之间的相互合法性验证,避免非法设备接入,保证系统安全。
在步骤S25中,基于预先部署的与特定格式适配的运行环境运行待处理应用。
在步骤S26中,向所述算力请求设备反馈待处理应用的执行结果。
步骤S25进一步包括:在预先部署的与特定格式适配的运行环境中解析待处理应用,并将其部署于与特定格式适配的运行环境中;运行待处理应用,记录应用输出,并获取待处理应用的当前运行状态;以及在接收到由算力请求设备发送的应用卸载指令后,基于应用卸载指令卸载待处理应用。
每个算力提供设备200中预先部署的与特定格式适配的运行环境可以在出厂时进行直接部署,也可以在该算力提供设备在注册成为算力服务提供设备后通过下载的方式进行部署。通过算力提供设备中预先部署的与该特定格式适配的运行环境,即可无视不同设备的软硬件差异实现特定格式的待处理应用的跨平台执行,实现算力的跨平台流动。
本发明实施例中,该特定格式例如为WASM格式。且可以理解的是,本发明实施例中,当该特定格式为WASM格式时,与该特定格式适配的运行环境即为WASM运行环境。
在待处理应用的运行过程中,通过记录应用的输出和当前的运行状态,有助于后续向算力请求设备100反馈待处理应用的执行结果。同时,当需要将待处理应用从当前算力提供设备迁移至另一个算力提供设备时,能够使得待处理应用在另一个算力提供设备上继续执行未完成的任务,而不需要重新执行已完成的任务,有助于节省算力资源和降低费用支出。
基于应用卸载指令卸载待处理应用,可以实现算力资源的释放,进而提高算力资源的利用率。
进一步的,运行待处理应用之后,还包括:记录待处理应用的运行时间以及消耗的算力资源,并基于运行时间和消耗的算力资源计算积分。以及向算力请求设备100反馈的待处理应用的执行结果中包括:待处理应用的运行结果和积分。可以理解的是,该积分可作为目标算力提供设备的选择权重以及报酬(例如,可设置报酬=积分*费用标准),有利于实现设备闲置算力的租借。
本发明实施例还公开了一种算力调度系统,用于实现前述的算力调度方法。参考图4,本发明实施例所公开的算力调度系统包括:算力请求设备100和多个算力提供设备200。基于附图的简洁性考虑,图4中仅示出了一个算力提供设备200,但可以理解的是,多个算力提供设备200中的每个算力提供设备200的具体结构均是相同或类似的。其中,算力请求设备100用于根据自身的待处理应用的算力需求及算力资源选择算法从多个算力提供设备200中确定目标算力提供设备,并在确定目标算力提供设备后,将编译为特定格式的待处理应用发送至目标算力提供设备。多个算力提供设备200中的每个算力提供设备200中均预先部署有与特定格式适配的运行环境,每个算力提供设备200均用于在被确定为目标算力提供设备后,基于预先部署的与特定格式适配的运行环境执行所接收的特定格式的待处理应用,并向算力请求设备反馈待处理应用的执行结果。
本发明实施例中,该特定格式例如为WASM格式。且可以理解的是,本发明实施例中,当该特定格式为WASM格式时,与该特定格式适配的运行环境即为WASM运行环境。
进一步的,算力请求设备100包括:第一通信模块110、设备选择模块120和第一检测模块130。
其中,第一通信模块110用于实现与多个算力提供设备之间的数据通信,包括向多个算力提供设备200发送算力请求,以及接收并记录多个算力提供设备中至少一个可用算力提供设备中每个可用算力提供设备返回的自身信息和待处理应用的执行结果。进一步的,该第一通信模块110还用于获取算力请求设备100与每个可用算力提供设备之间的网络传输速度。
设备选择模块120用于根据待处理应用的算力需求、算力资源选择算法以及至少一个可用算力提供设备中每个可用算力提供设备返回的自身信息和网络传输速度对每个算力提供设备200的算力资源质量进行综合评估,并根据评估结果从至少一个可用算力提供设备中确定目标算力提供设备。
进一步的,参考图5,设备选择模块120包括:参数配置单元121、算力资源质量计算单元122、选择单元123和成本计算单元124。其中,参数配置单元121用于为至少一个可用算力提供设备中每个可用算力提供设备配置参数。算力资源质量计算单元122用于根据参数、至少一个可用算力提供设备中每个可用算力提供设备的自身信息和网络传输速度计算每个算力提供设备的算力资源质量。选择单元123用于根据算力资源质量计算单元122的计算结果确定目标算力提供设备。成本计算单元124用于根据每个可用算力提供设备的费用标准信息和算力资源质量确定目标算力提供设备。
第一检测模块130用于根据所确定的目标算力提供设备发送的第二验证信息以检测目标算力提供设备的合法性。
本发明实施例中,每个算力提供设备200均包括:算力资源自检模块210、第二通信模块220、第二检测单元230、执行模块240和积分模块250。
其中,算力资源自检模块210用于每间隔固定时间进行一次自身的算力资源信息检测,并在检测完成后记录检测结果。
进一步的,参考图6,算力资源自检模块210包括:算力资源检测单元211和硬件信息提取单元212。
其中,算力资源检测单元211用于每间隔固定时间检测自身的算力资源信息,包括已使用算力资源信息和剩余算力资源信息。
硬件信息提取单元212用于每间隔固定时间扫描自身的硬件信息,以获取相应的性能参数。
第二通信模块220用于实现与算力请求设备之间的数据通信,包括在自身的剩余算力资源满足算力需求的情况下向算力请求设备100发送由算力资源自检模块210最新记录的自身信息和待处理应用的执行结果,以及接收算力请求设备发送的算力请求。
第二检测单元230用于根据算力请求设备100发送的第一验证信息检测算力请求设备100的合法性。
执行模块240用于基于预先部署的与特定格式适配的运行环境解析并执行所接收的特定格式的待处理应用,并记录待处理应用的执行结果。
进一步的,参考图7,执行模块240包括:应用安装单元241、应用运行状态记录单元242、应用卸载单元243和应用迁移单元244。
其中,应用安装单元241用于在预先部署的与特定格式适配的运行环境中解析待处理应用,并将其转化为当前算力提供设备200可执行的二进制代码后部署于该运行环境中。
应用运行状态记录单元242用于在预先部署的与特定格式适配的运行环境中运行待处理应用,记录应用输出,并获取待处理应用的当前运行状态。
应用卸载单元243用于在接收到由算力请求设备100发送的应用卸载指令后,基于应用卸载指令卸载待处理应用。
应用迁移单元244用于根据应用运行状态记录单元242获取的待处理应用的当前运行状态将待处理应用迁移到其他的可用算力提供设备。
进一步地,每个算力提供设备200均还包括:积分模块250。该积分模块250用于记录待处理应用的运行时间以及消耗的算力资源,并基于所记录的运行时间和消耗的算力资源计算积分。进而,执行模块240所返回的待处理应用的执行结果中包括:积分模块250计算的积分和应用运行状态记录单元242记录的应用输出。
具体实施时,算力调度系统中的各个模块/单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现。同时,以上描述的算力调度系统中的各个模块/单元的具体实施可参见前述的算力调度方法实施例,在此不再赘述。
本发明实施例还提供了一种电子设备300,如图8所示,包括存储器320、处理器310及存储在存储器320上并可在处理器310上运行的程序,该程序被处理器310执行时可实现上述应用于算力请求设备中的算力调度方法或应用于算力提供设备中的算力调度方法中各实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读的可读存储介质中,并由处理器进行加载和执行。为此,本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序或指令,该计算机程序或指令被处理器执行时可实现上述应用于算力请求设备中的算力调度方法或应用于算力提供设备中的算力调度方法中各实施例的各个过程。其中,计算机可读存储介质,如U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
由于该可读存储介质中所存储的指令,可以执行本发明实施例所提供的任一种算力调度方法中的步骤,因此,可以实现本发明实施例所提供的任一种算力调度方法所能实现的有益效果,详见前面的实施例,在此不再赘述。以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
综上,本发明的有益效果至少包括:
1、本发明在算力的跨平台调用中使用了WebAssembly技术,在算力请求设备确定目标算力提供设备后,通过将待处理的应用编译为特定格式例如WASM(WebAssembly的简称,万维网汇编语言)格式后再发送给目标算力提供设备,并在目标算力提供设备中预先部署的与特定格式适配的运行环境例如为WASM运行环境(WASM Runtime)中解析并执行该待处理应用,使得待处理应用在不同的系统(windows/linux/zephyr等)以及架构(x86/ARM/XTENSA)下均能有效的运行,解决了算力的跨平台流动、以及应用代码的跨平台部署和执行问题。
2、算力提供设备通过周期性的检查自身的剩余算力资源信息,使得网络设备的闲置算力资源能够得到有效利用。同时,算力请求设备中的算力资源选择算法,能够综合的考虑算力提供设备的剩余算力比例、设备性能、网络传输时延、以及使用成本等因素对计算任务的影响,在保证不影响算力提供设备的自身任务执行的前提下提供算力服务,提高了资源利用率。
3、在进行算力调度之前,算力请求设备与算力提供设备均需通过相应的合法性验证,有助于提高系统的安全性。
需要说明的是,本说明书中在对各个实施例进行描述时,均重点说明的是与其他实施例的不同之处,而对于各个实施例之间相同或相似的部分可互相参考进行理解。对于系统实施例而言,由于其与方法实施例基本相似,因此相关之处可参考对方法实施例部分的说明。
此外,需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行,某些步骤可以并行或彼此独立地执行。对本领域的普通技术人员而言,能够理解本发明的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。
最后应说明的是:显然,上述实施例仅仅是为清楚地说明本发明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引申出的显而易见的变化或变动仍处于本发明的保护范围之中。