KR20210105378A - How the programming platform's user code works and the platform, node, device, medium - Google Patents

How the programming platform's user code works and the platform, node, device, medium Download PDF

Info

Publication number
KR20210105378A
KR20210105378A KR1020217021414A KR20217021414A KR20210105378A KR 20210105378 A KR20210105378 A KR 20210105378A KR 1020217021414 A KR1020217021414 A KR 1020217021414A KR 20217021414 A KR20217021414 A KR 20217021414A KR 20210105378 A KR20210105378 A KR 20210105378A
Authority
KR
South Korea
Prior art keywords
node
work queue
user code
computation
queue
Prior art date
Application number
KR1020217021414A
Other languages
Korean (ko)
Inventor
시아오보 리
유주 조우
준 우
Original Assignee
선전 센스타임 테크놀로지 컴퍼니 리미티드
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 선전 센스타임 테크놀로지 컴퍼니 리미티드 filed Critical 선전 센스타임 테크놀로지 컴퍼니 리미티드
Publication of KR20210105378A publication Critical patent/KR20210105378A/en

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

본 출원은 프로그래밍 플랫폼의 사용자 코드 작동 방법 및 플랫폼, 노드, 기기, 매체를 개시한다. 여기서, 프로그래밍 플랫폼은 서비스 노드, 작업 대기열, 계산 노드를 포함하고; 상기 방법은, 서비스 노드가 사용자 단말을 나타내기 위한 사용자 코드를 획득하고, 사용자 코드를 작동 작업으로서 작업 대기열에 배치하는 단계; 계산 노드가 작업 대기열을 모니터링하여, 작동 작업을 획득하는 단계; 계산 노드가 작동 작업을 계산하여, 계산 결과를 얻는 단계; 및 서비스 노드가 계산 노드로부터 계산 결과를 획득하여, 계산 결과를 사용자 단말에 피드백하는 단계를 포함한다.This application discloses a method and platform, node, device, medium for operating user code of a programming platform. Here, the programming platform includes a service node, a work queue, and a computation node; The method includes the steps of: a service node obtaining a user code for representing a user terminal, and placing the user code in a work queue as an operation task; the computing node monitoring the work queue to obtain working work; calculating, by the computation node, an operation task to obtain a computation result; and obtaining, by the service node, a calculation result from the calculation node, and feeding back the calculation result to the user terminal.

Description

프로그래밍 플랫폼의 사용자 코드 작동 방법 및 플랫폼, 노드, 기기, 매체How the programming platform's user code works and the platform, node, device, medium

본 출원은 출원 번호가 202010093681.6이고, 출원일이 2020년 2월 14일인 중국 특허 출원에 기반하여 제출한 것이며, 상기 중국 특허 출원의 우선권을 주장하는바, 상기 중국 특허 출원의 모든 내용은 참조로서 본 출원에 인용된다.This application is filed on the basis of a Chinese patent application with an application number of 202010093681.6 with an application date of February 14, 2020, and claims the priority of the Chinese patent application, all contents of the Chinese patent application are hereby incorporated by reference is cited in

본 출원은 프로그래밍 기술분야에 관한 것으로서, 특히 프로그래밍 플랫폼의 사용자 코드 작동 방법 및 플랫폼, 노드, 기기, 매체에 관한 것이다.The present application relates to the field of programming technology, and more particularly, to a method of operating a user code of a programming platform and a platform, a node, a device, and a medium.

인공 지능의 쾌속 발전에 따라, 코드에 의존하여 작동되는 다양한 시스템도 생성되었다. 코드는 점점 더 다양해질 뿐만 아니라, 시스템이 제공 가능한 기능에 대한 요구 사항도 점점 더 높아지고 있다.With the rapid development of artificial intelligence, various systems that rely on code to operate have also been created. Not only is the code more and more diverse, but the requirements for the functions that the system can provide are also increasing.

나날이 복잡해지고 있는 코드에 직면하여, 현재 프로그래밍 플랫폼에서, Kernel(실행 환경) 등 코드의 실행 환경은 종종 사용자 단말과의 연결 관계를 유지해야 할 뿐만 아니라, 사용자 단말에 의해 발송된 코드를 계산해야 하므로, 시스템 능력이 코드 작동 요구를 만족할 수 없다.In the face of increasingly complex codes, in the current programming platform, the execution environment of the code, such as the Kernel (execution environment), often needs to maintain a connection relationship with the user terminal, as well as calculate the code sent by the user terminal. , the system capability cannot satisfy the code operation requirements.

이에 기반하여, 프로그래밍 플랫폼이 사용자 코드를 작동하는 병행 능력을 향상시키는 방법은, 급히 해결해야 하는 문제가 되었다.Based on this, how to improve the parallel ability of programming platforms to run user code has become an urgent problem.

본 출원은 프로그래밍 플랫폼의 사용자 코드 작동 방법 및 플랫폼, 노드, 기기, 매체를 제공한다.The present application provides a method and platform, node, device and medium for operating user code of a programming platform.

본 출원의 프로그래밍 플랫폼은, 서비스 노드, 작업 대기열, 계산 노드를 포함한다. 본 출원의 제1 측면에서 프로그래밍 플랫폼의 사용자 코드 작동 방법을 제공하고, 상기 방법은, 상기 서비스 노드가 사용자 단말을 나타내기 위한 사용자 코드를 획득하고, 상기 사용자 코드를 작동 작업으로서 상기 작업 대기열에 배치하는 단계; 상기 계산 노드가 상기 작업 대기열을 모니터링하여, 상기 작동 작업을 획득하는 단계; 상기 계산 노드가 상기 작동 작업을 계산하여, 계산 결과를 얻는 단계; 및 상기 서비스 노드가 상기 계산 노드로부터 상기 계산 결과를 획득하고, 상기 계산 결과를 상기 사용자 단말에 피드백하는 단계를 포함한다.The programming platform of the present application includes a service node, a work queue, and a computation node. A first aspect of the present application provides a method for operating a user code of a programming platform, the method comprising: the service node obtains a user code for representing a user terminal, and placing the user code as an activation job in the job queue to do; monitoring, by the computation node, the work queue to obtain the working work; calculating, by the computation node, the operation task to obtain a computation result; and obtaining, by the service node, the calculation result from the calculation node, and feeding back the calculation result to the user terminal.

따라서, 서비스 노드는 사용자 단말과의 연결을 구현하고, 사용자 코드를 대기열에 배치하며, 계산 노드에 의해 사용자 코드의 계산이 수행됨으로써, 사용자 코드의 작동을 구현한다. 상기 사용자 코드의 작동 과정 중, 서비스 노드는 계산 노드와 분리되어 설치되어, 사용자 단말의 연결과 사용자 코드의 계산이 각각 서비스 노드 및 계산 노드에 의해 완료되도록 하여, 사용자 코드에 의해 작동되는 비동기 통신을 구현하고, 시스템의 병행 능력을 향상시킨다.Accordingly, the service node implements the connection with the user terminal, places the user code in a queue, and the calculation of the user code is performed by the calculation node, thereby implementing the operation of the user code. During the operation of the user code, the service node is installed separately from the calculation node, so that the connection of the user terminal and the calculation of the user code are completed by the service node and the calculation node, respectively, so that asynchronous communication operated by the user code is performed. Implement and improve the parallelism capability of the system.

여기서, 상기 계산 노드의 개수는 적어도 두 개이고; 상기 계산 노드가 상기 작업 대기열을 모니터링하여, 상기 작동 작업을 획득하는 단계는, 적어도 두 개의 상기 계산 노드가 상기 작업 대기열을 모니터링하여, 상기 작업 대기열에 상기 작동 작업을 획득하도록 요청하는 단계; 및 상기 작업 대기열이 하나의 상기 작동 작업을 상기 계산 노드에 분할하는 단계를 포함한다.Here, the number of the computation nodes is at least two; The step of the computation node monitoring the work queue to obtain the working task may include: at least two of the computation nodes monitoring the work queue and requesting the work queue to acquire the working task; and partitioning, by the work queue, one of the work tasks to the computation nodes.

따라서, 복수 개의 계산 노드가 작업 대기열에서의 작동 작업을 모두 모니터링할 경우, 복수 개의 계산 노드는 모두 작업 대기열에 작동 작업을 획득하도록 요청하며, 작업 대기열은 상기 작동 작업을 하나의 계산 노드에 분할하며, 작업 대기열을 통해 작동 작업의 합리적인 할당을 완료할 수 있다.Therefore, when a plurality of computation nodes monitor all the working tasks in the work queue, the plurality of computation nodes all request the work queue to acquire the working tasks, the work queue splits the working tasks into one computation node, , through the work queue, a reasonable allocation of working tasks can be completed.

여기서, 상기 작업 대기열은 제1 작업 대기열 및 제2 작업 대기열을 포함하고, 적어도 두 개의 상기 계산 노드는 제1 계산 노드 및 제2 계산 노드를 포함하며; 상기 사용자 코드를 작동 작업으로서 작업 대기열에 배치하는 단계는, 상기 사용자 코드의 계산 특징에 따라, 상기 사용자 코드를 작동 작업으로서 제1 작업 대기열 또는 제2 작업 대기열에 배치하는 단계를 포함하고; 상기 계산 노드가 상기 작업 대기열을 모니터링하는 단계는, 상기 제1 계산 노드가 상기 제1 작업 대기열을 모니터링하고, 상기 제2 계산 노드가 상기 제2 작업 대기열을 모니터링하는 단계를 포함한다.wherein the work queue includes a first work queue and a second work queue, and at least two of the computation nodes include a first computation node and a second computation node; placing the user code in a work queue as a working task includes placing the user code in a first work queue or a second work queue as a working task, according to a computational characteristic of the user code; The step of the computation node monitoring the work queue includes: the first computation node monitoring the first work queue, and the second computation node monitoring the second work queue.

따라서, 서비스 노드는 사용자 코드의 계산 특징에 기반하여 사용자 코드를 구별할 수 있고, 제1 작업 대기열 또는 제2 작업 대기열에 각각 배치하여, 상이한 계산 노드가 상이한 작업 대기열을 모니터링하도록 함으로써, 사용자 코드가 상이한 작동 요구에 따라 사용자 코드를 구별 처리한다.Therefore, the service node can distinguish the user code based on the computational characteristics of the user code, and place it in the first work queue or the second work queue, respectively, so that different computation nodes monitor different work queues, so that the user code is Differentiate and process user codes according to different operation requirements.

여기서, 상기 서비스 노드의 개수는 적어도 두 개이고; 상기 서비스 노드가 사용자 단말을 나타내기 위한 사용자 코드를 획득하는 단계는, 적어도 두 개의 상기 서비스 노드는 역방향 프록시에 의해 상기 사용자 코드가 할당되는 단계를 포함한다.Here, the number of service nodes is at least two; The step of obtaining, by the service node, a user code for representing a user terminal, includes the step of at least two of the service nodes being assigned the user code by a reverse proxy.

따라서, 본 출원은 적어도 두 개의 서비스 노드를 제공할 수 있고, 서비스 노드는 역방향 프록시에 의해 사용자 코드가 분배됨으로써, 복수 개의 서비스 노드가 사용자 단말에 의해 송신된 사용자 코드를 수신하는 것을 구현하며, 병행 처리 능력을 향상시킨다.Accordingly, the present application may provide at least two service nodes, and the service nodes implement user codes distributed by a reverse proxy, such that a plurality of service nodes receive the user codes transmitted by the user terminals in parallel. improve processing power;

여기서, 상기 계산 노드는 상기 작동 작업에 대한 계산을 완료한 후, 대응되는 계산 자원을 릴리즈하고 상기 작업 대기열을 계속 모니터링한다.Here, after the computation node completes the calculation for the working task, it releases the corresponding computational resource and continues to monitor the task queue.

따라서, 계산 노드는 계산 완료하는 즉시 자원을 릴리즈하고, 작업 대기열을 계속 모니터링하여, 새로운 작동 작업을 획득하고, 계산 노드는 작동 작업을 완료하는 즉시 자원을 릴리즈하여, 계산 및 내장 메모리 자원이 중복 이용되도록 하여, 하드웨어 자원을 충분하고 합리적으로 이용한다.Therefore, the compute node releases the resource as soon as the computation is completed, continues to monitor the work queue to acquire a new working task, and the compute node releases the resource as soon as it completes the running task, so that the computation and built-in memory resources are redundantly used. As much as possible, make full and reasonable use of hardware resources.

여기서, 상기 프로그래밍 플랫폼은 메시지 대기열을 더 포함하고; 상기 서비스 노드가 상기 계산 노드로부터 상기 계산 결과를 획득하여, 상기 계산 결과를 상기 사용자 단말에 피드백하는 단계는, 상기 계산 노드가 상기 계산 결과를 상기 메시지 대기열에 배치하는 단계; 및 상기 서비스 노드가 상기 메시지 대기열을 모니터링하여, 상기 계산 결과를 획득하고, 상기 계산 결과를 상기 사용자 단말에 피드백하는 단계를 포함한다.wherein the programming platform further comprises a message queue; The step of the service node obtaining the calculation result from the calculation node and feeding back the calculation result to the user terminal may include: placing, by the calculation node, the calculation result in the message queue; and the service node monitoring the message queue, obtaining the calculation result, and feeding back the calculation result to the user terminal.

따라서, 계산 노드는 임의의 사용자 코드에 대응되는 작동 작업을 실행 완료한 후, 계산 결과를 메시지 대기열에 일괄적으로 배치하고, 서비스 노드에 의해 메시지 대기열이 모니터링되어, 계산 노드의 계산 결과를 얻을 수 있어, 계산 결과도 일괄적으로 관리되도록 한다.Therefore, after the computation node finishes executing the operation task corresponding to the arbitrary user code, the computation result is batched in the message queue, and the message queue is monitored by the service node to obtain the computation result of the computation node. Therefore, the calculation results are also managed collectively.

여기서, 상기 서비스 노드는 상기 계산 결과를 획득하기 전, 상기 사용자 단말과의 세션 연결을 유지한다.Here, the service node maintains a session connection with the user terminal before obtaining the calculation result.

따라서, 서비스 노드는 상기 계산 결과를 획득하기 전, 사용자 단말과의 세션 연결을 계속 유지하며, 즉 서비스 노드와 사용자 단말의 연계를 유지하므로, 계산 결과를 사용자 단말에 피드백하는데 용이하다.Accordingly, the service node maintains the session connection with the user terminal before obtaining the calculation result, that is, maintains the connection between the service node and the user terminal, so that it is easy to feed back the calculation result to the user terminal.

본 출원의 제2 측면은 프로그래밍 플랫폼의 사용자 코드 작동 방법을 제공하고, 상기 방법은 사용자 단말을 나타내기 위한 사용자 코드를 획득하는 단계; 상기 사용자 코드를 작동 작업으로서 작업 대기열에 배치하여, 계산 노드에 의해 상기 작업 대기열로부터 상기 작동 작업이 획득되고 계산되는 단계; 및 상기 계산 노드의 계산 결과를 획득하고, 상기 계산 결과를 상기 사용자 단말에 피드백하는 단계를 포함한다.A second aspect of the present application provides a method of operating a user code of a programming platform, the method comprising: obtaining a user code for indicating a user terminal; placing the user code in a work queue as a working job, so that the working job is obtained and calculated from the work queue by a computation node; and obtaining a calculation result of the calculation node, and feeding back the calculation result to the user terminal.

따라서, 서비스 노드는 사용자 단말과의 연결에 사용되고, 사용자 단말에 의해 발송된 사용자 코드를 작동 작업으로서 작업 대기열에 배치하여, 서비스 노드에 대해 독립적인 계산 노드가 작업 대기열로부터 작동 작업을 획득하고 계산하여 계산 결과를 얻도록 한 후, 서비스 노드가 계산 노드의 계산 결과를 획득하며, 계산 결과를 사용자 단말에 피드백하여, 사용자 코드의 작동을 구현한다.Therefore, the service node is used for connection with the user terminal, and puts the user code sent by the user terminal into the work queue as a working job, so that a computation node independent of the service node obtains and calculates the working job from the work queue. After obtaining the calculation result, the service node obtains the calculation result of the calculation node, and feeds back the calculation result to the user terminal to implement the operation of the user code.

여기서, 상기 사용자 코드를 작동 작업으로서 작업 대기열에 배치하여, 계산 노드에 의해 상기 작업 대기열로부터 상기 작동 작업이 획득되고 계산되는 단계는, 상기 사용자 코드의 계산 특징에 따라, 상기 사용자 코드를 작동 작업으로서 제1 작업 대기열 또는 제2 작업 대기열에 배치하여, 제1 계산 노드에 의해 상기 제1 작업 대기열로부터 상기 작동 작업이 획득되고 계산되거나, 제2 계산 노드에 의해 상기 제2 작업 대기열로부터 상기 작동 작업이 획득되고 계산되는 단계를 포함한다.wherein the step of placing the user code in a work queue as an actuation task, whereby the actuation task is obtained and calculated from the work queue by a computation node, comprises, according to a calculation characteristic of the user code, the user code as an actuation task. placing in a first work queue or a second work queue, wherein the working task is obtained and calculated from the first work queue by a first computation node, or the operational task is retrieved from the second work queue by a second computation node obtained and calculated.

따라서, 서비스 노드는 사용자 코드의 계산 특징에 기반하여 사용자 코드를 구별할 수 있고, 제1 작업 대기열 또는 제2 작업 대기열에 각각 배치하여, 상이한 계산 노드가 상이한 작업 대기열을 모니터링하도록 함으로써, 사용자 코드가 상이한 작동 요구에 따라 사용자 코드를 구별 처리한다.Therefore, the service node can distinguish the user code based on the computational characteristics of the user code, and place it in the first work queue or the second work queue, respectively, so that different computation nodes monitor different work queues, so that the user code is Differentiate and process user codes according to different operation requirements.

여기서, 상기 사용자 단말을 나타내기 위한 사용자 코드를 획득하는 단계는, 역방향 프록시를 통해 상기 사용자 코드가 할당되는 단계를 포함한다.Here, the step of obtaining the user code for indicating the user terminal includes the step of allocating the user code through a reverse proxy.

따라서, 서비스 노드는 역방향 프록시에 의해 사용자 코드가 할당됨으로써, 서비스 노드가 수신하는 사용자 단말에 의해 송신된 사용자 코드를 합리적으로 할당한다.Accordingly, the service node is assigned the user code by the reverse proxy, thereby rationally assigning the user code sent by the user terminal that the service node receives.

여기서, 상기 방법은, 상기 계산 결과를 획득하기 전, 상기 사용자 단말과의 세션 연결을 유지하는 단계를 포함한다.Here, the method includes maintaining a session connection with the user terminal before obtaining the calculation result.

따라서, 서비스 노드는 상기 계산 결과를 획득하기 전, 사용자 단말과의 세션 연결을 계속 유지하며, 즉 서비스 노드와 사용자 단말의 연계를 유지하므로, 계산 결과를 사용자 단말에 피드백하는데 용이하다.Accordingly, the service node maintains the session connection with the user terminal before obtaining the calculation result, that is, maintains the connection between the service node and the user terminal, so that it is easy to feed back the calculation result to the user terminal.

본 출원의 제3 측면은 프로그래밍 플랫폼의 사용자 코드 작동 방법을 제공하고, 상기 방법은, 작업 대기열을 모니터링하여, 작동 작업을 획득하는 단계 - 상기 작업 대기열은 상기 작동 작업을 포함하고, 상기 작동 작업은 상기 사용자 코드에 대응됨 - ; 및 상기 작동 작업을 계산하여, 계산 결과를 얻는 단계를 포함한다.A third aspect of the present application provides a method of operating a user code of a programming platform, the method comprising: monitoring a job queue to obtain a working job, wherein the job queue includes the working job, the working task comprising: Corresponding to the user code - ; and calculating the operation operation to obtain a calculation result.

따라서, 작업 대기열은 작동 작업을 포함하고, 작동 작업은 사용자 코드에 대응되므로, 계산 노드는 작동 작업을 포함하는 작업 대기열을 모니터링함으로써, 사용자 코드에 대응되는 작동 작업을 획득함으로써, 작동 작업을 계산하여 계산 결과를 얻으므로, 작동 작업의 획득과 계산을 구현한다.Therefore, since the work queue contains an actuation task, and an actuation task corresponds to a user code, the computation node calculates the actuation task by monitoring the work queue containing the actuation task, by obtaining the actuation task corresponding to the user code, Since the calculation result is obtained, the acquisition and calculation of the operation task are implemented.

여기서, 프로그래밍 플랫폼의 사용자 코드 작동 방법은, 상기 작동 작업에 대한 계산을 완료한 후, 대응되는 계산 자원을 릴리즈하고 상기 작업 대기열을 계속 모니터링하는 단계를 더 포함한다.Here, the user code operation method of the programming platform further includes, after completing the calculation for the operation task, releasing a corresponding computational resource and continuously monitoring the task queue.

따라서, 계산 노드는 계산 완료한 즉시 자원을 릴리즈하고, 작업 대기열을 계속 모니터링하여, 새로운 작동 작업을 획득함으로써, 사용자 코드가 상이한 계산 노드에서 실행될 수 있도록 하고, 계산 노드는 작동 작업을 완료하는 즉시 자원을 릴리즈하여, 계산 및 내장 메모리 자원이 중복 이용되도록 하여, 하드웨어 자원을 충분하고 합리적으로 이용한다.Therefore, the compute node releases the resource as soon as the computation is completed, and continues to monitor the work queue to obtain a new working task, so that user code can be executed on a different computation node, and the computation node immediately releases the resource upon completing the running task. to make redundant use of computational and built-in memory resources, making full and reasonable use of hardware resources.

본 출원의 제4 측면은 프로그래밍 플랫폼을 제공하고, 상기 프로그래밍 플랫폼은, 서비스 노드, 작업 대기열, 계산 노드를 포함하고; 상기 서비스 노드는 사용자 단말을 나타내기 위한 사용자 코드를 획득하고, 상기 사용자 코드를 작동 작업으로서 상기 작업 대기열에 배치하도록 구성되고; 상기 계산 노드는 상기 작업 대기열을 모니터링하여, 상기 작동 작업을 획득하도록 구성되며; 상기 계산 노드는 또한 상기 작동 작업을 계산하여, 계산 결과를 얻도록 구성되며; 상기 서비스 노드는 또한 상기 계산 노드로부터 상기 계산 결과를 획득하여, 상기 계산 결과를 상기 사용자 단말에 피드백하도록 구성된다.A fourth aspect of the present application provides a programming platform, comprising: a service node, a work queue, a computation node; the service node is configured to obtain a user code for indicating a user terminal, and place the user code as an operation task in the work queue; the computing node is configured to monitor the work queue to obtain the working work; the calculation node is also configured to calculate the operation task to obtain a calculation result; The service node is further configured to obtain the calculation result from the calculation node, and feed back the calculation result to the user terminal.

여기서, 상기 계산 노드의 개수는 적어도 두 개이고; 상기 계산 노드가 상기 작업 대기열을 모니터링하여, 상기 작동 작업을 획득하도록 구성될 경우, 적어도 두 개의 상기 계산 노드는 상기 작업 대기열을 모니터링하고, 상기 작업 대기열에 상기 작동 작업을 획득하도록 요청하도록 구성되며; 상기 작업 대기열은 상기 작동 작업을 상기 계산 노드에 할당하도록 구성된다.Here, the number of the computation nodes is at least two; when the computing node is configured to monitor the work queue and obtain the working job, at least two of the computing nodes are configured to monitor the work queue and request the work queue to acquire the working job; The work queue is configured to assign the working work to the compute node.

여기서, 상기 작업 대기열은 제1 작업 대기열 및 제2 작업 대기열을 포함하고, 적어도 두 개의 상기 계산 노드는 제1 계산 노드 및 제2 계산 노드를 포함하며; 상기 서비스 노드가 상기 사용자 코드를 작동 작업으로서 작업 대기열에 배치하기 위한 것일 경우, 구체적으로, 상기 서비스 노드는 상기 사용자 코드의 계산 특징에 따라, 상기 사용자 코드를 작동 작업으로서 제1 작업 대기열 또는 제2 작업 대기열에 배치하기 위한 것이며; 상기 계산 노드는 상기 작업 대기열을 모니터링하기 위한 것이며, 구체적으로, 상기 제1 계산 노드는 상기 제1 작업 대기열을 모니터링하기 위한 것이며, 상기 제2 계산 노드는 상기 제2 작업 대기열을 모니터링하기 위한 것이다.wherein the work queue includes a first work queue and a second work queue, and at least two of the computation nodes include a first computation node and a second computation node; When the service node is for placing the user code in a work queue as an actuation task, specifically, the service node sets the user code as an actuation task into a first work queue or a second work queue, according to a computational characteristic of the user code. for placement in the work queue; The computation node is for monitoring the work queue, specifically, the first computation node is for monitoring the first work queue, and the second computation node is for monitoring the second work queue.

여기서, 상기 서비스 노드의 개수는 적어도 두 개이고; 상기 서비스 노드가 사용자 단말을 나타내기 위한 사용자 코드를 획득하도록 구성될 경우, 적어도 두 개의 상기 서비스 노드는 역방향 프록시에 의해 상기 사용자 코드가 할당되도록 구성된다.Here, the number of service nodes is at least two; When the service node is configured to obtain a user code for representing a user terminal, at least two of the service nodes are configured to be assigned the user code by a reverse proxy.

여기서, 상기 계산 노드는 상기 작동 작업의 계산을 완료한 후, 대응되는 계산 자원을 릴리즈하고 상기 작업 대기열을 계속 모니터링하도록 구성된다.Here, the computation node is configured to, after completing the calculation of the working task, release the corresponding computational resource and continue to monitor the task queue.

여기서, 상기 프로그래밍 플랫폼은 메시지 대기열을 더 포함하고; 상기 서비스 노드가 상기 계산 노드로부터 상기 계산 결과를 획득하여, 상기 계산 결과를 상기 사용자 단말에 피드백하도록 구성될 경우, 상기 계산 노드는 상기 계산 결과를 상기 메시지 대기열에 배치하도록 구성되며; 상기 서비스 노드는 상기 메시지 대기열을 모니터링하여, 상기 계산 결과를 획득하며, 상기 계산 결과를 상기 사용자 단말에 피드백하도록 구성된다.wherein the programming platform further comprises a message queue; when the service node is configured to obtain the calculation result from the calculation node and feed back the calculation result to the user terminal, the calculation node is configured to place the calculation result in the message queue; The service node is configured to monitor the message queue, obtain the calculation result, and feed back the calculation result to the user terminal.

여기서, 상기 서비스 노드는 상기 계산 결과를 획득하기 전, 또한 상기 사용자 단말과의 세션 연결을 유지하도록 구성된다.Here, the service node is configured to maintain a session connection with the user terminal before obtaining the calculation result.

본 출원의 제5 측면은 서비스 노드를 제공하고, 상기 서비스 노드는 수신 유닛, 배치 유닛 및 획득 유닛을 포함하며, 상기 수신 유닛은 사용자 단말을 나타내기 위한 사용자 코드를 획득하도록 구성되며; 상기 배치 유닛은 상기 사용자 코드를 작동 작업으로서 작업 대기열에 배치하여, 계산 노드에 의해 상기 작업 대기열로부터 상기 작동 작업이 획득되고 계산되도록 구성되며; 상기 획득 유닛은 상기 계산 노드의 계산 결과를 획득하고, 상기 계산 결과를 상기 사용자 단말에 피드백하도록 구성된다.A fifth aspect of the present application provides a service node, wherein the service node includes a receiving unit, a deploying unit and an obtaining unit, wherein the receiving unit is configured to obtain a user code for indicating a user terminal; the placing unit is configured to place the user code as a working job in a work queue, so that the working job is obtained and calculated from the work queue by a computing node; The obtaining unit is configured to obtain a calculation result of the calculation node, and feed back the calculation result to the user terminal.

여기서, 상기 배치 유닛이 상기 사용자 코드를 작동 작업으로서 작업 대기열에 배치하여, 계산 노드에 의해 상기 작업 대기열로부터 상기 작동 작업이 획득되고 계산되도록 구성될 경우, 또한 상기 사용자 코드의 계산 특징에 따라, 상기 사용자 코드를 작동 작업으로서 제1 작업 대기열 또는 제2 작업 대기열에 배치하여, 제1 계산 노드에 의해 상기 제1 작업 대기열로부터 상기 작동 작업이 획득되고 계산되거나, 제2 계산 노드에 의해 상기 제2 작업 대기열로부터 상기 작동 작업이 획득되고 계산되도록 구성된다.wherein, when the placing unit is configured to place the user code in a work queue as an actuation task, so that the actuation task is obtained and calculated from the work queue by a computation node, also according to a calculating feature of the user code, the placing user code in a first work queue or a second work queue as an actuation task so that the actuation task is obtained and computed from the first work queue by a first computation node, or the second task is obtained by a second computation node The actuation task is obtained from a queue and configured to be calculated.

여기서, 상기 수신 유닛이 사용자 단말을 나타내기 위한 사용자 코드를 획득하도록 구성될 경우, 또한 역방향 프록시를 통해 상기 사용자 코드가 할당되도록 구성된다.Here, when the receiving unit is configured to obtain a user code for indicating a user terminal, the user code is also configured to be assigned through a reverse proxy.

여기서, 상기 획득 유닛이 상기 계산 결과를 획득하기 전, 상기 서비스 노드는 상기 사용자 단말과의 세션 연결을 유지하도록 구성된다.Here, before the acquiring unit acquires the calculation result, the service node is configured to maintain a session connection with the user terminal.

본 출원의 제6 측면은 계산 노드를 제공하고, 상기 계산 노드는 모니터링 유닛 및 계산 유닛을 포함하고, 상기 모니터링 유닛은 작업 대기열을 모니터링하여, 작동 작업을 획득하도록 구성되고; 여기서 상기 작업 대기열은 상기 작동 작업을 포함하고, 상기 작동 작업은 상기 사용자 코드에 대응되며; 상기 계산 유닛은 상기 작동 작업을 계산하여, 계산 결과를 얻도록 구성된다.A sixth aspect of the present application provides a computation node, wherein the computation node includes a monitoring unit and a computation unit, wherein the monitoring unit is configured to monitor the work queue to obtain an operation task; wherein the job queue includes the working job, the working job corresponding to the user code; The calculation unit is configured to calculate the operation operation to obtain a calculation result.

여기서, 상기 계산 유닛은 상기 작동 작업의 계산을 완료한 후, 또한 대응되는 계산 자원을 릴리즈하고 상기 작업 대기열을 계속 모니터링하도록 구성된다.Here, the calculating unit is configured to, after completing the calculation of the working task, also release the corresponding computational resource and continue to monitor the work queue.

본 출원의 제7 측면은 전자 기기를 제공하고, 상기 전자 기기는 서로 커플링된 메모리 및 프로세서를 포함하며; 상기 프로세서는 상기 메모리에 저장된 프로그램 명령어를 실행하여, 상기 제1 측면의 프로그래밍 플랫폼의 사용자 코드 작동 방법; 상기 제2 측면의 프로그래밍 플랫폼의 사용자 코드 작동 방법; 및 상기 제3 측면의 프로그래밍 플랫폼의 사용자 코드 작동 방법 중 적어도 하나를 구현하기 위한 것이다.A seventh aspect of the present application provides an electronic device, the electronic device comprising a memory and a processor coupled to each other; the processor executes program instructions stored in the memory, the method of operating a user code of the programming platform of the first aspect; a method of operating user code of the programming platform of the second aspect; and a method of operating a user code of a programming platform of the third aspect.

따라서, 서비스 노드는 사용자 단말과의 연결을 구현하고, 사용자 코드를 대기열에 배치하기 위한 것이며, 계산 노드가 사용자 코드를 계산하는데 사용됨으로써, 사용자 코드의 작동을 구현한다. 상기 사용자 코드의 작동 과정 중, 서비스 노드는 계산 노드와 분리되어 설치되어, 사용자 단말의 연결과 사용자 코드의 계산이 각각 서비스 노드 및 계산 노드에 의해 완료되도록 하여, 사용자 코드에 의해 작동되는 비동기 통신을 구현하고, 시스템의 병행 능력을 향상시킨다.Accordingly, the service node is for implementing a connection with the user terminal, placing the user code in a queue, and the computation node is used to calculate the user code, thereby implementing the operation of the user code. During the operation of the user code, the service node is installed separately from the calculation node, so that the connection of the user terminal and the calculation of the user code are completed by the service node and the calculation node, respectively, so that asynchronous communication operated by the user code is performed. Implement and improve the parallelism capability of the system.

본 출원의 제8 측면은 컴퓨터 판독 가능한 저장 매체를 제공하고, 상기 저장 매체에는 프로세서에 의해 작동 가능한 프로그램 명령어가 저장되며, 프로그램 명령어는 상기 제1 측면의 프로그래밍 플랫폼의 사용자 코드 작동 방법; 상기 제2 측면의 프로그래밍 플랫폼의 사용자 코드 작동 방법; 및 상기 제3 측면의 프로그래밍 플랫폼의 사용자 코드 작동 방법 중 적어도 하나를 구현하기 위한 것이다.An eighth aspect of the present application provides a computer-readable storage medium, wherein the storage medium stores program instructions operable by a processor, the program instructions comprising: a method of operating a user code of the programming platform of the first aspect; a method of operating user code of the programming platform of the second aspect; and a method of operating a user code of a programming platform of the third aspect.

따라서, 상기 사용자 코드의 작동 과정 중, 서비스 노드는 사용자 단말과의 연결을 구현하기 위한 것이고, 계산 노드는 사용자 코드의 계산을 구현하기 위한 것이므로, 사용자 코드에 의해 작동되는 비동기 통신을 구현하고, 시스템의 병행 능력을 향상시킨다.Therefore, during the operation of the user code, the service node is for implementing a connection with the user terminal, and the calculation node is for implementing the calculation of the user code, so that the asynchronous communication operated by the user code is implemented, and the system improve the parallel ability of

아래의 도면은 본 명세서의 일부분으로서 명세서 전체를 구성하며, 이러한 도면은 본 출원에 맞는 실시예를 예시하여, 명세서와 함께 본 출원의 실시예의 기술방안을 설명하기 위한것이다.
도 1은 본 출원의 실시예에서 제공한 프로그래밍 플랫폼의 사용자 코드 작동 방법의 구현 흐름 예시도이다.
도 2는 본 출원의 실시예에서 제공한 프로그래밍 플랫폼의 사용자 코드 작동 방법의 다른 구현 흐름 예시도이다.
도 3은 본 출원의 실시예에서 제공한 프로그래밍 플랫폼의 사용자 코드 작동 방법의 또 다른 구현 흐름 예시도이다.
도 4는 본 출원의 실시예에서 제공한 프로그래밍 플랫폼의 구조 예시도이다.
도 5는 본 출원의 실시예에서 제공한 프로그래밍 플랫폼 서비스 노드(41)의 구조 예시도이다.
도 6은 본 출원의 실시예에서 제공한 프로그래밍 플랫폼 계산 노드(43)의 구조 예시도이다.
도 7은 본 출원의 실시예에서 제공한 프로그래밍 플랫폼의 다른 구조 예시도이다.
도 8은 본 출원의 실시예에서 제공한 전자 기기의 아키텍처 예시도이다.
도 9는 본 출원의 실시예에서 제공한 저장 장치의 아키텍처 예시도이다.
The drawings below constitute the entire specification as a part of the present specification, and these drawings illustrate embodiments suitable for the present application, and are for explaining the technical solutions of the embodiments of the present application together with the specification.
1 is an exemplary implementation flow diagram of a user code operation method of a programming platform provided in an embodiment of the present application.
2 is an exemplary flow diagram of another implementation of the user code operation method of the programming platform provided in the embodiment of the present application.
3 is another implementation flow diagram of a user code operation method of a programming platform provided in an embodiment of the present application.
4 is an exemplary structural diagram of a programming platform provided in an embodiment of the present application.
5 is an exemplary structural diagram of the programming platform service node 41 provided in the embodiment of the present application.
6 is an exemplary structural diagram of the programming platform computation node 43 provided in the embodiment of the present application.
7 is a diagram illustrating another structure of a programming platform provided in an embodiment of the present application.
8 is an exemplary architecture diagram of an electronic device provided in an embodiment of the present application.
9 is an architectural diagram of a storage device provided in an embodiment of the present application.

아래에 도면을 참조하여 본 출원의 실시예의 다양한 예시적 실시예, 특징 및 측면을 상세하게 설명한다. 도면에서 동일한 도면 표시는 기능이 동일하거나 유사한 구성 요소를 나타낸다. 실시예의 다양한 측면이 도면에 도시되어 있지만, 구체적으로 언급되지 않는 한, 도면은 반드시 비례대로 도시될 필요없다.Various exemplary embodiments, features and aspects of embodiments of the present application will be described in detail below with reference to the drawings. In the drawings, the same reference numerals indicate components having the same or similar functions. While various aspects of the embodiments are illustrated in drawings, the drawings are not necessarily drawn to scale unless specifically stated otherwise.

아래에 명세서 도면을 결합하여, 본 출원의 실시예의 방안을 상세하게 설명한다.In conjunction with the drawings of the specification below, the method of the embodiment of the present application will be described in detail.

아래에 본 발명의 실시예의 첨부 도면을 결부하여, 본 발명의 실시예에서의 기술 방안에 대해 명확하고, 완전하게 설명하고, 설명된 실시예는 본 발명의 일부 실시예일 뿐 전부 실시예가 아님은 분명하다. 본 출원의 실시예에 기반하여, 본 분야 기술자가 창조성 노동 없이 얻은 다른 실시예는 전부 본 출원의 보호 범위에 속해야 한다. 본 명세서에서 “제1”, “제2”등은 목적을 설명하기 위한 것일 뿐이고, 상대적 중요성을 나타내거나 암시하거나 지정된 기술적 특징의 개수를 암시적으로 나타내는 것으로 이해될 수 없다.Hereinafter, in conjunction with the accompanying drawings of the embodiments of the present invention, it is clearly and completely described for the technical solutions in the embodiments of the present invention, and it is clear that the described embodiments are only some embodiments of the present invention and not all embodiments. do. Based on the embodiments of the present application, all other embodiments obtained by those skilled in the art without creative labor should fall within the protection scope of the present application. In this specification, "first", "second", etc. are only for explaining the purpose, and cannot be understood as indicating or implying relative importance or implicitly indicating the number of designated technical features.

일부 실시예에 있어서, 인공 지능의 보급에 따라, 기계 학습 및 인공 지능 프로그래밍 교육도 점차 프로그래밍 교육의 중요한 구성 부분이 되었다. 일반적인 프로그래밍 입문 교육과 상이하게, 인공 지능 프로그래밍 교육 중 학생에 의해 실행되는 인공 지능 코드는 종종 대량의 계산을 구현해야 하고, (central processing unit, 중앙처리장치)CPU/GPU(Graphics Processing Unit, 그래픽처리장치) 점용율, 내부 메모리 공간 등과 같은 상응하는 자원 오버 헤드도 크다. 관련 기술의 프로그래밍 교육 플랫폼에 있어서, 각 사용자를 위해 하나의 독립적인 Kernel을 창조하고, 서버 내부 메모리에 보존하여, 각 사용자가 창조된 독립적인 Kernel에서 프로그래밍 실험을 수행하도록 한다. 이로써, 인공 지능 코드가 필요한 자원의 오버 헤드가 크므로, 각 Kernel이 대량의 CPU/GPU 자원 및 내부 메모리 공간을 차지하도록 하며, 각 사용자의 Kernel이 내부 메모리에 상주하면, 전체적인 오버 헤드가 크고, 자원 이용율이 낮으며; 또한 각 사용자 및 Kernel이 엄격한 일대일 대응 관계이므로, 온라인 프로그래밍 학습을 동시에 수행 가능한 사용자 수는 서버에 의해 지원 가능한 Kernel 개수에 한정되지 않으며; 각 사용자의 Kernel 프로세스의 작동 시 환경이 변하지 않으므로, 사용자 코드의 자원 점용 상황에 따라 이를 상이한 기계에 유연하게 스케줄링하여 실행하지 못하도록 하며, 멀티 기계가 배포되는 경우 각 자원이 불합리하게 할당되기 쉬우므로, 시스템 병행 능력을 향상시키는데 불리하다. 이로써, 인공 지능 온라인 프로그래밍 교육에서, 서버 비용 오버 헤드가 급격히 상승되도록 하여, 홍보 및 대중화가 어렵다.In some embodiments, with the prevalence of artificial intelligence, machine learning and artificial intelligence programming education also increasingly become an important component of programming education. Different from general introductory programming education, artificial intelligence code executed by students during artificial intelligence programming education often has to implement a large amount of computation, and (central processing unit)CPU/GPU(Graphics Processing Unit, graphics processing unit) The corresponding resource overhead, such as device) occupancy, internal memory space, etc., is also large. In the programming education platform of the related technology, one independent Kernel is created for each user and stored in the server internal memory, so that each user can perform programming experiments in the created independent Kernel. As a result, the overhead of resources required by the artificial intelligence code is large, so that each kernel occupies a large amount of CPU/GPU resources and internal memory space. If each user's kernel resides in the internal memory, the overall overhead is large, resource utilization is low; In addition, since each user and Kernel have a strict one-to-one correspondence, the number of users who can simultaneously perform online programming learning is not limited to the number of Kernels supported by the server; Since the environment does not change when each user's Kernel process operates, it is not possible to flexibly schedule and execute it on different machines depending on the resource occupancy situation of user code. It is disadvantageous in improving system parallelism ability. As a result, in artificial intelligence online programming education, the server cost overhead rises sharply, making it difficult to promote and popularize.

이에 기반하여, 본 출원의 실시예는 프로그래밍 플랫폼의 사용자 코드 작동 방법을 제공하고, 한 그룹의 평등한 서비스 노드 및 한 그룹의 평등한 계산 노드를 구축하는 것을 통해, 사용자가 코드를 제출한 후, 풀 듀플렉스 프로토콜(websocket) 기술을 통해 사용자 코드를 어느 한 서비스 노드에 전송한다. 상기 서비스 노드는 작동 작업을 창조하고 이를 작업 대기열에 넣으며 현재 세션 연결을 유지하고, 임의의 계산 노드는 작업 대기열로부터 작동 작업을 획득한 후, 사용자 코드를 실행하고, 실행 결과를 실시간으로 작업 대기열을 통해 대응되는 서비스 노드에 피드백하며, 계산 노드는 즉시 자원을 릴리즈한다. 서비스 노드는 작업 대기열로부터 실행 결과를 판독 액세스하고 풀 듀플렉스 프로토콜을 통해 사용자 단말에 실시간으로 푸시하며, 푸시 완료한 후 현재 세션을 종료한다. 여기서, 서비스 노드는 다중 작업 병행 연결을 지원하고, 계산 노드는 단일 작업 실행을 지원한다.Based on this, an embodiment of the present application provides a method of operating a user code of a programming platform, through building a group of equal service nodes and a group of equal computation nodes, after the user submits the code, It transmits user code to any one service node through full duplex protocol (websocket) technology. The service node creates a working job, puts it in the job queue, and maintains the current session connection, and any computation node gets the working job from the job queue, executes user code, and puts the execution result into the job queue in real time. feedback to the corresponding service node through the The service node reads and accesses the execution result from the work queue and pushes it to the user terminal in real time through the full duplex protocol, and ends the current session after completing the push. Here, the service node supports multi-task parallel connection, and the compute node supports single-task execution.

상기 방법의 구현 플로우는 도 1에 도시된 바와 같고, 도 1은 본 출원의 실시예에서 제공한 프로그래밍 플랫폼의 사용자 코드 작동 방법의 구현 흐름 예시도이다. 구체적으로, 본 출원의 실시예 방법은 아래와 같은 단계를 포함한다.An implementation flow of the method is as shown in FIG. 1 , and FIG. 1 is an exemplary implementation flow diagram of a user code operation method of a programming platform provided in an embodiment of the present application. Specifically, the embodiment method of the present application includes the following steps.

단계 S101에 있어서, 서비스 노드는 사용자 단말을 나타내기 위한 사용자 코드를 획득하고, 사용자 코드를 작동 작업으로서 작업 대기열에 배치한다.In step S101, the service node obtains a user code for representing the user terminal, and places the user code as an operation job in the work queue.

본 출원의 실시예의 프로그래밍 플랫폼은 서비스 노드, 작업 대기열 및 계산 노드를 포함한다.The programming platform of the embodiment of the present application includes a service node, a work queue and a computation node.

서비스 노드는 복수 개의 사용자 단말 중 어느 한 사용자 단말의 사용자 코드를 획득할 수 있고, 복수 개의 사용자 단말의 사용자 코드를 동시에 획득할 수 있어, 다중 사용자 단말의 병행 연결을 지원한다. 서비스 노드는 서버, 컴퓨터 등 처리 기능을 구비하는 임의의 전자 기기에 의해 구현될 수 있다. 여기서, 전자 기기는 또한 다른 기능을 실행하는데 사용될 수 있고, 예를 들어, 전자 기기는 또한 계산 노드에 의해 획득된 작동 작업의 계산을 실행하는데 사용될 수 있으며, 즉, 서비스 노드 및 계산 노드는 동일한 전자 기기에 의해 구현될 수 있거나 상이한 전자 기기에 의해 구현될 수 있다. 서비스 노드가 사용자 코드를 수신하는 방식은 websocket 통신 기술, 하이퍼 텍스트 전송 프로토콜(Hyper Text Transfer Protocol, HTTP) 통신 기술을 포함하지만 이에 한정되지 않으며, 여기서 더이상 구체적으로 한정하지 않는다. 서비스 노드에 의해 수신된 사용자 코드의 출처는 다양할 수 있으며, 예를 들어, 사용자 단말 자체의 코드 편집 창구는 사용자에 의해 편집된 코드를 획득하여, 사용자 코드를 형성하며, 또는 사용자 단말은 자신과 연결된 코드 편집 기기에 의해 전송된 사용자 코드를 수신하는 것 등이다.The service node may acquire the user code of any one user terminal among the plurality of user terminals, and may simultaneously acquire the user codes of the plurality of user terminals, thereby supporting parallel connection of multiple user terminals. The service node may be implemented by any electronic device having a processing function, such as a server or a computer. Here, the electronic device may also be used to execute other functions, for example, the electronic device may also be used to execute the calculation of the operation task obtained by the computation node, that is, the service node and the computation node are the same electronic device. It may be implemented by a device or may be implemented by a different electronic device. A manner in which the service node receives the user code includes, but is not limited to, a websocket communication technology and a Hyper Text Transfer Protocol (HTTP) communication technology, and is not specifically limited thereto. The source of the user code received by the service node may vary, for example, the code editing window of the user terminal itself obtains the code edited by the user to form the user code, or the user terminal itself and Receiving user codes sent by connected code editing devices, and so on.

본 출원의 실시예에 있어서, 서비스 노드의 개수는 적어도 두 개이다. 서비스 노드가 사용자 단말을 나타내기 위한 사용자 코드를 획득할 경우, 적어도 두 개의 서비스 노드는 역방향 프록시에 의해 사용자 코드가 할당된다. 이러한 서비스 노드는 프론트엔드 애플리케이션에 대한 서비스를 오픈하고, 프론트엔드 애플리케이션과 서비스 노드 사이는 풀 듀플렉스 통신 프로토콜을 사용하여 통신하며, 서비스 노드는 역방향 프록시 서버에 의해 할당된 사용자 단말의 사용자 코드를 수신하며, 여기서, 사용자 단말의 사용자 코드는 상기 사용자 단말의 식별자 정보를 나타내며, 예를 들어, 상기 사용자 단말의 시퀀스 넘버, 또는 상기 사용자 단말의 사용자 계정 등을 나타낸다. 역방향 프록시 서버를 이용하여 사용자 단말과 적어도 두 개의 서비스 노드 사이의 사용자 코드 할당을 구현하고, 역방향 프록시 서버가 사용자 단말의 사용자 코드를 획득한 경우, 즉시 사용자 코드를 적어도 두 개의 서비스 노드에 할당할 수 있어, 각 서비스 노드가 역방향 프록시에 의해 사용자 코드가 할당되도록 한다. 마찬가지로, 서비스 노드는 복수 개의 사용자 단말의 사용자 코드를 동시에 수신할 수 있어, 다중 사용자 단말의 병행 연결을 지원한다.In an embodiment of the present application, the number of service nodes is at least two. When the service node obtains the user code for representing the user terminal, at least two service nodes are assigned the user code by the reverse proxy. This service node opens a service for the front-end application, and communicates between the front-end application and the service node using a full duplex communication protocol, and the service node receives the user code of the user terminal assigned by the reverse proxy server, , Here, the user code of the user terminal indicates identifier information of the user terminal, for example, a sequence number of the user terminal, or a user account of the user terminal. Implement the user code assignment between the user terminal and at least two service nodes by using a reverse proxy server, and when the reverse proxy server obtains the user code of the user terminal, immediately assign the user code to at least two service nodes. This ensures that each service node is assigned a user code by a reverse proxy. Similarly, the service node may simultaneously receive user codes of a plurality of user terminals, thereby supporting parallel connection of multiple user terminals.

서비스 노드는 사용자 코드를 수신한 후, 각 사용자 코드를 위해 작동 작업을 창조하고, 작동 작업을 작업 대기열에 배치함으로써, 작업 대기열에 서비스 노드에 의해 놓인 사용자 코드에 일대일 대응되는 모든 작동 작업이 포함된다. 배열 대기열은 원격 사전 서비스(Remote Dictionary Server, Redis) 리스트 등 저장 시스템, 메시지 대기열(Message Queue, RabbitMQ) 등 메시지 지향 미들웨어일 수 있다.After the service node receives the user code, it creates a working task for each user code, and places the working task in the work queue, so that the work queue contains all the working tasks that correspond one-to-one to the user code placed by the service node. . The array queue may be a storage system such as a remote dictionary service (Remote Dictionary Server, Redis) list, or a message-oriented middleware such as a message queue (Message Queue, RabbitMQ).

본 출원의 실시예에 있어서, 사용자 코드의 자원 의존 수요에 따라, 사용자 코드에 대응되는 작동 작업을 분리 배치한다. 구체적으로, 작업 대기열은 제1 작업 대기열 및 제2 작업 대기열을 포함하고, 제1 작업 대기열 및 제2 작업 대기열에서의 작동 작업이 계산될 경우 상이한 코드 자원에 의존하며, 예를 들어, 제1 작업 대기열에서의 작동 작업은 CPU 코드에 의존하여 환경 자원을 작동하며, 제2 작업 대기열에서의 작동 작업은 GPU 코드에 의존하여 환경 자원을 작동한다. 제1 작업 대기열 및 제2 작업 대기열에서의 작동 작업의 할당은 사용자 코드의 계산 특징에 의해 결정되며, 즉, 계산 특징은 사용자 코드가 제1 작업 대기열 또는 제2 작업 대기열에 속함을 나타내기 위한 것이다. 여기서, 계산 특징의 표현 형태는 사용자 코드에서의 기설정된 비트 길이의 문자열 식별자, 이진법 코드 등을 포함하지만 이에 포함되지 않는다. 이로써, 서비스 노드가 사용자 코드를 작동 작업으로서 작업 대기열에 배치할 경우, 사용자 코드의 계산 특징에 따라, 사용자 코드를 작동 작업으로서 제1 작업 대기열 또는 제2 작업 대기열에 배치한다.In the embodiment of the present application, the operation task corresponding to the user code is separately arranged according to the resource-dependent demand of the user code. Specifically, the work queue includes a first work queue and a second work queue, and when the working work in the first work queue and the second work queue is calculated, it depends on different code resources, for example, the first work The operation job in the queue depends on the CPU code to operate the environment resource, and the operation job in the second job queue depends on the GPU code to operate the environment resource. The assignment of working tasks in the first work queue and the second work queue is determined by a computational characteristic of the user code, that is, the computational characteristic is for indicating that the user code belongs to the first work queue or the second work queue. . Here, the expression form of the calculation feature includes, but is not included in, a character string identifier of a predetermined bit length in the user code, a binary code, and the like. Thereby, when the service node places the user code in the working queue as the working job, it places the user code in the first working queue or the second working queue as the working job, according to the calculation characteristics of the user code.

본 출원의 실시예에 있어서, 작업 대기열은 적어도 두 개의 서브 작업 대기열을 포함할 수 있고, 서비스 노드와 복수 개의 서브 작업 대기열의 연관 관계를 미리 구축할 수 있으며, 서비스 노드는 사용자 단말을 나타내기 위한 사용자 코드를 획득하며, 사용자 코드를 작동 작업으로서 상이한 서브 작업 대기열에 배치하거나, 복수 개의 서비스 노드와 복수 개의 서브 작업 대기열의 연관 관계를 구축하며, 일부 서비스 노드는 수신된 사용자 코드를 이와 연관 관계를 구축한 일부 서브 작업 대기열에 할당하며, 다른 일부 서비스 노드는 수신된 사용자 코드를 이와 연관 관계를 구축한 다른 일부 서브 작업 대기열에 할당하여, 서비스 노드와 작업 대기열의 대응 연관 관계를 구현하면 된다.In an embodiment of the present application, the work queue may include at least two sub work queues, and a relationship between the service node and the plurality of sub work queues may be established in advance, and the service node may be configured to represent a user terminal. Acquire a user code, and place the user code in different sub-task queues as a working task, or establish an association relationship between a plurality of service nodes and a plurality of sub-task queues, and some service nodes associate the received user code with them. Allocate to some sub-work queues that have been built, and some other service nodes allocate the received user code to some other sub-work queues that have established a relationship therewith, and implement a corresponding relationship between the service node and the work queue.

단계 S102에 있어서, 계산 노드는 작업 대기열을 모니터링하여, 작동 작업을 획득한다.In step S102, the computation node monitors the work queue to obtain a working job.

작업 대기열에 작동 작업이 포함됨으로써, 계산 노드는 작업 대기열을 모니터링하고, 작업 대기열에 상기 계산 노드에 의해 실행 가능한 작동 작업이 포함될 경우, 즉시 작동 작업을 획득할 수 있다. 계산 노드가 작업 대기열로부터 작동 작업을 획득하는 방식은, 작업 대기열이 주동적으로 작동 작업을 계산 노드에 할당하거나, 계산 노드가 작업 대기열에 작동 작업을 획득하도록 요청하고, 작업 대기열이 요청에 따라 작동 작업을 계산 노드에 할당하는 것을 포함하지만 이에 한정되지 않는다.By including the working task in the work queue, the computation node can monitor the work queue, and when the work queue includes a running task executable by the computation node, it can obtain the working task immediately. The manner in which the compute node acquires the working job from the work queue is that the work queue actively allocates the working work to the compute node, or the compute node requests the work queue to acquire the working job, and the work queue receives the working work according to the request. to a compute node, but is not limited thereto.

본 출원의 실시예에 있어서, 계산 노드의 개수는 적어도 두 개이다. 계산 노드가 작업 대기열을 모니터링하여, 작동 작업을 획득할 경우, 적어도 두 개의 계산 노드는 작업 대기열을 모니터링하고, 작업 대기열에 작동 작업을 획득하도록 요청하고; 작업 대기열은 작동 작업을 계산 노드에 할당함으로써, 작업 대기열은 작동 작업의 합리적인 할당을 완료한다. 작업 대기열이 작동 작업을 계산 노드에 할당하는 규칙은 맞춤적으로 설정될 수 있고, 예를 들어, 모든 계산 노드의 우선 레벨을 미리 저장하고, 작업 대기열이 복수 개의 계산 노드가 동일한 작동 작업에 대한 획득 요청을 동시에 수신한 경우, 작동 작업을 우선 레벨이 높은 계산 노드에 할당하며; 또는 작동 작업을 기설정된 시간 내에 작동 작업을 가장 적게 획득한 계산 노드에 할당하며, 여기서 이에 대해 구체적으로 한정하지 않는다.In an embodiment of the present application, the number of computation nodes is at least two. when the computing node monitors the work queue to obtain a working job, at least two computing nodes monitor the work queue, and request the work queue to acquire the working job; The work queue assigns working tasks to the compute nodes, so that the work queue completes the rational allocation of working tasks. The rule that the work queue assigns operational tasks to computational nodes can be customized, for example, it pre-stores the priority level of all computational nodes, and the task queue allows multiple computational nodes to acquire the same operational task. When the request is received at the same time, the operation task is assigned to the higher-level computation node first; Alternatively, the operation task is allocated to the computational node that has obtained the least operation task within a preset time period, and is not specifically limited thereto.

본 출원의 실시예에 있어서, 작업 대기열이 제1 작업 대기열 및 제2 작업 대기열을 포함하고, 계산 노드가 제1 계산 노드 및 제2 계산 노드를 포함할 경우, 계산 노드가 작업 대기열을 모니터링하는 단계는 구체적으로 제1 계산 노드가 제1 작업 대기열을 모니터링하고, 제2 계산 노드가 제2 작업 대기열을 모니터링하는 것일 수 있음으로써, 상이한 계산 노드가 상이한 작업 대기열을 각각 모니터링하는 것을 구현하여, 관리하기 용이하며, 작동 작업의 획득 효율을 향상시킨다. 여기서, 제1 계산 노드 및 제2 계산 노드는 상이한 구성의 서버에 각각 위치할 수 있음으로써, 상이한 계산 및 저장 자원을 각각 가지므로, 상이한 사용자 코드의 계산을 구현할 수 있다. 사용자 코드의 계산의 경우, 계산 특징에 의해 사용자 코드가 계산될 경우 의존하는 계산 및 저장 자원이 획득될 수 있으며, 즉, 사용자 코드의 계산 특징은 사용자 코드가 제1 작업 대기열 또는 제2 작업 대기열에 속함을 나타내기 위한 것임으로써, 사용자 코드가 상이한 구성의 서버의 제1 계산 노드 또는 제2 계산 노드에 위치하여 계산하도록 지시한다.In an embodiment of the present application, when the work queue includes the first work queue and the second work queue, and the compute node includes the first compute node and the second compute node, the computation node monitors the work queue. may specifically be that the first compute node monitors the first work queue, and the second compute node monitors the second work queue, so that different compute nodes monitor different work queues, respectively, to implement and manage It is easy and improves the acquisition efficiency of the operation operation. Here, the first computation node and the second computation node may be located in servers of different configurations, respectively, and thus have different computation and storage resources, respectively, and thus may implement computation of different user codes. In the case of the computation of user code, when the user code is calculated by the computation feature, the computation and storage resources that depend on it can be obtained, that is, the computation feature of the user code means that the user code is placed in the first work queue or the second work queue. By indicating belonging, the user code is located in the first computation node or the second computation node of the server of a different configuration to instruct to calculate.

더 나아가, 제1 계산 노드는 CPU 서버에 설치되고, 제2 계산 노드는 GPU 서버에 설치되며; 제1 작업 대기열은 CPU 코드에 의존하여 환경 자원을 작동하는 작동 작업을 포함하고, 제2 작업 대기열은 GPU 코드에 의존하여 환경 자원을 작동하는 작동 작업을 포함함으로써; CPU 서버에서의 제1 계산 노드가 제1 작업 대기열을 모니터링하여, 작동 작업을 획득하며, GPU 서버에서의 제2 계산 노드가 제2 작업 대기열을 모니터링하여, 작동 작업을 획득한다.Further, the first computation node is installed in the CPU server, and the second computation node is installed in the GPU server; the first work queue includes operational tasks that depend on the CPU code to operate the environmental resource, and the second task queue includes the operational task that depends on the GPU code to operate the environmental resource; A first computation node in the CPU server monitors the first work queue to obtain an operational task, and a second computation node in the GPU server monitors the second task queue to obtain an operational task.

단계 S103에 있어서, 계산 노드는 작동 작업을 계산하여, 계산 결과를 얻는다.In step S103, the calculation node calculates an operation task to obtain a calculation result.

계산 노드는 위치하는 서버에서 이용 가능한 계산 및 내부 메모리 자원을 이용하여, 획득된 작동 작업을 계산하므로, 계산 결과를 얻을 수 있다. 계산 노드는 작동 작업의 계산을 완료한 후, 대응되는 계산 자원을 릴리즈하고 작업 대기열을 계속 모니터링하며, 즉, 계산 노드는 현재의 작동 작업의 계산을 완료하는 즉시 자원을 릴리즈하고, 작업 대기열을 계속 모니터링하여, 새로운 작동 작업을 획득하므로, 계산 노드가 계산 및 내부 메모리 자원을 최대한으로 다중화하도록 한다. 여기서, 본 출원에서 계산 노드가 작업 대기열 중 임의의 작동 작업을 획득할 수 있든지, 제1 계산 노드 및 제2 계산 노드가 제1 작업 대기열 및 제2 작업 대기열의 작동 작업을 각각 획득하든지, 동일한 계산 노드는 모두 작동 작업을 실행 완료하는 즉시 자원을 릴리즈할 수 있어, 새로운 작동 작업을 부단히 획득하며, 계산 노드의 계산 및 내부 메모리 자원이 사용자 코드의 작동 환경 자원에 부합되면 된다. 따라서, 사용자 코드는 상이한 계산 노드에서 실행될 수 있어, 계산 노드의 계산 및 내부 메모리 자원이 중복 이용되도록 하므로, 서버의 하드웨어 자원을 충분하고 합리적으로 이용한다.The computation node uses the computation and internal memory resources available in the server where it is located, and calculates the obtained operation task, so that the computation result can be obtained. After the compute node completes the calculation of the working task, it releases the corresponding computational resource and continues to monitor the work queue, that is, the compute node releases the resource as soon as it completes the calculation of the current working task, and continues the work queue. By monitoring, it acquires new operational tasks, so that the compute node maximizes multiplexing of computational and internal memory resources. Here, in the present application, whether the computation node may acquire any working task among the work queues, or the first computation node and the second computation node acquire the operational tasks of the first work queue and the second work queue, respectively, the same All compute nodes can release resources as soon as they finish executing the working tasks, so as to continuously acquire new working tasks, as long as the computational and internal memory resources of the compute nodes match the working environment resources of user code. Therefore, the user code can be executed in different computation nodes, so that the computation and internal memory resources of the computation node are redundantly used, so that the hardware resources of the server are sufficiently and rationally used.

상기에서 언급한 바와 같이, 서비스 노드는 사용자 코드의 계산 특징에 따라 사용자 코드를 작동 작업으로서 제1 작업 대기열 또는 제2 작업 대기열에 배치하며; 제1 계산 노드 및 제2 계산 노드는 각각 제1 작업 대기열 및 제2 작업 대기열로부터 작동 작업을 획득하며; 상이한 구성의 서버에서의 제1 계산 노드 및 제2 계산 노드는 자신의 계산 및 내부 메모리 자원을 각각 이용하여 작동 작업을 계산하여, 계산 결과를 얻는다. 따라서, 작업 대기열은 사용자 코드의 실제 수요에 따라 작동 작업을 계산 노드에 분할하여 작동하며, 계산 노드는 상이한 구성의 서버에 속하므로, 자원의 합리적인 이용을 구현한다. 예를 들어, 제1 작업 대기열은 CPU작업 대기열이고, 제2 작업 대기열은 GPU작업 대기열이며, 제1 계산 노드 및 제2 계산 노드는 각각 CPU 서버 및 GPU 서버에 위치하며, 제1 계산 노드는 제1 작업 대기열로부터 작동 작업을 획득하며 계산하며, 제2 계산 노드는 제2 작업 대기열로부터 작동 작업을 획득하고 계산한다. 구체적으로, 사용자 코드의 계산 특징은 대응되는 사용자 코드가 제1 작업 대기열에 속함을 지시하며, 제1 계산 노드는 제1 작업 대기열로부터 작동 작업을 획득하며, CPU 서버에서의 계산 및 내부 메모리 자원을 이용하여 작동 작업을 계산하여, 계산 결과를 얻는다. CPU 서버에서의 계산 노드는 GPU 서버 자원에 의존하지 않는 일반적인 코드를 실행할 수 있으며, GPU 서버에서의 계산 노드는 신경 네트어크 모델 훈련, 이미지 처리 등을 포함하지만 이에 한정되지 않는 GPU 서버 자원을 사용하는 코드를 실행할 수 있다.As mentioned above, the service node places the user code in the first work queue or the second work queue as the working work according to the computational characteristics of the user code; the first computation node and the second computation node obtain operational tasks from the first work queue and the second work queue, respectively; The first computation node and the second computation node in the servers of different configurations calculate operation tasks by using their own computation and internal memory resources, respectively, to obtain a computation result. Therefore, the work queue operates by dividing the working work into the computation nodes according to the actual demand of the user code, and the computation nodes belong to the servers of different configurations, thereby realizing the rational use of resources. For example, the first work queue is a CPU work queue, the second work queue is a GPU work queue, the first compute node and the second compute node are located in the CPU server and the GPU server, respectively, and the first compute node is the first compute node. 1 obtains and calculates the working job from the work queue, and the second computation node obtains and calculates the working job from the second work queue. Specifically, the computational feature of the user code indicates that the corresponding user code belongs to the first work queue, and the first computation node acquires the working task from the first work queue, and uses computation and internal memory resources in the CPU server. Calculating the operation operation using Compute nodes on a CPU server can execute common code that does not depend on GPU server resources, and compute nodes on GPU servers use GPU server resources, including, but not limited to, neural network model training, image processing, etc. code can be executed.

단계 S104에 있어서, 서비스 노드는 계산 노드로부터 계산 결과를 획득하고, 계산 결과를 사용자 단말에 피드백한다.In step S104, the service node obtains a calculation result from the calculation node, and feeds back the calculation result to the user terminal.

계산 노드는 작동 작업을 계산하여 계산 결과를 얻은 후, 서비스 노드는 계산 노드로부터 계산 결과를 획득할 수 있고, 계산 결과를 사용자 단말에 피드백할 수 있다. 서비스 노드가 계산 노드로부터 계산 결과를 획득하는 방식은 요청을 획득하는 것, 구독하는 것등을 포함하지만 이에 한정되지 않으며, 여기서 더이상 구체적으로 한정하지 않는다. 서비스 노드가 계산 노드로부터 계산 결과를 획득하는 방식이 요청을 획득하는 것일 경우, 서비스 노드는 계산 노드를 모니터링하고, 계산 노드에 계산 결과를 획득하는 획득 요청을 송신하며, 대응되는 계산 노드는 획득 요청에 따라 계산 결과를 서비스 노드에 피드백한다. 서비스 노드가 계산 노드로부터 계산 결과를 획득하는 방식이 구독일 경우, 계산 노드는 작동 작업을 계산하여 계산 결과를 얻은 후, 직접 계산 결과를 서비스 노드에 피드백한다.After the calculation node calculates the operation task to obtain the calculation result, the service node may obtain the calculation result from the calculation node, and may feed back the calculation result to the user terminal. The manner in which the service node obtains the calculation result from the calculation node includes, but is not limited to, obtaining a request, subscribing, and the like, and is not specifically limited herein. When the manner in which the service node obtains the calculation result from the calculation node is to obtain a request, the service node monitors the calculation node, and sends an acquisition request for obtaining the calculation result to the calculation node, and the corresponding calculation node sends an acquisition request The calculation result is fed back to the service node according to When the method in which the service node obtains the calculation result from the calculation node is subscription, the calculation node calculates the operation task to obtain the calculation result, and then directly feeds back the calculation result to the service node.

본 출원의 실시예에 있어서, 프로그래밍 플랫폼은 메시지 대기열을 더 포함하고, 메시지 대기열은 계산 노드가 작동 작업을 계산하여 얻은 계산 결과를 잠시 저장하기 위한 것이다. 메시지 대기열은 Redis 리스트 등 저장 시스템, RabbitMQ 등 메시지 지향의 미들웨어일 수 있다. 메시지 지향의 서비스 노드가 계산 노드로부터 계산 결과를 획득하여, 계산 결과를 사용자 단말에 피드백할 경우, 계산 노드는 계산 결과를 메시지 대기열에 배치하며; 서비스 노드는 메시지 대기열을 모니터링하여, 계산 결과를 획득하고, 계산 결과를 사용자 단말에 피드백한다. 서비스 노드가 계산 노드로부터 계산 결과를 획득하여, 계산 결과를 사용자 단말에 피드백할 경우, 서비스 노드는 메시지 대기열로부터 계산 노드의 계산 결과를 구독하며, websocket 등 통신 기술을 통해 계산 결과를 사용자 단말에 피드백한다.In an embodiment of the present application, the programming platform further includes a message queue, wherein the message queue is for temporarily storing the calculation result obtained by the calculation node calculating the operation work. A message queue may be a storage system such as a Redis list, or a message-oriented middleware such as RabbitMQ. When the message-oriented service node obtains the calculation result from the calculation node and feeds back the calculation result to the user terminal, the calculation node places the calculation result in a message queue; The service node monitors the message queue, obtains a calculation result, and feeds back the calculation result to the user terminal. When the service node acquires the calculation result from the calculation node and feeds back the calculation result to the user terminal, the service node subscribes to the calculation result of the calculation node from the message queue and feeds back the calculation result to the user terminal through communication technology such as websocket do.

본 출원의 실시예에 있어서, 서비스 노드는 사용자 단말을 나타내기 위한 사용자 코드를 획득한 후, 사용자 단말과의 세션 연결을 구축하고; 서비스 노드는 계산 결과를 획득하기 전, 사용자 단말과의 세션 연결을 유지하며; 서비스 노드는 계산 노드의 계산 결과를 획득한 후, 상응하는 사용자 단말과의 세션 연결을 차단한다. 이로써, 서비스 노드는 상기 계산 결과를 획득하기 전, 서비스 노드와 사용자 단말의 연계를 계속 유지하므로, 계산 결과를 사용자 단말에 피드백하는데 용이하다. 사용자 코드의 작동과정 중, 서비스 노드는 계산 노드와 분리 설치되며, 사용자 단말의 연결과 사용자 코드의 계산은 각각 서비스 노드 및 계산 노드에 의해 완료된다. 여기서, 서비스 노드가 사용자 단말과 세션의 롱 연결을 유지하는 동시에, 계산 노드는 작동 작업의 계산을 완료하며, 대응되는 계산 자원을 릴리즈하고 작업 대기열을 계속 모니터링하여, 계산 노드가 계산 자원을 부단히 중복 이용하도록 하므로, 사용자 코드의 작동 과정 중 계산 노드를 계속 점용할 필요가 없어, 사용자 코드에 의해 작동되는 비동기 통신을 구현하고, 시스템의 병행 능력을 향상시킨다. 계산 노드는 작동 작업을 획득하고 계산하여 계산 결과를 얻은 후, 대응되는 계산 자원을 릴리즈하고, 새로운 작동 작업을 계속 획득하여, 계산 노드의 계산 자원이 계속 점용되지 않도록 하므로, 동일한 계산 노드의 계산 자원이 중복 이용되는 것을 구현함으로써, 자원 이용율을 향상시킨다.In the embodiment of the present application, the service node obtains the user code for indicating the user terminal, and then establishes a session connection with the user terminal; The service node maintains a session connection with the user terminal before obtaining the calculation result; After the service node obtains the calculation result of the calculation node, it blocks the session connection with the corresponding user terminal. Accordingly, since the service node continues to maintain the association between the service node and the user terminal before obtaining the calculation result, it is easy to feed back the calculation result to the user terminal. During the operation of the user code, the service node is installed separately from the calculation node, and the connection of the user terminal and the calculation of the user code are completed by the service node and the calculation node, respectively. Here, while the service node maintains a long connection between the user terminal and the session, the computation node completes the calculation of the working task, releases the corresponding computational resource, and continues to monitor the task queue, so that the computational node constantly overlaps the computational resource. Therefore, there is no need to continuously occupy the computation node during the operation of the user code, implement asynchronous communication operated by the user code, and improve the parallelism capability of the system. A computation node acquires and calculates a working task to obtain a computation result, then releases the corresponding computational resource, and continues to acquire a new operational task, so that the computational node's computational resource is not continuously occupied, so that the computational resource of the same computational node By implementing this overlapping use, the resource utilization rate is improved.

상기 방식을 통해, 프로그래밍 플랫폼은 서비스 노드, 작업 대기열 및 계산 노드를 포함함으로써, 서비스 노드 및 계산 노드는 분리 설치되며, 서비스 노드는 사용자 단말을 나타내기 위한 사용자 코드를 획득하며, 사용자 코드를 작동 작업으로서 작업 대기열에 배치하며; 계산 노드는 작업 대기열을 모니터링하여, 작동 작업을 획득하며; 계산 노드는 작동 작업을 계산하여, 계산 결과를 얻으며; 서비스 노드는 계산 노드로부터 계산 결과를 획득하여, 계산 결과를 사용자 단말에 피드백함으로써, 서비스 노드는 사용자 단말과의 연결을 구현하고, 계산 노드는 사용자 코드의 계산을 구현함으로써, 사용자 코드의 작동을 구현한다. 또한, 사용자 코드의 작동 과정 중, 서비스 노드는 계산 노드와 분리 설치되어, 사용자 단말의 연결과 사용자 코드의 계산이 각각 서비스 노드 및 계산 노드에 의해 완료되도록 하므로, 사용자 코드에 의해 작동되는 비동기 통신을 구현하고, 시스템의 병행 능력을 향상시킨다.Through the above method, the programming platform includes a service node, a work queue and a computation node, so that the service node and the computation node are installed separately, the service node acquires a user code for representing the user terminal, and operates the user code placed in the work queue as; the computation node monitors the work queue to obtain operational tasks; The computation node computes the operation task, and obtains a computation result; The service node obtains the calculation result from the calculation node, and feeds back the calculation result to the user terminal, so that the service node implements a connection with the user terminal, and the calculation node implements the calculation of the user code, thereby implementing the operation of the user code do. In addition, during the operation of the user code, the service node is installed separately from the calculation node, so that the connection of the user terminal and the calculation of the user code are completed by the service node and the calculation node, respectively, so that asynchronous communication operated by the user code is performed. Implement and improve the parallelism capability of the system.

본 출원은 서비스 노드를 더 제공하고, 상기 서비스 노드는 마찬가지로 프로그래밍 플랫폼의 사용자 코드 작동 방법을 실행할 수 있다. 도 2를 참조하면, 도 2는 본 출원의 실시예에서 제공한 프로그래밍 플랫폼의 사용자 코드 작동 방법의 다른 구현 흐름 예시도이다. 구체적으로, 본 출원의 실시예 방법은 아래와 같은 단계를 포함한다.The present application further provides a service node, which can likewise execute a user code operating method of a programming platform. Referring to FIG. 2 , FIG. 2 is another implementation flow diagram of a user code operation method of a programming platform provided in an embodiment of the present application. Specifically, the embodiment method of the present application includes the following steps.

단계 S201에 있어서, 사용자 단말을 나타내기 위한 사용자 코드를 획득한다.In step S201, a user code for indicating a user terminal is obtained.

본 출원의 실시예에서 프로그래밍 플랫폼의 사용자 코드 작동 방법을 실행하는 것은 상기 프로그래밍 플랫폼의 사용자 코드 작동 방법의 어느 한 실시예에서의 서비스 노드이다. 프로그래밍 플랫폼은 서비스 노드, 작업 대기열 및 계산 노드를 포함한다.Executing the user code operating method of the programming platform in the embodiment of the present application is the service node in any one embodiment of the user code operating method of the programming platform. The programming platform includes service nodes, work queues and compute nodes.

서비스 노드는 복수 개의 사용자 단말 중 어느 한 사용자 단말의 사용자 코드를 수신할 수 있고, 또한 복수 개의 사용자 단말의 사용자 코드를 동시에 수신할 수 있으므로, 다중 사용자 단말의 병행 연결을 지원한다. 서비스 노드가 사용자 코드를 수신하는 방식은 websocket 통신 기술, HTTP 통신 기술을 포함하지만 이에 한정되지 않으며, 여기서 더이상 구체적으로 한정하지 않는다. 서비스 노드에 의해 수신된 사용자 코드의 출처는 다양할 수 있다. 예를 들어, 사용자 단말 자체의 코드 편집 창구는 사용자에 의해 편집된 코드를 획득하여, 사용자 코드를 획득하거나, 사용자 단말이 이에 연결된 코드 편집 기기에 의해 전송된 사용자 코드를 수신하는 것 등이다.Since the service node may receive the user code of any one user terminal among the plurality of user terminals and may simultaneously receive the user codes of the plurality of user terminals, it supports parallel connection of multiple user terminals. Methods in which the service node receives the user code include, but are not limited to, websocket communication technology and HTTP communication technology, and are not specifically limited herein. The origin of the user code received by the service node may vary. For example, the code editing window of the user terminal itself obtains the code edited by the user to obtain the user code, or the user terminal receives the user code transmitted by the code editing device connected thereto.

본 출원의 실시예에 있어서, 서비스 노드는 역방향 프록시에 의해 사용자 코드가 할당되어, 사용자 단말과 서비스 노드가 일대일 대응되는 연관 관계를 구축할 필요없도록 하므로, 역방향 프록시 서버에 의해 사용자 단말의 사용자 코드의 할당이 수행된다.In the embodiment of the present application, the service node is assigned the user code by the reverse proxy, so that the user terminal and the service node do not need to establish a one-to-one correspondence, so that the user code of the user terminal is changed by the reverse proxy server. Allocation is performed.

단계 S202에 있어서, 사용자 코드를 작동 작업으로서 작업 대기열에 배치하여, 계산 노드에 의해 작업 대기열로부터 작동 작업이 획득되고 계산된다.In step S202, the user code is placed in the work queue as the working job, so that the working job is obtained and calculated from the working queue by the calculation node.

서비스 노드는 사용자 코드를 작동 작업으로서 작업 대기열에 배치하여, 작업 대기열에서의 작동 작업이 일괄적으로 할당되도록 하므로, 배열 매커니즘을 통해 시스템의 병행 응답 능력을 향상시킬 수 있다. 서비스 노드는 사용자 단말의 사용자 코드를 획득하고, 사용자 단말과의 세션 연결을 유지하며, 사용자 단말과의 연결을 구현하면 되며, 사용자 코드의 경우, 사용자 코드를 작동 작업으로서 작업 대기열을 배치한 후, 계산 노드에 의해 작업 대기열로부터 작동 작업이 획득되고 계산되어, 사용자 단말의 연결과 사용자 코드의 계산이 각각 서비스 노드 및 계산 노드에 의해 완료되도록 하여, 사용자 코드에 의해 작동되는 비동기 통신을 구현하고, 시스템의 병행 능력을 향상시킨다.The service node places the user code in the work queue as a working task, so that the working tasks in the work queue are allocated in batches, so the system's ability to respond concurrently can be improved through the arrangement mechanism. The service node only needs to obtain the user code of the user terminal, maintain a session connection with the user terminal, and implement the connection with the user terminal, in the case of the user code, after placing the work queue as an operation task, The operation task is obtained and calculated from the work queue by the computation node, so that the connection of the user terminal and the computation of the user code are completed by the service node and the computation node, respectively, to implement asynchronous communication operated by the user code, the system improve the parallel ability of

본 출원의 실시예에 있어서, 작업 대기열은 제1 작업 대기열 및 제2 작업 대기열을 포함하고, 계산 노드는 제1 계산 노드 및 제2 계산 노드를 포함한다. 서비스 노드가 사용자 코드를 작동 작업으로서 작업 대기열에 배치하여, 계산 노드에 의해 작업 대기열로부터 작동 작업이 획득되고 계산될 경우, 사용자 코드의 계산 특징에 따라, 사용자 코드를 작동 작업으로서 제1 작업 대기열 또는 제2 작업 대기열에 배치하여, 제1 계산 노드에 의해 제1 작업 대기열로부터 작동 작업이 획득되고 계산되거나, 제2 계산 노드에 의해 제2 작업 대기열로부터 작동 작업이 획득되고 계산된다.In an embodiment of the present application, the work queue includes a first work queue and a second work queue, and the computation node includes a first computation node and a second computation node. The service node places the user code as a working job in the work queue, so that when the working job is obtained and calculated from the work queue by the computation node, the user code is placed in the first job queue or By placing in the second work queue, the working job is obtained and calculated from the first work queue by the first computing node, or the working job is obtained and calculated from the second work queue by the second computing node.

나머지 단계 S201 및 S202에 연관된 설명은 상기 단계 S101 내지 단계 S103을 참조할 수 있고, 여기서 더이상 반복하여 설명하지 않는다.For descriptions related to the remaining steps S201 and S202, reference may be made to the above steps S101 to S103, which will not be repeated any longer.

단계 S203에 있어서, 계산 노드의 계산 결과를 획득하고, 계산 결과를 사용자 단말에 피드백한다.In step S203, the calculation result of the calculation node is obtained, and the calculation result is fed back to the user terminal.

계산 노드가 계산 결과를 얻은 후, 서비스 노드는 계산 노드로부터 계산 결과를 획득할 수 있고, 계산 결과를 사용자 단말에 피드백할 수 있다. 본 출원의 실시예에 있어서, 프로그래밍 플랫폼은 메시지 대기열을 더 포함하고, 또한 메시지 대기열은 계산 노드가 작동 작업을 계산하여 얻은 계산 결과를 잠시 저장하기 위한 것이다. 서비스 노드가 계산 노드로부터 계산 결과를 획득하여, 계산 결과를 사용자 단말에 피드백할 경우, 서비스 노드는 메시지 대기열을 모니터링하여, 계산 결과를 획득하고, 계산 결과를 사용자 단말에 피드백한다. 여기서, 서비스 노드에 의해 획득된 계산 결과는 계산 노드가 계산 결과를 메시지 대기열에 배치한 것이다.After the calculation node obtains the calculation result, the service node may obtain the calculation result from the calculation node, and may feed back the calculation result to the user terminal. In an embodiment of the present application, the programming platform further includes a message queue, and the message queue is for temporarily storing the calculation result obtained by the calculation node calculating the operation task. When the service node obtains the calculation result from the calculation node and feeds back the calculation result to the user terminal, the service node monitors the message queue to obtain the calculation result, and feeds back the calculation result to the user terminal. Here, the calculation result obtained by the service node is that the calculation node places the calculation result in the message queue.

본 출원의 실시예에 있어서, 서비스 노드는 사용자 단말을 나타내기 위한 사용자 코드를 획득한 후, 사용자 단말과의 세션 연결을 구축하고; 서비스 노드는 계산 결과를 획득하기 전, 사용자 단말과의 세션 연결을 유지하며; 서비스 노드는 계산 노드의 계산 결과를 획득한 후, 상응하는 사용자 단말과의 세션 연결을 차단한다. 이로써, 서비스 노드는 상기 계산 결과를 획득하기 전, 서비스 노드와 사용자 단말의 연계를 계속 유지하므로, 계산 결과를 사용자 단말에 피드백하는데 용이하다.In the embodiment of the present application, the service node obtains the user code for indicating the user terminal, and then establishes a session connection with the user terminal; The service node maintains a session connection with the user terminal before obtaining the calculation result; After the service node obtains the calculation result of the calculation node, it blocks the session connection with the corresponding user terminal. Accordingly, since the service node continues to maintain the association between the service node and the user terminal before obtaining the calculation result, it is easy to feed back the calculation result to the user terminal.

상기 방식을 통해, 서비스 노드는 사용자 단말을 나타내기 위한 사용자 코드를 획득하고; 사용자 코드를 작동 작업으로서 작업 대기열에 배치하여, 계산 노드에 의해 작업 대기열로부터 작동 작업이 획득되고 계산되며; 계산 노드의 계산 결과를 획득하고, 계산 결과를 사용자 단말에 피드백하여, 사용자 코드의 작동을 구현한다. 서비스 노드는 사용자 단말과의 연결에 사용되고, 사용자 단말에 의해 송신된 사용자 코드를 작동 작업으로서 작업 대기열에 배치하여, 서비스 노드에 대해 독립적인 계산 노드는 작업 대기열로부터 작동 작업을 획득하고 계산하여 계산 결과를 획득한 후, 서비스 노드는 계산 노드의 계산 결과를 획득하며, 계산 결과를 사용자 단말에 피드백하므로, 사용자 코드의 작동을 구현한다.Through the above manner, the service node obtains a user code for indicating the user terminal; placing the user code in the work queue as a working job, so that the working job is obtained and calculated from the work queue by the computation node; A calculation result of the calculation node is obtained, and the calculation result is fed back to the user terminal to implement the operation of the user code. The service node is used for connection with the user terminal, and the user code sent by the user terminal is placed in the work queue as a working job, so that the computation node independent of the service node obtains the working job from the work queue and calculates the calculation result After obtaining , the service node obtains the calculation result of the calculation node, and feeds back the calculation result to the user terminal, thereby implementing the operation of the user code.

본 출원은 계산 노드를 더 제공하고, 상기 계산 노드는 마찬가지로 프로그래밍 플랫폼의 사용자 코드 작동 방법을 실행할 수 있다. 도 3을 참조하면, 도 3은 본 출원의 실시예에서 제공한 프로그래밍 플랫폼의 사용자 코드 작동 방법의 다른 구현 흐름 예시도이다. 구체적으로, 본 출원의 실시예 방법은 아래와 같은 단계를 포함한다.The present application further provides a computation node, which can likewise execute a user code operating method of a programming platform. Referring to FIG. 3 , FIG. 3 is an exemplary flow diagram of another implementation of a user code operation method of a programming platform provided in an embodiment of the present application. Specifically, the embodiment method of the present application includes the following steps.

단계 S301에 있어서, 작업 대기열을 모니터링하여, 작동 작업을 획득한다.In step S301, the job queue is monitored to obtain a working job.

본 출원의 실시예에서 프로그래밍 플랫폼의 사용자 코드 작동 방법을 실행하는 것은 상기 프로그래밍 플랫폼의 사용자 코드 작동 방법의 어느 한 실시예에서의 계산 노드이다. 작업 대기열은 작동 작업을 포함하고, 작동 작업은 사용자 코드에 대응된다.Executing the user code operating method of the programming platform in an embodiment of the present application is a computing node in any one embodiment of the user code operating method of the programming platform. The work queue contains operational tasks, and the operational tasks correspond to user codes.

계산 노드는 작동 작업을 포함하는 작업 대기열을 모니터링하고, 작업 대기열로부터 사용자 코드에 일대일 대응되는 작동 작업을 획득한다.The computation node monitors the work queue containing the work tasks, and obtains the work tasks corresponding to the user code one-to-one from the work queues.

계산 노드는 제1 계산 노드 및 제2 계산 노드를 포함하고, 제1 계산 노드 및 제2 계산 노드는 각각 CPU 서버 및 GPU 서버에 위치함으로써, 제1 계산 노드는 작업 대기열에서의 CPU 서버에서의 계산 및 내부 메모리 자원에 의존하는 작동 작업을 모니터링하며, 제2 계산 노드는 작업 대기열에서의 GPU 서버에서의 계산 및 내부 메모리 자원에 의존하는 작동 작업을 모니터링한다. 구체적으로, 작업 대기열은 제1 작업 대기열 및 제2 작업 대기열을 포함할 수 있고, 제1 계산 노드 및 제2 계산 노드는 제1 작업 대기열 및 제2 작업 대기열을 각각 모니터링하여, 작동 작업을 획득한다.The compute node includes a first compute node and a second compute node, wherein the first compute node and the second compute node are located in the CPU server and the GPU server, respectively, so that the first compute node performs computation in the CPU server in the work queue. and monitoring an operational task dependent on the internal memory resource, and the second computation node monitors the computation in the GPU server in the work queue and the operational task dependent on the internal memory resource. Specifically, the work queue may include a first work queue and a second work queue, and the first computation node and the second computation node respectively monitor the first work queue and the second work queue to obtain a work task. .

즉, 사용자 코드는 작업 대기열에 대응되고, 본 출원의 실시예의 계산 노드가 제1 계산 노드일 경우, 제1 작업 대기열로부터 CPU 서버에서의 계산 및 내부 메모리 자원의 작동 작업을 획득하며; 계산 노드가 제2 계산 노드일 경우, 제2 작업 대기열로부터 GPU 서버에서의 계산 및 내부 메모리 자원의 작동 작업을 획득한다.That is, the user code corresponds to the work queue, and when the computation node in the embodiment of the present application is the first computation node, obtain the computational and internal memory resource operation tasks in the CPU server from the first work queue; When the computation node is the second computation node, the computational and internal memory resource operation tasks in the GPU server are acquired from the second task queue.

단계 S302에 있어서, 작동 작업을 계산하여, 계산 결과를 얻는다.In step S302, an operation operation is calculated, and a calculation result is obtained.

계산 노드는 자신이 속하는 서버에서의 계산 및 내부 메모리 자원을 이용하여 작동 작업을 계산하여, 계산 결과를 얻는다. 계산 노드는 작동 작업의 계산을 완료한 후, 대응되는 계산 자원을 릴리즈하고 작업 대기열을 계속 모니터링하며, 즉, 계산 노드는 현재의 작동 작업의 계산을 완료하는 즉시 자원을 릴리즈하고, 작업 대기열을 계속 모니터링하여, 새로운 작동 작업을 획득하므로, 계산 노드가 계산 및 내부 메모리 자원을 최대한으로 다중화하도록 한다.The computation node calculates the operation task by using the computation and internal memory resources in the server to which it belongs, and obtains the computation result. After the compute node completes the calculation of the working task, it releases the corresponding computational resource and continues to monitor the work queue, that is, the compute node releases the resource as soon as it completes the calculation of the current working task, and continues the work queue. By monitoring, it acquires new operational tasks, so that the compute node maximizes multiplexing of computational and internal memory resources.

상기 방식을 통해, 작업 대기열을 모니터링하여, 작동 작업을 획득하고; 작업 대기열은 작동 작업을 포함하며, 작동 작업은 사용자 코드에 대응되며; 작동 작업을 계산하여, 계산 결과를 얻으므로, 계산 노드의 작동 작업 획득을 순차적으로 수행하는 것을 구현한다. 작업 대기열이 작동 작업을 포함하고, 작동 작업이 사용자 코드에 대응되므로, 계산 노드는 작동 작업을 포함하는 작업 대기열을 모니터링함으로써, 사용자 코드에 대응되는 작동 작업을 획득함으로써, 작동 작업을 계산하여 계산 결과를 얻어, 작동 작업의 획득과 계산을 구현한다.Through the above manner, monitoring the work queue to obtain a working job; the work queue includes operational tasks, the operational tasks corresponding to user codes; Calculating the operation task to obtain the calculation result, it is implemented that the operation task acquisition of the computation node is sequentially performed. Since the work queue contains an operational task, and the operational task corresponds to the user code, the computation node monitors the task queue containing the operational task to obtain the operational task corresponding to the user code, thereby calculating the operational task and calculating the result. , which implements the acquisition and calculation of the operation task.

본 출원은 프로그래밍 플랫폼을 더 제공하고, 도 4에 도시된 바와 같이, 도 4는 본 출원의 실시예에서 제공한 프로그래밍 플랫폼의 구조 예시도이다. 구체적으로, 본 출원의 실시예에서 프로그래밍 플랫폼(40)은 서비스 노드(41), 작업 대기열(42), 계산 노드(43)를 포함한다. 서비스 노드(41)는 사용자 단말을 나타내기 위한 사용자 코드를 획득하고, 사용자 코드를 작동 작업으로서 작업 대기열(42)에 배치하기 위한 것이며; 계산 노드(43)는 작업 대기열(42)을 모니터링하여, 작동 작업을 획득하기 위한 것이며; 계산 노드(43)는 또한 작동 작업을 계산하여, 계산 결과를 얻기 위한 것이며; 서비스 노드(41)는 또한 계산 노드(43)로부터 계산 결과를 획득하여, 계산 결과를 사용자 단말에 피드백하기 위한 것이다.The present application further provides a programming platform, and as shown in FIG. 4 , FIG. 4 is an exemplary structural diagram of the programming platform provided in an embodiment of the present application. Specifically, in the embodiment of the present application, the programming platform 40 includes a service node 41 , a work queue 42 , and a computation node 43 . the service node 41 is for obtaining a user code for representing the user terminal, and placing the user code in the work queue 42 as an operation task; The computation node 43 is for monitoring the work queue 42 to obtain a work task; The calculation node 43 is also for calculating an operation task, to obtain a calculation result; The service node 41 is also to obtain a calculation result from the calculation node 43, and feed back the calculation result to the user terminal.

본 출원의 실시예에 있어서, 계산 노드(43)의 개수는 적어도 두 개이고; 계산 노드(43)가 작업 대기열(42)을 모니터링하여, 작동 작업을 획득하기 위한 것일 경우, 적어도 두 개의 계산 노드(43)는 작업 대기열(42)을 모니터링하고, 작업 대기열(42)에 작동 작업을 획득하도록 요청하기 위한 것이며; 작업 대기열(42)은 작동 작업을 계산 노드(43)에 할당하기 위한 것이다.In the embodiment of the present application, the number of computation nodes 43 is at least two; When the computing node 43 monitors the work queue 42 to obtain a working job, at least two computing nodes 43 monitor the job queue 42 and add the working job to the job queue 42 . to request to obtain; The work queue 42 is for assigning working tasks to the computation nodes 43 .

본 출원의 실시예에 있어서, 작업 대기열(42)은 제1 작업 대기열 및 제2 작업 대기열을 포함하고, 적어도 두 개의 계산 노드(43)는 제1 계산 노드 및 제2 계산 노드를 포함하며; 서비스 노드(41)가 사용자 코드를 작동 작업으로서 작업 대기열(42)에 배치하기 위한 것일 경우, 더 나아가 사용자 코드의 계산 특징에 따라, 사용자 코드를 작동 작업으로서 제1 작업 대기열 또는 제2 작업 대기열에 배치하기 위한 것이며; 계산 노드(43)는 작업 대기열(42)을 모니터링하기 위한 것이며, 구체적으로, 제1 계산 노드는 제1 작업 대기열을 모니터링하고, 제2 계산 노드는 제2 작업 대기열을 모니터링한다.In the embodiment of the present application, the work queue 42 includes a first work queue and a second work queue, and the at least two computation nodes 43 include a first computation node and a second computation node; When the service node 41 is for placing the user code in the work queue 42 as an actuation job, further, according to the computational characteristics of the user code, the user code is placed in the first work queue or the second work queue as the actuating work. for placement; The compute node 43 is for monitoring the work queue 42 , specifically, the first compute node monitors the first work queue, and the second compute node monitors the second work queue.

본 출원의 실시예에 있어서, 서비스 노드(41)의 개수는 적어도 두 개이고; 서비스 노드(41)가 사용자 단말을 나타내기 위한 사용자 코드를 획득하기 위한 것일 경우, 적어도 두 개의 서비스 노드(41)는 역방향 프록시에 의해 사용자 코드가 할당된다.In the embodiment of the present application, the number of service nodes 41 is at least two; When the service node 41 is to obtain a user code for representing a user terminal, at least two service nodes 41 are assigned a user code by a reverse proxy.

본 출원의 실시예에 있어서, 계산 노드(43)는 또한 작동 작업의 계산을 완료한 후, 대응되는 계산 자원을 릴리즈하고 작업 대기열(42)을 계속 모니터링하기 위한 것이다.In the embodiment of the present application, the computation node 43 is also to release the corresponding computational resource after completing the computation of the working task and continue to monitor the task queue 42 .

본 출원의 실시예에 있어서, 프로그래밍 플랫폼(40)은 메시지 대기열(44)을 더 포함하고; 서비스 노드(41)가 계산 노드(43)로부터 계산 결과를 획득하여, 계산 결과를 사용자 단말에 피드백하기 위한 것일 경우, 계산 노드(43)는 또한 계산 결과를 메시지 대기열(44)에 배치하기 위한 것이며; 서비스 노드(41)는 또한 메시지 대기열(42)을 모니터링하여, 계산 결과를 획득하고, 계산 결과를 사용자 단말에 피드백하기 위한 것이다.In an embodiment of the present application, the programming platform 40 further includes a message queue 44; When the service node 41 is to obtain the calculation result from the calculation node 43 and feed back the calculation result to the user terminal, the calculation node 43 is also to place the calculation result in the message queue 44 ; The service node 41 is also for monitoring the message queue 42 to obtain a calculation result, and feed back the calculation result to the user terminal.

본 출원의 실시예에 있어서, 서비스 노드(41)는 또한 계산 결과를 획득하기 전, 사용자 단말과의 세션 연결을 획득하기 위한 것이다.In the embodiment of the present application, the service node 41 is also for obtaining a session connection with the user terminal before obtaining the calculation result.

도 4에서의 프로그래밍 플랫폼(40)에서의 서비스 노드(41)는 또한 프로그래밍 플랫폼의 사용자 코드 작동 방법을 실행하기 위한 것이다. 구체적으로, 도 5에 도시된 바와 같이, 도 5는 본 출원의 프로그래밍 플랫폼 서비스 노드(41)의 일 실시예의 구조 예시도이다. 서비스 노드(41)는 수신 유닛(411), 배치 유닛(412) 및 획득 유닛(413)을 포함한다. 여기서, 수신 유닛(411)은 사용자 단말을 나타내기 위한 사용자 코드를 획득하기 위한 것이고; 배치 유닛(412)은 사용자 코드를 작동 작업으로서 작업 대기열에 배치하여, 계산 노드에 의해 작업 대기열로부터 작동 작업이 획득되고 계산되기 위한 것이며; 획득 유닛(413)은 계산 노드의 계산 결과를 획득하고, 계산 결과를 사용자 단말에 피드백하기 위한 것이다.The service node 41 in the programming platform 40 in FIG. 4 is also for executing the user code operating method of the programming platform. Specifically, as shown in Fig. 5, Fig. 5 is an exemplary structural diagram of an embodiment of the programming platform service node 41 of the present application. The service node 41 includes a receiving unit 411 , a placing unit 412 , and an obtaining unit 413 . Here, the receiving unit 411 is for obtaining a user code for indicating the user terminal; the placing unit 412 is for placing the user code in the work queue as an actuation task, so that the actuation task is obtained and calculated from the work queue by the computation node; The obtaining unit 413 is for obtaining the calculation result of the calculation node, and feeding back the calculation result to the user terminal.

본 출원의 실시예에 있어서, 배치 유닛(412)이 사용자 코드를 작동 작업으로서 작업 대기열에 배치하여, 계산 노드에 의해 작업 대기열로부터 작동 작업이 획득되고 계산되기 위한 것일 경우, 또한 사용자 코드의 계산 특징에 따라, 사용자 코드를 작동 작업으로서 제1 작업 대기열 또는 제2 작업 대기열에 배치하여, 제1 계산 노드에 의해 제1 작업 대기열로부터 작동 작업이 획득되고 계산되거나, 제2 계산 노드에 의해 제2 작업 대기열로부터 작동 작업이 획득되고 계산되기 위한 것이다.In the embodiment of the present application, when the disposing unit 412 places the user code in the work queue as an actuation task, so that the actuation task is obtained and calculated from the work queue by the computation node, also the computation feature of the user code , placing the user code in the first work queue or the second work queue as the actuation task, so that the actuation task is obtained and calculated from the first work queue by the first computation node, or the second task is obtained by the second computation node It is for the operation task to be obtained and counted from the queue.

본 출원의 실시예에 있어서, 수신 유닛(411)이 사용자 단말을 나타내기 위한 사용자 코드를 획득하기 위한 것일 경우, 역방향 프록시에 의해 사용자 코드가 할당된다.In the embodiment of the present application, when the receiving unit 411 is to obtain a user code for indicating the user terminal, the user code is assigned by the reverse proxy.

본 출원의 실시예에 있어서, 획득 유닛(413)은 계산 결과를 획득하기 전, 서비스 노드(41)는 사용자 단말과의 세션 연결을 유지하기 위한 것이다.In the embodiment of the present application, before the acquiring unit 413 acquires the calculation result, the service node 41 is configured to maintain a session connection with the user terminal.

도 4에서의 프로그래밍 플랫폼(40)의 계산 노드(43)는 또한 프로그래밍 플랫폼의 사용자 코드 작동 방법을 실행하기 위한 것이다. 구체적으로, 도 6에 도시된 바와 같이, 도 6은 본 출원의 프로그래밍 플랫폼의 계산 노드(43)의 일 실시예의 구조 예시도이다. 계산 노드(43)는 모니터링 유닛(431) 및 계산 유닛(432)을 포함하고, 모니터링 유닛(431)은 작업 대기열을 모니터링하여, 작동 작업을 획득하기 위한 것이며, 여기서, 작업 대기열은 작동 작업을 포함하고, 작동 작업은 사용자 코드에 대응되며; 계산 유닛(432)은 작동 작업을 계산하여, 계산 결과를 얻기 위한 것이다.The compute node 43 of the programming platform 40 in FIG. 4 is also for executing a method of operating user code of the programming platform. Specifically, as shown in FIG. 6 , FIG. 6 is a structural diagram of an embodiment of the computation node 43 of the programming platform of the present application. The calculation node 43 includes a monitoring unit 431 and a calculation unit 432 , and the monitoring unit 431 is for monitoring the work queue to obtain a working job, where the working queue includes the working job and the operation operation corresponds to the user code; The calculation unit 432 is for calculating the operation operation to obtain a calculation result.

본 출원의 실시예에 있어서, 계산 유닛(432)은 작동 작업의 계산을 완료한 후, 계산 노드(43)가 대응되는 계산 자원을 릴리즈하고 작업 대기열을 계속 모니터링하기 위한 것이다.In the embodiment of the present application, the calculation unit 432 is configured to allow the calculation node 43 to release the corresponding computing resource and continue to monitor the job queue after completing the calculation of the working job.

본 출원의 프로그래밍 플랫폼을 추가로 설명하기 위해, 도 7에 도시된 바를 참조하면, 도 7은 본 출원의 실시예에서 제공한 프로그래밍 플랫폼의 다른 구조 예시도이다.In order to further describe the programming platform of the present application, referring to FIG. 7 , FIG. 7 is another structural diagram of the programming platform provided in an embodiment of the present application.

본 출원의 실시예에서 프로그래밍 플랫폼(70)은 서비스 노드(71), 작업 대기열(72), 계산 노드(73) 및 메시지 대기열(74)을 포함하고, 작업 대기열(72)은 제1 작업 대기열(721) 및 제2 작업 대기열(722)을 포함하며, 계산 노드(73)는 제1 계산 노드(731) 및 제2 계산 노드(732)를 포함하며, 제1 계산 노드(731)는 CPU 서버(701)에 위치하고, 제2 계산 노드(732)는 GPU 서버(702)에 위치한다.In the embodiment of the present application, the programming platform 70 includes a service node 71 , a work queue 72 , a compute node 73 and a message queue 74 , and the work queue 72 includes a first work queue ( 721 ) and a second work queue 722 , wherein the compute node 73 includes a first compute node 731 and a second compute node 732 , and the first compute node 731 comprises a CPU server ( 701 , and the second compute node 732 is located on the GPU server 702 .

구체적으로 적용될 경우, 서비스 노드(71)는 복수 개의 사용자 단말 중 어느 한 사용자 단말의 사용자 코드를 수신하라 수 있고, 복수 개의 사용자 단말의 사용자 코드를 동시에 수신할 수 있어, 사용자 단말을 나타내기 위한 사용자 코드를 획득하는 것을 구현하며; 서비스 노드(71)는 사용자 단말과 websocket 연결을 수행하며, 즉 서비스 노드(71)는 websocket 통신 방식을 통해 사용자 단말의 사용자 코드를 획득한다. 사용자 코드를 작동 작업으로서 작업 대기열(72)에 배치할 경우, 사용자 코드의 계산 특징에 따라, 사용자 코드가 제1 작업 대기열(721)에 속함을 판정하고 CPU 서버(701)의 코드작동 자원을 이용하여, 상기 사용자 코드를 작동 작업으로서 제1 작업 대기열(721)에 배치하며, 제1 계산 노드(731)는 제1 작업 대기열(721)을 모니터링하여 작동 작업을 획득하고 계산하여, 계산 결과를 얻으며; 또는, 사용자 코드의 계산 특징에 따라, 사용자 코드가 제2 작업 대기열(722)에 속함을 판정하고 GPU 서버(702)의 코드 작동 자원을 이용하여, 상기 사용자 코드를 작동 작업으로서 제2 작업 대기열(722)에 배치하며, 제2 계산 노드(732)는 제2 작업 대기열(722)을 모니터링하여 작동 작업을 획득하고 계산하여, 계산 결과를 얻으며; 제1 계산 노드(731) 및 제2 계산 노드(732)는 계산 결과를 메시지 대기열(74)에 배치하고, 서비스 노드(71)는 메시지 대기열(74)을 모니터링하여, 계산 결과를 획득하고, 계산 결과를 대응되는 사용자 단말에 피드백한다. 본 출원의 실시예에서 서비스 노드(71), 작업 대기열(72), 계산 노드(73) 및 메시지 대기열(74)에 연관된 설명은, 상기 프로그래밍 플랫폼의 일 실시예를 참조할 수 있고, 여기서 더이상 반복하여 설명하지 않는다.When specifically applied, the service node 71 may receive the user code of any one user terminal among the plurality of user terminals, and may simultaneously receive the user codes of the plurality of user terminals, so that the user for indicating the user terminal implement obtaining code; The service node 71 performs a websocket connection with the user terminal, that is, the service node 71 obtains the user code of the user terminal through the websocket communication method. When the user code is placed in the work queue 72 as a working job, according to the calculation characteristics of the user code, it is determined that the user code belongs to the first work queue 721 and the code working resource of the CPU server 701 is used. Thus, the user code is placed in the first work queue 721 as a working job, and the first calculation node 731 monitors the first work queue 721 to obtain and calculate the working job to obtain a calculation result, ; Or, according to the calculation characteristics of the user code, determine that the user code belongs to the second work queue 722 and use the code actuation resource of the GPU server 702 to set the user code as the actuation work to the second work queue ( 722 , wherein the second calculation node 732 monitors the second work queue 722 to obtain and calculate an operation job to obtain a calculation result; The first calculation node 731 and the second calculation node 732 place the calculation result in the message queue 74 , and the service node 71 monitors the message queue 74 to obtain the calculation result, and calculate The result is fed back to the corresponding user terminal. The descriptions associated with the service node 71 , the work queue 72 , the compute node 73 and the message queue 74 in the embodiments of the present application may refer to one embodiment of the above programming platform, which is no longer repeated here. do not explain

상기 방식을 통해, 서비스 노드는 수신된 사용자 코드를 작동 작업으로서 상이한 작업 대기열에 각각 배치하고; 다음 상이한 서버에서의 계산 노드는 상이한 작업 대기열을 각각 모니터링하여, 대응되는 작동 작업을 획득함으로써, 상이한 계산 및 저장 자원을 이용하여 작동 작업을 계산하여, 계산 결과를 얻고, 계산 노드는 계산 결과를 메시지 대기열에 일괄로 배치하며; 마지막으로, 서비스 노드는 메시지 대기열로부터 계산 노드의 계산 결과를 획득하고, 계산 결과를 사용자 단말에 피드백한다. 전체 사용자 코드의 작동 과정 중, 서비스 노드는 계산 노드오 분리 설치되어, 사용자 단말의 연결과 사용자 코드의 계산이 각각 서비스 노드 및 계산 노드에 의해 완료되도록 하므로, 계산 노드으 계산 자원은 부단히 중복 이용될 수 있고, 상이한 계산 노드는 상이한 메시지 대기열에 대응됨으로써, 상이한 계산 및 저장 자원에 의존하는 사용자 코드를 획득하여 계산하므로, 사용자 코드에 의해 작동되는 비동기 통신을 구현하고, 시스템의 병행 능력을 향상시킨다.Through the above manner, the service node places the received user code as a working job in different job queues, respectively; Then, the computation nodes in different servers monitor different work queues, respectively, to obtain the corresponding operational tasks, so that the operational tasks are calculated using different computation and storage resources to obtain the computation results, and the computation nodes send the computation results in a message. placed in queues; Finally, the service node obtains the calculation result of the calculation node from the message queue, and feeds back the calculation result to the user terminal. During the operation of the entire user code, the service node is installed separately from the calculation node, so that the connection of the user terminal and the calculation of the user code are completed by the service node and the calculation node, respectively, so the calculation resources of the calculation node are constantly being used repeatedly. and different computation nodes correspond to different message queues, thereby obtaining and calculating user code dependent on different computation and storage resources, thereby implementing asynchronous communication operated by user code, and improving the parallelism capability of the system.

본 출원의 실시예에 있어서, 프로그래밍 플랫폼은 온라인 프로그래밍 교육 플랫폼, 인공 지능 플랫폼일 수 있다. 예를 들어, 프로그래밍 플랫폼은 온라인 프로그래밍 교육 플랫폼이며, 이는 학교 또는 교육 기관 등을 지향하며, 사용자 단말은 온라인 프로그래밍 교육 플랫폼을 액세스하는 학생 단말이며, 사용자 코드의 작동을 구현한다. 온라인 프로그래밍 교육 플랫폼은 서비스 노드, 작업 대기열 및 계산 노드를 포함하고, 여기서 작업 대기열은 redis 리스트이다. 학생은 학생 단말의 프로그래밍 계면을 통해 사용자 코드를 입력하고, 서비스 노드는 학생 단말의 사용자 코드를 수신할 수 있으며, 복수 개의 학생 단말의 사용자 코드를 동시에 수신할 수 있어, 온라인 프로그래밍 교육 플랫폼에서 학생에 의해 송신된 사용자 코드를 수신하는 것을 구현하며; 서비스 노드는 사용자 코드를 작동 작업으로서 작업 대기열의 redis 리스트에 배치한다. 계산 노드는 redis 리스트를 모니터링하여, 작동 작업을 획득하며; 작동 작업을 계산하여, 계산 결과를 얻는다. 서비스 노드는 계산 노드로부터 계산 결과를 획득하여, 계산 결과를 학생 단말에 피드백한다.In an embodiment of the present application, the programming platform may be an online programming education platform or an artificial intelligence platform. For example, the programming platform is an online programming education platform, which is oriented to a school or educational institution, etc., and the user terminal is a student terminal accessing the online programming education platform, and implements the operation of the user code. The online programming education platform includes a service node, a work queue and a compute node, where the work queue is a redis list. The student inputs the user code through the programming interface of the student terminal, the service node can receive the user code of the student terminal, and the user code of a plurality of student terminals can be received simultaneously, implement receiving the user code sent by; The service node places user code in the redis list of work queues as working tasks. The compute node monitors the redis list to obtain operational tasks; Calculating the operation task, and obtaining the calculation result. The service node obtains the calculation result from the calculation node, and feeds the calculation result back to the student terminal.

본 출원의 실시예에 있어서, 프로그래밍 플랫폼은 온라인 프로그래밍 교육 플랫폼이고, 사용자 단말은 온라인 프로그래밍 교육 플랫폼을 액세스하는 학생 단말이다. 온라인 프로그래밍 교육 플랫폼은 서비스 노드, 작업 대기열, 계산 노드 및 메시지 대기열을 포함하며, 여기서, 작업 대기열은 redis 리스트는 제1 작업 대기열 및 제2 작업 대기열을 포함하며; 계산 노드는 제1 계산 노드 및 제2 계산 노드를 포함하며; 메시지 대기열은 RabbitMQ이다. 온라인 프로그래밍 교육 플랫폼의 서비스 노드는 사용자 코드의 계산 특징에 따라, 사용자 코드가 제1 작업 대기열에 속함을 판정하고 CPU 서버의 코드 작동 자원을 이용하여, 상기 사용자 코드를 작동 작업으로서 제1 작업 대기열에 배치하며, 제1 계산 노드는 제1 작업 대기열을 모니터링하여 작동 작업을 획득하고 계산하여, 계산 결과를 얻으며; 또는, 서비스 노드는 사용자 코드의 계산 특징에 따라, 사용자 코드가 제2 작업 대기열에 속함을 판정하고 GPU 서버의 코드 작동 자원을 이용하여, 상기 사용자 코드를 작동 작업으로서 제2 작업 대기열에 배치하며, 제2 계산 노드는 제2 작업 대기열을 모니터링하여 작동 작업을 획득하고 계산하여, 계산 결과를 얻으며; 제1 계산 노드 및 제2 계산 노드는 계산 결과를 메시지 대기열RabbitMQ에 배치하며, 서비스 노드는 RabbitMQ를 모니터링하여, 계산 결과를 획득하고, 계산 결과를 대응되는 학생 단말에 피드백한다.In an embodiment of the present application, the programming platform is an online programming education platform, and the user terminal is a student terminal accessing the online programming education platform. The online programming education platform includes a service node, a work queue, a computation node and a message queue, wherein the work queue includes a redis list including a first work queue and a second work queue; the computation node includes a first computation node and a second computation node; The message queue is RabbitMQ. The service node of the online programming education platform determines, according to the computational characteristics of the user code, that the user code belongs to the first work queue, and uses the code actuation resource of the CPU server to put the user code into the first work queue as an actuation work. Deploy, wherein the first calculation node monitors the first work queue to obtain and calculate the working work to obtain the calculation result; or, the service node determines, according to the computational characteristics of the user code, that the user code belongs to the second work queue, and uses the code actuation resource of the GPU server to place the user code in the second work queue as an actuation work; the second computation node monitors the second work queue to obtain and calculate the work tasks to obtain a computation result; The first calculation node and the second calculation node place the calculation result in the message queue RabbitMQ, and the service node monitors the RabbitMQ, obtains the calculation result, and feeds the calculation result back to the corresponding student terminal.

상기 방식을 통해, 학교 또는 교육 기관 등을 지향하며, 온라인 프로그래밍 교육 플랫폼은 더욱 많은 학생이 온라인 프로그래밍 교육 플랫폼에서 온라인 프로그래밍 학습을 동시에 수행하는 것을 만족할 수 있으므로, 연산 자원을 충분히 이용하는 것을 구현하여, 비용을 절약한다.Through the above method, oriented to schools or educational institutions, etc., the online programming education platform can satisfy more students to simultaneously perform online programming learning on the online programming education platform, so it is realized that the computational resources are fully utilized, and the cost to save

도 8을 참조하면, 도 8은 본 출원의 전자 기기의 일 실시예의 아키텍처 예시도이다. 구체적으로, 본 출원의 실시예에서 전자 기기(800)는 서로 커플링된 메모리(810) 및 프로세서(820)를 포함한다. 여기서, 메모리(810)는 프로그램 명령어 및 프로세서(820)가 처리할 경우 저장해야 하는 데이터를 저장하기 위한 것이다.Referring to FIG. 8 , FIG. 8 is an architectural diagram of an embodiment of the electronic device of the present application. Specifically, in the embodiment of the present application, the electronic device 800 includes a memory 810 and a processor 820 coupled to each other. Here, the memory 810 is for storing program instructions and data to be stored when the processor 820 processes it.

프로세서(820)는 메모리(810) 및 자신을 제어하여 상기 프로그래밍 플랫폼의 사용자 코드 작동 방법의 어느 한 실시예의 단계를 구현한다. 프로세서(820)는 또한 중앙처리장치(Central Processing Unit, CPU)로 지칭될 수 있다. 프로세서(820)는 신호 처리 능력을 구비하는 집적 회로 칩일 수 있다. 프로세서(820)는 또한 범용 프로세서, 디지털 신호 프로세서(Digital Signal Processor, DSP), 응용 주문형 집적 회로(Application Specific Integrated Circuit, ASIC), 현장 프로그래머블 게이트 어레이(Field Programmable Gate Array, FPGA) 또는 다른 프로그래머블 논리 장치, 분리형 게이트 또는 트랜지스터 논리 장치, 분리형 하드웨어 컴포넌트일 수 있다. 범용 프로세서는 마이크로 프로세서 또는 임의의 일반적인 프로세서 등일 수도 있다. 또한, 프로세서(820)는 복수 개의 집적 회로 칩에 의해 공동으로 구현될 수 있다.Processor 820 controls memory 810 and itself to implement the steps of any one embodiment of the method of operating user code of the programming platform. The processor 820 may also be referred to as a central processing unit (CPU). The processor 820 may be an integrated circuit chip having signal processing capability. The processor 820 may also be a general purpose processor, digital signal processor (DSP), application specific integrated circuit (ASIC), field programmable gate array (FPGA), or other programmable logic device. , a discrete gate or transistor logic device, or a discrete hardware component. A general purpose processor may be a microprocessor or any general processor or the like. In addition, the processor 820 may be jointly implemented by a plurality of integrated circuit chips.

도 9를 참조하면, 도 9는 본 출원의 저장 장치의 일 실시예의 아키텍처 예시도이다. 본 출원의 저장 장치(900)는 프로세서에 의해 작동 가능한 프로그램 명령어(901)를 저장하고, 프로그램 명령어(901)는 상기 어느 한 프로그래밍 플랫폼의 사용자 코드 작동 방법의 실시예의 단계를 구현하기 위한 것이다.Referring to FIG. 9 , FIG. 9 is an architectural diagram of an embodiment of the storage device of the present application. The storage device 900 of the present application stores a program instruction 901 operable by a processor, and the program instruction 901 is for implementing the steps of the embodiment of the user code operation method of the one programming platform.

상기 저장 장치(900)는 구체적으로 U 디스크, 모바일 하드 디스크, 판독 전용 메모리(Read-Only Memory, ROM), 랜덤 액세스 메모리(Random Access Memory, RAM), 자기 디스크 또는 광 디스크 등 프로그램 명령어(901)를 저장 가능한 매체(휘발성 저장 매체 또는 비휘발성 저장 매체를 포함함)일 수 있거나, 상기 프로그램 명령어(901)가 저장된 서버일 수도 있으며, 상기 서버는 저장된 프로그램 명령어(901)를 다른 기기에 송신하여 작동할 수 있거나, 상기 저장된 프로그램 명령어(901)를 작동할 수도 있다.The storage device 900 is specifically a U disk, a mobile hard disk, a read-only memory (Read-Only Memory, ROM), a random access memory (Random Access Memory, RAM), a magnetic disk or an optical disk, such as program instructions 901 may be a storage medium (including a volatile storage medium or a non-volatile storage medium), or a server in which the program instructions 901 are stored, and the server operates by transmitting the stored program instructions 901 to other devices. or may operate the stored program instructions 901 .

본 출원에서 제공된 몇 개의 실시예에 있어서, 개시된 방법 및 장치는 다른 방식으로 구현될 수 있음을 이해해야 한다. 예를 들어, 전술된 장치 실시형태는 다만 예시적이며, 예를 들어, 모듈 또는 유닛에 대한 분할은 다만 논리적 기능 분할이고, 실제로 구현될 경우 다른 분할 방식이 있을 수 있으며, 예를 들어 복수 개의 유닛 또는 컴포넌트는 다른 시스템에 결합되거나 통합될 수 있거나, 일부 특징을 무시하거나 실행하지 않을 수 있다. 또한, 나타내거나 논의된 상호간의 결합 또는 직접 결합 또는 통신 연결은, 일부 인터페이스를 통해 구현되며, 장치 또는 유닛을 통한 간접 결합 또는 통신 연결은, 전기, 기계 또는 다른 형태일 수 있다.In the several embodiments provided in this application, it should be understood that the disclosed methods and apparatus may be implemented in other ways. For example, the above-described device embodiment is merely exemplary, for example, division for a module or unit is only logical function division, and when actually implemented, there may be other division manners, for example, a plurality of units Or components may be combined or integrated into other systems, or some features may be ignored or not implemented. Further, any coupling or direct coupling or communication connection between each other shown or discussed may be implemented via some interface, and the indirect coupling or communication connection through a device or unit may be electrical, mechanical, or other form.

분리 부재로서 설명된 유닛은, 물리적으로 분리된 것이거나 아닐 수 있고, 유닛으로서 나타낸 부재는 물리적 유닛이거나 아닐 수 있고, 즉 한 곳에 위치할 수 있거나, 복수 개의 네트워크 유닛에 분포될 수도 있다. 실제 필요에 따라 유닛의 일부 또는 전부를 선택하여 본 실시형태 방안의 목적을 구현할 수 있다.A unit described as a separate member may or may not be physically separated, and a member shown as a unit may or may not be a physical unit, that is, may be located in one place or may be distributed in a plurality of network units. Some or all of the units may be selected according to actual needs to implement the purpose of the present embodiment solution.

또한, 본 출원의 각 실시예에서의 각 기능 유닛은 하나의 처리 유닛에 통합될 수 있고, 각 유닛이 독립적인 물리적 존재일 수도 있고, 두 개 또는 두 개 이상의 유닛이 한 유닛에 통합될 수도 있다. 상기 통합된 유닛은 하드웨어의 형태를 사용하여 구현될 수 있으며, 소프트웨어 기능 유닛의 형태를 사용하여 구현될 수도 있다.In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, each unit may be an independent physical entity, and two or two or more units may be integrated into one unit. . The integrated unit may be implemented using a form of hardware or may be implemented using a form of a software functional unit.

통합된 유닛이 소프트웨어 기능 유닛의 형태로 구현되고 독립적인 제품으로 판매되거나 사용되는 경우 컴퓨터 판독 가능 저장 매체에 저장될 수 있다. 이러한 이해에 기반하여, 본 출원의 기술 방안, 즉 종래 기술에 기여하는 부분 또는 상기 기술 방안의 전부 또는 일부는 소프트웨어 제품의 형태로 구현될 수 있고, 상기 컴퓨터 소프트웨어 제품은 하나의 저장 매체에 저장되며, 하나의 컴퓨터 기기(개인용 컴퓨터, 서버 또는 네트워크 기기 등일 수 있음) 또는 프로세서(processor)로 하여금 본 출원의 각 실시형태의 상기 방법의 전부 또는 일부 단계를 실행하는데 사용되는 복수 개의 명령어를 포함한다. 전술된 저장 매체는 U 디스크, 이동식 하드 디스크, 롬(Read-Only Memory, ROM), 램(Random Access Memory, RAM), 자기 디스크 또는 광 디스크 등 프로그램 코드를 저장할 수 있는 다양한 매체를 포함한다.When the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it may be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application, that is, the part contributing to the prior art or all or part of the technical solution may be implemented in the form of a software product, the computer software product being stored in one storage medium, , including a plurality of instructions used to cause one computer device (which may be a personal computer, a server or a network device, etc.) or a processor to execute all or some steps of the method of each embodiment of the present application. The above-described storage medium includes various media capable of storing a program code, such as a U disk, a removable hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.

본 출원은 프로그래밍 플랫폼의 사용자 코드 작동 방법 및 플랫폼, 노드, 기기, 매체를 개시한다. 여기서, 프로그래밍 플랫폼은 서비스 노드, 작업 대기열, 계산 노드를 포함하고; 프로그래밍 플랫폼의 사용자 코드 작동 방법은, 서비스 노드가 사용자 단말을 나타내기 위한 사용자 코드를 획득하고, 사용자 코드를 작동 작업으로서 작업 대기열에 배치하는 단계; 계산 노드가 작업 대기열을 모니터링하여, 작동 작업을 획득하는 단계; 계산 노드가 작동 작업을 계산하여, 계산 결과를 얻는 단계; 및 서비스 노드가 계산 노드로부터 계산 결과를 획득하여, 계산 결과를 사용자 단말에 피드백하는 단계를 포함한다.This application discloses a method and platform, node, device, medium for operating user code of a programming platform. Here, the programming platform includes a service node, a work queue, and a computation node; A user code activation method of a programming platform includes: a service node obtaining a user code for representing a user terminal, and placing the user code as an activation task in a work queue; the computing node monitoring the work queue to obtain working work; calculating, by the computation node, an operation task to obtain a computation result; and obtaining, by the service node, a calculation result from the calculation node, and feeding back the calculation result to the user terminal.

Claims (28)

프로그래밍 플랫폼의 사용자 코드 작동 방법으로서,
상기 프로그래밍 플랫폼은, 서비스 노드, 작업 대기열, 계산 노드를 포함하고; 상기 방법은,
상기 서비스 노드가 사용자 단말을 나타내기 위한 사용자 코드를 획득하고, 상기 사용자 코드를 작동 작업으로서 상기 작업 대기열에 배치하는 단계;
상기 계산 노드가 상기 작업 대기열을 모니터링하여, 상기 작동 작업을 획득하는 단계;
상기 계산 노드가 상기 작동 작업을 계산하여, 계산 결과를 얻는 단계; 및
상기 서비스 노드가 상기 계산 노드로부터 상기 계산 결과를 획득하고, 상기 계산 결과를 상기 사용자 단말에 피드백하는 단계를 포함하는 것을 특징으로 하는 프로그래밍 플랫폼의 사용자 코드 작동 방법.
A method of operating user code in a programming platform, comprising:
The programming platform includes a service node, a work queue, and a computation node; The method is
obtaining, by the service node, a user code for indicating a user terminal, and placing the user code in the work queue as a working task;
monitoring, by the computation node, the work queue to obtain the working work;
calculating, by the computation node, the operation task to obtain a computation result; and
and the service node obtaining the calculation result from the calculation node, and feeding back the calculation result to the user terminal.
제1항에 있어서,
상기 계산 노드의 개수는 적어도 두 개이고; 상기 계산 노드가 상기 작업 대기열을 모니터링하여, 상기 작동 작업을 획득하는 단계는,
적어도 두 개의 상기 계산 노드가 상기 작업 대기열을 모니터링하여, 상기 작업 대기열에 상기 작동 작업을 획득하도록 요청하는 단계; 및
상기 작업 대기열이 하나의 상기 작동 작업을 상기 계산 노드에 분할하는 단계를 포함하는 것을 특징으로 하는 프로그래밍 플랫폼의 사용자 코드 작동 방법.
According to claim 1,
the number of computation nodes is at least two; The step of the computation node monitoring the work queue to obtain the working task comprises:
monitoring the work queue by at least two of the computation nodes, and requesting the work queue to acquire the working work; and
and the work queue partitioning one of the actuation tasks to the compute nodes.
제1항에 있어서,
상기 작업 대기열은 제1 작업 대기열 및 제2 작업 대기열을 포함하고, 적어도 두 개의 상기 계산 노드는 제1 계산 노드 및 제2 계산 노드를 포함하며;
상기 사용자 코드를 작동 작업으로서 작업 대기열에 배치하는 단계는,
상기 사용자 코드의 계산 특징에 따라, 상기 사용자 코드를 작동 작업으로서 제1 작업 대기열 또는 제2 작업 대기열에 배치하는 단계를 포함하고;
상기 계산 노드가 상기 작업 대기열을 모니터링하는 단계는,
상기 제1 계산 노드가 상기 제1 작업 대기열을 모니터링하고, 상기 제2 계산 노드가 상기 제2 작업 대기열을 모니터링하는 단계를 포함하는 것을 특징으로 하는 프로그래밍 플랫폼의 사용자 코드 작동 방법.
According to claim 1,
the work queue includes a first work queue and a second work queue, and at least two of the computation nodes include a first computation node and a second computation node;
Placing the user code into a work queue as an operational task comprises:
placing the user code in a first work queue or a second work queue as an operational task according to a computational characteristic of the user code;
The step of the computation node monitoring the work queue,
and wherein the first compute node monitors the first work queue and the second compute node monitors the second work queue.
제1항 또는 제2항에 있어서,
상기 서비스 노드의 개수는 적어도 두 개이고; 상기 서비스 노드가 사용자 단말을 나타내기 위한 사용자 코드를 획득하는 단계는,
적어도 두 개의 상기 서비스 노드는 역방향 프록시에 의해 상기 사용자 코드가 할당되는 단계를 포함하는 것을 특징으로 하는 프로그래밍 플랫폼의 사용자 코드 작동 방법.
3. The method of claim 1 or 2,
the number of service nodes is at least two; The service node obtaining a user code for indicating a user terminal comprises:
at least two of the service nodes are assigned the user code by a reverse proxy.
제1항 내지 제4항 중 어느 한 항에 있어서,
상기 계산 노드는 상기 작동 작업에 대한 계산을 완료한 후, 대응되는 계산 자원을 릴리즈하고 상기 작업 대기열을 계속 모니터링하는 것을 특징으로 하는 프로그래밍 플랫폼의 사용자 코드 작동 방법.
5. The method according to any one of claims 1 to 4,
and the computation node, after completing the computation of the working task, releases a corresponding computational resource and continues to monitor the task queue.
제1항 내지 제5항 중 어느 한 항에 있어서,
상기 프로그래밍 플랫폼은 메시지 대기열을 더 포함하고; 상기 서비스 노드가 상기 계산 노드로부터 상기 계산 결과를 획득하고, 상기 계산 결과를 상기 사용자 단말에 피드백하는 단계는,
상기 계산 노드가 상기 계산 결과를 상기 메시지 대기열에 배치하는 단계; 및
상기 서비스 노드가 상기 메시지 대기열을 모니터링하여, 상기 계산 결과를 획득하고, 상기 계산 결과를 상기 사용자 단말에 피드백하는 단계를 포함하는 것을 특징으로 하는 프로그래밍 플랫폼의 사용자 코드 작동 방법.
6. The method according to any one of claims 1 to 5,
the programming platform further comprises a message queue; obtaining, by the service node, the calculation result from the calculation node, and feeding back the calculation result to the user terminal,
placing, by the computation node, the computation result in the message queue; and
and the service node monitoring the message queue, obtaining the calculation result, and feeding back the calculation result to the user terminal.
제6항에 있어서,
상기 서비스 노드는 상기 계산 결과를 획득하기 전, 상기 사용자 단말과의 세션 연결을 유지하는 것을 특징으로 하는 프로그래밍 플랫폼의 사용자 코드 작동 방법.
7. The method of claim 6,
and the service node maintains a session connection with the user terminal before obtaining the calculation result.
프로그래밍 플랫폼의 사용자 코드 작동 방법으로서,
사용자 단말을 나타내기 위한 사용자 코드를 획득하는 단계;
상기 사용자 코드를 작동 작업으로서 작업 대기열에 배치하여, 계산 노드에 의해 상기 작업 대기열로부터 상기 작동 작업이 획득되고 계산되는 단계; 및
상기 계산 노드의 계산 결과를 획득하고, 상기 계산 결과를 상기 사용자 단말에 피드백하는 단계를 포함하는 것을 특징으로 하는 프로그래밍 플랫폼의 사용자 코드 작동 방법.
A method of operating user code in a programming platform, comprising:
obtaining a user code for indicating a user terminal;
placing the user code in a work queue as a working job, so that the working job is obtained and calculated from the work queue by a computation node; and
and obtaining a calculation result of the calculation node, and feeding back the calculation result to the user terminal.
제8항에 있어서,
상기 사용자 코드를 작동 작업으로서 작업 대기열에 배치하여, 계산 노드에 의해 상기 작업 대기열로부터 상기 작동 작업이 획득되고 계산되는 단계는,
상기 사용자 코드의 계산 특징에 따라, 상기 사용자 코드를 작동 작업으로서 제1 작업 대기열 또는 제2 작업 대기열에 배치하여, 제1 계산 노드에 의해 상기 제1 작업 대기열로부터 상기 작동 작업이 획득되고 계산되거나, 제2 계산 노드에 의해 상기 제2 작업 대기열로부터 상기 작동 작업이 획득되고 계산되는 단계를 포함하는 것을 특징으로 하는 프로그래밍 플랫폼의 사용자 코드 작동 방법.
9. The method of claim 8,
placing the user code in a work queue as a working task, whereby the working task is obtained and calculated from the work queue by a computation node,
according to the calculation feature of the user code, placing the user code as a working task in a first work queue or a second work queue, so that the working task is obtained and calculated from the first work queue by the first computation node; and obtaining and calculating the actuation task from the second work queue by a second computation node.
제8항 또는 제9항에 있어서,
상기 사용자 단말을 나타내기 위한 사용자 코드를 획득하는 단계는,
역방향 프록시를 통해 상기 사용자 코드를 할당하는 단계를 포함하는 것을 특징으로 하는 프로그래밍 플랫폼의 사용자 코드 작동 방법.
10. The method according to claim 8 or 9,
Obtaining a user code for indicating the user terminal comprises:
and assigning said user code via a reverse proxy.
제8항 내지 제10항 중 어느 한 항에 있어서,
상기 프로그래밍 플랫폼의 사용자 코드 작동 방법은, 상기 계산 결과를 획득하기 전, 상기 사용자 단말과의 세션 연결을 유지하는 단계를 포함하는 것을 특징으로 하는 프로그래밍 플랫폼의 사용자 코드 작동 방법.
11. The method according to any one of claims 8 to 10,
The method of operating user code of the programming platform, comprising maintaining a session connection with the user terminal before obtaining the calculation result.
프로그래밍 플랫폼의 사용자 코드 작동 방법으로서,
작업 대기열을 모니터링하여, 작동 작업을 획득하는 단계 - 상기 작업 대기열은 상기 작동 작업을 포함하고, 상기 작동 작업은 상기 사용자 코드에 대응됨 - ; 및
상기 작동 작업을 계산하여, 계산 결과를 얻는 단계를 포함하는 것을 특징으로 하는 프로그래밍 플랫폼의 사용자 코드 작동 방법.
A method of operating user code in a programming platform, comprising:
monitoring a work queue to obtain a working job, wherein the working queue includes the working job, the working job corresponding to the user code; and
and calculating the actuation task to obtain a calculation result.
제12항에 있어서,
상기 프로그래밍 플랫폼의 사용자 코드 작동 방법은, 상기 작동 작업에 대한 계산을 완료한 후, 대응되는 계산 자원을 릴리즈하고 상기 작업 대기열을 계속 모니터링하는 단계를 포함하는 것을 특징으로 하는 프로그래밍 플랫폼의 사용자 코드 작동 방법.
13. The method of claim 12,
The method of operating user code of the programming platform, comprising the steps of: after completing the calculation for the working task, releasing a corresponding computational resource and continuously monitoring the work queue; .
프로그래밍 플랫폼으로서,
상기 프로그래밍 플랫폼은 서비스 노드, 작업 대기열, 계산 노드를 포함하고;
상기 서비스 노드는 사용자 단말을 나타내기 위한 사용자 코드를 획득하고, 상기 사용자 코드를 작동 작업으로서 상기 작업 대기열에 배치하도록 구성되고;
상기 계산 노드는 상기 작업 대기열을 모니터링하여, 상기 작동 작업을 획득하도록 구성되며;
상기 계산 노드는 또한 상기 작동 작업을 계산하여, 계산 결과를 얻도록 구성되며;
상기 서비스 노드는 또한 상기 계산 노드로부터 상기 계산 결과를 획득하여, 상기 계산 결과를 상기 사용자 단말에 피드백하도록 구성된 것을 특징으로 하는 프로그래밍 플랫폼.
As a programming platform,
the programming platform includes a service node, a work queue, and a computation node;
the service node is configured to obtain a user code for indicating a user terminal, and place the user code as an operation task in the work queue;
the computing node is configured to monitor the work queue to obtain the working work;
the calculation node is also configured to calculate the operation task to obtain a calculation result;
The service node is further configured to obtain the calculation result from the calculation node, and feed back the calculation result to the user terminal.
제14항 또는 제15항에 있어서,
상기 계산 노드의 개수는 적어도 두 개이고; 상기 계산 노드가 상기 작업 대기열을 모니터링하여, 상기 작동 작업을 획득하도록 구성될 경우, 적어도 두 개의 상기 계산 노드는 상기 작업 대기열을 모니터링하고, 상기 작업 대기열에 상기 작동 작업을 획득하도록 요청하도록 구성되며; 상기 작업 대기열은 상기 작동 작업을 상기 계산 노드에 할당하도록 구성된 것을 특징으로 하는 프로그래밍 플랫폼.
16. The method of claim 14 or 15,
the number of computation nodes is at least two; when the computing node is configured to monitor the work queue and obtain the working job, at least two of the computing nodes are configured to monitor the work queue and request the work queue to acquire the working job; and the work queue is configured to assign the working work to the compute node.
제15항에 있어서,
상기 작업 대기열은 제1 작업 대기열 및 제2 작업 대기열을 포함하고, 적어도 두 개의 상기 계산 노드는 제1 계산 노드 및 제2 계산 노드를 포함하며;
상기 서비스 노드가 상기 사용자 코드를 작동 작업으로서 작업 대기열에 배치하도록 구성될 경우, 구체적으로, 상기 서비스 노드는 상기 사용자 코드의 계산 특징에 따라, 상기 사용자 코드를 작동 작업으로서 제1 작업 대기열 또는 제2 작업 대기열에 배치하도록 구성되며; 상기 계산 노드는 상기 작업 대기열을 모니터링하도록 구성되며, 구체적으로, 상기 제1 계산 노드는 상기 제1 작업 대기열을 모니터링하도록 구성되며, 상기 제2 계산 노드는 상기 제2 작업 대기열을 모니터링하도록 구성된 것을 특징으로 하는 프로그래밍 플랫폼.
16. The method of claim 15,
the work queue includes a first work queue and a second work queue, and at least two of the computation nodes include a first computation node and a second computation node;
When the service node is configured to place the user code as a working job in a work queue, specifically, the service node sets the user code as a working job to a first job queue or a second job queue, according to a calculation characteristic of the user code. configured for placement in a work queue; the compute node is configured to monitor the work queue, specifically, the first compute node is configured to monitor the first work queue, and the second compute node is configured to monitor the second work queue. programming platform with
제14항에 있어서,
상기 서비스 노드의 개수는 적어도 두 개이고; 상기 서비스 노드가 사용자 단말을 나타내기 위한 사용자 코드를 획득하도록 구성될 경우, 적어도 두 개의 상기 서비스 노드는 역방향 프록시에 의해 상기 사용자 코드가 할당되도록 구성된 것을 특징으로 하는 프로그래밍 플랫폼.
15. The method of claim 14,
the number of service nodes is at least two; and when the service node is configured to obtain a user code for representing a user terminal, at least two of the service nodes are configured to be assigned the user code by a reverse proxy.
제14항 내지 제17항 중 어느 한 항에 있어서,
상기 계산 노드는 상기 작동 작업의 계산을 완료한 후, 대응되는 계산 자원을 릴리즈하고 상기 작업 대기열을 계속 모니터링하도록 구성된 것을 특징으로 하는 프로그래밍 플랫폼.
18. The method according to any one of claims 14 to 17,
and the computation node is configured to, after completing the computation of the working task, release a corresponding computational resource and continue to monitor the task queue.
제14항 내지 제18항 중 어느 한 항에 있어서,
상기 프로그래밍 플랫폼은 메시지 대기열을 더 포함하고; 상기 서비스 노드가 상기 계산 노드로부터 상기 계산 결과를 획득하여, 상기 계산 결과를 상기 사용자 단말에 피드백하도록 구성될 경우, 상기 계산 노드는 상기 계산 결과를 상기 메시지 대기열에 배치하도록 구성되며; 상기 서비스 노드는 상기 메시지 대기열을 모니터링하여, 상기 계산 결과를 획득하며, 상기 계산 결과를 상기 사용자 단말에 피드백하도록 구성된 것을 특징으로 하는 프로그래밍 플랫폼.
19. The method according to any one of claims 14 to 18,
the programming platform further comprises a message queue; when the service node is configured to obtain the calculation result from the calculation node and feed back the calculation result to the user terminal, the calculation node is configured to place the calculation result in the message queue; and the service node is configured to monitor the message queue, obtain the calculation result, and feed back the calculation result to the user terminal.
제19항에 있어서,
상기 서비스 노드는 상기 계산 결과를 획득하기 전, 또한 상기 사용자 단말과의 세션 연결을 유지하도록 구성된 것을 특징으로 하는 프로그래밍 플랫폼.
20. The method of claim 19,
and the service node is configured to maintain a session connection with the user terminal before acquiring the calculation result.
서비스 노드로서,
수신 유닛, 배치 유닛 및 획득 유닛을 포함하고, 상기 수신 유닛은 사용자 단말을 나타내기 위한 사용자 코드를 획득하도록 구성되며; 상기 배치 유닛은 상기 사용자 코드를 작동 작업으로서 작업 대기열에 배치하여, 계산 노드에 의해 상기 작업 대기열로부터 상기 작동 작업이 획득되고 계산되도록 구성되며; 상기 획득 유닛은 상기 계산 노드의 계산 결과를 획득하고, 상기 계산 결과를 상기 사용자 단말에 피드백하도록 구성된 것을 특징으로 하는 프로그래밍 플랫폼.
As a service node,
a receiving unit, a disposing unit and an obtaining unit, wherein the receiving unit is configured to obtain a user code for indicating the user terminal; the placing unit is configured to place the user code as a working job in a work queue, so that the working job is obtained and calculated from the work queue by a computing node; and the acquiring unit is configured to acquire the calculation result of the calculation node, and feed back the calculation result to the user terminal.
제21항에 있어서,
상기 배치 유닛이 상기 사용자 코드를 작동 작업으로서 작업 대기열에 배치하여, 계산 노드에 의해 상기 작업 대기열로부터 상기 작동 작업이 획득되고 계산되도록 구성될 경우, 상기 배치 유닛은 또한 상기 사용자 코드의 계산 특징에 따라, 상기 사용자 코드를 작동 작업으로서 제1 작업 대기열 또는 제2 작업 대기열에 배치하여, 제1 계산 노드에 의해 상기 제1 작업 대기열로부터 상기 작동 작업이 획득되고 계산되거나, 제2 계산 노드에 의해 상기 제2 작업 대기열로부터 상기 작동 작업이 획득되고 계산되도록 구성된 것을 특징으로 하는 프로그래밍 플랫폼.
22. The method of claim 21,
when the placing unit is configured to place the user code as an operational task in a work queue, so that the operational task is obtained and calculated from the work queue by a computation node, the placing unit is also configured to: , placing the user code in a first work queue or a second work queue as an actuation task, so that the actuation task is obtained and calculated from the first work queue by a first computation node, or by a second computation node 2 The programming platform of claim 2, wherein the working job is obtained from a job queue and configured to be calculated.
제21항 또는 제22항에 있어서,
상기 수신 유닛이 사용자 단말을 나타내기 위한 사용자 코드를 획득하도록 구성될 경우, 상기 수신 유닛은 또한 역방향 프록시를 통해 상기 사용자 코드가 할당되도록 구성된 것을 특징으로 하는 프로그래밍 플랫폼.
23. The method of claim 21 or 22,
and when the receiving unit is configured to obtain a user code for indicating a user terminal, the receiving unit is also configured to assign the user code through a reverse proxy.
제21항 내지 제23항 중 어느 한 항에 있어서,
상기 획득 유닛이 상기 계산 결과를 획득하기 전, 상기 서비스 노드는 상기 사용자 단말과의 세션 연결을 유지하도록 구성된 것을 특징으로 하는 프로그래밍 플랫폼.
24. The method according to any one of claims 21 to 23,
before the acquiring unit acquires the calculation result, the service node is configured to maintain a session connection with the user terminal.
계산 노드로서,
모니터링 유닛 및 계산 유닛을 포함하고, 상기 모니터링 유닛은 작업 대기열을 모니터링하여, 작동 작업을 획득하도록 구성되고; 상기 작업 대기열은 상기 작동 작업을 포함하고, 상기 작동 작업은 상기 사용자 코드에 대응되며; 상기 계산 유닛은 상기 작동 작업을 계산하여, 계산 결과를 얻도록 구성된 것을 특징으로 하는 계산 노드.
As a compute node,
a monitoring unit and a calculation unit, wherein the monitoring unit is configured to monitor the work queue to obtain an operation task; the job queue includes the working job, the working job corresponding to the user code; and the calculation unit is configured to calculate the operation task to obtain a calculation result.
제25항에 있어서,
상기 계산 유닛은 상기 작동 작업의 계산을 완료한 후, 또한 대응되는 계산 자원을 릴리즈하고 상기 작업 대기열을 계속 모니터링하도록 구성된 것을 특징으로 하는 프로그래밍 플랫폼.
26. The method of claim 25,
and the computing unit is configured to, after completing the calculation of the working task, also release a corresponding computational resource and continue to monitor the task queue.
전자 기기로서,
서로 커플링된 메모리 및 프로세서를 포함하고;
상기 프로세서는 상기 메모리에 저장된 프로그램 명령어를 실행하여, 제1항 내지 제7항 중 어느 한 항에 따른 프로그래밍 플랫폼의 사용자 코드 작동 방법; 제8항 내지 제11항 중 어느 한 항에 따른 프로그래밍 플랫폼의 사용자 코드 작동 방법; 및 제12항 또는 제13항에 따른 프로그래밍 플랫폼의 사용자 코드 작동 방법 중 어느 하나를 구현하기 위한 것임을 특징으로 하는 전자 기기.
As an electronic device,
a memory and a processor coupled to each other;
The processor executes the program instructions stored in the memory, the method of operating a user code of the programming platform according to any one of claims 1 to 7; 12. A method of operating user code of a programming platform according to any one of claims 8 to 11; and an electronic device for implementing any one of a method of operating a user code of a programming platform according to claim 12 or claim 13 .
컴퓨터 판독 가능한 저장 매체로서,
작동되어 제1항 내지 제7항 중 어느 한 항에 따른 프로그래밍 플랫폼의 사용자 코드 작동 방법; 제8항 내지 제11항 중 어느 한 항에 따른 프로그래밍 플랫폼의 사용자 코드 작동 방법; 및 제12항 또는 제13항에 따른 프로그래밍 플랫폼의 사용자 코드 작동 방법 중 어느 하나를 구현 가능한 컴퓨터 프로그램을 저장하는 것을 특징으로 하는 컴퓨터 판독 가능한 저장 매체.
A computer-readable storage medium comprising:
a method for operating a user code of a programming platform according to claim 1 ; 12. A method of operating user code of a programming platform according to any one of claims 8 to 11; and a computer program capable of implementing any one of the method of operating a user code of a programming platform according to claim 12 or 13, wherein the computer program is stored.
KR1020217021414A 2020-02-14 2020-12-08 How the programming platform's user code works and the platform, node, device, medium KR20210105378A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202010093681.6A CN111427551A (en) 2020-02-14 2020-02-14 User code operation method of programming platform, equipment and storage medium
CN202010093681.6 2020-02-14
PCT/CN2020/134531 WO2021159831A1 (en) 2020-02-14 2020-12-08 Programming platform user code running method, platform, node, device and medium

Publications (1)

Publication Number Publication Date
KR20210105378A true KR20210105378A (en) 2021-08-26

Family

ID=71547088

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217021414A KR20210105378A (en) 2020-02-14 2020-12-08 How the programming platform's user code works and the platform, node, device, medium

Country Status (6)

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

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111427551A (en) * 2020-02-14 2020-07-17 深圳市商汤科技有限公司 User code operation method of programming platform, equipment and storage medium
CN113157420A (en) * 2021-04-27 2021-07-23 上海临视人工智能科技有限公司 Cross-platform distributed task scheduling system and scheduling method
CN113905083A (en) * 2021-10-15 2022-01-07 上海商汤临港智能科技有限公司 User code operation method and device, electronic equipment and storage medium
CN115460194A (en) * 2022-08-20 2022-12-09 杭州沧浪健康管理有限公司 Applet construction uploading method and device, computer equipment and storage medium
CN116560658B (en) * 2023-06-29 2024-02-06 睿思芯科(深圳)技术有限公司 Cloud technology-based chip integrated development system

Family Cites Families (16)

* 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
CN100547973C (en) * 2007-05-23 2009-10-07 华中科技大学 A kind of high performance computing system based on peer-to-peer network
JP2009258803A (en) * 2008-04-11 2009-11-05 Hitachi Ltd Interactive processing system and interactive processing method
US9778961B2 (en) * 2015-09-14 2017-10-03 Qualcomm Incorporated Efficient scheduling of multi-versioned tasks
US10581923B2 (en) * 2016-09-07 2020-03-03 Cloud Of Things Ltd System and method for configuration of a connected device connection
WO2018108035A1 (en) * 2016-12-13 2018-06-21 腾讯科技(深圳)有限公司 Information processing and virtual resource exchange method, apparatus, and device
CN106874109A (en) * 2016-12-29 2017-06-20 朗新科技股份有限公司 A kind of distributed job distribution processing method and system
CN106874067B (en) * 2017-01-24 2020-10-02 华南理工大学 Parallel computing method, device and system based on lightweight virtual machine
CN108228349A (en) * 2017-12-26 2018-06-29 北京市商汤科技开发有限公司 For handling the method for task, system and storage medium
CN108182111B (en) * 2018-01-23 2022-07-15 百度在线网络技术(北京)有限公司 Task scheduling system, method and device
US11017107B2 (en) * 2018-03-06 2021-05-25 Amazon Technologies, Inc. Pre-deployment security analyzer service for virtual computing resources
CN109246151B (en) * 2018-11-05 2021-03-30 国家电网有限公司 Intelligent video inspection analysis scheduling method for power transmission line
CN110032364B (en) * 2019-04-11 2023-08-15 上海商汤智能科技有限公司 Data processing method, device, electronic equipment and computer storage medium
CN110275778B (en) * 2019-06-14 2021-07-27 上海商汤智能科技有限公司 Online program running method and device, electronic equipment and computer storage medium
CN110516738B (en) * 2019-08-23 2022-09-16 佳都科技集团股份有限公司 Distributed comparison clustering method and device, electronic equipment and storage medium
CN111427551A (en) * 2020-02-14 2020-07-17 深圳市商汤科技有限公司 User code operation method of programming platform, equipment and storage medium

Also Published As

Publication number Publication date
TWI786527B (en) 2022-12-11
SG11202108352TA (en) 2021-09-29
TW202131171A (en) 2021-08-16
WO2021159831A1 (en) 2021-08-19
JP2022522609A (en) 2022-04-20
CN111427551A (en) 2020-07-17

Similar Documents

Publication Publication Date Title
KR20210105378A (en) How the programming platform's user code works and the platform, node, device, medium
CN107818112B (en) Big data analysis operating system and task submitting method
KR101939075B1 (en) eng
EP1492001A2 (en) Software image creation in a distributed build environment
CN110083455B (en) Graph calculation processing method, graph calculation processing device, graph calculation processing medium and electronic equipment
CN107423823B (en) R language-based machine learning modeling platform architecture design method
CN110597626A (en) Method, device and system for allocating resources and tasks in distributed system
KR20160087706A (en) Apparatus and method for resource allocation of a distributed data processing system considering virtualization platform
US10664278B2 (en) Method and apparatus for hardware acceleration in heterogeneous distributed computing
CN103810015A (en) Virtual machine establishing method and equipment
KR20190028210A (en) Cloud service method and system for deployment of artificial intelligence application using container
KR20220058850A (en) Job processing methods, devices, instruments, systems and storage media
CN115543615A (en) Resource allocation method and device, electronic equipment and storage medium
Georgiou et al. Topology-aware job mapping
CN110532060A (en) A kind of hybrid network environmental data collecting method and system
CN114579250B (en) Method, device and storage medium for constructing virtual cluster
CN111506414A (en) Resource scheduling method, device, equipment, system and readable storage medium
Tsoi et al. Programming framework for clusters with heterogeneous accelerators
CN110290206B (en) Distributed computing system and method for internet bar environment
Lebesbye et al. Boreas–a service scheduler for optimal kubernetes deployment
KR101695238B1 (en) System and method for job scheduling using multi computing resource
Gupta et al. A multi-level scalable startup for parallel applications
US9537931B2 (en) Dynamic object oriented remote instantiation
CN107454137B (en) Method, device and equipment for on-line business on-demand service
CN104735134A (en) Method and device for providing computing service

Legal Events

Date Code Title Description
A201 Request for examination