CN111427551A - 编程平台的用户代码运行方法及平台、设备、存储介质 - Google Patents

编程平台的用户代码运行方法及平台、设备、存储介质 Download PDF

Info

Publication number
CN111427551A
CN111427551A CN202010093681.6A CN202010093681A CN111427551A CN 111427551 A CN111427551 A CN 111427551A CN 202010093681 A CN202010093681 A CN 202010093681A CN 111427551 A CN111427551 A CN 111427551A
Authority
CN
China
Prior art keywords
task
node
task queue
running
user code
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.)
Pending
Application number
CN202010093681.6A
Other languages
English (en)
Inventor
李晓波
邹雨竹
吴军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Sensetime Technology Co Ltd
Original Assignee
Shenzhen Sensetime Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Sensetime Technology Co Ltd filed Critical Shenzhen Sensetime Technology Co Ltd
Priority to CN202010093681.6A priority Critical patent/CN111427551A/zh
Publication of CN111427551A publication Critical patent/CN111427551A/zh
Priority to SG11202108352TA priority patent/SG11202108352TA/en
Priority to JP2021540579A priority patent/JP2022522609A/ja
Priority to KR1020217021414A priority patent/KR20210105378A/ko
Priority to PCT/CN2020/134531 priority patent/WO2021159831A1/zh
Priority to TW110102727A priority patent/TWI786527B/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer And Data Communications (AREA)
  • Telephonic Communication Services (AREA)
  • Electrically Operated Instructional Devices (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Input Circuits Of Receivers And Coupling Of Receivers And Audio Equipment (AREA)

Abstract

本申请公开了一种编程平台的用户代码运行方法及平台、设备、存储介质。其中,编程平台包括服务节点、任务队列、计算节点;编程平台的用户代码运行方法包括:服务节点接收用户终端发出的用户代码,并将用户代码作为运行任务放置于任务队列中;计算节点监控任务队列,以获取运行任务;计算节点计算运行任务,得到计算结果;服务节点从计算节点获取计算结果,以将计算结果反馈至用户终端。上述方案,可实现用户代码运行的异步通信,提高***的并发能力。

Description

编程平台的用户代码运行方法及平台、设备、存储介质
技术领域
本申请涉及编程技术领域,特别是涉及一种编程平台的用户代码运行方法及平台、设备、存储介质。
背景技术
随着人工智能的快速发展,各种依赖于代码运行的***也应运而生。不仅代码越来越多样化,而且对***可以提供的功能提出越来越高的要求。
面对日益复杂的代码,目前的编程平台中,Kernel等代码的执行环境往往既要保持与用户终端的连接关系,又要对用户终端发出的代码进行计算,导致***能力不能满足于代码运行要求。
基于此,如何提高编程平台的用户代码运行的并发能力,成为亟待解决的问题。
发明内容
本申请提供一种编程平台的用户代码运行方法及平台、设备、存储介质。
本申请编程平台包括:服务节点、任务队列、计算节点。本申请第一方面提供了一种编程平台的用户代码运行方法,包括:所述服务节点接收用户终端发出的用户代码,并将所述用户代码作为运行任务放置于所述任务队列中;所述计算节点监控所述任务队列,以获取所述运行任务;所述计算节点计算所述运行任务,得到计算结果;所述服务节点从所述计算节点获取所述计算结果,以将所述计算结果反馈至所述用户终端。
因此,服务节点实现与用户终端的连接,并将用户代码放置于队列中,由计算节点进行用户代码的计算,进而实现用户代码的运行。上述用户代码的运行过程中,服务节点与计算节点分离设置,使得用户终端的连接与用户代码的计算分别由服务节点和计算节点完成,实现用户代码运行的异步通信,提高***的并发能力。
其中,所述任务队列包括第一任务队列和第二任务队列,所述计算节点包括第一计算节点和第二计算节点;所述将所述用户代码作为运行任务放置于任务队列中,包括:根据所述用户代码的计算特征,将所述用户代码作为运行任务放置于第一任务队列或第二任务队列中;所述计算节点监控所述任务队列,包括:所述第一计算节点监控所述第一任务队列,所述第二计算节点监控所述第二任务队列。
因此,服务节点可基于用户代码的计算特征对用户代码进行区分,分别放置于第一任务队列或第二任务队列中,使得不同计算节点监控不同任务队列,从而针对用户代码不同的运行要求对用户代码进行区别处理。
其中,所述服务节点的数量为至少两个;所述服务节点接收用户终端发出的用户代码,包括:至少两个所述服务节点通过反向代理被分配所述用户代码。
因此,本申请可提供至少两个服务节点,并且服务节点通过反向代理被分配用户代码,从而实现多个服务节点接收到用户终端发出的用户代码,提高并发处理能力。
其中,所述计算节点的数量为至少两个;所述计算节点监控所述任务队列,以获取所述运行任务,包括:至少两个所述计算节点监控所述任务队列,向所述任务队列请求获取所述运行任务;所述任务队列将一个所述运行任务分配至一个所述计算节点。
因此,多个计算节点均监控到任务队列中的一运行任务时,多个计算节点均通过向任务队列请求获取运行任务,而任务队列将该运行任务分配至一个计算节点,通过任务队列可完成运行任务的合理分配。
其中,所述计算节点在完成所述运行任务的计算后,释放对应的计算资源并继续监控所述任务队列。
因此,计算节点完成计算后即释放资源,继续监控任务队列,以获取新的运行任务,计算节点执行完毕运行任务即释放资源,使得计算和内存资源重复利用,充分并合理地利用硬件资源。
其中,所述编程平台还包括消息队列;所述服务节点从所述计算节点获取所述计算结果,以将所述计算结果反馈至所述用户终端,包括:所述计算节点将所述计算结果放置于所述消息队列;所述服务节点监控所述消息队列,以获取所述计算结果,并将所述计算结果反馈至所述用户终端。
因此,计算节点对任意用户代码对应的运行任务执行完毕后,均将计算结果统一放置于消息队列中,服务节点监控消息队列,即可得到计算节点的计算结果,使得计算结果也进行统一管理。
其中,所述服务节点在获取所述计算结果之前,保持与所述用户终端的会话连接。
因此,服务节点在获取所述计算结果之前,一直保持与用户终端的会话连接,也即保持服务节点与用户终端的联系,方便计算结果反馈回用户终端。
本申请第二方面提供了一种编程平台的用户代码运行方法,该方法包括接收用户终端发出的用户代码;将所述用户代码作为运行任务放置于任务队列中,以由计算节点从所述任务队列中获取并计算所述运行任务;获取所述计算节点的计算结果,并将所述计算结果反馈至所述用户终端。
因此,服务节点用于与用户终端连接,并将用户终端发出的用户代码作为运行任务放置于任务队列中,使得独立于服务节点的计算节点从任务队列中获取并计算运行任务得到计算结果后,服务节点获取计算节点的计算结果,并将计算结果反馈至用户终端,实现用户代码的运行。
其中,所述将所述用户代码作为运行任务放置于任务队列中,以由计算节点从所述任务队列中获取并计算所述运行任务,包括:根据所述用户代码的计算特征,将所述用户代码作为运行任务放置于第一任务队列或第二任务队列中,以由第一计算节点从所述第一任务队列中获取并计算所述运行任务,或由第二计算节点从所述第二任务队列中获取并计算所述运行任务。
因此,服务节点可基于用户代码的计算特征对用户代码进行区分,分别放置于第一任务队列或第二任务队列中,使得不同计算节点监控不同任务队列,从而针对用户代码不同的运行要求对用户代码进行区别处理。
其中,所述接收用户终端发出的用户代码,包括:通过反向代理被分配所述用户代码。
因此,服务节点通过反向代理被分配用户代码,从而合理分配服务节点接收到用户终端发出的用户代码。
其中,所述方法包括:在获取所述计算结果之前,保持与所述用户终端的会话连接。
因此,服务节点在获取所述计算结果之前,一直保持与用户终端的会话连接,也即保持服务节点与用户终端的联系,方便计算结果反馈回用户终端。
本申请第三方面提供了一种编程平台的用户代码运行方法,所述方法包括:监控任务队列,以获取运行任务;所述任务队列中包括所述运行任务,所述运行任务对应所述用户代码;计算所述运行任务,得到计算结果。
因此,任务队列中包括运行任务,而运行任务对应用户代码,于是计算节点监控包括运行任务的任务队列,从而获取到对应用户代码的运行任务,进而计算运行任务得到计算结果,实现运行任务的获取与计算。
其中,编程平台的用户代码运行方法还包括:在完成所述运行任务的计算后,释放对应的计算资源并继续监控所述任务队列。
因此,计算节点完成计算后即释放资源,继续监控任务队列,以获取新的运行任务,进而使得用户代码可以在不同计算节点中执行,且计算节点执行完毕运行任务即释放资源,使得计算和内存资源重复利用,充分并合理地利用硬件资源。
本申请第四方面提供了一种编程平台,该编程平台包括:服务节点、任务队列、计算节点;所述服务节点用于接收用户终端发出的用户代码,并将所述用户代码作为运行任务放置于所述任务队列中;所述计算节点用于监控所述任务队列,以获取所述运行任务;所述计算节点还用于计算所述运行任务,得到计算结果;所述服务节点还用于从所述计算节点获取所述计算结果,以将所述计算结果反馈至所述用户终端。
其中,所述任务队列包括第一任务队列和第二任务队列,所述计算节点包括第一计算节点和第二计算节点;所述服务节点用于将所述用户代码作为运行任务放置于任务队列中时,具体地,所述服务节点用于根据所述用户代码的计算特征,将所述用户代码作为运行任务放置于第一任务队列或第二任务队列中;所述计算节点用于监控所述任务队列,具体地,所述第一计算节点用于监控所述第一任务队列,所述第二计算节点用于监控所述第二任务队列。
其中,所述服务节点的数量为至少两个;所述服务节点用于接收用户终端发出的用户代码时,至少两个所述服务节点用于通过反向代理被分配所述用户代码。
其中,所述计算节点的数量为至少两个;所述计算节点用于监控所述任务队列,以获取所述运行任务时,至少两个所述计算节点用于监控所述任务队列,向所述任务队列请求获取所述运行任务;所述任务队列用于将一个所述运行任务分配至一个所述计算节点。
其中,所述计算节点用于在完成所述运行任务的计算后,释放对应的计算资源并继续监控所述任务队列。
其中,所述编程平台还包括消息队列;所述服务节点用于从所述计算节点获取所述计算结果,以将所述计算结果反馈至所述用户终端时,所述计算节点用于将所述计算结果放置于所述消息队列;所述服务节点用于监控所述消息队列,以获取所述计算结果,并将所述计算结果反馈至所述用户终端。
其中,所述服务节点在获取所述计算结果之前,还用于保持与所述用户终端的会话连接。
本申请第五方面提供了一种服务节点,包括接收单元、放置单元和获取单元,所述接收单元用于接收用户终端发出的用户代码;所述放置单元用于将所述用户代码作为运行任务放置于任务队列中,以由计算节点从所述任务队列中获取并计算所述运行任务;所述获取单元用于获取所述计算节点的计算结果,并将所述计算结果反馈至所述用户终端。
其中,所述放置单元用于将所述用户代码作为运行任务放置于任务队列中,以由计算节点从所述任务队列中获取并计算所述运行任务时,还用于根据所述用户代码的计算特征,将所述用户代码作为运行任务放置于第一任务队列或第二任务队列中,以由第一计算节点从所述第一任务队列中获取并计算所述运行任务,或由第二计算节点从所述第二任务队列中获取并计算所述运行任务。
其中,所述接收单元用于接收用户终端发出的用户代码时,还用于通过反向代理被分配所述用户代码。
其中,所述获取单元在获取所述计算结果之前,所述服务节点用于保持与所述用户终端的会话连接。
本申请第六方面提供了一种计算节点,包括监控单元和计算单元,所述监控单元用于监控任务队列,以获取运行任务;其中所述任务队列中包括所述运行任务,所述运行任务对应所述用户代码;所述计算单元用于计算所述运行任务,得到计算结果。
其中,所述计算单元在完成所述运行任务的计算后,还用于释放对应的计算资源并继续监控所述任务队列。
本申请第七方面提供了一种电子设备,包括相互耦接的存储器和处理器;所述处理器用于执行所述存储器存储的程序指令,以实现上述第一方面的编程平台的用户代码运行方法;和/或,以实现上述第二方面的编程平台的用户代码运行方法;和/或,以实现上述第三方面的编程平台的用户代码运行方法。
因此,服务节点用于实现与用户终端的连接,并将用户代码放置于队列中,由计算节点用于进行用户代码的计算,进而实现用户代码的运行。上述用户代码的运行过程中,服务节点与计算节点分离设置,使得用户终端的连接与用户代码的计算分别由服务节点和计算节点完成,实现用户代码运行的异步通信,提高***的并发能力。
本申请第八方面提供了一种计算机可读存储介质,其上存储有能够被处理器运行的程序指令,程序指令用于实现上述第一方面的编程平台的用户代码运行方法;和/或,实现上述第二方面的编程平台的用户代码运行方法;和/或,实现上述第三方面的编程平台的用户代码运行方法。
因此,上述用户代码的运行过程中,服务节点用于实现与用户终端的连接,而计算节点用于实现用户代码的计算,实现用户代码运行的异步通信,提高***的并发能力。
附图说明
图1是本申请编程平台的用户代码运行方法一实施例的流程示意图;
图2是本申请编程平台的用户代码运行方法另一实施例的流程示意图;
图3是本申请编程平台的用户代码运行方法再一实施例的流程示意图;
图4是本申请编程平台一实施例的结构示意图;
图5是本申请编程平台服务节点41一实施例的结构示意图;
图6是本申请编程平台计算节点43一实施例的结构示意图;
图7是本申请编程平台另一实施例的结构示意图;
图8是本申请电子设备一实施例的框架示意图;
图9是本申请存储装置一实施例的框架示意图;
具体实施方式
下面结合说明书附图,对本申请实施例的方案进行详细说明。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本文中术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。
请参阅图1,图1是本申请编程平台的用户代码运行方法一实施例的流程示意图。具体而言,本公开实施例方法包括以下步骤:
步骤S101:服务节点接收用户终端发出的用户代码,并将用户代码作为运行任务放置于任务队列中。
本公开实施例的编程平台包括服务节点、任务队列以及计算节点。
服务节点可接收多个用户终端中任意一个用户终端的用户代码,并且可同时接收多个用户终端的用户代码,支持多用户终端的并发连接。服务节点可以由服务器、计算机等任意具有处理能力的电子设备实现。其中,电子设备还可以用于执行其他功能,例如,电子设备还用于执行计算节点获取的运行任务的计算,即,服务节点和计算节点可由同一电子设备实现或者由不同电子设备实现。服务节点接收用户代码的方式包括但不限于websocket(全双工通信的协议)通信技术、HTTP(Hyper Text Transfer Protocol,超文本传输协议)通信技术,在此不作具体限定。服务节点接收的用户代码的来源可多样化,例如,用户终端自带的代码编辑窗口获取到用户编辑的代码,形成用户代码,亦或者用户终端接收到与其连接的代码编辑设备传输的用户代码等。
在一公开实施例中,服务节点的数量为至少两个。服务节点接收用户终端发出的用户代码时,至少两个服务节点通过反向代理被分配用户代码。利用反向代理服务器实现用户终端与至少两个服务节点之间的用户代码分配,当反向代理服务器获取到用户终端的用户代码,即可将用户代码分配到至少两个服务节点中的一个服务节点,使得服务节点通过反向代理被分配用户代码。同样地,服务节点可同时接收多个用户终端的用户代码,支持多用户终端的并发连接。
服务节点接收到用户代码后,为每个用户代码创建一运行任务,并将运行任务放置于任务队列中,从而任务队列中包括服务节点投放的所有与用户代码一一对应的运行任务。排队队列可以为Redis(Remote Dictionary Server,远程字典服务)列表等存储***、RabbitMQ(Message Queue,消息队列)等面向消息的中间件。
在一公开实施例中,根据用户代码的资源依赖需求,将用户代码对应的运行任务分离放置。具体地,任务队列包括第一任务队列和第二任务队列,第一任务队列和第二任务队列中的运行任务被计算时将依赖于不同的代码资源,例如,第一任务队列中的运行任务依赖CPU(central processing unit,中央处理器)代码运行环境资源,而第二任务队列中的运行任务依赖GPU(Graphics Processing Unit,图形处理器)代码运行环境资源。第一任务队列和第二任务队列中的运行任务的分配取决于用户代码的计算特征,也即,计算特征用于指示用户代码归属于第一任务队列或第二任务队列。其中,计算特征的表现形式包括但不限于用户代码中的预设位长的字符串标识、二进制代码等。从而,服务节点将用户代码作为运行任务放置于任务队列中时,根据用户代码的计算特征,将用户代码作为运行任务放置于第一任务队列或第二任务队列中。
在一公开实施例中,任务队列可包括至少两个子任务队列,可预先建立服务节点与多个子任务队列的关联关系,服务节点接收用户终端发出的用户代码,并将用户代码作为运行任务放置于不同的子任务队列中,亦或者建立多个服务节点与多个子任务队列的关联关系,一部分服务节点将接收的用户代码分配于与其建立关联关系的一部分子任务队列,另一部分服务节点将接收的用户代码分配于与其建立关联关系的另一部分子任务队列,实现服务节点与任务队列的对应关联关系即可。
步骤S102:计算节点监控任务队列,以获取运行任务。
任务队列中包括运行任务,从而计算节点监控任务队列,检测到任务队列中包含该计算节点可执行的运行任务时,即可获取到运行任务。计算节点从任务队列中获取运行任务的方式,包括但不限于任务队列主动将运行任务分配至计算节点,或者计算节点向任务队列请求获取运行任务,任务队列根据请求将运行任务分配至计算节点。
在一公开实施例中,计算节点的数量为至少两个。计算节点监控任务队列,以获取运行任务时,至少两个计算节点监控任务队列,向任务队列请求获取运行任务;任务队列将一个运行任务分配至一个计算节点,从而任务队列完成运行任务的合理分配。任务队列将运行任务分配至计算节点的规则可自定义设置,例如,预先存储所有计算节点的优先等级,任务队列同时收到多个计算节点对同一运行任务的获取请求时,将运行任务分配至优先等级高的计算节点;或者将运行任务分配至预设时间内获取运行任务最少的计算节点,在此不作具体限定。
在一公开实施例中,任务队列包括第一任务队列和第二任务队列、计算节点包括第一计算节点和第二计算节点的情况下,计算节点监控任务队列具体为第一计算节点监控第一任务队列,第二计算节点监控第二任务队列,从而实现不同计算节点分别监控不同任务队列,方便管理,提高运行任务的获取效率。其中,第一计算节点和第二计算节点可分别位于不同配置的服务器上,从而分别拥有不同的计算和存储资源,可实现不同用户代码的计算。对于用户代码的计算,可由计算特征获知用户代码被计算时所依赖的计算和存储资源,也即,用户代码的计算特征用于指示用户代码归属于第一任务队列或第二任务队列,进而指示用户代码被位于不同配置的服务器上第一计算节点或第二计算节点计算。
进一步的,第一计算节点设置于CPU服务器上,第二计算节点设置于GPU服务器上;第一任务队列包括依赖CPU代码运行环境资源的运行任务,第二任务队列包括依赖GPU代码运行环境资源的运行任务;从而CPU服务器上的第一计算节点监控第一任务队列,获得运行任务,而GPU服务器上的第二计算节点监控第二任务队列,获得运行任务。
步骤S103:计算节点计算运行任务,得到计算结果。
计算节点利用所处服务器上可利用的计算和内存资源,计算所获得的运行任务,即可得到计算结果。计算节点在完成运行任务的计算后,释放对应的计算资源并继续监控任务队列,也即,计算节点完成当前的运行任务的计算后即释放资源,继续监控任务队列,以获取新的运行任务,使得计算节点最大限度地复用计算和内存资源。其中,本申请不论计算节点可获取任务队列中任意运行任务,还是第一计算节点和第二计算节点分别获取第一任务队列和第二任务队列的运行任务,同一计算节点均可执行完毕运行任务即释放资源,不断获取新的运行任务,只要计算节点的计算和内存资源符合用户代码的运行环境资源即可。因此,用户代码可以在不同计算节点中执行,使得计算节点的计算和内存资源重复利用,充分并合理地利用服务器的硬件资源。
呈前所述,服务节点根据用户代码的计算特征将用户代码作为运行任务放置到第一任务队列或第二任务队列;第一计算节点和第二计算节点分别从第一任务队列和第二任务队列获取运行任务;不同配置的服务器上的第一计算节点和第二计算节点分别利用各自的计算和内存资源计算运行任务,得到计算结果。因此,任务队列根据用户代码的实际需求将运行任务分发到计算节点运行,且计算节点归属于不同配置的服务器,实现资源的合理利用。例如,第一任务队列为CPU任务队列,第二任务队列为GPU任务队列,第一计算节点和第二计算节点分别位于CPU服务器和GPU服务器上,第一计算节点从第一任务队列获取运行任务并计算,而第二计算节点从第二任务队列获取运行任务并计算。具体地,一用户代码的计算特征指示对应的用户代码归属于第一任务队列,第一计算节点从第一任务队列获取运行任务,利用CPU服务器上的计算和内存资源计算运行任务,得到计算结果。CPU服务器上的计算节点可以执行不依赖GPU服务器资源的常规代码,GPU服务器上的计算节点可以执行包括但不限于神经网络模型训练、图像处理等使用GPU服务器资源的代码。
步骤S104:服务节点从计算节点获取计算结果,以将计算结果反馈至用户终端。
计算节点计算运行任务得到计算结果后,服务节点即可从计算节点获取计算结果,并将计算结果反馈至用户终端。服务节点从计算节点获取计算结果的方式包括但不限于获取请求、订阅等,在此不做具体限定。服务节点从计算节点获取计算结果的方式为获取请求时,服务节点监控计算节点,向计算节点发送获取计算结果的获取请求,对应的计算节点根据获取请求反馈计算结果至服务节点。服务节点从计算节点获取计算结果的方式为订阅时,计算节点计算运行任务得到计算结果后,直接将计算结果反馈回服务节点。
在一公开实施例中,编程平台还包括消息队列,并且消息队列用于暂存计算节点计算运行任务得到的计算结果。消息队列可以为Redis(Remote Dictionary Server,远程字典服务)列表等存储***、RabbitMQ(Message Queue,消息队列)等面向消息的中间件。面向消息的服务节点从计算节点获取计算结果,以将计算结果反馈至用户终端时,计算节点将计算结果放置于消息队列;服务节点监控消息队列,以获取计算结果,并将计算结果反馈至用户终端。服务节点从计算节点获取计算结果,以将计算结果反馈至用户终端时,服务节点从消息队列中订阅到计算节点的计算结果,并通过websocket等通信技术将计算结果反馈至用户终端。
本公开实施例中,服务节点接收用户终端发出的用户代码后,即建立与用户终端的会话连接;服务节点在获取计算结果之前,保持与用户终端的会话连接;服务节点获取到计算节点的计算结果后,即断开与相应用户终端的会话连接。从而,服务节点在获取所述计算结果之前,一直保持服务节点与用户终端的联系,方便计算结果反馈回用户终端。用户代码的运行过程中,服务节点与计算节点分离设置,用户终端的连接与用户代码的计算分别由服务节点和计算节点完成。其中,服务节点在与用户终端维持会话的长连接的同时,计算节点完成运行任务的计算,释放对应的计算资源并继续监控任务队列,使得计算节点不断重复利用计算资源,用户代码的运行过程中不需要一直占用计算节点,实现用户代码运行的异步通信,提高***的并发能力。计算节点获取到运行任务并计算得到计算结果后,释放对应的计算资源,并继续获取新的运行任务,使得计算节点的计算资源不被一直占用,实现同一计算节点的计算资源得到重复利用,进而提高资源利用率。
通过上述方式,编程平台包括服务节点、任务队列以及计算节点,从而服务节点和计算节点分离设置,服务节点接收用户终端发出的用户代码,并将用户代码作为运行任务放置于任务队列中;计算节点监控任务队列,以获取运行任务;计算节点计算运行任务,得到计算结果;服务节点从计算节点获取计算结果,以将计算结果反馈至用户终端,从而服务节点实现与用户终端的连接,而计算节点实现用户代码的计算,进而实现用户代码的运行。另外,用户代码的运行过程中,服务节点与计算节点分离设置,使得用户终端的连接与用户代码的计算分别由服务节点和计算节点完成,实现用户代码运行的异步通信,提高***的并发能力。
本申请还提供一种服务节点,同样能够执行编程平台的用户代码运行方法。请参阅图2,图2是本申请编程平台的用户代码运行方法另一实施例的流程示意图。具体而言,本公开实施例方法包括以下步骤:
步骤S201:接收用户终端发出的用户代码。
本公开实施例执行编程平台的用户代码运行方法为上述编程平台的用户代码运行方法任一实施例中的服务节点。编程平台包括服务节点、任务队列以及计算节点。
服务节点可接收多个用户终端中任意一个用户终端的用户代码,并且可同时接收多个用户终端的用户代码,支持多用户终端的并发连接。服务节点接收用户代码的方式包括但不限于websocket(全双工通信的协议)通信技术、HTTP(Hyper Text TransferProtocol,超文本传输协议)通信技术,在此不作具体限定。服务节点接收的用户代码的来源可多样化,例如,用户终端自带的代码编辑窗口获取到用户编辑的代码,形成用户代码,亦或者用户终端接收到与其连接的代码编辑设备传输的用户代码等。
在一公开实施例中,服务节点通过反向代理被分配用户代码,使得用户终端与服务节点不必建立一一对应的关联关系,由反向代理服务器进行用户终端的用户代码的分配。
步骤S202:将用户代码作为运行任务放置于任务队列中,以由计算节点从任务队列中获取并计算运行任务。
服务节点将用户代码作为运行任务放置于任务队列中,使得任务队列中的运行任务被统一分配,可通过排队机制提升***的并发响应能力。服务节点获取到用户终端的用户代码,并保持与用户终端的会话连接,实现与用户终端的连接即可,而对于用户代码,则将用户代码作为运行任务放置于任务队列后,以由计算节点从任务队列获取并计算运行任务,使得用户终端的连接与用户代码的计算分别由服务节点和计算节点完成,实现用户代码运行的异步通信,提高***的并发能力。
在一公开实施例中,任务队列包括第一任务队列和第二任务队列,计算节点包括第一计算节点和第二计算节点。服务节点将用户代码作为运行任务放置于任务队列中,以由计算节点从任务队列中获取并计算运行任务时,根据用户代码的计算特征,将用户代码作为运行任务放置于第一任务队列或第二任务队列中,以由第一计算节点从第一任务队列中获取并计算运行任务,或由第二计算节点从第二任务队列中获取并计算运行任务。
其余有关步骤S201和S202的描述可参阅上述步骤S101至步骤S103,在此不再赘述。
步骤S203:获取计算节点的计算结果,并将计算结果反馈至用户终端。
计算节点得到计算结果后,服务节点即可从计算节点获取计算结果,并将计算结果反馈至用户终端。在一公开实施例中,编程平台还包括消息队列,并且消息队列用于暂存计算节点计算运行任务得到的计算结果。服务节点从计算节点获取计算结果,以将计算结果反馈至用户终端时,服务节点监控消息队列,以获取计算结果,并将计算结果反馈至用户终端。其中,服务节点获取的计算结果是计算节点将计算结果放置于消息队列的。
本公开实施例中,服务节点接收用户终端发出的用户代码后,即建立与用户终端的会话连接;服务节点在获取计算结果之前,保持与用户终端的会话连接;服务节点获取到计算节点的计算结果后,即断开与相应用户终端的会话连接。从而,服务节点在获取所述计算结果之前,一直保持服务节点与用户终端的联系,方便计算结果反馈回用户终端。
通过上述方式,服务节点接收用户终端发出的用户代码;将用户代码作为运行任务放置于任务队列中,以由计算节点从任务队列中获取并计算运行任务;获取计算节点的计算结果,并将计算结果反馈至用户终端,实现用户代码的运行。服务节点用于与用户终端连接,并将用户终端发出的用户代码作为运行任务放置于任务队列中,使得独立于服务节点的计算节点从任务队列中获取并计算运行任务得到计算结果后,服务节点获取计算节点的计算结果,并将计算结果反馈至用户终端,实现用户代码的运行。
本申请还提供一种计算节点,同样能够执行编程平台的用户代码运行方法。请参阅图3,图3是本申请编程平台的用户代码运行方法再一实施例的流程示意图。具体而言,本公开实施例方法包括以下步骤:
步骤S301:监控任务队列,以获取运行任务。
本公开实施例执行编程平台的用户代码运行方法为上述编程平台的用户代码运行方法任一实施例中的计算节点。任务队列中包括运行任务,并且运行任务对应用户代码。
计算节点监控包括运行任务的任务队列,从任务队列中获取与用户代码一一对应的运行任务。
计算节点包括第一计算节点和第二计算节点,并且第一计算节点和第二计算节点分别位于CPU服务器和GPU服务器上,从而第一计算节点监控任务队列中的依赖CPU服务器中的计算和内存资源的运行任务,而第二计算节点监控任务队列中的依赖GPU服务器中的计算和内存资源的运行任务。具体地,任务队列可包括第一任务队列和第二任务队列,第一计算节点和第二计算节点分别监控第一任务队列和第二任务队列,以获取运行任务。
也即,用户代码与任务队列相对应,本公开实施例的计算节点为第一计算节点时,从第一任务队列中获取CPU服务器中的计算和内存资源的运行任务;计算节点为第二计算节点时,从第二任务队列中获取GPU服务器中的计算和内存资源的运行任务。
步骤S302:计算运行任务,得到计算结果。
计算节点利用所归属的服务器上的计算和内存资源计算运行任务,得到计算结果。计算节点在完成运行任务的计算后,释放对应的计算资源并继续监控任务队列,也即,计算节点完成当前的运行任务的计算后即释放资源,继续监控任务队列,以获取新的运行任务,使得计算节点最大限度地复用计算和内存资源。
通过上述方式,监控任务队列,以获取运行任务;任务队列中包括运行任务,运行任务对应用户代码;计算运行任务,得到计算结果,实现有序进行计算节点运行任务的获取。任务队列中包括运行任务,而运行任务对应用户代码,于是计算节点监控包括运行任务的任务队列,从而获取到对应用户代码的运行任务,进而计算运行任务得到计算结果,实现运行任务的获取与计算。
本申请还提供一种编程平台,如图4所示,图4是本申请编程平台一实施例的结构示意图。具体而言,本公开实施例中编程平台40包括服务节点41、任务队列42、计算节点43。服务节点41用于接收用户终端发出的用户代码,并将用户代码作为运行任务放置于任务队列42中;计算节点43用于监控任务队列42,以获取运行任务;计算节点43还用于计算运行任务,得到计算结果;服务节点41还用于从计算节点43获取计算结果,以将计算结果反馈至用户终端。
在一公开实施例中,任务队列42包括第一任务队列和第二任务队列,计算节点43包括第一计算节点和第二计算节点;服务节点41用于将用户代码作为运行任务放置于任务队列42中时,进一步用于根据用户代码的计算特征,将用户代码作为运行任务放置于第一任务队列或第二任务队列中;计算节点43用于监控任务队列42,具体地,第一计算节点监控第一任务队列,第二计算节点监控第二任务队列。
在一公开实施例中,服务节点41的数量为至少两个;服务节点41用于接收用户终端发出的用户代码时,至少两个服务节点41通过反向代理被分配用户代码。
在一公开实施例中,计算节点43的数量为至少两个;计算节点43用于监控任务队列42,以获取运行任务时,至少两个计算节点43用于监控任务队列42,向任务队列42请求获取运行任务;任务队列42用于将一个运行任务分配至一个计算节点43。
在一公开实施例中,计算节点43还用于在完成运行任务的计算后,释放对应的计算资源并继续监控任务队列42。
在一公开实施例中,编程平台40还包括消息队列44;服务节点41用于从计算节点43获取计算结果,以将计算结果反馈至用户终端时,计算节点43还用于将计算结果放置于消息队列44;服务节点41还用于监控消息队列42,以获取计算结果,并将计算结果反馈至用户终端。
在一公开实施例中,服务节点41还用于在获取计算结果之前,保持与用户终端的会话连接。
图4中的编程平台40中的服务节点41还用于执行编程平台的用户代码运行方法。具体地,如图5所示,图5是本申请编程平台服务节点41一实施例的结构示意图。服务节点41包括接收单元411、放置单元412和获取单元413。其中,接收单元411用于接收用户终端发出的用户代码;放置单元412用于将用户代码作为运行任务放置于任务队列中,以由计算节点从任务队列中获取并计算运行任务;获取单元413用于获取计算节点的计算结果,并将计算结果反馈至用户终端。
在一公开实施例中,放置单元412用于将用户代码作为运行任务放置于任务队列中,以由计算节点从任务队列中获取并计算运行任务时,还用于根据用户代码的计算特征,将用户代码作为运行任务放置于第一任务队列或第二任务队列中,以由第一计算节点从第一任务队列中获取并计算运行任务,或由第二计算节点从第二任务队列中获取并计算运行任务。
在一公开实施例中,接收单元411用于接收用户终端发出的用户代码时,通过反向代理被分配用户代码。
在一公开实施例中,获取单元413用于在获取计算结果之前,服务节点41保持与用户终端的会话连接。
图4中的编程平台40的计算节点43还用于执行编程平台的用户代码运行方法。具体地,如图6所示,图6是本申请编程平台计算节点43一实施例的结构示意图。计算节点43包括监控单元431和计算单元432,监控单元431用于监控任务队列,以获取运行任务,其中,任务队列中包括运行任务,运行任务对应用户代码;计算单元432用于计算运行任务,得到计算结果。
在一公开实施例中,计算单元432用于完成运行任务的计算后,计算节点43释放对应的计算资源并继续监控任务队列。
为进一步说明本申请的编程平台,请参阅图7所示,图7是本申请编程平台另一实施例的结构示意图。
本公开实施例中编程平台70包括服务节点71、任务队列72、计算节点73和消息队列74,任务队列72包括第一任务队列721和第二任务队列722,计算节点73包括第一计算节点731和第二计算节点732,第一计算节点731位于CPU服务器701上,而第二计算节点732位于GPU服务器702上。
具体应用时,服务节点71可接收多个用户终端中任意一个用户终端的用户代码,并且可同时接收多个用户终端的用户代码,实现接收用户终端发出的用户代码;将用户代码作为运行任务放置于任务队列72时,若根据用户代码的计算特征,判定用户代码归属于第一任务队列721并将利用CPU服务器701的代码运行资源,则将该用户代码作为运行任务放置于第一任务队列721中,第一计算节点731监控第一任务队列721获取并计算运行任务,得到计算结果;或者,若根据用户代码的计算特征,判定用户代码归属于第二任务队列722并将利用GPU服务器702的代码运行资源,则将该用户代码作为运行任务放置于第二任务队列722中,第二计算节点732监控第二任务队列722获取并计算运行任务,得到计算结果;第一计算节点731和第二计算节点732均将计算结果放置于消息队列74中,服务节点71监控消息队列74,以获取计算结果,并将计算结果反馈至对应的用户终端。本公开实施例中有关服务节点71、任务队列72、计算节点73和消息队列74的描述,可参阅上述编程平台一实施例,在此不再赘述。
通过上述方式,服务节点将接收到的用户代码作为运行任务分别放置于不同任务队列;然后不同服务器上的计算节点分别监控不同任务队列,获取对应的运行任务,从而利用不同的计算和存储资源计算运行任务,得到计算结果,并且计算节点均将计算结果统一放置于消息队列;最后,服务节点从消息队列获取到计算节点的计算结果,并将计算结果反馈至用户终端。整个用户代码的运行过程中,服务节点与计算节点分离设置,使得用户终端的连接与用户代码的计算分别由服务节点和计算节点完成,计算节点的计算资源可不断重复利用,并且不同的计算节点对应不同的消息队列、从而获取依赖不同计算和存储资源的用户代码进行计算,实现用户代码运行的异步通信,提高***的并发能力。
在一公开应用实施例中,编程平台可以为在线编程教育平台、人工智能平台。例如,编程平台为在线编程教育平台,其面向学校或培训机构等,用户终端为访问在线编程教育平台的学生终端,实现用户代码的运行。在线编程教育平台包括服务节点、任务队列和计算节点,其中任务队列为redis列表。学生通过学生终端的编程界面输入用户代码,服务节点可接收学生终端的用户代码,并且可同时接收多个学生终端的用户代码,实现接收在线编程教育平台中学生发出的用户代码;服务节点将用户代码作为运行任务放置于为任务队列的redis列表中。计算节点监控redis列表,以获取运行任务;并计算运行任务,得到计算结果。服务节点从计算节点获取计算结果,以将计算结果反馈至学生终端。
在另一公开应用实施例中,编程平台为在线编程教育平台,用户终端为访问在线编程教育平台的学生终端。在线编程教育平台包括服务节点、任务队列、计算节点和消息队列,其中,任务队列为redis列表且包括第一任务队列和第二任务队列;计算节点包括第一计算节点和第二计算节点;消息队列为RabbitMQ。在线编程教育平台的服务节点根据用户代码的计算特征,判定用户代码归属于第一任务队列并将利用CPU服务器的代码运行资源,则将该用户代码作为运行任务放置于第一任务队列中,第一计算节点监控第一任务队列获取并计算运行任务,得到计算结果;或者,服务节点根据用户代码的计算特征,判定用户代码归属于第二任务队列并将利用GPU服务器的代码运行资源,则将该用户代码作为运行任务放置于第二任务队列中,第二计算节点监控第二任务队列获取并计算运行任务,得到计算结果;第一计算节点和第二计算节点均将计算结果放置于消息队列RabbitMQ中,服务节点监控RabbitMQ,以获取计算结果,并将计算结果反馈至对应的学生终端。
通过上述方式,面向学校或培训机构等,在线编程教育平台可满足更多数量的学生在在线编程教育平台上同时进行在线编程学习,实现充分利用算力资源,节约成本。
请参阅图8,图8为本申请电子设备一实施例的框架示意图。具体而言,本公开实施例中电子设备800包括相互耦接的存储器810和处理器820。其中,存储器810用于存储的程序指令以及处理器820处理时所需存储的数据。
处理器820控制存储器810及其自身以实现上述编程平台的用户代码运行方法任一实施例的步骤。处理器820还可以称为CPU(Central Processing Unit,中央处理单元)。处理器820可能是一种集成电路芯片,具有信号的处理能力。处理器820还可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器820可以由多个成电路芯片共同实现。
请参阅图9,图9是本申请存储装置一实施例的框架示意图。本申请存储装置900存储有能够被处理器运行的程序指令901,程序指令901用于实现上述任一编程平台的用户代码运行方法的实施例中步骤。
该存储装置900具体可以为U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等可以存储程序指令901的介质,或者也可以为存储有该程序指令901的服务器,该服务器可将存储的程序指令901发送给其他设备运行,或者也可以自运行该存储的程序指令901。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

Claims (16)

1.一种编程平台的用户代码运行方法,其特征在于,所述编程平台包括:服务节点、任务队列、计算节点;所述方法包括:
所述服务节点接收用户终端发出的用户代码,并将所述用户代码作为运行任务放置于所述任务队列中;
所述计算节点监控所述任务队列,以获取所述运行任务;
所述计算节点计算所述运行任务,得到计算结果;
所述服务节点从所述计算节点获取所述计算结果,以将所述计算结果反馈至所述用户终端。
2.根据权利要求1所述的方法,其特征在于,所述任务队列包括第一任务队列和第二任务队列,所述计算节点包括第一计算节点和第二计算节点;
所述将所述用户代码作为运行任务放置于任务队列中,包括:
根据所述用户代码的计算特征,将所述用户代码作为运行任务放置于第一任务队列或第二任务队列中;
所述计算节点监控所述任务队列,包括:
所述第一计算节点监控所述第一任务队列,所述第二计算节点监控所述第二任务队列。
3.根据权利要求1或2所述的方法,其特征在于,所述服务节点的数量为至少两个;所述服务节点接收用户终端发出的用户代码,包括:
至少两个所述服务节点通过反向代理被分配所述用户代码。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述计算节点的数量为至少两个;所述计算节点监控所述任务队列,以获取所述运行任务,包括:
至少两个所述计算节点监控所述任务队列,向所述任务队列请求获取所述运行任务;
所述任务队列将一个所述运行任务分配至一个所述计算节点。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述计算节点在完成所述运行任务的计算后,释放对应的计算资源并继续监控所述任务队列。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述编程平台还包括消息队列;所述服务节点从所述计算节点获取所述计算结果,以将所述计算结果反馈至所述用户终端,包括:
所述计算节点将所述计算结果放置于所述消息队列;
所述服务节点监控所述消息队列,以获取所述计算结果,并将所述计算结果反馈至所述用户终端。
7.根据权利要求6所述的方法,其特征在于,所述服务节点在获取所述计算结果之前,保持与所述用户终端的会话连接。
8.一种编程平台的用户代码运行方法,其特征在于,所述方法包括:
接收用户终端发出的用户代码;
将所述用户代码作为运行任务放置于任务队列中,以由计算节点从所述任务队列中获取并计算所述运行任务;
获取所述计算节点的计算结果,并将所述计算结果反馈至所述用户终端。
9.根据权利要求8所述的方法,其特征在于,所述将所述用户代码作为运行任务放置于任务队列中,以由计算节点从所述任务队列中获取并计算所述运行任务,包括:
根据所述用户代码的计算特征,将所述用户代码作为运行任务放置于第一任务队列或第二任务队列中,以由第一计算节点从所述第一任务队列中获取并计算所述运行任务,或由第二计算节点从所述第二任务队列中获取并计算所述运行任务。
10.根据权利要求8或9所述的方法,其特征在于,所述接收用户终端发出的用户代码,包括:
通过反向代理被分配所述用户代码。
11.根据权利要求8-10任一项所述的方法,其特征在于,所述方法包括:在获取所述计算结果之前,保持与所述用户终端的会话连接。
12.一种编程平台的用户代码运行方法,其特征在于,所述方法包括:
监控任务队列,以获取运行任务;所述任务队列中包括所述运行任务,所述运行任务对应所述用户代码;
计算所述运行任务,得到计算结果。
13.根据权利要求12所述的方法,其特征在于,所述方法包括:在完成所述运行任务的计算后,释放对应的计算资源并继续监控所述任务队列。
14.一种编程平台,其特征在于,所述编程平台包括:服务节点、任务队列、计算节点;
所述服务节点用于接收用户终端发出的用户代码,并将所述用户代码作为运行任务放置于所述任务队列中;
所述计算节点用于监控所述任务队列,以获取所述运行任务;
所述计算节点还用于计算所述运行任务,得到计算结果;
所述服务节点还用于从所述计算节点获取所述计算结果,以将所述计算结果反馈至所述用户终端。
15.一种电子设备,其特征在于,包括相互耦接的存储器和处理器;
所述处理器用于执行所述存储器存储的程序指令,以实现权利要求1至7任一项所述的方法;和/或,以实现权利要求8至11任一项所述的方法;和/或,以实现权利要求12至13任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,存储有能够被运行以实现如权利要求1-7中任一项所述编程平台的用户代码运行方法的计算机程序;和/或,存储有能够被运行以实现如权利要求8-11中任一项所述编程平台的用户代码运行方法的计算机程序;和/或,存储有能够被运行以实现如权利要求12-13中任一项所述编程平台的用户代码运行方法的计算机程序。
CN202010093681.6A 2020-02-14 2020-02-14 编程平台的用户代码运行方法及平台、设备、存储介质 Pending CN111427551A (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN202010093681.6A CN111427551A (zh) 2020-02-14 2020-02-14 编程平台的用户代码运行方法及平台、设备、存储介质
SG11202108352TA SG11202108352TA (en) 2020-02-14 2020-12-08 User code running method for programming platform, platform, node, device and medium
JP2021540579A JP2022522609A (ja) 2020-02-14 2020-12-08 プログラミング・プラットフォームのユーザコードの実行方法及びプラットフォーム、ノード、機器、媒体
KR1020217021414A KR20210105378A (ko) 2020-02-14 2020-12-08 프로그래밍 플랫폼의 사용자 코드 작동 방법 및 플랫폼, 노드, 기기, 매체
PCT/CN2020/134531 WO2021159831A1 (zh) 2020-02-14 2020-12-08 编程平台的用户代码运行方法及平台、节点、设备、介质
TW110102727A TWI786527B (zh) 2020-02-14 2021-01-25 程式設計平台的使用者代碼運行方法、電子設備和電腦可讀儲存介質

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010093681.6A CN111427551A (zh) 2020-02-14 2020-02-14 编程平台的用户代码运行方法及平台、设备、存储介质

Publications (1)

Publication Number Publication Date
CN111427551A true CN111427551A (zh) 2020-07-17

Family

ID=71547088

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010093681.6A Pending CN111427551A (zh) 2020-02-14 2020-02-14 编程平台的用户代码运行方法及平台、设备、存储介质

Country Status (6)

Country Link
JP (1) JP2022522609A (zh)
KR (1) KR20210105378A (zh)
CN (1) CN111427551A (zh)
SG (1) SG11202108352TA (zh)
TW (1) TWI786527B (zh)
WO (1) WO2021159831A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113157420A (zh) * 2021-04-27 2021-07-23 上海临视人工智能科技有限公司 跨平台分布式任务调度***及调度方法
WO2021159831A1 (zh) * 2020-02-14 2021-08-19 深圳市商汤科技有限公司 编程平台的用户代码运行方法及平台、节点、设备、介质
CN113905083A (zh) * 2021-10-15 2022-01-07 上海商汤临港智能科技有限公司 用户代码运行方法及装置、电子设备和存储介质
CN116560658A (zh) * 2023-06-29 2023-08-08 睿思芯科(深圳)技术有限公司 基于云技术的芯片集成开发***

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101072133A (zh) * 2007-05-23 2007-11-14 华中科技大学 一种基于对等网络的高性能计算***
CN106874067A (zh) * 2017-01-24 2017-06-20 华南理工大学 基于轻量级虚拟机的并行计算方法、装置及***
CN108027751A (zh) * 2015-09-14 2018-05-11 高通股份有限公司 对多版本任务的高效调度
CN108182111A (zh) * 2018-01-23 2018-06-19 百度在线网络技术(北京)有限公司 任务调度***、方法和装置
CN108228349A (zh) * 2017-12-26 2018-06-29 北京市商汤科技开发有限公司 用于处理任务的方法、***和存储介质
CN109246151A (zh) * 2018-11-05 2019-01-18 国家电网有限公司 一种输电线路视频智能巡检分析调度方法
CN110032364A (zh) * 2019-04-11 2019-07-19 上海商汤智能科技有限公司 数据处理方法、装置、电子设备和计算机存储介质
CN110275778A (zh) * 2019-06-14 2019-09-24 上海商汤智能科技有限公司 在线程序运行方法、装置、电子设备和计算机存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7467387B2 (en) * 2002-05-31 2008-12-16 International Business Machines Corporation Method for off-loading user queries to a task manager
JP2009258803A (ja) * 2008-04-11 2009-11-05 Hitachi Ltd 対話処理システム及び対話処理方法
EP3491805B1 (en) * 2016-09-07 2020-10-14 Cloud of Things, Ltd System and method for configuration of a connected device connection
WO2018108035A1 (zh) * 2016-12-13 2018-06-21 腾讯科技(深圳)有限公司 信息处理以及虚拟资源交换方法、装置及设备
CN106874109A (zh) * 2016-12-29 2017-06-20 朗新科技股份有限公司 一种分布式作业分发处理方法及***
US11017107B2 (en) * 2018-03-06 2021-05-25 Amazon Technologies, Inc. Pre-deployment security analyzer service for virtual computing resources
CN110516738B (zh) * 2019-08-23 2022-09-16 佳都科技集团股份有限公司 一种分布式比对聚类方法、装置、电子设备及存储介质
CN111427551A (zh) * 2020-02-14 2020-07-17 深圳市商汤科技有限公司 编程平台的用户代码运行方法及平台、设备、存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101072133A (zh) * 2007-05-23 2007-11-14 华中科技大学 一种基于对等网络的高性能计算***
CN108027751A (zh) * 2015-09-14 2018-05-11 高通股份有限公司 对多版本任务的高效调度
CN106874067A (zh) * 2017-01-24 2017-06-20 华南理工大学 基于轻量级虚拟机的并行计算方法、装置及***
CN108228349A (zh) * 2017-12-26 2018-06-29 北京市商汤科技开发有限公司 用于处理任务的方法、***和存储介质
CN108182111A (zh) * 2018-01-23 2018-06-19 百度在线网络技术(北京)有限公司 任务调度***、方法和装置
CN109246151A (zh) * 2018-11-05 2019-01-18 国家电网有限公司 一种输电线路视频智能巡检分析调度方法
CN110032364A (zh) * 2019-04-11 2019-07-19 上海商汤智能科技有限公司 数据处理方法、装置、电子设备和计算机存储介质
CN110275778A (zh) * 2019-06-14 2019-09-24 上海商汤智能科技有限公司 在线程序运行方法、装置、电子设备和计算机存储介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021159831A1 (zh) * 2020-02-14 2021-08-19 深圳市商汤科技有限公司 编程平台的用户代码运行方法及平台、节点、设备、介质
CN113157420A (zh) * 2021-04-27 2021-07-23 上海临视人工智能科技有限公司 跨平台分布式任务调度***及调度方法
CN113905083A (zh) * 2021-10-15 2022-01-07 上海商汤临港智能科技有限公司 用户代码运行方法及装置、电子设备和存储介质
CN116560658A (zh) * 2023-06-29 2023-08-08 睿思芯科(深圳)技术有限公司 基于云技术的芯片集成开发***
CN116560658B (zh) * 2023-06-29 2024-02-06 睿思芯科(深圳)技术有限公司 基于云技术的芯片集成开发***

Also Published As

Publication number Publication date
SG11202108352TA (en) 2021-09-29
WO2021159831A1 (zh) 2021-08-19
TWI786527B (zh) 2022-12-11
JP2022522609A (ja) 2022-04-20
TW202131171A (zh) 2021-08-16
KR20210105378A (ko) 2021-08-26

Similar Documents

Publication Publication Date Title
CN111427551A (zh) 编程平台的用户代码运行方法及平台、设备、存储介质
CN109246229B (zh) 一种分发资源获取请求的方法和装置
US9635103B2 (en) Dynamic virtual resource request rate control for utilizing physical resources
CN108023953B (zh) Ftp服务的高可用实现方法和装置
CN106921754B (zh) 集群***的负载均衡方法、装置、介质和电子设备
CN109117252B (zh) 基于容器的任务处理的方法、***及容器集群管理***
CN112286688B (zh) 一种内存管理和使用方法、装置、设备和介质
CN109428926B (zh) 一种调度任务节点的方法和装置
CN115543615A (zh) 一种资源分配方法、装置、电子设备及存储介质
US20220413933A1 (en) Liaison System and Method for Cloud Computing Environment
CN104202305A (zh) 一种转码处理方法、装置及服务器
CN110113176B (zh) 用于配置服务器的信息同步方法及装置
CN111835809B (zh) 工单消息分配方法、装置、服务器及存储介质
CN104735134B (zh) 一种用于提供计算服务的方法和装置
CN116703071A (zh) 资源共享方法、装置及设备和存储介质
CN113127561B (zh) 业务单号的生成方法、装置、电子设备和存储介质
CN114489978A (zh) 资源调度方法、装置、设备及存储介质
CN115250276A (zh) 分布式***及数据处理的方法和装置
CN112835721A (zh) 分配gpu卡的数量的方法、装置、电子设备和存储介质
CN113760482A (zh) 一种任务处理方法、装置和***
CN112114971A (zh) 一种任务分配方法、装置及设备
CN110147278A (zh) 数据处理方法及装置
CN117785486B (zh) 环境资源调配方法、装置、设备和介质
CN116755905B (zh) 基于消息队列的数据交互方法、装置、设备及存储介质
CN113179308B (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40023682

Country of ref document: HK

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200717