CN111625374B - 一种任务处理方法、终端和存储介质 - Google Patents
一种任务处理方法、终端和存储介质 Download PDFInfo
- Publication number
- CN111625374B CN111625374B CN202010412582.XA CN202010412582A CN111625374B CN 111625374 B CN111625374 B CN 111625374B CN 202010412582 A CN202010412582 A CN 202010412582A CN 111625374 B CN111625374 B CN 111625374B
- Authority
- CN
- China
- Prior art keywords
- container
- instruction
- target
- configuration file
- port
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本公开提供一种任务处理方法、终端和存储介质,涉及计算机技术领域。所述任务处理方法应用于发起容器,从集群端口中确定所述目标标识对应的目标端口,其中所述集群端口中的目标标识是执行容器在执行启动指令时根据第二预设配置文件对集群端口的管理系统中的初始标识进行修改得到的,所述第二预设配置文件是负载管理控制器创建所述执行容器时生成的,所述第二预设配置文件携带有所述目标标识,所述启动指令为所述负载管理控制器接收的创建指令中携带的;通过所述目标端口向所述执行容器发送运行指令,以使所述执行容器基于所述运行指令运行跨语言通讯协议任务。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种任务处理方法、终端和存储介质。
背景技术
随着计算机技术的迅速发展,开源式容器编排系统(比如为kubernetes系统,简称k8s)的应用也越来越广泛,kubernetes是一个功能强大的容器编排系统,在kubernetes系统中,可以通过计算机程序执行跨语言通讯协议(message passing interface,简称mpi),进而实现人工智能(artificial intelligence,简称ai)。
相关技术中,是采用跨语言通讯协议操作符(mpi-operator)程序进行执行mpi任务,mpi分为执行容器(worker)和发起容器(launcher)这两种类型的工作负荷,具体的创建过程是通过通讯创建模块和负载管理控制器(statefulset)创建worker容器,所有worker创建完成后,通过通讯创建模块和工作(job)模块创建launcher,launcher和worker之间基于通讯创建模块配置的通信规则,通过通讯模块进行通信。
然而,launcher需要根据通讯创建模块配置的通讯规则,将指令发送给通讯模块,通讯模块需要通过解析服务模块,解析该指令对应的worker的相关信息,进而向对应的worker发送该指令,上述通信过程耗时较长,造成在网络通信上损失性能。
发明内容
本发明提供一种任务处理方法、终端和存储介质,用以解决现有技术中launcher和worker之间进行通信的过程耗时长,造成在网络通信上损失性能的问题。
第一方面,本公开实施例提供了一种任务处理方法,应用于开源式容器编排系统中的launcher,该方法包括:
根据第一预设配置文件,确定与所述开源式容器编排系统中的worker进行通信的端口的目标标识,其中所述第一预设配置文件是所述开源式容器编排系统的job模块创建launcher时生成的,所述第一预设配置文件携带有所述目标标识;
从集群端口中确定所述目标标识对应的目标端口,其中所述集群端口中的目标标识是所述worker在执行启动指令时根据第二预设配置文件对集群端口的管理系统中的初始标识进行修改得到的,所述第二预设配置文件是所述开源式容器编排系统的statefulset创建所述worker时生成的,所述第二预设配置文件携带有所述目标标识,所述启动指令为所述statefulset接收的创建指令中携带的;
通过所述目标端口向所述worker发送运行指令,以使所述worker基于所述运行指令运行mpi任务。
本公开实施例提供的任务处理方法,launcher从携带有目标标识的第一预设配置文件中确定与worker进行通信的端口的目标标识,该目标标识是worker根据第二预设配置文件对初始标识进行修改得到的,worker能够根据目标标识监听该目标端口,因此launcher从集群端口中确定该目标标识对应的目标端口,直接通过该目标端口向worker发送运行指令,在发送指令的过程中不需要通过通讯模块进行通信,节约通信过程所需的时间,从而提升了网络性能。
在一种可能的实现方式中,在所述通过所述目标端口向所述worker发送运行指令之前,还包括:
确定worker创建过程的状态为已完成,其中在所述worker创建过程中根据获取的worker的运行状态确定创建过程的状态。
上述方法中,通过向worker发送运行指令之前,确定worker已经创建完成,避免了在worker未创建完成时发送运行指令造成mpi任务运行失败。同时上述创建过程的状态是通过launcher在worker创建过程中根据获取的worker的运行状态确定的,launcher的创建过程与worker创建过程可以同时进行,无需等待worker创建完成后再创建launcher,因此节省了创建时间,使整个处理过程更加高效。
在一种可能的实现方式中,在所述通过所述目标端口向所述worker发送运行指令之前,还包括:
根据mpi的实现方式和执行容器的互联网协议(worker internet protocol,简称worker ip)地址,生成所述运行指令;
其中,所述运行指令中携带有与mpi的实现方式对应的任务,所述worker ip是在所述worker创建过程中获取的。
上述方法中,运行指令中携带有与mpi的实现方式对应的任务,worker收到该指令后可以运行mpi的实现方式对应的任务,从而可以兼容多种mpi的实现方式,根据worker ip生成运行指令,可以向对应的worker发送运行指令。
在一种可能的实现方式中,所述根据mpi的实现方式和worker ip,生成所述运行指令,包括:
将所述第一预设配置文件中的第一验证信息置于所述运行指令中,以使所述worker对所述第一验证信息验证通过后基于所述运行指令运行所述mpi任务。
上述方法中,通过将第一预设配置文件中的第一验证信息置于运行指令中,无需预设程序生成验证的相关信息,并通过预设程序将验证的相关信息挂到launcher,因此简化了预设程序。
在一种可能的实现方式中,若所述mpi的实现方式为开源跨语言通讯协议(openmpi),则所述方法还包括:
根据所述worker所在的网卡,确定所述网卡的参数;
所述通过所述目标标识对应的目标端口向所述worker发送运行指令,包括:
根据所述网卡的参数,通过所述网卡上所述目标标识对应的目标端口向所述worker发送运行指令。
上述方法中,针对openmpi这种实现方式,通过launcher确定worker所在的网卡的参数,在launcher向worker发送运行指令时,可以根据网卡的参数先确定出向哪个网卡上的端口发送,从而使launcher能够更加方便、准确地将运行指令发送给worker,通讯过程更加快捷。
第二方面,本公开实施例提供了一种任务处理方法,应用于开源式容器编排系统中的worker,所述方法包括:
在执行启动指令时,从集群端口中确定目标端口,并根据第二预设配置文件将集群端口的管理系统中的目标端口的初始标识修改为目标标识,所述第二预设配置文件是开源式容器编排系统的statefulset创建所述worker时生成的,所述第二预设配置文件携带有所述目标标识,所述启动指令为所述statefulset接收的创建指令中携带的;
基于所述目标标识监听所述目标端口,以获取开源式容器编排系统中的launcher发送的运行指令,并基于所述运行指令运行mpi任务,其中,所述运行指令为所述launcher根据第一预设配置文件,确定与所述worker进行通信的端口的目标标识,并通过所述目标标识对应的所述目标端口向所述worker发送的。
本公开实施例提供的任务处理方法,worker在执行启动指令时,从携带有目标标识的第二预设配置文件中确定与目标标识,并将集群端口确定目标端口,将其初始标识修改为目标标识,launcher从携带有目标标识的第一预设配置文件中确定与worker进行通信的端口的目标标识,直接通过该目标标识对应的目标端口向worker发送运行指令,worker通过该目标标识监听该目标端口获取运行指令,并基于所述运行指令运行mpi任务,在launcher向worker发送运行指令的过程中不需要通过通讯模块进行通信,节约通信过程所需的时间,从而提升了网络性能。
在一种可能的实现方式中,在所述从集群端口中确定目标端口之前,还包括:
确定所述statefulset创建所述worker时配置主机网络hostnetwork。
上述方法中,通过确定statefulset创建worker的时配置了hostnetwork,worker基于该hostnetwork,可以确定出需要通过实际的端口与launcher进行通讯。
在一种可能的实现方式中,所述运行指令中携带有与所述mpi的实现方式对应的任务;
所述基于所述运行指令运行mpi任务,包括:
基于所述运行指令,运行所述mpi的实现方式对应的任务。
上述方法中,运行指令中携带有与mpi的实现方式对应的任务,worker收到该指令后可以运行mpi的实现方式对应的任务,从而可以兼容多种mpi的实现方式。
在一种可能的实现方式中,所述运行指令中还携带有第一验证信息,所述第一验证信息是所述launcher将所述第一预设配置文件中的第一验证信息置于所述运行指令中的,所述方法还包括:
根据所述第二预设配置文件中的第二验证信息,对所述第一验证信息进行验证;
对所述第一验证信息验证通过后,基于所述运行指令运行mpi任务。
上述方法中,launcher将第一预设配置文件中的第一验证信息置于运行指令中,worker根据第二预设配置文件中的第二验证信息,对第一验证信息进行验证,无需预设程序生成验证信息,并将验证信息挂到launcher和worker,因此简化了预设程序。
第三方面,本公开实施例提供了一种任务处理方法,应用于开源式容器编排系统,所述方法包括:
通过job模块创建launcher的过程中为所述launcher配置第一预设配置文件,所述第一预设配置文件携带有目标标识,以使所述launcher根据所述目标标识确定与所述worker之间通信使用的目标端口;以及
通过statefulset创建worker的过程中为所述worker配置第二预设配置文件和启动指令,所述第二预设配置文件携带有目标标识,以使所述worker在执行所述启动指令时基于所述目标标识对与所述launcher之间通信使用的目标端口进行设置。
本公开实施例提供的任务处理方法,通过job模块创建launcher的过程中为launcher配置携带有目标标识的第一预设配置文件,从而使launcher确定与worker进行通信的端口的目标标识,直接通过该目标端口向worker发送运行指令;通过statefulset创建worker的过程中为worker配置携带有目标标识的第二预设配置文件和启动指令,从而使worker在执行所述启动指令时,基于该目标标识对与launcher之间通信使用的目标端口进行设置,进而worker能够根据目标标识监听该目标端口,获得launcher发送的运行指令,在发送指令的过程中不需要通过通讯模块进行通信,节约通信过程所需的时间,从而提升了网络性能。
在一种可能的实现方式中,所述job模块接收的创建指令中携带有mpi的实现方式,所述方法还包括:
通过所述job模块创建所述launcher的过程中为所述launcher配置所述mpi的实现方式,以使所述launcher根据所述mpi的实现方式生成运行指令。
上述方法中,通过job模块创建所述launcher的过程中为launcher配置mpi的实现方式,使launcher根据mpi的实现方式生成运行指令,即运行指令中携带有与mpi的实现方式对应的任务,进而使worker收到该指令后可以运行mpi的实现方式对应的任务,从而可以兼容多种mpi的实现方式。
在一种可能的实现方式中,所述方法还包括:
通过所述statefulset创建所述worker的过程中为所述worker配置hostnetwork。
上述方法中,通过statefulset创建worker的过程中为worker配置hostnetwork,worker基于该hostnetwork,可以确定出需要通过实际的端口与launcher进行通讯。
在一种可能的实现方式中,所述方法还包括:
同时通过所述job模块创建launcher过程以及通过所述statefulset创建worker过程。
上述方法中,通过job模块创建launcher过程,以及通过statefulset创建worker过程同时进行,无需等待worker创建完成后再创建launcher,因此节省了创建时间,使整个处理过程更加高效。
第四方面,本公开实施例提供了一种任务处理装置,应用于开源式容器编排系统中的launcher,该装置包括:
确定单元,用于根据第一预设配置文件,确定与开源式容器编排系统中的worker进行通信的端口的目标标识,其中所述第一预设配置文件是开源式容器编排系统的job模块创建launcher时生成的,所述第一预设配置文件携带有所述目标标识;
所述确定单元,还用于从集群端口中确定所述目标标识对应的目标端口,其中所述集群端口中的目标标识是所述worker在执行启动指令时根据第二预设配置文件对集群端口的管理系统中的初始标识进行修改得到的,所述第二预设配置文件是开源式容器编排系统的statefulset创建所述worker时生成的,所述第二预设配置文件携带有所述目标标识,所述启动指令为所述statefulset接收的创建指令中携带的;
运行指令发送单元,用于通过所述目标端口向所述worker发送运行指令,以使所述worker基于所述运行指令运行mpi任务。
在一种可能的实现方式中,所述确定单元,还用于:
确定worker创建过程的状态为已完成,其中在所述worker创建过程中根据获取的worker的运行状态确定创建过程的状态。
在一种可能的实现方式中,所述运行指令发送单元,还用于:
根据mpi的实现方式和worker ip,生成所述运行指令;
其中,所述运行指令中携带有与mpi的实现方式对应的任务,所述worker ip是在所述worker创建过程中获取的。
在一种可能的实现方式中,所述运行指令发送单元根据mpi的实现方式和workerip,生成所述运行指令,包括:
将所述第一预设配置文件中的第一验证信息置于所述运行指令中,以使所述worker对所述第一验证信息验证通过后基于所述运行指令运行所述mpi任务。
在一种可能的实现方式中,若所述mpi的实现方式为openmpi,则所述确定单元还用于:根据所述worker所在的网卡,确定所述网卡的参数;
所述运行指令发送单元通过所述目标标识对应的目标端口向所述worker发送运行指令,包括:
根据所述网卡的参数,通过所述网卡上所述目标标识对应的目标端口向所述worker发送运行指令。
第五方面,本公开实施例提供了一种任务处理装置,应用于开源式容器编排系统中的worker,所述装置包括:
端口标识修改单元,用于在执行启动指令时,从集群端口中确定目标端口,并根据第二预设配置文件将集群端口的管理系统中的目标端口的初始标识修改为目标标识,所述第二预设配置文件是开源式容器编排系统的statefulset创建所述worker时生成的,所述第二预设配置文件携带有所述目标标识,所述启动指令为所述statefulset接收的创建指令中携带的;
运行单元,用于基于所述目标标识监听所述目标端口,以获取开源式容器编排系统中的launcher发送的运行指令,并基于所述运行指令运行mpi任务,其中,所述运行指令为所述launcher根据第一预设配置文件,确定与所述worker进行通信的端口的目标标识,并通过所述目标标识对应的所述目标端口向所述worker发送的。
在一种可能的实现方式中,所述装置还包括:
确定单元,用于确定所述statefulset创建所述worker时配置hostnetwork。
在一种可能的实现方式中,所述运行指令中携带有与所述mpi的实现方式对应的任务;
所述运行单元基于所述运行指令运行mpi任务,包括:
基于所述运行指令,运行所述mpi的实现方式对应的任务。
在一种可能的实现方式中,所述运行指令中还携带有第一验证信息,所述第一验证信息是所述launcher将所述第一预设配置文件中的第一验证信息置于所述运行指令中的,所述运行单元还用于:
根据所述第二预设配置文件中的第二验证信息,对所述第一验证信息进行验证;
对所述第一验证信息验证通过后,基于所述运行指令运行mpi任务。
第六方面,本公开实施例提供了一种任务处理装置,应用于开源式容器编排系统,所述装置包括:
job模块,用于在创建launcher的过程中为所述launcher配置第一预设配置文件,以使所述launcher根据所述目标标识确定与所述worker之间通信使用的目标端口;以及
statefulset,用于在创建worker的过程中为所述worker配置第二预设配置文件和启动指令,以使所述worker在执行所述启动指令时对与所述launcher之间通信使用的目标端口进行设置。
在一种可能的实现方式中,所述job模块接收的创建指令中携带有mpi的实现方式,所述job模块还用于:
在创建所述launcher的过程中为所述launcher配置所述mpi的实现方式,以使所述launcher根据所述mpi的实现方式生成运行指令。
在一种可能的实现方式中,所述statefulset还用于:
在创建所述worker的过程中为所述worker配置hostnetwork。
在一种可能的实现方式中,所述job模块和所述statefulset还用于:
同时创建launcher过程以及创建worker过程。
第七方面,本公开实施例提供了一种终端,包括一个或多个处理器,以及用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如下步骤:
根据第一预设配置文件,确定与worker进行通信的端口的目标标识,其中所述第一预设配置文件是job模块创建launcher时生成的,所述第一预设配置文件携带有所述目标标识;
从集群端口中确定所述目标标识对应的目标端口,其中所述集群端口中的目标标识是所述worker在执行启动指令时根据第二预设配置文件对集群端口的管理系统中的初始标识进行修改得到的,所述第二预设配置文件是statefulset创建所述worker时生成的,所述第二预设配置文件携带有所述目标标识,所述启动指令为所述statefulset接收的创建指令中携带的;
通过所述目标端口向所述worker发送运行指令,以使所述worker基于所述运行指令运行mpi任务。
在一种可能的实现方式中,所述处理器还执行:
确定worker创建过程的状态为已完成,其中在所述worker创建过程中根据获取的worker的运行状态确定创建过程的状态。
在一种可能的实现方式中,所述处理器还执行:
根据mpi的实现方式和worker ip,生成所述运行指令;
其中,所述运行指令中携带有与mpi的实现方式对应的任务,所述worker ip是在所述worker创建过程中获取的。
在一种可能的实现方式中,所述处理器具体执行:
将所述第一预设配置文件中的第一验证信息置于所述运行指令中,以使所述worker对所述第一验证信息验证通过后基于所述运行指令运行所述mpi任务。
在一种可能的实现方式中,若所述mpi的实现方式为openmpi,则所述处理器还执行:
根据所述worker所在的网卡,确定所述网卡的参数;
所述通过所述目标标识对应的目标端口向所述worker发送运行指令,包括:
根据所述网卡的参数,通过所述网卡上所述目标标识对应的目标端口向所述worker发送运行指令。
第八方面,本公开实施例提供了一种终端,包括一个或多个处理器,以及用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如下步骤:
在执行启动指令时,从集群端口中确定目标端口,并根据第二预设配置文件将集群端口的管理系统中的目标端口的初始标识修改为目标标识,所述第二预设配置文件是statefulset创建所述worker时生成的,所述第二预设配置文件携带有所述目标标识,所述启动指令为所述statefulset接收的创建指令中携带的;
基于所述目标标识监听所述目标端口,以获取launcher发送的运行指令,并基于所述运行指令运行mpi任务,其中,所述运行指令为所述launcher根据第一预设配置文件,确定与所述worker进行通信的端口的目标标识,并通过所述目标标识对应的所述目标端口向所述worker发送的。
在一种可能的实现方式中,所述处理器还执行:
确定所述statefulset创建所述worker时配置hostnetwork。
在一种可能的实现方式中,所述运行指令中携带有与所述mpi的实现方式对应的任务所述处理器具体执行:
基于所述运行指令,运行所述mpi的实现方式对应的任务。
在一种可能的实现方式中,所述运行指令中还携带有第一验证信息,所述第一验证信息是所述launcher将所述第一预设配置文件中的第一验证信息置于所述运行指令中的,所述处理器还执行:
根据所述第二预设配置文件中的第二验证信息,对所述第一验证信息进行验证;
对所述第一验证信息验证通过后,基于所述运行指令运行mpi任务。
第九方面,本公开实施例提供了一种开源式容器编排系统,包括一个或多个处理器,以及用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如下步骤:
通过job模块创建launcher的过程中为所述launcher配置第一预设配置文件,所述第一预设配置文件携带有目标标识,以使所述launcher根据所述目标标识确定与所述worker之间通信使用的目标端口;以及
通过statefulset创建worker的过程中为所述worker配置第二预设配置文件和启动指令,所述第二预设配置文件携带有目标标识,以使所述worker在执行所述启动指令时基于所述目标标识对与所述launcher之间通信使用的目标端口进行设置。
在一种可能的实现方式中,所述job模块接收的创建指令中携带有mpi的实现方式,所述处理器还执行:
通过所述job模块创建所述launcher的过程中为所述launcher配置所述mpi的实现方式,以使所述launcher根据所述mpi的实现方式生成运行指令。
在一种可能的实现方式中,所述处理器还执行:
通过所述statefulset创建所述worker的过程中为所述worker配置hostnetwork。
在一种可能的实现方式中,所述处理器还执行:
同时通过所述job模块创建launcher过程以及通过所述statefulset创建worker过程。
第十方面,本公开实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现第一方面、第二方面或第三方面所述的任务处理方法。
另外,第四方面至第十方面中任一种实现方式所带来的技术效果可参见第一方面、第二方面或第三方面中不同实现方式所带来的技术效果,此处不再赘述。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本公开实施例提供的一种任务处理的应用场景示意图;
图2为本公开实施例提供的另一种任务处理的应用场景示意图;
图3为本公开实施例提供的一种任务处理方法的交互流程图;
图4为本公开实施例提供的另一种任务处理方法的交互流程图;
图5为本公开实施例提供的再一种任务处理方法的交互流程图;
图6为本公开实施例提供的又一种任务处理方法的交互流程图;
图7为本公开实施例提供的又一种任务处理方法的交互流程图;
图8为本公开实施例提供的又一种任务处理方法的交互流程图;
图9为本公开实施例提供的一种任务处理方法的流程图;
图10为本公开实施例提供的一种任务处理装置示意图;
图11为本公开实施例提供的另一种任务处理装置示意图;
图12为本公开实施例提供的再一种任务处理装置示意图;
图13为本公开实施例提供的一种终端示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
下面对文中出现的一些词语进行解释:
1)kubernetes是一种开源式容器编排系统,在kubernetes系统中,可以通过计算机程序执行mpi,例如通过mpi-operator程序执行mpi任务。
2)launcher是mpi任务中的一个任务角色,用来发起任务,本公开实施例中的launcher是kubernetes中的一个launcher镜像。launcher能够向worker发送任务指令,进行任务发起。
3)worker是mpi任务中的一个任务角色,用来执行任务,本公开实施例中的kubernetes中一个launcher镜像对应着多个worker镜像。每个worker镜像可以接收launcher发送的指令,执行指令中的任务。
4)本公开实施例中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应当理解为,这些类似的对象在适当情况下可以互换。
下面结合附图及具体实施例对本公开作进一步详细的说明,下述实施例中开源式容器编排系统以kubernetes系统为例进行说明,但不限于kubernetes系统。
图1为本公开实施例提供的一种任务处理方法的应用场景示意图。在该应用场景中,一个launcher101通过多个通讯模块(如图1中所示的通讯模块1031、通讯模块1032和通讯模块1033)与多个worker(图1以三个worker为例进行说明,如图1中所示的worker1021、worker1022和worker1023)进行通讯。如图1所示,在通讯过程中,launcher101需要根据配置的通讯规则,将指令发送给通讯模块,通讯模块需要通过解析服务模块104,解析该指令对应的worker的相关信息,进而向对应的worker发送该指令。上述通信过程耗时较长,造成在网络通信上损失性能,同时,launcher和worker的创建过程也较为繁琐。
为了解决上述问题,本公开实施例提供了一种任务处理方法、终端和存储介质,适用于如图2所示的应用场景。图2为本公开实施例提供的另一种任务处理方法的应用场景示意图。在该应用场景中,一个launcher201与多个worker(图2以三个worker为例进行说明,如图2中所示的worker2021、worker2022和worker2023)通过端口进行通讯。launcher201从携带有目标标识的第一预设配置文件中确定与worker2021、worker2022和worker2023进行通信的端口的目标标识,每个目标标识是对应的worker根据第二预设配置文件对初始标识进行修改得到的,每个worker能够根据目标标识监听所对应的目标端口(如图2中所示的worker2021监听目标端口1、worker2022监听目标端口2和worker2023监听目标端口3),因此launcher从集群端口中确定出目标标识对应的目标端口,直接通过各目标端口向对应的worker发送运行指令,在发送指令的过程中不需要通过通讯模块进行通信,节约通信过程所需的时间,从而提升了网络性能。
上述应用场景只是实现本申请实施例的应用场景的示例,本申请实施例并不限于上述应用场景。
图3示出了本公开实施例提供的一种任务处理方法的交互流程图,该方法可以由图2中所示的launcher和worker执行。
在一种实施例中,如图3所示,本公开实施例提供的任务处理方法包括如下步骤:
步骤S301,worker在执行启动指令时,从集群端口中确定目标端口,并根据第二预设配置文件将集群端口的管理系统中的目标端口的初始标识修改为目标标识。
其中,所述启动指令为statefulset接收的创建指令中携带的。
示例性的,通过预设程序向kubernetes系统中的statefulset发送创建指令,该创建指令中携带有启动指令,statefulset在创建worker的过程中为worker配置启动指令,如stream editor,简称sed指令,worker的执行模块创建好之后,该执行模块执行启动指令时,从集群端口中确定目标端口,并将集群端口的管理系统中的该端口的初始标识修改为目标标识。其中,worker根据第二预设配置文件确定出的目标标识,第二预设配置文件是statefulset创建所述worker时生成的,第二预设配置文件携带有目标标识。
从集群端口中确定目标端口,可以通过worker获取集群端口中的某个空闲的端口,也可以是集群端口的管理系统为worker分配一个端口,对此本实施例不做限定。
可以理解,本实施例中kubernetes系统包括多个worker,每个worker在执行各自的启动指令时,都要从集群端口中确定出一个目标端口,并修改其标识。例如:如图2中所示的worker2021对应目标端口1,将目标端口1的初始标识修改为目标标识1;worker2022对应目标端口2,将目标端口2的初始标识修改为目标标识2;worker2023对应目标端口3,将目标端口3的初始标识修改为目标标识3。
步骤S302,worker基于所述目标标识监听所述目标端口。
worker将目标端口的初始标识修改为目标标识后,就占用了这个端口,通过该端口接收信息,基于此worker需要监听该目标端口,进而获取launcher发送的运行指令。
步骤S303,launcher根据第一预设配置文件,确定与worker进行通信的端口的目标标识。
本实施例中,仅通过worker将目标端口的初始标识修改为目标标识,只是worker单侧确定了占用的目标端口,如果launcher不能获知该目标端口的相关信息,还是launcher就无法通过该目标端口与worker进行通信,基于此,需要launcher也能够获知该目标端口的相关信息。
launcher根据携带有目标标识的第一预设配置文件,确定出与worker进行通信的端口的目标标识。示例性的,本实施例中kubernetes系统包括多个worker,第一预设配置文件携带有各个worker所对应的目标标识。
其中,所述第一预设配置文件是job模块创建launcher时生成的,所述第一预设配置文件携带有所述目标标识。
步骤S304,launcher从集群端口中确定所述目标标识对应的目标端口。
如上所述,launcher需要通过目标端口与worker进行通信,基于此,在确定出目标标识之后,还要确定出其对应的目标端口。
示例性的,通过在集群端口的管理系统中查询该目标标识对应的端口,确定出集群端口中的哪个端口是目标端口。
步骤S305,launcher通过所述目标端口向所述worker发送运行指令。
示例性的,本实施例中kubernetes系统包括多个worker,不同worker监听不同的目标端口,例如worker2021监听目标端口1,launcher通过目标端口1向worker2021发送运行指令;worker2022监听目标端口2,launcher通过目标端口2向worker2022发送运行指令;worker2023监听目标端口3,launcher通过目标端口3向worker2023发送运行指令。
步骤S306,worker基于所述运行指令运行mpi任务。
示例性的,worker监听目标端口,当launcher通过该目标端口向worker发送运行指令时,worker能够获得该运行指令,进而可以基于该指令,运行mpi任务。
本公开实施例提供的任务处理方法,worker在执行启动指令时,从携带有目标标识的第二预设配置文件中确定与目标标识,并将集群端口确定目标端口,将其初始标识修改为目标标识,launcher从携带有目标标识的第一预设配置文件中确定与worker进行通信的端口的目标标识,直接通过该目标标识对应的目标端口向worker发送运行指令,worker通过该目标标识监听该目标端口获取运行指令,并基于所述运行指令运行mpi任务,在launcher向worker发送运行指令的过程中不需要通过通讯模块进行通信,节约通信过程所需的时间,从而提升了网络性能。
另外,相关技术中是通过程序监测worker是否创建完成,等所有的worker创建好之后,才会创建launcher,因此创建过程耗时较长,同时需要程序监听worker的创建过程,程序设置较为复杂。为了解决这一问题,图4为本发明实施例提供的另一种任务处理方法的交互流程图,如图4所示,该实施例在图3实施例的基础上,具体包括以下步骤:
步骤401,worker在执行启动指令时,从集群端口中确定目标端口,并根据第二预设配置文件将集群端口的管理系统中的目标端口的初始标识修改为目标标识。
步骤402,worker基于所述目标标识监听所述目标端口。
步骤401-402与上述步骤301-302实现方式相同,此处不再赘述。
步骤403,launcher确定worker创建过程的状态为已完成。
其中在所述worker创建过程中根据获取的worker的运行状态确定创建过程的状态。
launcher在worker未创建完成时发送运行指令,会造成mpi任务运行失败,因此,需要确定worker创建过程的状态为已完成,才能进行后续通信过程。
示例性的,通过job模块在创建launcher的过程中配置的预设脚本,监测worker创建过程中worker的运行状态,当worker的运行状态变为目标状态时,确定worker创建过程的状态为已完成,例如job模块在创建launcher的过程中为launcher配置初始化容器initcontainer,initcontainer运行检测脚本,监听在worker创建过程中worker的运行状态,当worker的运行状态变为“running”状态时,确定worker创建过程的状态为已完成。
步骤404,launcher根据第一预设配置文件,确定与worker进行通信的端口的目标标识。
步骤405,launcher从集群端口中确定所述目标标识对应的目标端口。
其中,本实施例对步骤403和步骤404-405的顺序不做限定。即launcher确定目标端口可以在worker创建完成后进行,也可以在worker创建完成前进行,只要在launcher发送运行指令前确定worker创建完成即可。
步骤406,launcher通过所述目标端口向所述worker发送运行指令。
launcher通过目标端口向各个worker发送运行指令时,可以等所有的worker均创建完成后,同时通过各目标端口向各worker发送运行指令时;也可以每当有个worker创建完成后,通过该worker监听的目标端口向该worker发送运行指令。
步骤407,worker基于所述运行指令运行mpi任务。
步骤404-407与上述步骤303-306实现方式相同,此处不再赘述。
本公开实施例提供的任务处理方法,worker创建过程的状态是通过launcher在worker创建过程中根据获取的worker的运行状态确定的,launcher的创建过程与worker创建过程可以同时进行,无需等待worker创建完成后再创建launcher,因此节省了创建时间,使整个处理过程更加高效。
另外,相关技术中是通过mpi-operator程序进行mpi创建时,mpi的实现方式为openmpi,不能兼容mpi的其他实现方式。为了解决这一问题,图5为本发明实施例提供的再一种任务处理方法的交互流程图,如图5所示,该实施例在上述实施例的基础上,具体包括以下步骤:
步骤501,worker在执行启动指令时,从集群端口中确定目标端口,并根据第二预设配置文件将集群端口的管理系统中的目标端口的初始标识修改为目标标识。
步骤502,worker基于所述目标标识监听所述目标端口。
步骤503,launcher根据第一预设配置文件,确定与worker进行通信的端口的目标标识。
步骤504,launcher从集群端口中确定所述目标标识对应的目标端口。
步骤501-504与上述步骤301-304实现方式相同,此处不再赘述。
步骤505,根据mpi的实现方式和worker ip,生成所述运行指令。
其中,所述运行指令中携带有与mpi的实现方式对应的任务,所述worker ip是在所述worker创建过程中获取的。
示例性的,job模块创建launcher的过程中为launcher配置mpi的实现方式,launcher根据mpi的实现方式生成运行指令中的任务,例如mpi的实现方式为openmpi,launcher生成的运行指令中的openmpi任务;mpi的实现方式为mpiCH,launcher生成的运行指令中的mpich任务。此外,launcher生成的运行指令中还携带有worker ip,示例性的,通过job模块在创建launcher的过程中配置的预设脚本,监测worker ip,例如job模块在创建launcher的过程中为launcher配置初始化容器initcontainer,initcontainer运行检测脚本,检测worker ip。
步骤506,launcher通过所述目标端口向所述worker发送运行指令。
步骤507,worker基于所述运行指令,运行所述mpi的实现方式对应的任务。
如上所述,launcher根据mpi的实现方式生成运行指令中的任务,对应的,worker基于运行指令,运行mpi的实现方式对应的任务,从而可以兼容多种mpi的实现方式。
本公开实施例提供的任务处理方法,运行指令中携带有与mpi的实现方式对应的任务,worker收到该指令后可以运行mpi的实现方式对应的任务,从而可以兼容多种mpi的实现方式,根据worker ip生成运行指令,可以向对应的worker发送运行指令。
另外,相关技术中worker和launcher通信时,通过mpi operator程序自动生成配置图configmap挂载到worker和launcher内,进行验证,configmap的生成过程增加了程序的繁琐程度和验证耗时。为了解决这一问题,图6为本发明实施例提供的又一种任务处理方法的交互流程图,如图6所示,该实施例在上述实施例的基础上,具体包括以下步骤:
步骤601,worker在执行启动指令时,从集群端口中确定目标端口,并根据第二预设配置文件将集群端口的管理系统中的目标端口的初始标识修改为目标标识。
步骤602,worker基于所述目标标识监听所述目标端口。
步骤603,launcher根据第一预设配置文件,确定与worker进行通信的端口的目标标识。
步骤604,launcher从集群端口中确定所述目标标识对应的目标端口。
步骤601-604与上述步骤301-304实现方式相同,此处不再赘述。
步骤605,根据mpi的实现方式和worker ip,生成所述运行指令。
在一种可能的实现方式中,所述根据mpi的实现方式和worker ip,生成所述运行指令,包括:
将所述第一预设配置文件中的第一验证信息置于所述运行指令中,以使所述worker对所述第一验证信息验证通过后基于所述运行指令运行所述mpi任务。
示例性的,job模块创建launcher的过程中为launcher配置携带有第一验证信息的第一预设配置文件,launcher将第一验证信息置于所述运行指令中,可以理解,launcher为各个worker配置的运行指令中的第一验证信息可以相同,也可以不同,例如:launcher为如图2中所示的worker2021、worker2022和worker2023配置的运行指令都是携带将第一验证信息1,或者为worker2021配置的运行指令携带第一验证信息1,worker2022配置的运行指令携带第一验证信息2,worker2023配置的运行指令携带第一验证信息3。
步骤606,launcher通过所述目标端口向所述worker发送运行指令。
步骤606与上述步骤305实现方式相同,此处不再赘述。
步骤607,根据所述第二预设配置文件中的第二验证信息,对所述第一验证信息进行验证。
示例性的,statefulset创建worker的过程中为worker配置第二验证信息,其中第二验证信息与第一验证信息可以相同,也可以不同,如果第二验证信息与第一验证信息不同,例如第二验证信息是通过预设算法对第一验证信息进行计算得到的,那么statefulset创建worker的过程中还需要为worker配置预设算法。
步骤608,对所述第一验证信息验证通过后,基于所述运行指令运行mpi任务。
示例性的,worker对第一验证信息验证通过后,说明这个运行指令是worker所要接收的指令,worker基于该运行指令运行mpi任务;如果worker对第一验证信息验证失败后,说明这个运行指令不是worker所要接收的指令,worker就不会运行指令中的运行mpi任务。在一种可能的实现方式中,worker对第一验证信息验证失败后,向launcher发送验证失败信息,以使launcher重新配置并发送运行指令。
本公开实施例提供的任务处理方法,launcher将第一预设配置文件中的第一验证信息置于运行指令中,worker根据第二预设配置文件中的第二验证信息,对第一验证信息进行验证,无需预设程序生成验证信息,并将验证信息挂到launcher和worker,因此简化了预设程序,减少了验证耗时。
图7为本发明实施例提供的又一种任务处理方法的交互流程图,如图7所示,如果mpi的实现方式为openmpi,该实施例在上述实施例的基础上,具体包括以下步骤:
步骤701,worker在执行启动指令时,从集群端口中确定目标端口,并根据第二预设配置文件将集群端口的管理系统中的目标端口的初始标识修改为目标标识。
步骤702,worker基于所述目标标识监听所述目标端口。
步骤703,launcher根据第一预设配置文件,确定与worker进行通信的端口的目标标识。
步骤704,launcher从集群端口中确定所述目标标识对应的目标端口。
步骤701-704与上述步骤301-304实现方式相同,此处不再赘述。
步骤705,launcher根据所述worker所在的网卡,确定所述网卡的参数。
示例性的,通过job模块在创建launcher的过程中配置worker、网卡与网卡的参数的对应关系,launcher能够根据该对应关系,确定worker所在网卡的参数,如网卡的网际互连协议(internet protocol,简称ip)地址、子网掩码、网关和域名系统协议(domain namesystem,dns)服务器地址等参数。
步骤706,launcher根据所述网卡的参数,通过所述网卡上所述目标标识对应的目标端口向所述worker发送运行指令。
launcher根据网卡的参数,直接通过该网卡上的目标端口向worker发送运行指令。
步骤707,worker基于所述运行指令运行mpi任务。
步骤707与上述步骤306实现方式相同,此处不再赘述。
本公开实施例提供的任务处理方法,针对openmpi这种实现方式,通过launcher确定worker所在的网卡的参数,在launcher向worker发送运行指令时,可以根据网卡的参数先确定出向哪个网卡上的端口发送,从而使launcher能够更加方便、准确地将运行指令发送给worker,通讯过程更加快捷。
图8为本发明实施例提供的又一种任务处理方法的交互流程图,如图8所示,该实施例在上述实施例的基础上,具体包括以下步骤:
步骤801,确定所述statefulset创建所述worker时配置hostnetwork。
在statefulset创建worker的过程中,为worker配置主机网络hostnetwork,workerworker在执行启动指令前,确定配置了hostnetwork,进而确定后续采用物理端口与launcher进行通信。
步骤802,worker在执行启动指令时,从集群端口中确定目标端口,并根据第二预设配置文件将集群端口的管理系统中的目标端口的初始标识修改为目标标识。
步骤803,worker基于所述目标标识监听所述目标端口。
步骤804,launcher根据第一预设配置文件,确定与worker进行通信的端口的目标标识。
步骤805,launcher从集群端口中确定所述目标标识对应的目标端口。
步骤806,launcher通过所述目标端口向所述worker发送运行指令。
步骤807,worker基于所述运行指令运行mpi任务。
步骤802-807与上述步骤301-306实现方式相同,此处不再赘述。
本公开实施例提供的任务处理方法,worker通过确定statefulset在创建worker的时配置了hostnetwork,可以确定出后续需要通过实际的端口与launcher进行通讯。
图9为本公开实施例提供的一种任务处理方法的流程图,该方法应用于kubernetes,如图9所示,包括以下步骤:
步骤901,通过job模块创建launcher的过程中为所述launcher配置第一预设配置文件,所述第一预设配置文件携带有目标标识,以使所述launcher根据所述目标标识确定与所述worker之间通信使用的目标端口;以及
示例性的,kubernetes系统基于预设程序发送的创建指令,通过job模块job模块创建launcher,在该创建过程中job模块为launcher配置携带有目标标识的第一预设配置文件,launcher根据第一预设配置文件,确定出与worker进行通信的端口的目标标识。
可选地,所述job模块接收的创建指令中携带有mpi的实现方式,所述方法还包括:
通过所述job模块创建所述launcher的过程中为所述launcher配置所述mpi的实现方式,以使所述launcher根据所述mpi的实现方式生成运行指令。
上述方法中,通过job模块创建所述launcher的过程中为launcher配置mpi的实现方式,使launcher根据mpi的实现方式生成运行指令,即运行指令中携带有与mpi的实现方式对应的任务,进而使worker收到该指令后可以运行mpi的实现方式对应的任务,从而可以兼容多种mpi的实现方式。
步骤902,通过statefulset创建worker的过程中为所述worker配置第二预设配置文件和启动指令,所述第二预设配置文件携带有目标标识,以使所述worker在执行所述启动指令时基于所述目标标识对与所述launcher之间通信使用的目标端口进行设置。
示例性的,kubernetes系统基于预设程序发送的创建指令,通过job模块statefulset创建worker,在该创建过程中statefulset模块为worker配置携带有目标标识的第二预设配置文件和启动指令,worker在执行该启动指令时根据目标标识对与launcher之间通信使用的目标端口修改为目标标识,进而launcher与worker之间通过目标端口进行通信。
可以理解,上述创建指令可以包含创建launcher的第一创建指令和创建worker的第二创建指令,可以仅包含同时创建launcher和worker的指令。
可选地,所述方法还包括:
通过所述statefulset创建所述worker的过程中为所述worker配置hostnetwork。
上述方法中,通过statefulset创建worker的过程中为worker配置hostnetwork,worker基于该hostnetwork,可以确定出需要通过实际的端口与launcher进行通讯。
可选地,所述方法还包括:
同时通过所述job模块创建launcher过程以及通过所述statefulset创建worker过程。
在这种可行的实现方式中,上述创建指令可以仅包含同时创建launcher和worker的指令,kubernetes基于该指令通过job模块创建launcher,同时通过statefulset创建worker。
上述方法中,通过job模块创建launcher过程,以及通过statefulset创建worker过程同时进行,无需等待worker创建完成后再创建launcher,因此节省了创建时间,使整个处理过程更加高效。
本公开实施例提供的任务处理方法,通过job模块创建launcher的过程中为launcher配置携带有目标标识的第一预设配置文件,从而使launcher确定与worker进行通信的端口的目标标识,直接通过该目标端口向worker发送运行指令;通过statefulset创建worker的过程中为worker配置携带有目标标识的第二预设配置文件和启动指令,从而使worker在执行所述启动指令时,基于该目标标识对与launcher之间通信使用的目标端口进行设置,进而worker能够根据目标标识监听该目标端口,获得launcher发送的运行指令,在发送指令的过程中不需要通过通讯模块进行通信,节约通信过程所需的时间,从而提升了网络性能。
基于相同的发明构思,图10为本公开实施例提供的一种任务处理装置示意图,应用于launcher,如图10所示,该任务处理装置1000包括:确定单元1001和运行指令发送单元1002。
确定单元1001,用于根据第一预设配置文件,确定与worker进行通信的端口的目标标识,其中所述第一预设配置文件是job模块创建launcher时生成的,所述第一预设配置文件携带有所述目标标识;
所述确定单元1001,还用于从集群端口中确定所述目标标识对应的目标端口,其中所述集群端口中的目标标识是所述worker在执行启动指令时根据第二预设配置文件对集群端口的管理系统中的初始标识进行修改得到的,所述第二预设配置文件是statefulset创建所述worker时生成的,所述第二预设配置文件携带有所述目标标识,所述启动指令为所述statefulset接收的创建指令中携带的;
运行指令发送单元1002,用于通过所述目标端口向所述worker发送运行指令,以使所述worker基于所述运行指令运行mpi任务。
可选地,所述确定单元1001,还用于:
确定worker创建过程的状态为已完成,其中在所述worker创建过程中根据获取的worker的运行状态确定创建过程的状态。
可选地,所述运行指令发送单元1002,还用于:
根据mpi的实现方式和worker ip,生成所述运行指令;
其中,所述运行指令中携带有与mpi的实现方式对应的任务,所述worker ip是在所述worker创建过程中获取的。
可选地,所述运行指令发送单元1002根据mpi的实现方式和worker ip,生成所述运行指令,包括:
将所述第一预设配置文件中的第一验证信息置于所述运行指令中,以使所述worker对所述第一验证信息验证通过后基于所述运行指令运行所述mpi任务。
可选地,若所述mpi的实现方式为openmpi,则所述确定单元1001还用于:根据所述worker所在的网卡,确定所述网卡的参数;
所述运行指令发送单元1002通过所述目标标识对应的目标端口向所述worker发送运行指令,包括:
根据所述网卡的参数,通过所述网卡上所述目标标识对应的目标端口向所述worker发送运行指令。
基于相同的发明构思,图11为本公开实施例提供的另一种任务处理装置示意图,应用于worker,如图11所示,该任务处理装置1100包括:端口标识修改单元1101和运行单元1102,可选地,该任务处理装置1100还包括:确定单元1103。
端口标识修改单元1101,用于在执行启动指令时,从集群端口中确定目标端口,并根据第二预设配置文件将集群端口的管理系统中的目标端口的初始标识修改为目标标识,所述第二预设配置文件是statefulset创建所述worker时生成的,所述第二预设配置文件携带有所述目标标识,所述启动指令为所述statefulset接收的创建指令中携带的;
运行单元1102,用于基于所述目标标识监听所述目标端口,以获取launcher发送的运行指令,并基于所述运行指令运行mpi任务,其中,所述运行指令为所述launcher根据第一预设配置文件,确定与所述worker进行通信的端口的目标标识,并通过所述目标标识对应的所述目标端口向所述worker发送的。
可选地,确定单元1103,用于确定所述statefulset创建所述worker时配置hostnetwork。
可选地,所述运行指令中携带有与所述mpi的实现方式对应的任务;
所述运行单元1102基于所述运行指令运行mpi任务,包括:
基于所述运行指令,运行所述mpi的实现方式对应的任务。
可选地,所述运行指令中还携带有第一验证信息,所述第一验证信息是所述launcher将所述第一预设配置文件中的第一验证信息置于所述运行指令中的,所述运行单元1102还用于:
根据所述第二预设配置文件中的第二验证信息,对所述第一验证信息进行验证;
对所述第一验证信息验证通过后,基于所述运行指令运行mpi任务。
基于相同的发明构思,图12为本公开实施例提供的再一种任务处理装置示意图,如图12所示,该任务处理装置1200包括:job模块1201和statefulset1202。
job模块1201,用于在创建launcher的过程中为所述launcher配置第一预设配置文件,以使所述launcher根据所述目标标识确定与所述worker之间通信使用的目标端口;以及
statefulset1202,用于在创建worker的过程中为所述worker配置第二预设配置文件和启动指令,以使所述worker在执行所述启动指令时对与所述launcher之间通信使用的目标端口进行设置。
可选地,所述job模块1201接收的创建指令中携带有mpi的实现方式,所述job模块1201还用于:
在创建所述launcher的过程中为所述launcher配置所述mpi的实现方式,以使所述launcher根据所述mpi的实现方式生成运行指令。
可选地,所述statefulset1202还用于:
在创建所述worker的过程中为所述worker配置hostnetwork。
可选地,所述job模块1201和所述statefulset1202还用于:
同时创建launcher过程以及创建worker过程。
基于相同的发明构思,图13为本公开实施例提供的一种终端示意图,如图13所示,该终端1300包括:包括一个或多个处理器1302,以及用于存储所述处理器可执行指令的存储器1301。
存储器1301,用于存储处理器1302执行的计算机程序。存储器1301可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,ram);存储器1301也可以是非易失性存储器(non-volatile memory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,hdd)或固态硬盘(solid-state drive,ssd)、或者存储器1301是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器1301可以是上述存储器的组合。
处理器1302,可以包括一个或多个中央处理单元(central processing unit,cpu),图形处理单元(Graphics Processing Unit,gpu)或者为数字处理单元等等。
本公开实施例中不限定上述存储器1301和处理器1302之间的具体连接介质。本公开实施例在图13中以存储器1301和处理器1302之间通过总线1303连接,总线1303在图13中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线1303可以分为地址总线、数据总线、控制总线等。为便于表示,图13中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
其中,所述处理器1302被配置为执行所述指令,以实现如下步骤:
根据第一预设配置文件,确定与worker进行通信的端口的目标标识,其中所述第一预设配置文件是job模块创建launcher时生成的,所述第一预设配置文件携带有所述目标标识;
从集群端口中确定所述目标标识对应的目标端口,其中所述集群端口中的目标标识是所述worker在执行启动指令时根据第二预设配置文件对集群端口的管理系统中的初始标识进行修改得到的,所述第二预设配置文件是statefulset创建所述worker时生成的,所述第二预设配置文件携带有所述目标标识,所述启动指令为所述statefulset接收的创建指令中携带的;
通过所述目标端口向所述worker发送运行指令,以使所述worker基于所述运行指令运行mpi任务。
可选地,所述处理器1302还执行:
确定worker创建过程的状态为已完成,其中在所述worker创建过程中根据获取的worker的运行状态确定创建过程的状态。
可选地,所述处理器1302还执行:
根据mpi的实现方式和worker ip,生成所述运行指令;
其中,所述运行指令中携带有与mpi的实现方式对应的任务,所述worker ip是在所述worker创建过程中获取的。
可选地,所述处理器1302具体执行:
将所述第一预设配置文件中的第一验证信息置于所述运行指令中,以使所述worker对所述第一验证信息验证通过后基于所述运行指令运行所述mpi任务。
可选地,若所述mpi的实现方式为openmpi,则所述处理器1302还执行:
根据所述worker所在的网卡,确定所述网卡的参数;
所述通过所述目标标识对应的目标端口向所述worker发送运行指令,包括:
根据所述网卡的参数,通过所述网卡上所述目标标识对应的目标端口向所述worker发送运行指令。
本公开实施例还提供了一种终端,包括一个或多个处理器,以及用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如下步骤:
在执行启动指令时,从集群端口中确定目标端口,并根据第二预设配置文件将集群端口的管理系统中的目标端口的初始标识修改为目标标识,所述第二预设配置文件是statefulset创建所述worker时生成的,所述第二预设配置文件携带有所述目标标识,所述启动指令为所述statefulset接收的创建指令中携带的;
基于所述目标标识监听所述目标端口,以获取launcher发送的运行指令,并基于所述运行指令运行mpi任务,其中,所述运行指令为所述launcher根据第一预设配置文件,确定与所述worker进行通信的端口的目标标识,并通过所述目标标识对应的所述目标端口向所述worker发送的。
可选地,所述处理器还执行:
确定所述statefulset创建所述worker时配置hostnetwork。
可选地,所述运行指令中携带有与所述mpi的实现方式对应的任务所述处理器具体执行:
基于所述运行指令,运行所述mpi的实现方式对应的任务。
可选地,所述运行指令中还携带有第一验证信息,所述第一验证信息是所述launcher将所述第一预设配置文件中的第一验证信息置于所述运行指令中的,所述处理器还执行:
根据所述第二预设配置文件中的第二验证信息,对所述第一验证信息进行验证;
对所述第一验证信息验证通过后,基于所述运行指令运行mpi任务。
本公开实施例提供了一种kubernetes系统,包括一个或多个处理器,以及用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如下步骤:
通过job模块创建launcher的过程中为所述launcher配置第一预设配置文件,所述第一预设配置文件携带有目标标识,以使所述launcher根据所述目标标识确定与所述worker之间通信使用的目标端口;以及
通过statefulset创建worker的过程中为所述worker配置第二预设配置文件和启动指令,所述第二预设配置文件携带有目标标识,以使所述worker在执行所述启动指令时基于所述目标标识对与所述launcher之间通信使用的目标端口进行设置。
可选地,所述job模块接收的创建指令中携带有mpi的实现方式,所述处理器还执行:
通过所述job模块创建所述launcher的过程中为所述launcher配置所述mpi的实现方式,以使所述launcher根据所述mpi的实现方式生成运行指令。
可选地,所述处理器还执行:
通过所述statefulset创建所述worker的过程中为所述worker配置hostnetwork。
可选地,所述处理器还执行:
同时通过所述job模块创建launcher过程以及通过所述statefulset创建worker过程。
本发明实施例还提供一种计算机可读非易失性存储介质,包括程序代码,当所述程序代码在计算终端上运行时,所述程序代码用于使所述计算终端执行上述本发明上述实施例中任意一种任务处理方法的步骤。
以上参照示出根据本申请实施例的方法、装置(系统)和/或计算机程序产品的框图和/或流程图描述本申请。应理解,可以通过计算机程序指令来实现框图和/或流程图示图的一个块以及框图和/或流程图示图的块的组合。可以将这些计算机程序指令提供给通用计算机、专用计算机的处理器和/或其它可编程数据处理装置,以产生机器,使得经由计算机处理器和/或其它可编程数据处理装置执行的指令创建用于实现框图和/或流程图块中所指定的功能/动作的方法。
相应地,还可以用硬件和/或软件(包括固件、驻留软件、微码等)来实施本申请。更进一步地,本申请可以采取计算机可使用或计算机可读存储介质上的计算机程序产品的形式,其具有在介质中实现的计算机可使用或计算机可读程序代码,以由指令执行系统来使用或结合指令执行系统而使用。在本申请上下文中,计算机可使用或计算机可读介质可以是任意介质,其可以包含、存储、通信、传输、或传送程序,以由指令执行系统、装置或设备使用,或结合指令执行系统、装置或设备使用。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (30)
1.一种任务处理方法,其特征在于,应用于开源式容器编排系统中的发起容器,该方法包括:
根据第一预设配置文件,确定与所述开源式容器编排系统中的执行容器进行通信的端口的目标标识,其中所述第一预设配置文件是所述开源式容器编排系统中的工作模块创建所述发起容器时生成的,所述第一预设配置文件携带有所述目标标识;
从集群端口中确定所述目标标识对应的目标端口,其中所述集群端口中的目标标识是所述执行容器在执行启动指令时根据第二预设配置文件对集群端口的管理系统中的初始标识进行修改得到的,所述第二预设配置文件是所述开源式容器编排系统中的负载管理控制器创建所述执行容器时生成的,所述第二预设配置文件携带有所述目标标识,所述启动指令为所述负载管理控制器接收的创建指令中携带的;
通过所述目标端口向所述执行容器发送运行指令,以使所述执行容器基于所述运行指令运行跨语言通讯协议任务。
2.如权利要求1所述的方法,其特征在于,在所述通过所述目标端口向所述执行容器发送运行指令之前,还包括:
确定执行容器创建过程的状态为已完成,其中在所述执行容器创建过程中根据获取的执行容器的运行状态确定创建过程的状态。
3.如权利要求1所述的方法,其特征在于,在所述通过所述目标端口向所述执行容器发送运行指令之前,还包括:
根据跨语言通讯协议的实现方式和执行容器的互联网协议地址,生成所述运行指令;
其中,所述运行指令中携带有与跨语言通讯协议的实现方式对应的任务,所述执行容器的互联网协议地址是在所述执行容器创建过程中获取的。
4.如权利要求3所述的方法,其特征在于,若所述跨语言通讯协议的实现方式为开源跨语言通讯协议,则所述方法还包括:
根据所述执行容器所在的网卡,确定所述网卡的参数;
所述通过所述目标标识对应的目标端口向所述执行容器发送运行指令,包括:
根据所述网卡的参数,通过所述网卡上所述目标标识对应的目标端口向所述执行容器发送运行指令。
5.如权利要求3所述的方法,其特征在于,所述根据跨语言通讯协议的实现方式和执行容器的互联网协议地址,生成所述运行指令,包括:
将所述第一预设配置文件中的第一验证信息置于所述运行指令中,以使所述执行容器对所述第一验证信息验证通过后基于所述运行指令运行所述跨语言通讯协议任务。
6.一种任务处理方法,其特征在于,应用于开源式容器编排系统中的执行容器,所述方法包括:
在执行启动指令时,从集群端口中确定目标端口,并根据第二预设配置文件将集群端口的管理系统中的目标端口的初始标识修改为目标标识,所述第二预设配置文件是开源式容器编排系统中的负载管理控制器创建所述执行容器时生成的,所述第二预设配置文件携带有所述目标标识,所述启动指令为所述负载管理控制器接收的创建指令中携带的;
基于所述目标标识监听所述目标端口,以获取开源式容器编排系统中的发起容器发送的运行指令,并基于所述运行指令运行跨语言通讯协议任务,其中,所述运行指令为所述发起容器根据第一预设配置文件,确定与所述执行容器进行通信的端口的目标标识,并通过所述目标标识对应的所述目标端口向所述执行容器发送的。
7.如权利要求6所述的方法,其特征在于,在所述从集群端口中确定目标端口之前,还包括:
确定所述负载管理控制器创建所述执行容器时配置主机网络。
8.如权利要求6所述的方法,其特征在于,所述运行指令中携带有与所述跨语言通讯协议的实现方式对应的任务;
所述基于所述运行指令运行跨语言通讯协议任务,包括:
基于所述运行指令,运行所述跨语言通讯协议的实现方式对应的任务。
9.如权利要求6~8任一所述的方法,其特征在于,所述运行指令中还携带有第一验证信息,所述第一验证信息是所述发起容器将所述第一预设配置文件中的第一验证信息置于所述运行指令中的,所述方法还包括:
根据所述第二预设配置文件中的第二验证信息,对所述第一验证信息进行验证;
对所述第一验证信息验证通过后,基于所述运行指令运行跨语言通讯协议任务。
10.一种任务处理方法,其特征在于,应用于开源式容器编排系统,所述方法包括:
通过工作模块创建发起容器的过程中为所述发起容器配置第一预设配置文件,所述第一预设配置文件携带有目标标识,以使所述发起容器根据所述目标标识确定与执行容器之间通信使用的目标端口;以及
通过负载管理控制器创建执行容器的过程中为所述执行容器配置第二预设配置文件和启动指令,所述第二预设配置文件携带有目标标识,以使所述执行容器在执行所述启动指令时基于所述目标标识对与所述发起容器之间通信使用的目标端口进行设置。
11.如权利要求10所述的方法,其特征在于,所述工作模块接收的创建指令中携带有跨语言通讯协议的实现方式,所述方法还包括:
通过所述工作模块创建所述发起容器的过程中为所述发起容器配置所述跨语言通讯协议的实现方式,以使所述发起容器根据所述跨语言通讯协议的实现方式生成运行指令。
12.如权利要求10所述的方法,其特征在于,还包括:
通过所述负载管理控制器创建所述执行容器的过程中为所述执行容器配置主机网络。
13.如权利要求10~12任一所述的方法,其特征在于,所述方法还包括:
同时通过所述工作模块创建发起容器过程以及通过所述负载管理控制器创建执行容器过程。
14.一种任务处理装置,其特征在于,该装置包括:
确定单元,用于根据第一预设配置文件,确定与开源式容器编排系统中的执行容器进行通信的端口的目标标识,其中所述第一预设配置文件是所述开源式容器编排系统中的工作模块创建发起容器时生成的,所述第一预设配置文件携带有所述目标标识;
所述确定单元,还用于从集群端口中确定所述目标标识对应的目标端口,其中所述集群端口中的目标标识是所述执行容器在执行启动指令时根据第二预设配置文件对集群端口的管理系统中的初始标识进行修改得到的,所述第二预设配置文件是所述开源式容器编排系统中的负载管理控制器创建所述执行容器时生成的,所述第二预设配置文件携带有所述目标标识,所述启动指令为所述负载管理控制器接收的创建指令中携带的;
运行指令发送单元,用于通过所述目标端口向所述执行容器发送运行指令,以使所述执行容器基于所述运行指令运行跨语言通讯协议任务。
15.如权利要求14所述的装置,其特征在于,所述确定单元,还用于:在所述运行指令发送单元通过所述目标端口向所述执行容器发送运行指令之前,
确定执行容器创建过程的状态为已完成,其中在所述执行容器创建过程中根据获取的执行容器的运行状态确定创建过程的状态。
16.如权利要求15所述的装置,其特征在于,所述运行指令发送单元,还用于:在所述通过所述目标端口向所述执行容器发送运行指令之前,
根据跨语言通讯协议的实现方式和执行容器的互联网协议地址,生成所述运行指令;
其中,所述运行指令中携带有与跨语言通讯协议的实现方式对应的任务,所述执行容器的互联网协议地址是在所述执行容器创建过程中获取的。
17.如权利要求16所述的装置,其特征在于,若所述跨语言通讯协议的实现方式为开源跨语言通讯协议,则所述确定单元还用于:根据所述执行容器所在的网卡,确定所述网卡的参数;
所述运行指令发送单元通过所述目标标识对应的目标端口向所述执行容器发送运行指令,包括:
根据所述网卡的参数,通过所述网卡上所述目标标识对应的目标端口向所述执行容器发送运行指令。
18.如权利要求16所述的装置,其特征在于,所述运行指令发送单元根据跨语言通讯协议的实现方式和执行容器的互联网协议地址,生成所述运行指令,包括:
将所述第一预设配置文件中的第一验证信息置于所述运行指令中,以使所述执行容器对所述第一验证信息验证通过后基于所述运行指令运行所述跨语言通讯协议任务。
19.一种任务处理装置,其特征在于,所述装置包括:
端口标识修改单元,用于在执行启动指令时,从集群端口中确定目标端口,并根据第二预设配置文件将集群端口的管理系统中的目标端口的初始标识修改为目标标识,所述第二预设配置文件是开源式容器编排系统中的负载管理控制器创建执行容器时生成的,所述第二预设配置文件携带有所述目标标识,所述启动指令为所述负载管理控制器接收的创建指令中携带的;
运行单元,用于基于所述目标标识监听所述目标端口,以获取所述开源式容器编排系统中的发起容器发送的运行指令,并基于所述运行指令运行跨语言通讯协议任务,其中,所述运行指令为所述发起容器根据第一预设配置文件,确定与所述执行容器进行通信的端口的目标标识,并通过所述目标标识对应的所述目标端口向所述执行容器发送的。
20.如权利要求19所述的装置,其特征在于,所述装置还包括:确定单元,用于在所述端口标识修改单元从集群端口中确定目标端口之前,确定所述负载管理控制器创建所述执行容器时配置主机网络。
21.如权利要求19所述的装置,其特征在于,所述运行指令中携带有与所述跨语言通讯协议的实现方式对应的任务;
所述运行单元基于所述运行指令运行跨语言通讯协议任务,包括:
基于所述运行指令,运行所述跨语言通讯协议的实现方式对应的任务。
22.如权利要求19~21任一所述的装置,其特征在于,所述运行指令中还携带有第一验证信息,所述第一验证信息是所述发起容器将所述第一预设配置文件中的第一验证信息置于所述运行指令中的,所述运行单元还用于:
根据所述第二预设配置文件中的第二验证信息,对所述第一验证信息进行验证;
对所述第一验证信息验证通过后,基于所述运行指令运行跨语言通讯协议任务。
23.一种任务处理装置,其特征在于,所述装置包括:
工作模块,用于在创建发起容器的过程中为所述发起容器配置第一预设配置文件,所述第一预设配置文件携带有目标标识,以使所述发起容器根据所述目标标识确定与执行容器之间通信使用的目标端口;以及
负载管理控制器,用于在创建执行容器的过程中为所述执行容器配置第二预设配置文件和启动指令,以使所述执行容器在执行所述启动指令时对与所述发起容器之间通信使用的目标端口进行设置。
24.如权利要求23所述的装置,其特征在于,所述工作模块接收的创建指令中携带有跨语言通讯协议的实现方式,所述工作模块还用于:
在创建所述发起容器的过程中为所述发起容器配置所述跨语言通讯协议的实现方式,以使所述发起容器根据所述跨语言通讯协议的实现方式生成运行指令。
25.如权利要求23所述的装置,其特征在于,所述负载管理控制器还用于:
在创建所述执行容器的过程中为所述执行容器配置主机网络。
26.如权利要求23~25任一所述的装置,其特征在于,所述工作模块和所述负载管理控制器还用于:
同时创建发起容器过程以及创建执行容器过程。
27.一种终端,其特征在于,包括一个或多个处理器,以及用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1~5中任一项所述的任务处理方法。
28.一种终端,其特征在于,包括一个或多个处理器,以及用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求6~9中任一项所述的任务处理方法。
29.一种开源式容器编排系统,其特征在于,包括一个或多个处理器,以及用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求10~13中任一项所述的任务处理方法。
30.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现如权利要求1~5中任一项、如权利要求6~9中任一项或如权利要求10~13中任一项所述的任务处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010412582.XA CN111625374B (zh) | 2020-05-15 | 2020-05-15 | 一种任务处理方法、终端和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010412582.XA CN111625374B (zh) | 2020-05-15 | 2020-05-15 | 一种任务处理方法、终端和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111625374A CN111625374A (zh) | 2020-09-04 |
CN111625374B true CN111625374B (zh) | 2023-06-27 |
Family
ID=72257866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010412582.XA Active CN111625374B (zh) | 2020-05-15 | 2020-05-15 | 一种任务处理方法、终端和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111625374B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110377409A (zh) * | 2019-07-12 | 2019-10-25 | 北京百度网讯科技有限公司 | 一种任务处理方法、装置、设备和介质 |
CN110427249A (zh) * | 2019-07-26 | 2019-11-08 | 重庆紫光华山智安科技有限公司 | 任务分配方法、pod初始化方法及相关装置 |
CN110888722A (zh) * | 2019-11-15 | 2020-03-17 | 北京奇艺世纪科技有限公司 | 任务处理方法、装置、电子设备及计算机可读存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9069631B2 (en) * | 2010-11-05 | 2015-06-30 | International Business Machines Corporation | Fencing data transfers in a parallel active messaging interface of a parallel computer |
CN105474177B (zh) * | 2013-05-31 | 2019-06-04 | 日本电气株式会社 | 分布式处理系统、设备、方法和记录介质 |
-
2020
- 2020-05-15 CN CN202010412582.XA patent/CN111625374B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110377409A (zh) * | 2019-07-12 | 2019-10-25 | 北京百度网讯科技有限公司 | 一种任务处理方法、装置、设备和介质 |
CN110427249A (zh) * | 2019-07-26 | 2019-11-08 | 重庆紫光华山智安科技有限公司 | 任务分配方法、pod初始化方法及相关装置 |
CN110888722A (zh) * | 2019-11-15 | 2020-03-17 | 北京奇艺世纪科技有限公司 | 任务处理方法、装置、电子设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111625374A (zh) | 2020-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10802906B2 (en) | Monitoring method and apparatus of server, and storage medium | |
WO2019184164A1 (zh) | 自动部署Kubernetes从节点的方法、装置、终端设备及可读存储介质 | |
KR101954480B1 (ko) | 클라우드-컴퓨팅 스탬프의 자동화된 구축 | |
CN103441867B (zh) | 一种更新虚拟机内部网络资源配置的方法 | |
CN106911648B (zh) | 一种环境隔离方法及设备 | |
CN111880902A (zh) | 一种pod创建方法、装置、设备及可读存储介质 | |
CN110266761B (zh) | 负载均衡应用创建方法、装置、计算机设备及存储介质 | |
CN106716926B (zh) | 硬件库存的自动化独立式引导电路 | |
CN106919485A (zh) | 一种基于服务器上配置硬件测试工具的系统 | |
CN105579983A (zh) | 提供对等系统标识的基板管理控制器 | |
CN113489603B (zh) | 一种网络靶场中交互式背景流量发生方法与系统 | |
CN107634871B (zh) | 一种连通性测试方法、装置及系统 | |
CN111800399A (zh) | 一种信息传输方法、装置、设备及存储介质 | |
US11218370B2 (en) | Method for applying a patch to a virtualized network function to be updated | |
CN111769979A (zh) | 一种云资源编排方法、系统、终端及存储介质 | |
CN111625374B (zh) | 一种任务处理方法、终端和存储介质 | |
CN113645314A (zh) | 一种私有云的部署方法和服务器 | |
KR20110064539A (ko) | 다수의 가상머신을 이용한 네트워크 시뮬레이션 장치 및 그 방법 | |
CN112217693B (zh) | 一种控制器测试方法、装置、电子设备及存储介质 | |
CN105208072A (zh) | 虚拟交换机的远程控制方法及装置 | |
US9189370B2 (en) | Smart terminal fuzzing apparatus and method using multi-node structure | |
CN115658221A (zh) | 状态检测方法、业务虚拟机、设备及介质 | |
CN111031123B (zh) | Spark任务的提交方法、系统、客户端及服务端 | |
CN114090242A (zh) | 模型训练方法、装置、设备、存储介质及程序产品 | |
CN113268252A (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 |