KR102499076B1 - 그래프 데이터 기반의 태스크 스케줄링 방법, 디바이스, 저장 매체 및 장치 - Google Patents
그래프 데이터 기반의 태스크 스케줄링 방법, 디바이스, 저장 매체 및 장치 Download PDFInfo
- Publication number
- KR102499076B1 KR102499076B1 KR1020207032964A KR20207032964A KR102499076B1 KR 102499076 B1 KR102499076 B1 KR 102499076B1 KR 1020207032964 A KR1020207032964 A KR 1020207032964A KR 20207032964 A KR20207032964 A KR 20207032964A KR 102499076 B1 KR102499076 B1 KR 102499076B1
- Authority
- KR
- South Korea
- Prior art keywords
- quantized value
- data
- graph
- computing
- node
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5038—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5022—Workload threshold
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Advance Control (AREA)
Abstract
본 출원은 그래프 데이터 기반의 태스크 스케줄링 방법, 디바이스, 저장 매체 및 장치에 관한 것이다. 이 방법은: 처리대상 그래프 데이터를 분할함으로써 획득되는 서브그래프 데이터를 취득하는 단계; 서브그래프 데이터 내의 그래프 노드에 대해 단위 컴퓨팅 태스크를 수행하는 단계; 완료된 단위 컴퓨팅 태스크에 대응하는 데이터가 블록체인 데이터로 형성될 때 완료된 단위 컴퓨팅 태스크에 대응하는 양자화 값인 제1 양자화 값을 취득하는 단계; 완료된 단위 컴퓨팅 태스크에 대응하는 데이터가 블록체인 데이터로 형성되지 않을 때, 완료된 단위 컴퓨팅 태스크에 대응하는 양자화 값인 제2 양자화 값을 취득하는 단계; 서브그래프 데이터 내의 미완료 단위 컴퓨팅 태스크에 대응하는 제3 양자화 값을 결정하는 단계; 및 제2 양자화 값 및 제3 양자화 값이 평형 조건을 충족하지 않을 때, 그래프 노드 및 제1 양자화 값을 다른 컴퓨팅 노드와 교환하는 단계를 포함한다. 본 출원에서 제공되는 솔루션은 태스크 스케줄링의 효율을 향상시킬 수 있다.
Description
본 출원은, 그 전체 내용을 참조에 의해 본 명세서에 포함시키는, 발명의 명칭이 "GRAPH DATA-BASED TASK SCHEDULING METHOD AND APPARATUS"인 2018년 5월 16일 출원된 중국 특허 출원 번호 201810466739.X호에 대한 우선권을 주장한다.
본 출원은 그래프 컴퓨팅 기술 분야에 관한 것으로, 특히 그래프 데이터 기반의 태스크 스케줄링 방법 및 장치, 저장 매체, 및 디바이스에 관한 것이다.
컴퓨터 기술의 발달에 따라, "그래프 이론"에 기초한 그래프 구조와 이 데이터 구조에 기초한 컴퓨팅 모드, 즉, 그래프 컴퓨팅을 이용하여 현실 세계를 추상적으로 표현하고 있다. 한 응용에서, 그래프 데이터는 소셜 네트워크, 상품 구매 관계, 도로 교통 네트워크, 통신 네트워크 등의 정보를 나타내는데 이용될 수 있고, 그래프 데이터 기반의 컴퓨팅에 대한 수요는 양과 복잡성에서 성장하고 있다.
종래의 그래프 데이터 기반의 컴퓨팅은 대개 분산형 컴퓨팅 아키텍처에 의존하며, 현재의 주류 그래프 데이터 기반의 태스크 스케줄링 방법은 중앙집중형 스케줄링 방법이다. 예를 들어, 스케줄링 큐 및 스케줄링 자원 푸울에 기초한 MapReduce(맵 축소 프로그래밍 모델) 클러스터 스케줄링 알고리즘의 경우, 통합된 방식으로 컴퓨팅 태스크를 스케줄링하고 제어하기 위해 대개 파라미터 서버가 이용된다.
그러나, 컴퓨팅 태스크를 통합된 방식으로 스케줄링하고 제어하기 위해 파라미터 서버가 이용될 때, 컴퓨팅 태스크 처리의 효율은 파라미터 서버의 설정 및 성능에 의존한다. 데이터 볼륨이 너무 크거나, 파라미터 서버의 내결함성이 보장될 수 없게 되면, 그래프 데이터의 처리 효율이 보장될 수 없고 모든 진행중인 컴퓨팅 태스크에서, 에러가 보고될 것이다. 특히, 큰 데이터 볼륨을 갖는 컴퓨팅 태스크를 처리할 때, 종래의 중앙 집중형 태스크 스케줄링 방법에서는 컴퓨팅 태스크 스케줄링의 효율성이 낮다는 문제점이 있다.
이에 기초하여, 종래의 중앙 집중화-기반의 컴퓨팅 태스크 스케줄링 방법에 존재하던 컴퓨팅 태스크 스케줄링의 낮은 효율성의 기술적 문제를 해결하기 위해, 그래프 데이터 기반의 태스크 스케줄링 방법 및 장치, 저장 매체, 및 디바이스를 제공할 필요가 있다.
한 양태에 따르면, 컴퓨팅 노드에 적용되는 그래프 데이터 기반의 태스크 스케줄링 방법이 제공되며, 이 방법은 다음과 같은 단계를 포함한다:
처리대상 그래프 데이터로부터 분할된 서브그래프 데이터를 획득하는 단계;
서브그래프 데이터 내의 그래프 노드에 대한 단위 컴퓨팅 태스크를 수행하는 단계;
제1 양자화된 값을 획득하는 단계 - 제1 양자화된 값은 완료된 단위 컴퓨팅 태스크에 대응하는 데이터가 블록체인 데이터로 형성되는 경우 완료된 단위 컴퓨팅 태스크에 대응하는 양자화된 값임 -;
제2 양자화된 값을 획득하는 단계 - 제2 양자화된 값은 완료된 단위 컴퓨팅 태스크에 대응하는 데이터가 블록체인 데이터로 형성되지 않은 경우 완료된 단위 컴퓨팅 태스크에 대응하는 양자화된 값임 -;
서브그래프 데이터 내의 미완료 단위 컴퓨팅 태스크에 대응하는 제3 양자화된 값을 결정하는 단계; 및
제2 양자화된 값 및 제3 양자화된 값이 평형 조건을 충족하지 못하는 경우 그래프 노드 및 제1 양자화된 값을 또 다른 컴퓨팅 노드와 교환하는 단계.
한 양태에 따르면, 그래프 데이터 기반의 태스크 스케줄링 장치가 제공되며, 이 장치는 하기 모듈들을 포함한다:
처리대상 그래프 데이터로부터 분할된 서브그래프 데이터를 획득하도록 구성된 획득 모듈;
획득 모듈에 의해 획득된 서브그래프 데이터 내의 그래프 노드에 대한 단위 컴퓨팅 태스크를 수행하도록 구성된 실행 모듈,
획득 모듈은 제1 양자화된 값을 획득하도록 추가로 구성되고, 제1 양자화된 값은, 완료된 단위 컴퓨팅 태스크에 대응하는 데이터가 블록체인 데이터로 형성되는 경우 완료된 단위 컴퓨팅 태스크에 대응하는 양자화된 값이다;
획득 모듈은 제2 양자화된 값을 획득하도록 추가로 구성되고, 제2 양자화된 값은, 완료된 단위 컴퓨팅 태스크에 대응하는 데이터가 블록체인 데이터로 형성되지 않은 경우 완료된 단위 컴퓨팅 태스크에 대응하는 양자화된 값이다;
서브그래프 데이터 내의 미완료 단위 컴퓨팅 태스크에 대응하는 제3 양자화된 값을 결정하도록 구성된 결정 모듈; 및
획득 모듈에 의해 획득된 제2 양자화된 값 및 결정 모듈에 의해 획득된 제3 양자화된 값이 평형 조건을 충족하지 못한 경우 그래프 노드 및 제1 양자화된 값을 또 다른 컴퓨팅 노드와 교환하도록 구성된 교환 모듈.
한 양태에 따르면, 컴퓨터 판독가능한 저장 매체가 제공된다. 저장 매체는, 적어도 하나의 명령어, 적어도 하나의 프로그램, 코드 세트, 또는 명령어 세트를 저장하고, 적어도 하나의 명령어, 적어도 하나의 프로그램, 코드 세트 또는 명령어 세트는, 프로세서에 의해 로딩되고 실행되어 그래프 데이터 기반의 태스크 스케줄링 방법을 구현한다.
한 양태에 따르면, 메모리 및 프로세서를 포함하는 컴퓨터 디바이스가 제공되고, 메모리는 컴퓨터 프로그램을 저장하며, 컴퓨터 프로그램은, 프로세서에 의해 실행될 때, 프로세서로 하여금 그래프 데이터 기반의 태스크 스케줄링 방법을 수행하게 한다.
처리대상 그래프 데이터는 복수의 서브그래프 데이터로 분할되고, 복수의 서브그래프 데이터에 관해 분산형 처리가 수행됨으로써, 그래프 데이터 처리 효율을 크게 향상시킨다. 제1 양자화된 값, 제2 양자화된 값, 제3 양자화된 값이 별개로 획득되고, 제2 양자화된 값 및 제3 양자화된 값이 평형 조건을 충족하지 못할 때, 컴퓨팅 노드와 또 다른 컴퓨팅 노드 사이에서 그래프 노드 및 제1 양자화된 값이 교환된다. 제1 양자화된 값 및 제2 양자화된 값은 컴퓨팅 노드의 컴퓨팅 용량을 측정할 수 있고, 제3 양자화된 값은 컴퓨팅 노드의 부하 상태를 측정할 수 있다. 이러한 방식으로, 단위 컴퓨팅 태스크에 대응하는 양자화된 값을 이용함으로써 컴퓨팅 노드의 컴퓨팅 용량 및 부하 상태가 정량적으로 표시될 수 있고, 이것은 정확하고 직관적이다. 그래프 노드 및 제1 양자화된 값이 컴퓨팅 노드와 또 다른 컴퓨팅 노드 사이에서 교환되어, 제2 양자화된 값 및 제3 양자화된 값이 평형 조건을 충족하도록 유지한다. 이러한 방식으로, 태스크 할당을 위해 특정한 서버 또는 노드에 의존하는 것 대신에, 컴퓨팅 노드들은 서로 협력하여 그래프 노드를 할당하고 할당을 동적으로 조정하여, 자체-조직화된 부하 밸런싱(self-organized load balancing)을 구현하고 단일 지점 장애 및 특정한 서버의 네트워크 정체의 문제를 회피함으로써, 태스크 스케줄링 효율을 크게 향상시킨다. 또한, 이러한 자체-조직화된 동적 태스크 스케줄링 방법은 대규모 클러스터의 컴퓨팅 태스크 스케줄링에 맞게 적합화될 수 있으며, 컴퓨팅 노드 수량의 동적 증가 또는 감소는 기존 컴퓨팅 태스크에 영향을 미치지 않으므로 높은 확장성이 달성될 수 있다.
본 출원의 실시예의 기술적 솔루션을 더욱 명확하게 설명하기 위해, 이하에서는 실시예를 설명하는데 요구되는 첨부된 도면들을 간략하게 소개한다. 명백히, 이하의 설명에서의 첨부된 도면들은 본 출원의 일부 실시예만을 도시할 뿐이며, 본 기술분야의 통상의 기술자라면 창조적 노력없이 첨부된 도면들로부터 다른 도면들을 여전히 유도해 낼 수 있을 것이다.
도 1은 한 실시예에서 그래프 데이터 기반의 태스크 스케줄링 방법의 응용 환경의 다이어그램이다.
도 2는 한 실시예에서의 그래프 데이터 기반의 태스크 스케줄링 방법의 개략적인 플로차트이다.
도 3은 한 실시예에서 서브그래프 데이터의 개략도이다.
도 4는 한 실시예에서 대응하는 블록체인 데이터를 형성하는 완료된 단위 컴퓨팅 태스크에 대응하는 제1 양자화된 값을 획득하는 단계의 개략적인 플로차트이다.
도 5는 한 실시예에서 서브그래프 데이터 내의 미완료 단위 컴퓨팅 태스크에 대응하는 제3 양자화된 값을 결정하는 단계의 개략적인 플로차트이다.
도 6은 한 실시예에서 제2 양자화된 값 및 제3 양자화된 값이 평형 조건을 충족하는지를 결정하는 단계의 개략적인 플로차트이다.
도 7은 한 실시예에서 컴퓨팅 노드들 사이에서 그래프 노드 및 제1 양자화된 값을 교환하는 단계의 개략적인 플로차트이다.
도 8은 또 다른 실시예에서 그래프 데이터 기반의 태스크 스케줄링 방법의 개략적인 플로차트이다.
도 9는 한 실시예에서 그래프 데이터 기반의 태스크 스케줄링 장치의 구조적 블록도이다.
도 10은 또 다른 실시예에서 그래프 데이터 기반의 태스크 스케줄링 장치의 구조적 블록도이다.
도 11은 한 실시예에서 컴퓨터 디바이스의 구조적 블록도이다.
도 1은 한 실시예에서 그래프 데이터 기반의 태스크 스케줄링 방법의 응용 환경의 다이어그램이다.
도 2는 한 실시예에서의 그래프 데이터 기반의 태스크 스케줄링 방법의 개략적인 플로차트이다.
도 3은 한 실시예에서 서브그래프 데이터의 개략도이다.
도 4는 한 실시예에서 대응하는 블록체인 데이터를 형성하는 완료된 단위 컴퓨팅 태스크에 대응하는 제1 양자화된 값을 획득하는 단계의 개략적인 플로차트이다.
도 5는 한 실시예에서 서브그래프 데이터 내의 미완료 단위 컴퓨팅 태스크에 대응하는 제3 양자화된 값을 결정하는 단계의 개략적인 플로차트이다.
도 6은 한 실시예에서 제2 양자화된 값 및 제3 양자화된 값이 평형 조건을 충족하는지를 결정하는 단계의 개략적인 플로차트이다.
도 7은 한 실시예에서 컴퓨팅 노드들 사이에서 그래프 노드 및 제1 양자화된 값을 교환하는 단계의 개략적인 플로차트이다.
도 8은 또 다른 실시예에서 그래프 데이터 기반의 태스크 스케줄링 방법의 개략적인 플로차트이다.
도 9는 한 실시예에서 그래프 데이터 기반의 태스크 스케줄링 장치의 구조적 블록도이다.
도 10은 또 다른 실시예에서 그래프 데이터 기반의 태스크 스케줄링 장치의 구조적 블록도이다.
도 11은 한 실시예에서 컴퓨터 디바이스의 구조적 블록도이다.
본 출원의 목적, 기술적 솔루션 및 이점을 더욱 명확하게 하기 위해, 이하에서는 첨부된 도면을 참조하여 본 출원의 구현을 상세히 설명한다.
도 1은 한 실시예에서 그래프 데이터 기반의 태스크 스케줄링 방법의 응용 환경의 다이어그램이다. 도 1을 참조하면, 그래프 데이터 기반의 태스크 스케줄링 방법은 분산형 그래프 컴퓨팅 시스템에 적용된다. 분산형 그래프 컴퓨팅 시스템은, 제어 노드(110), 컴퓨팅 노드(120) 및 데이터 창고(130)를 포함한다. 제어 노드(110)는 블록체인 네트워크를 통해 컴퓨팅 노드(120)와 접속되고, 제어 노드(110)와 컴퓨팅 노드(120)는 네트워크를 통해 데이터 창고(130)에 별개로 접속된다. 제어 노드(110)는 단말기에 의해 구현될 수 있고, 단말기는 데스크탑 단말기 또는 모바일 단말기일 수 있으며, 모바일 단말기는, 예를 들어, 모바일 전화, 태블릿 컴퓨터, 또는 노트북 컴퓨터일 수 있다. 제어 노드(110)는, 스케줄링 코어가 아니라, 실행 상태를 관찰하고 수정하도록 구성된 단말기로서 이해될 수 있다. 컴퓨팅 노드(120)는 하나 이상의 서버에 배치된 프로그램을 이용함으로써 구현될 수 있다. 예를 들어, 도 1에 도시된 컴퓨팅 노드 a, b, c 등은 각각 고성능 컴퓨터 1 내지 고성능 컴퓨터 N에 분산된다. 동일한 네트워크에 분산된 상이한 고성능 컴퓨터들은 상이한 성능으로 인해 상이한 수량의 컴퓨팅 노드를 점유한다. 모든 제어 노드(110) 및 컴퓨팅 노드(120)는 데이터 창고(130)에 직접 액세스하여, 예를 들어, 실행가능한 파일 및 컴퓨팅 태스크의 알고리즘 입력을 판독하고, 컴퓨팅 결과를 명시된 위치에 저장할 수 있다. 데이터 창고(130)는 중앙집중형 저장 디바이스이거나, 분산형 저장 클러스터 또는 디바이스일 수 있다. 한 실시예에서, 분산형 그래프 컴퓨팅 시스템은 복수의 컴퓨팅 노드를 포함하고, 그래프 데이터 기반의 태스크 스케줄링 방법은 임의의 컴퓨팅 노드에 적용될 수 있다.
도 2에 도시된 바와 같이, 한 실시예에서, 그래프 데이터 기반의 태스크 스케줄링 방법이 제공된다. 이 실시예에서, 주로 이 방법이 도 1의 컴퓨팅 노드(120)에 적용되는 예를 이용하여 설명이 이루어진다. 도 2를 참조하면, 그래프 컴퓨팅 기반의 태스크 스케줄링 방법은 다음과 같은 단계를 포함한다.
단계 202. 처리대상 그래프 데이터로부터 분할된 서브그래프 데이터를 획득한다.
그래프 데이터는, 그래프 이론을 적용하여 저장된 엔티티들 사이의 관계 정보와 그래프 구조를 이용하여 조직된 구조화된 데이터이다. 일반적으로, 그래프 데이터는 그래프 노드와 그래프 노드들 사이의 에지에 의해 형성된다. 그래프 노드는 그래프 데이터의 꼭지점(vertex)이며 그래프 데이터에서 대상을 나타내는데 이용할 수 있다. 예를 들어, 소셜 네트워크에서 개인들 사이의 정보를 저장하기 위해 그래프 데이터가 이용될 때, 그래프 데이터 내의 상이한 그래프 노드는 상이한 개인을 나타내는데 이용될 수 있다. 대안으로서, 상품 구매 관계를 나타내기 위해 그래프 데이터가 이용될 때, 각각의 사용자와 각각의 상품은 그래프 노드이다. 그래프 노드는, 그래프 노드의 노드 식별자 및 노드 속성 등의 정보를 포함할 수 있다. 그래프 노드들 사이의 에지는 그래프 데이터에서 에지며 그래프 데이터에서 상이한 대상들 사이의 관계를 나타내는데 이용될 수 있다. 예를 들어, 그래프 데이터가 소셜 네트워크에서 개인들 사이의 정보를 저장하는데 이용될 때, 그래프 데이터에서 상이한 그래프 노드는 상이한 개인을 나타내는데 이용되고, 그래프 데이터에서 에지는 개인들 사이의 관계, 예를 들어 친구 관계를 나타내는데 이용될 수 있다. 상품 구매 관계를 나타내기 위해 그래프 데이터가 이용될 때, 각각의 사용자와 각각의 상품은 그래프 노드이고, 상품을 구매하는 사용자는 에지에 의해 표현된다.
처리대상 그래프 데이터는 컴퓨팅 노드에 의해 처리될 그래프 데이터이다.
서브그래프 데이터는 처리대상 그래프 데이터로부터 분할된 부분적 그래프 데이터이다. 임의로, 큰 그래프는 특정한 수량의 서브그래프로 분할되어, 서브그래프 내부의 에지들을 가능한 한 밀집되게(dense) 만들고 서브그래프들 사이의 에지를 가능한 한 저밀도화(sparse)한다. 도 3은 그래프를 5개의 서브그래프로 분할하는 개략도를 도시한다.
한 실시예에서, 그래프의 크기가 비교적 작을 때, 그래프는 N-cut 알고리즘을 통해 서브그래프들로 분할될 수 있다. 그래프의 크기가 비교적 클 때, 그래프는 근사화 알고리즘을 통해 서브그래프들로 분할될 수 있다. 또한, 서브그래프들로의 분할 동안, 위의 분할 요건 외에도, 부하 밸런스도 역시 고려될 필요가 있다. 따라서, 추가 조건, 즉, 분할을 통해 형성된 서브그래프의 크기가 컴퓨팅 노드의 능력과 정합하는 것이 더 요구된다.
한 실시예에서, 각각의 컴퓨팅 노드는 하나 이상의 서버에 배치된 프로그램일 수 있고, 컴퓨팅 노드는, 매체, 즉, 블록체인을 통해 가상 네트워크 구조를 형성할 수 있다. 컴퓨팅 노드는, 데이터, 태스크 실행 로그 또는 컴퓨팅 노드 상태 등의 정보를 새로운 블록에 기입하고, 그 새로운 블록을 블록체인 네트워크에 추가하여, 컴퓨팅 노드들 사이의 통신 조율을 편리하게 수행하고 서브그래프 데이터에 대응하는 컴퓨팅 태스크를 완료함으로써, 처리대상 그래프 데이터에 대응하는 컴퓨팅 태스크를 완료할 수 있다. 블록체인 네트워크는 블록체인 기술을 실행하기 위한 캐리어이자 조직 모드이며, 컴퓨팅 노드의 외부 통신 모듈에 의해 형성된 비중앙집중식의 분산형 데이터베이스이다.
한 실시예에서, 분산형 그래프 컴퓨팅 시스템은 제어 노드를 포함하고, 제어 노드는 분산형 그래프 컴퓨팅 시스템 내의 하나 이상의 컴퓨팅 노드와 통신하여 블록체인 네트워크에 액세스할 수 있다. 제어 노드는 그래프 데이터에 대응하는 태스크 정보를 새로운 블록에 기록하고, 새로운 블록을 블록체인 네트워크에 추가하고, 태스크 정보를 블록체인 네트워크에 브로드캐스트할 수 있다. 이러한 방식으로, 블록체인 네트워크 내의 모든 컴퓨팅 노드는 브로드캐스트 태스크 정보를 수신할 수 있다. 태스크 정보는 컴퓨팅 태스크와 관련된 정보이다.
한 실시예에서, 컴퓨팅 노드는, 타이머, 타이밍 프로그램 등을 이용함으로써, 블록체인 네트워크에 최근에 추가된 새로운 블록에 기록된 태스크 정보를 규칙적으로 체크할 수 있다. 새로운 블록이 태스크 정보를 포함한다는 것을 검출한 후, 컴퓨팅 노드는 그 자신의 부하 상태를 결정한다. 부하 상태가 컴퓨팅 노드가 과부하되지 않았음을 나타낼 때, 컴퓨팅 노드는 블록체인 네트워크로부터 태스크 정보를 로딩할 수 있다.
한 실시예에서, 태스크 정보는, 태스크-실행가능한 파일의 획득 경로, 컴퓨팅 태스크를 수행하기 위한 알고리즘 파라미터, 서브그래프 데이터의 획득 경로, 컴퓨팅 결과의 출력 경로, 예상된 완료 시간 등을 포함할 수 있다. 블록체인 네트워크로부터 태스크 정보를 로딩한 후, 컴퓨팅 노드는 그래프 데이터에 대응하는 그래프 구조의 서브그래프 구조를 획득하고 획득된 서브그래프 구조에 따라 데이터 창고로부터 대응하는 서브그래프 데이터를 획득할 수 있다.
한 실시예에서, 블록체인 네트워크로부터 태스크 정보를 로딩한 후, 컴퓨팅 노드는 자신의 부하 상태에 따라 그래프 데이터에 대응하는 그래프 구조로부터 특정한 수량의 그래프 노드 및 대응하는 에지를 무작위로 획득하여 서브그래프 구조를 형성할 수 있다. 컴퓨팅 노드는 추가로, 태스크 정보에 기록된 서브그래프 데이터의 획득 경로에 따라 데이터 창고로부터 서브그래프 구조에 대응하는 서브그래프 데이터를 획득한다.
한 실시예에서, 분산형 그래프 컴퓨팅 시스템은 현재의 컴퓨팅 노드의 수량에 기초하여 미리설정된 조건에 따라 그래프 데이터를 대응하는 수량의 서브그래프 데이터로 분할할 수 있다. 미리설정된 조건은, 동등한 분할, 랜덤 분할 등일 수 있고, 이 실시예에서 제한되지 않는다.
단계 204. 서브그래프 데이터 내의 그래프 노드에 대한 단위 컴퓨팅 태스크를 수행한다.
단위 컴퓨팅 태스크는 분산형 그래프 컴퓨팅 시스템에서 최소 컴퓨팅 할당 단위로서, 예를 들어 현재의 반복적 컴퓨팅 프로세스에서 특정한 그래프 노드에 대응하는 컴퓨팅 태스크이다. 이 실시예에서, 그래프 데이터로부터 분할된 서브그래프 데이터를 획득한 후, 컴퓨팅 노드는 획득된 서브그래프 데이터 내의 그래프 노드에 관해 대응하는 컴퓨팅을 수행할 수 있다.
한 실시예에서, 태스크 정보를 로딩한 후, 컴퓨팅 노드는 태스크 정보에 기록된 태스크-실행가능한 파일의 획득 경로 및 컴퓨팅 태스크를 수행하기 위한 알고리즘 파라미터 등의 정보에 따라, 데이터 창고로부터 컴퓨팅 태스크를 수행하기 위한 태스크-실행가능한 파일 및 알고리즘 파라미터를 인출한다. 또한, 서브그래프 데이터를 획득한 후, 컴퓨팅 노드는 컴퓨팅 태스크를 수행하기 위한 알고리즘 파라미터에 따라 인출된 태스크-실행가능한 파일을 수행하여 서브그래프 데이터 내의 그래프 노드에 대한 단위 컴퓨팅 태스크를 수행한다.
한 실시예에서, 그래프 데이터에 관해 수행되는 컴퓨팅은 반복적 컴퓨팅이다. 알고리즘이 반복적으로 업데이트됨에 따라, 각각의 반복적 동안에 새로운 컴퓨팅 태스크가 생성된다. 서브그래프 데이터 내의 각각의 그래프 노드는 완료대상 단위 컴퓨팅 태스크를 지속적으로 생성하기 위해 알고리즘에 의해 구동될 수 있다.
단계 206. 제1 양자화된 값을 획득하며, 제1 양자화된 값은, 완료된 단위 컴퓨팅 태스크에 대응하는 데이터가 블록체인 데이터로 형성되는 경우 완료된 단위 컴퓨팅 태스크에 대응하는 양자화된 값이다.
블록체인 데이터는, 블록체인 네트워크에 추가된 새로운 블록에 기록된 데이터이며, 블록체인 네트워크 내의 새로운 블록은 기록된 정보를 브로드캐스트를 통해 공유할 수 있다. 양자화된 값은 단위 컴퓨팅 태스크를 양자화함으로써 획득되는 값이다. 예를 들어, 하나의 단위 컴퓨팅 태스크는 하나의 단위 양자화된 값에 대응한다. 제1 양자화된 값은, 완료된 단위 컴퓨팅 태스크에 대응하는 데이터가 블록체인 데이터로 형성되는 경우 컴퓨팅 노드에서 완료된 단위 컴퓨팅 태스크를 양자화함으로써 획득되는 값이다. 제1 양자화된 값은 컴퓨팅 노드의 컴퓨팅 용량을 측정할 수 있고 일부 완료된 단위 컴퓨팅 태스크에 대응할 수 있다. 제1 양자화된 값은 블록체인 네트워크에서 유통 및 교환을 위한 자원일 수 있으며, 통화 값, 가상 통화 값 등이라고 지칭될 수 있다.
이 실시예에서, 서브그래프 데이터 내의 그래프 노드에 대한 단위 컴퓨팅 태스크를 수행한 후, 컴퓨팅 노드는 일부 완료된 단위 컴퓨팅 태스크에 대응하는 데이터를 블록체인 네트워크에 기록하여 블록체인 데이터를 형성할 수 있고, 완료된 단위 컴퓨팅 태스크에 대응하는 양자화된 값은 제1 양자화된 값이다.
한 실시예에서, 서브그래프 데이터 내의 그래프 노드에 대한 단위 컴퓨팅 태스크를 수행한 후, 컴퓨팅 노드는 대응하는 단위 컴퓨팅 태스크를 완료한다. 대응하는 단위 컴퓨팅 태스크를 완료한 후, 컴퓨팅 노드는 서브그래프 데이터에 관한 컴퓨팅을 위한 전역적 컴퓨팅 데이터 및 국지적 컴퓨팅 데이터를 획득할 수 있다. 전역적 컴퓨팅 데이터는, 각각의 컴퓨팅 노드에 의한 서브그래프 데이터에 관한 컴퓨팅 프로세스에서 전역적으로 공유되고 업데이트될 필요가 있는 데이터이며 전역적 컴퓨팅 데이터의 규모는 제한된다. 국지적 컴퓨팅 데이터는, 각각의 컴퓨팅 노드가 서브그래프 데이터에 관해 컴퓨팅을 수행하는 프로세스에서 소수의 컴퓨팅 노드에 의해서만 이용되고 업데이트되는 데이터이다.
한 실시예에서, 컴퓨팅 노드는 전역적 컴퓨팅 데이터를 새로운 블록에 기록할 수 있고, 새로운 블록이 블록체인 네트워크에 의해 검증된 후 블록체인 네트워크에 새로운 블록을 추가할 수 있다. 이 경우, 전역적 컴퓨팅 데이터는 블록체인 데이터를 형성한다. 한 실시예에서, 컴퓨팅 노드는 대안으로서 이전 블록으로부터 현재의 시간까지의 모든 관련 데이터, 예를 들어, 현재의 전역적 컴퓨팅 데이터, 태스크 실행 로그, 또는 컴퓨팅 노드 상태를 새로운 블록에 기록하고 새로운 블록을 블록체인 네트워크에 추가하고, 대응하는 제1 양자화된 값을 획득한다.
한 실시예에서, 새로운 블록에 기록된 관련 데이터는, 분산형 그래프 컴퓨팅 시스템 내의 모든 컴퓨팅 노드가 기록된 관련 데이터, 예를 들어 새로운 블록에 기록된 전역적 컴퓨팅 데이터를 공유하도록 능동적으로 브로드캐스트될 수 있다. 대안으로서, 새로운 블록에 기록된 관련 데이터는 요청의 형태로 확산될 수 있다. 요청 형태의 확산이란, 컴퓨팅 노드가 요청을 전송함으로써 새로운 블록에 기록된 관련 데이터를 획득될 수 있다는 것을 의미한다.
예시적인 응용 시나리오에서, 그래프 데이터에 관련된 그래프 컴퓨팅 문제에서, 그래프 데이터에 대응하는 그래프 구조는 일반적으로 비교적 저밀도 그래프이고, 결과적으로, 그래프 데이터 내의 에지의 수량 M은 수량 N의 그래프 노드의 쌍별 조합보다 훨씬 적다: . 이러한 방식으로, 전역적으로 공유될 필요가 있는 전역적 컴퓨팅 데이터의 규모는 대개 제한되며, 대부분의 데이터는 특정한 국지성을 가지며 컴퓨팅을 위해 소수의 컴퓨팅 노드에 의해서만 이용된다, 즉, 대부분의 데이터가 국지적 컴퓨팅 데이터이다. 분산형 그래프 컴퓨팅 시스템을 이용함으로써, 전역적 컴퓨팅 데이터는 블록체인 네트워크를 통해 전역적으로 공유되고, 국지적 컴퓨팅 데이터는 대응하는 컴퓨팅 노드에 버퍼링되며, 국지적 컴퓨팅 데이터가 요청 형태로 획득됨으로써, 대량의 국지적 컴퓨팅 데이터의 브로드캐스트에 의해 야기되는 불필요한 네트워크 통신 오버헤드를 피할 수 있다.
단계 208. 제2 양자화된 값을 획득하며, 제2 양자화된 값은, 완료된 단위 컴퓨팅 태스크에 대응하는 데이터가 블록체인 데이터로 형성되지 않은 경우 완료된 단위 컴퓨팅 태스크에 대응하는 양자화된 값이다.
제2 양자화된 값은, 완료된 단위 컴퓨팅 태스크에 대응하는 데이터가 블록체인 데이터로 형성되지 않는 경우 컴퓨팅 노드에서 완료된 단위 컴퓨팅 태스크를 양자화함으로써 획득되는 값이다. 제2 양자화된 값은 컴퓨팅 노드의 컴퓨팅 용량을 측정할 수 있고 컴퓨팅 노드에서의 다른 완료된 단위 컴퓨팅 태스크에 대응할 수 있다. 제2 양자화된 값은 컴퓨팅 노드에 의해 현재 소유된 자원일 수 있고 제1 양자화된 값으로 상환될 수 있으며 자산 값이라고 지칭될 수 있다. 컴퓨팅 노드가 완료된 단위 컴퓨팅 태스크에 대응하는 데이터를 블록체인 네트워크에 기록하여 블록체인 데이터를 형성한 후, 블록체인 데이터의 이 부분에 대응하는 자산 값은 블록체인 네트워크에서 유통되는 동일한 양의 통화 값으로 변환될 수 있다.
이 실시예에서, 서브그래프 데이터 내의 그래프 노드에 대한 단위 컴퓨팅 태스크를 수행한 후, 컴퓨팅 노드는 데이터를 획득한다. 컴퓨팅 노드는, 블록체인 네트워크에 기록되지 않은 데이터에 따라, 그 데이터에 대응하는 완료된 단위 컴퓨팅 태스크를 결정한다. 컴퓨팅 노드는 결정된 완료된 단위 컴퓨팅 태스크를 양자화하여 제2 양자화된 값을 획득한다. 한 실시예에서, 서브그래프 데이터 내의 그래프 노드에 대한 단위 컴퓨팅 태스크를 수행한 후, 컴퓨팅 노드는 대응하는 단위 컴퓨팅 태스크를 완료한다. 대응하는 단위 컴퓨팅 태스크를 완료한 후, 컴퓨팅 노드는 완료된 단위 컴퓨팅 태스크에 대응하는 제2 양자화된 값을 획득할 수 있다.
한 실시예에서, 전역적 컴퓨팅 데이터를 새로운 블록에 기입하기 전에, 컴퓨팅 노드는 완료된 단위 컴퓨팅 태스크에 대응하는 이력 제2 양자화된 값을 획득한다. 이력 제2 양자화된 값은, 전역적 컴퓨팅 데이터가 새로운 블록에 기입되기 전에 블록체인 데이터로 형성되지 않는 완료된 단위 컴퓨팅 태스크에 대응한다. 컴퓨팅 노드가 전역적 컴퓨팅 데이터를 새로운 블록에 기입하고 새로운 블록이 블록체인 네트워크에 의해 검증된 후, 기입된 전역적 컴퓨팅 데이터에 대응하는 단위 컴퓨팅 태스크를 생성하는 것에 대응하는 제1 양자화된 값이 이력 제2 양자화된 값으로부터 차감되어 현재의 제2 양자화된 값을 획득한다.
이러한 방식으로, 전역적 컴퓨팅 데이터를 새로운 블록에 기입하여 블록체인 데이터를 형성함으로써, 대응하는 이력 제2 양자화된 값이 제2 양자화된 값으로 변환될 수 있다. 어카운팅을 통해, 미래에 상환될 수 있는 제2 양자화된 값이 유통가능한 대응하는 제1 양자화된 값으로 신속하고 편리하게 변환한다. 이러한 방식으로, 제1 양자화된 값과 현재의 제2 양자화된 값의 합은 컴퓨팅 노드의 현재의 컴퓨팅 용량을 나타낼 수 있다.
단계 210. 서브그래프 데이터 내의 미완료 단위 컴퓨팅 태스크에 대응하는 제3 양자화된 값을 결정한다.
제3 양자화된 값은 컴퓨팅 노드에서 미완료 단위 컴퓨팅 태스크를 양자화함으로써 획득되는 값이다. 제3 양자화된 값은 컴퓨팅 노드에 의해 수행될 단위 컴퓨팅 태스크에 대응하는 값으로서, 부채 값이라고 지칭될 수 있고, 컴퓨팅 노드의 부하 상태를 측정할 수 있다. 미완료 단위 컴퓨팅 태스크를 수행하고 완료한 후, 컴퓨팅 노드는 미완료 단위 컴퓨팅 태스크에 대응하는 제3 양자화된 값을 동일한 양의 제2 양자화된 값으로 변환한 다음, 동일한 양의 제2 양자화된 값을 동일한 양의 제1 양자화된 값으로 변환할 수 있다.
이 실시예에서, 컴퓨팅 노드는 현재의 미완료 단위 컴퓨팅 태스크를 실시간으로 획득하고, 미완료 단위 컴퓨팅 태스크에 따라 제3 양자화된 값을 결정할 수 있다. 한 실시예에서, 제1 양자화된 값, 제2 양자화된 값, 및 제3 양자화된 값은 동일한 단위를 가지며 모두가 단위 컴퓨팅 태스크에 대응한다.
한 실시예에서, 그래프 데이터에 대응하는 전체 태스크는 고정되고, 각각의 컴퓨팅 노드에서 서브그래프 데이터로부터 생성된 서브태스크도 역시 고정된다. 컴퓨팅 노드는, 서브그래프 데이터 내의 그래프 노드에 대한 단위 컴퓨팅 태스크를 수행함으로써 지속적으로 단위 컴퓨팅 태스크를 완료한다. 컴퓨팅 노드는 서브그래프 데이터로부터 생성된 서브태스크 및 현재의 완료된 단위 컴퓨팅 태스크에 따라 현재의 미완료 단위 컴퓨팅 태스크를 획득하여, 대응하는 제3 양자화된 값을 결정할 수 있다.
한 실시예에서, 그래프 데이터에 대응하는 전체 태스크는 계속 변경되고, 각각의 컴퓨팅 노드에서 서브그래프 데이터로부터 생성된 서브태스크도 계속 변경된다. 컴퓨팅 노드는 서브그래프 데이터에 따라 컴퓨팅 태스크를 반복적으로 생성할 수 있다. 알고리즘이 반복적으로 업데이트됨에 따라, 각각의 반복적 동안에 새로운 컴퓨팅 태스크가 생성된다. 서브그래프 데이터 내의 각각의 그래프 노드는, 알고리즘 구동을 통해, 완료될 필요가 있는 단위 계산 태스크를 지속적으로 생성할 수 있다.
한 실시예에서, 컴퓨팅 노드는, 서브그래프 데이터, 완료된 단위 컴퓨팅 태스크의 수량, 완료된 단위 컴퓨팅 태스크의 내용, 블록체인 네트워크에서 공유되는 전역적 컴퓨팅 데이터, 및 국지적 컴퓨팅 데이터에 따라, 서브그래프 데이터 내의 미완료 단위 컴퓨팅 태스크에 대응하는 제3 양자화된 값을 결정할 수 있다.
단계 212. 제2 양자화된 값 및 제3 양자화된 값이 평형 조건을 충족하지 못하는 경우 그래프 노드 및 제1 양자화된 값을 또 다른 컴퓨팅 노드와 교환한다.
평형 조건은, 컴퓨팅 노드의 현재의 컴퓨팅 용량과 현재의 부하 상태가 균형을 이루는지를 측정하기 위해 미리설정되어 이용되는 조건이다. 한 실시예에서, 제2 양자화된 값 및 제3 양자화된 값이 평형 조건을 충족한다는 것은, 제3 양자화된 값들의 제2 합과 제2 양자화된 값들의 제1 합 사이의 대비 값(contrast value)이 명시된 범위 내에 있다는 것을 의미한다. 대비 값은 2개의 값 사이의 차이 값으로서 수학적 계산을 통해 결정될 수 있다. 수학적 계산은, 2개의 숫자의 직접적인 나눗셈, 로그 취하기(logarithm-taking)에 후속되는 나눗셈, 뺄셈, 또 다른 연산에 후속된 로그 취하기에 후속된 나눗셈 등일 수 있다. 대비 값은, 한 값의 또 다른 값에 관한 차이 상태를 측정할 수 있다.
이 실시예에서, 제2 양자화된 값 및 제3 양자화된 값이 평형 조건을 충족하지 않을 때, 제2 양자화된 값 및 제3 양자화된 값이 평형 조건을 충족하도록 유지하기 위해 그래프 노드 및 제1 양자화된 값이 컴퓨팅 노드들 사이에서 교환될 수 있다.
한 실시예에서, 평형 조건에 대응하는 명시된 범위는 미리설정된 고정된 범위이거나, 시간에 따라 변하는 함수에 의해 결정되는 범위일 수 있다.
그래프 데이터 기반의 태스크 스케줄링 방법에서, 처리대상 그래프 데이터는 복수의 서브그래프 데이터로 분할된 다음, 복수의 서브그래프 데이터에 관해 분산형 처리가 수행됨으로써, 그래프 데이터 처리 효율을 크게 향상시킨다. 제1 양자화된 값, 제2 양자화된 값, 제3 양자화된 값이 별개로 획득되고, 제2 양자화된 값 및 제3 양자화된 값이 평형 조건을 충족하지 못할 때, 컴퓨팅 노드와 또 다른 컴퓨팅 노드 사이에서 그래프 노드 및 제1 양자화된 값이 교환된다. 제1 양자화된 값 및 제2 양자화된 값은 컴퓨팅 노드의 컴퓨팅 용량을 측정할 수 있고, 제3 양자화된 값은 컴퓨팅 노드의 부하 상태를 측정할 수 있다. 이러한 방식으로, 단위 컴퓨팅 태스크에 대응하는 양자화된 값을 이용함으로써 컴퓨팅 노드의 컴퓨팅 용량 및 부하 상태가 정량적으로 표시될 수 있고, 이것은 정확하고 직관적이다. 그래프 노드 및 제1 양자화된 값이 컴퓨팅 노드와 또 다른 컴퓨팅 노드 사이에서 교환되어, 제2 양자화된 값 및 제3 양자화된 값이 평형 조건을 충족하도록 유지한다. 이러한 방식으로, 태스크 할당을 위해 특정한 서버 또는 노드에 의존하는 것 대신에, 컴퓨팅 노드들은 서로 협력하여 그래프 노드를 할당하고 할당을 동적으로 조정하여, 자체-조직화된 부하 밸런싱을 구현하고 단일 지점 장애 및 특정한 서버의 네트워크 정체의 문제를 회피함으로써, 태스크 스케줄링 효율을 크게 향상시킨다. 또한, 이러한 자체-조직화된 동적 태스크 스케줄링 방법은 대규모 클러스터의 컴퓨팅 태스크 스케줄링에 맞게 적합화 수 있으며, 컴퓨팅 노드 수량의 동적 증가 또는 감소는 기존 컴퓨팅 태스크에 영향을 미치지 않으므로 높은 확장성이 달성될 수 있다.
한 실시예에서, 단계 202는: 그래프 데이터에 대응하고 블록체인 네트워크에서 브로드캐스트되는 태스크 정보를 획득하고, 태스크 정보에 따라, 태스크-실행가능한 파일 및 그래프 데이터로부터 분할된 서브그래프 데이터를 판독하는 단계를 포함할 수 있다. 단계 204는: 서브그래프 데이터에 따라 태스크-실행가능한 파일을 실행하는 단계를 포함할 수 있고, 태스크-실행가능한 파일은 서브그래프 데이터 내의 그래프 노드에 대한 단위 컴퓨팅 태스크를 표시하는데 이용된다.
이 실시예에서, 컴퓨팅 노드는, 그래프 데이터에 대응하고 블록체인 네트워크에서 브로드캐스트되는 태스크 정보를 획득하고, 태스크 정보에 따라, 태스크-실행가능한 파일 및 그래프 데이터로부터 분할된 서브그래프 데이터를 국지적 또는 데이터 창고로부터 판독할 수 있다. 태스크-실행가능한 파일은 서브그래프 데이터에 따라 실행되어 서브그래프 데이터 내의 그래프 노드에 대한 단위 컴퓨팅 태스크를 수행한다.
한 실시예에서, 분산형 그래프 컴퓨팅 시스템은 제어 노드를 포함하고, 제어 노드는 그래프 데이터에 대응하는 태스크 정보를 새로운 블록에 기록하고 새로운 블록을 블록체인 네트워크에 추가하여 블록체인 네트워크에서 태스크 정보를 브로드캐스트할 수 있다.
한 실시예에서, 블록체인 네트워크 내의 모든 컴퓨팅 노드는 그래프 데이터에 대응하는 태스크 정보를 새로운 블록의 브로드캐스트를 통해 수신할 수 있다.
한 실시예에서, 컴퓨팅 노드는, 타이머, 타이밍 프로그램 등을 이용하여 블록체인 네트워크에 최근에 추가된 새로운 블록에 기록된 태스크 정보를 정기적으로 체크하여, 그래프 데이터에 대응하고 블록체인 네트워크에서 브로드캐스트되는 태스크 정보를 능동적으로 획득할 수 있다.
전술된 실시예에서, 그래프 데이터에 대응하고 블록체인 네트워크에서 브로드캐스트되는 태스크 정보가 획득되고, 태스크 정보에 따라 태스크-실행가능한 파일 및 서브그래프 데이터가 판독되고, 서브그래프 데이터에 따라 태스크-실행가능한 파일이 실행되어, 단위 컴퓨팅 태스크를 수행한다. 태스크 정보는 매우 가벼운(즉, 소량의 데이터) 파일일 수 있다. 이러한 방식으로, 블록체인 네트워크를 통해 태스크를 게시하는 것은, 분산형 그래프 컴퓨팅 시스템에서 게시 및 태스크 획득의 통신 트래픽을 크게 감소시킬 수 있음으로써, 태스크 게시의 효율을 크게 향상시킬 수 있다.
한 실시예에서, 단계 206은 다음과 같은 단계들을 포함할 수 있다.
단계 402. 완료된 단위 컴퓨팅 태스크에 대응하는 전역적 컴퓨팅 데이터를 새로운 블록에 기입한다.
한 실시예에서, 전술된 블록체인 네트워크는 사설 블록체인을 포함할 수 있으며, 데이터를 블록체인 네트워크에 기록하기 위해 요구되는 키는 비대칭 암호화 알고리즘 표준에 따라 미리 생성되어 데이터 창고에 저장될 수 있다. 컴퓨팅 노드는, 키가 이용될 필요가 있을 때 관련 키를 획득하기 위해 데이터 창고에 액세스할 수 있다. 비대칭 암호화 알고리즘은, 타원 곡선 암호화 알고리즘, RSA 암호화 알고리즘(비대칭 암호화 알고리즘) 등일 수 있다.
한 실시예에서, 컴퓨팅 노드는 대응하는 합의 알고리즘(consensus algorithm)에 따라 새로운 블록을 생성할 수 있다. 합의 알고리즘은 합의 해시 알고리즘 등일 수 있다. 컴퓨팅 노드는, 완료된 단위 컴퓨팅 태스크에 대응하는 전역적 컴퓨팅 데이터를 새로운 블록에 기입할 수 있다. 한 실시예에서, 컴퓨팅 노드는, 전역적 데이터, 태스크 실행 로그, 그래프 노드의 교환된 데이터, 또는 컴퓨팅 노드 상태 등의 정보를, 새로운 블록에 기입할 수 있다.
한 실시예에서, 블록체인이 사설 체인일 때, 합의 해시 알고리즘의 비트 수가 감소되어 처리 효율을 개선함으로써, 시스템 처리량을 향상시킬 수 있다. 예를 들어, 합의 해시 알고리즘의 비트 수(quantity of bits)가 감소되면, 256-비트 SHA(secure hash algorithm) 대신에 128-비트 SHA가 이용될 수 있다. 대안으로서, 합의 해시 알고리즘은 POS(proof of work)로서 조정될 수 있고, 다음의 새로운 블록의 생산자를 결정하기 위해 코인 일수 = 제3 양자화된 값 * 연령(coin days=third quantized value*age)이 이용된다. 일반적으로, 그래프 데이터 교환량이 초당 100 만회보다 많을 때, 분산형 그래프 컴퓨팅 시스템은 더 양호한 통신 효율을 달성할 수 있다. 한 예에서, 다음과 같은 구분적 함수(piecewise function)가 합의 해시 함수의 비트 수에 대한 표준으로서 이용될 수 있다:
여기서 는 교환대상 그래프 노드를 제공하는 제1 당사자 k에서의 그래프 노드들의 평균 제3 양자화된 값을 나타내고, 는 교환대상 그래프 노드를 제공하는 제1 당사자 k에서의 그래프 노드들의 평균 제2 양자화된 값을 나타내며, 는 교환대상 그래프 노드를 제공하는 제1 당사자 k에서의 그래프 노드들의 평균 코인 일수를 나타내고, η 및 δ는 임계값이다.
한 실시예에서, 각각의 컴퓨팅 노드는, 디폴트로, 현재 가장 큰 제1 양자화된 값을 갖는 컴퓨팅 노드가 새로운 블록을 생성하는 것을 허용할 수 있다. 이 경우, 제1 양자화된 값의 생성은 가장 작은 제1 양자화된 값을 갖는 컴퓨팅 노드에 할당됨으로써, 더 높은 조율 효율을 달성한다. 여기서 제1 양자화된 값은 대안으로서 제2 양자화된 값 또는 제3 양자화된 값으로 대체될 수 있다.
한 실시예에서, 합의 해시 함수의 경우, 합의 프리픽스 0의 수량을 제한함으로써 복잡성이 역시 제어될 수 있으며, 비트 수량의 제어와 유사하게, 제약 해시 결과의 프리픽스 0의 수량이 클수록, 합의 문제가 더 어렵다.
단계 404. 새로운 블록이 블록체인 네트워크에 의해 검증된 후, 새로운 블록을 블록체인 네트워크에 추가하여 블록체인 데이터를 형성하고, 기입된 전역적 컴퓨팅 데이터에 대응하는 단위 컴퓨팅 태스크에 대응하는 제1 양자화된 값을 생성한다.
한 실시예에서, 컴퓨팅 노드에 의해 생성된 새로운 블록이 블록체인 네트워크에 의해 검증된 후, 컴퓨팅 노드는 새로운 블록을 블록체인 네트워크에 추가할 수 있다. 이 경우, 새로운 블록에 기입된 전역적 컴퓨팅 데이터는 블록체인 데이터로 형성된다. 컴퓨팅 노드는, 기입된 전역적 컴퓨팅 데이터에 대응하는 단위 컴퓨팅 태스크에 대응하는 제1 양자화된 값을 생성할 수 있다.
전술된 실시예에서, 완료된 단위 컴퓨팅 태스크에 대응하는 전역적 컴퓨팅 데이터는 새로운 블록에 기입되고, 새로운 블록은 블록체인 네트워크에 추가되고, 블록체인 데이터가 형성된다. 새로운 블록이 블록체인 네트워크에 의해 검증된 후, 제1 양자화된 값이 빠르고 편리하게 생성되고, 제1 양자화된 값은 블록체인 네트워크에서 유통 및 교환될 수 있다.
한 실시예에서, 단계 210은 다음과 같은 단계를 포함한다.
단계 502. 블록체인 네트워크로부터 최신의 전역적 컴퓨팅 데이터를 획득한다.
한 실시예에서, 컴퓨팅 노드는 새로운 블록에 기록된 최신의 전역적 컴퓨팅 데이터를 블록체인 네트워크를 통해 획득할 수 있다. 한 실시예에서, 컴퓨팅 노드는 새로운 블록을 정기적으로 체크함으로써 블록체인 네트워크로부터 최신의 전역적 컴퓨팅 데이터를 획득될 수 있다.
단계 504. 완료된 단위 컴퓨팅 태스크에 대응하는 국지적 컴퓨팅 데이터를 획득한다.
한 실시예에서, 컴퓨팅 노드는 국지적으로 버퍼링된 국지적 컴퓨팅 데이터를 판독하거나 서브그래프 구조의 이웃 컴퓨팅 노드로부터 버퍼링된 국지적 컴퓨팅 데이터를 획득될 수 있다.
단계 506. 서브그래프 데이터, 완료된 단위 컴퓨팅 태스크의 수량, 전역적 컴퓨팅 데이터, 및 국지적 컴퓨팅 데이터에 따라 제3 양자화된 값을 결정한다.
한 실시예에서, 컴퓨팅 노드는, 서브그래프 데이터, 완료된 단위 컴퓨팅 태스크의 수량, 전역적 컴퓨팅 데이터, 및 국지적 컴퓨팅 데이터에 따라 제3 양자화된 값을 결정할 수 있다. 예를 들어, 그래프 노드 i의 단위 컴퓨팅 태스크에 대응하는 제3 양자화된 값은 하기 공식을 이용함으로써 계산할 수 있다: , 는 현재의 단위 컴퓨팅 태스크에 대응하는 제3 양자화된 값을 나타내고, 는 서브그래프 데이터, 즉, 서브그래프의 접속된 에지, 그래프 노드 등의 속성 정보를 나타내며, 는 현재의 단위 컴퓨팅 태스크의 생성이 의존하는 이전 s개의 시점에서 완료된 단위 컴퓨팅 태스크를 나타내며, 는 현재의 전역적 컴퓨팅 데이터이며, 는 현재의 국지적 컴퓨팅 데이터이다.
전술된 실시예에서, 제3 양자화된 값은, 서브그래프 데이터, 완료된 단위 컴퓨팅 태스크의 수량, 최신의 전역적 컴퓨팅 데이터, 및 국지적 컴퓨팅 데이터에 따라 결정될 수 있고, 미래의 한 기간에서 컴퓨팅 노드의 부하 상태가 정확하고 효율적으로 예측될 수 있다. 서브그래프 데이터 내의 그래프 노드 수량이 동적으로 변경되거나 에지의 수량이 동적으로 증가하더라도, 현재의 전역적 컴퓨팅 데이터 및 국지적 컴퓨팅 데이터는 영향을 받지 않는다. 컴퓨팅 노드는 추가로, 완료된 컴퓨팅 태스크에 기초하여 컴퓨팅을 수행할 수 있음으로써, 그래프 데이터 처리 효율을 크게 향상시킬 수 있다.
한 실시예에서, 그래프 데이터 기반의 태스크 스케줄링 방법은, 제2 양자화된 값 및 제3 양자화된 값이 평형 조건을 충족하는지를 결정하는 단계를 더 포함하고, 이 단계는 다음과 같은 단계를 포함할 수 있다.
단계 602. 서브그래프 데이터의 현재의 제2 양자화된 값들의 제1 합을 획득한다.
한 실시예에서, 각각의 컴퓨팅 노드는 현재의 컴퓨팅 노드의 서브그래프 데이터에서 블록체인 데이터를 형성하지 않는 모든 완료된 단위 컴퓨팅 태스크를 결정할 수 있고, 그 다음 제2 양자화된 값들의 제1 합을 결정할 수 있다.
단계 604. 서브그래프 데이터의 현재의 제3 양자화된 값들의 제2 합을 획득한다.
한 실시예에서, 각각의 컴퓨팅 노드는 현재의 컴퓨팅 노드의 서브그래프 데이터 내의 모든 미완료 단위 컴퓨팅 태스크를 결정할 수 있고, 그 다음 제3 양자화된 값들의 제2 합을 결정할 수 있다.
단계 606. 제1 합에 대한 제2 합의 대비 값을 결정한다.
한 실시예에서, 컴퓨팅 노드는 제1 합에 대한 제2 합의 대비 값을 결정하기 위해 제1 합 및 제2 합에 관해 수학적 계산을 수행할 수 있다. 수학적 계산은, 2개의 숫자의 직접적인 나눗셈, 로그 취하기에 후속되는 나눗셈, 뺄셈, 또 다른 연산에 후속된 로그 취하기에 후속된 나눗셈 등일 수 있다.
한 실시예에서, 제2 양자화된 값 및 제3 양자화된 값이 시간에 따라 지수적으로 증가하는 것을 고려하여, 컴퓨팅 노드는 제2 합과 제1 합의 로그를 취한 후 대비 값을 계산할 수 있다. 이러한 방식으로, 제1 합에 대한 제2 합의 대비 값은 선형 변화를 겪는다.
한 실시예에서, 컴퓨팅 노드는 하기 공식에 따라 대비 값을 계산할 수 있다:
또 다른 실시예에서, 제1 합에 대한 제2 합의 대비 값을 획득하기 위해 제2 합은 제1 합으로 직접 나누어질 수 있다. 한 실시예에서, 컴퓨팅 노드는 하기 공식에 따라 대비 값을 계산할 수 있다:
단계 608. 대비 값이 명시된 범위를 벗어난 경우 제2 양자화된 값 및 제3 양자화된 값이 평형 조건을 충족하지 못한다고 결정한다.
한 실시예에서, 명시된 범위가 미리설정될 수 있다. 대비 값이 명시된 범위를 벗어나면, 제2 양자화된 값 및 제3 양자화된 값이 평형 조건을 충족하지 못한다고 결정된다. 대비 값이 명시된 범위 내에 속하면, 제2 양자화된 값 및 제3 양자화된 값이 평형 조건을 충족하는 것으로 결정된다.
한 실시예에서, 대비 값이 제2 합의 로그와 로그를 취한 후의 제1 합 사이의 나눗셈을 통해 획득된 값일 때, 명시된 범위의 최소 값 과 최대 값 양쪽 모두는 시간 t에 따라 변하는 선형 감소 함수이고, 이다. 예를 들어, 명시된 범위에 속하는 대비 값은 하기 공식을 이용하여 표현될 수 있다:
한 예시적인 실시예에서, 상수 a가 10일 수 있고 상수 m이 1일 수 있다면, 공식은 다음과 같이 단순화될 수 있다:
또 다른 실시예에서, 대비 값이 제2 합 및 제1 합의 몫일 때, 명시된 범위의 최소 값 및 최대 값 은 시간 t에 따라 변하는 멱함수(power function)이고, 이다. 예를 들어, 명시된 범위에 속하는 대비 값은 하기 공식을 이용하여 표현될 수 있다: .
한 실시예에서, 전술된 명시된 범위는, 대안으로서, 고정된 범위, 예를 들어 제1 임계값 및 제2 임계값에 의해 결정된 고정된 범위일 수 있다.
한 실시예에서, 대비 값이 명시된 범위의 최소 값보다 작을 때, 현재의 컴퓨팅 노드의 제1 양자화된 값은 또 다른 컴퓨팅 노드의 그래프 노드로 교환되어, 교환 이후 재계산된 대비 값을 명시된 범위 내에 유지한다. 대비 값이 명시된 범위의 최대 값보다 크면, 현재의 컴퓨팅 노드의 그래프 노드는 또 다른 컴퓨팅 노드의 제1 양자화된 값으로 교환되어, 교환 이후 재계산된 대비 값을 명시된 범위 내에 유지한다.
한 실시예에서, 대비 값이 명시된 범위의 최소 값보다 작을 때, 컴퓨팅 노드는 제1 양자화된 값을 교환함으로써 새로운 그래프 노드의 획득을 시도하고, 새로운 그래프 노드를 획득하기 위해 더 적은 수의 제1 양자화된 값을 우선적으로 교환한다. 대비 값이 명시된 범위의 최대 값보다 크면, 컴퓨팅 노드는 소유한 그래프 노드의 스왑을 시도하고, 더 많은 제1 양자화된 값으로 교환될 수 있는 그래프 노드를 우선적으로 교환한다.
전술된 실시예에서, 대비 값은 제1 합에 대한 제2 합의 대비 값임에 유의해야 한다. 대비 값이 명시된 범위의 최소 값보다 작을 때, 현재의 컴퓨팅 노드의 제1 양자화된 값은 또 다른 컴퓨팅 노드의 그래프 노드로 교환된다. 대비 값이 명시된 범위의 최대 값보다 클 때, 현재의 컴퓨팅 노드의 그래프 노드는 또 다른 컴퓨팅 노드의 제1 양자화된 값으로 교환되어, 교환 후 재계산된 대비 값을 명시된 범위 내에 유지한다. 대응적으로, 대비 값은 대안으로서 제2 합에 대한 제1 합의 대비 값일 수 있다. 대비 값이 명시된 범위의 최대 값보다 클 때, 현재의 컴퓨팅 노드의 제1 양자화된 값은 또 다른 컴퓨팅 노드의 그래프 노드로 교환된다. 대비 값이 명시된 범위의 최소 값보다 작을 때, 현재의 컴퓨팅 노드의 그래프 노드는 또 다른 컴퓨팅 노드의 제1 양자화된 값으로 교환되어, 교환 후 재계산된 대비 값을 명시된 범위 내에 유지한다.
전술된 실시예에서, 서브그래프 데이터의 현재의 제2 양자화된 값들의 제1 합과 서브그래프 데이터의 현재의 제3 양자화된 값들의 제2 합 사이의 대비 값이 결정되고, 대비 값이 명시된 범위에 속하는지가 결정된다. 대비 값이 명시된 범위를 벗어나면, 제2 양자화된 값 및 제3 양자화된 값이 평형 조건을 충족하지 않는 것으로 결정된다. 이러한 방식으로, 제2 양자화된 값 및 제3 양자화된 값이 평형 조건을 충족하는지가 빠르고 정확하게 결정되어, 컴퓨팅 노드들 사이에서 그래프 노드 및 제1 양자화된 값을 효율적으로 교환할 수 있고, 그래프 노드는 컴퓨팅 노드들 사이의 조율을 통해 동적으로 할당됨으로써, 자체-조직화된 부하 밸런싱을 효율적으로 구현한다.
한 실시예에서, 그래프 노드 및 제1 양자화된 값을 또 다른 컴퓨팅 노드와 교환하는 단계는 다음과 같은 단계를 포함할 수 있다.
단계 702. 컴퓨팅 노드 및 또 다른 컴퓨팅 노드로부터, 교환대상 그래프 노드를 제공하는 제1 당사자 및 교환대상 그래프 노드로 교환하는 제2 당사자를 결정한다.
한 실시예에서, 컴퓨팅 노드에서 제2 양자화된 값 및 제3 양자화된 값이 평형 조건을 충족하지 않을 때, 컴퓨팅 노드들은 그래프 노드 및 제1 양자화된 값을 서로 교환하여, 각각의 컴퓨팅 노드에서의 제2 양자화된 값 및 제3 양자화된 값이 평형 조건을 충족하도록 유지한다. 즉, 현재의 컴퓨팅 노드는 그래프 노드 및 제1 양자화된 값을 또 다른 컴퓨팅 노드와 교환할 수 있다. 이러한 방식으로, 교환대상 그래프 노드를 제공하는 제1 당사자와 교환대상 그래프 노드로 교환하는 제2 당사자가 교환을 수행하려는 컴퓨팅 노드들 사이에서 결정될 필요가 있다.
단계 704. 제1 당사자에 의해 추정된 교환대상 그래프 노드의 제1 추정 양자화된 값을 결정한다.
추정 양자화된 값은, 교환대상 그래프 노드가 소유하고 있는 미완료 단위 컴퓨팅 태스크를 양자화함으로써 획득되는 추정값이다. 제1 추정 양자화된 값은, 교환대상 그래프 노드를 제공하는 제1 당사자에 의해, 교환대상 그래프 노드가 소유하고 있는 미완료 단위 컴퓨팅 태스크를 양자화함으로써 획득되는 값이다. 추정 양자화된 값과 제1 양자화된 값은 동일한 단위를 갖는다.
한 실시예에서, 컴퓨팅 노드가 제1 당사자일 때, 컴퓨팅 노드는, 교환대상 그래프 노드에 대응하는 제2 양자화된 값과 제1 당사자에 대응하는 제2 양자화된 값 사이의 관계에 따라, 및 교환대상 그래프 노드에 대응하는 제3 양자화된 값과 제1 당사자에 대응하는 제3 양자화된 값 사이의 관계에 따라, 제1 추정 양자화된 값을 결정할 수 있다.
한 실시예에서, 컴퓨팅 노드는 하기 공식에 따라 제1 추정 양자화된 값을 계산할 수 있다:
여기서, 는 교환대상 그래프 노드를 나타내고, k는 제1 당사자를 나타내고, 는 교환대상 그래프 노드에 대해 제1 당사자에 의해 획득된 제1 추정 양자화된 값을 나타내고, 는 교환대상 그래프 노드의 제3 양자화된 값을 나타내고, 는 교환대상 그래프 노드의 제2 양자화된 값을 나타내고, 는 제1 당사자 k에서의 그래프 노드들의 평균 제3 양자화된 값을 나타내고, 는 제1 당사자 k에서의 그래프 노드들의 평균 제2 양자화된 값을 나타내고, α 및 β는 시스템 파라미터이고, e는 자연 상수이다.
단계 706. 제2 당사자에 의해 추정된 교환대상 그래프 노드의 제2 추정 양자화된 값을 결정한다.
제2 추정 양자화된 값은, 교환대상 그래프 노드로 교환하는 제2 당사자에 의해, 교환대상 그래프 노드가 소유하고 있는 미완료 단위 컴퓨팅 태스크를 양자화함으로써 획득되는 값이다.
한 실시예에서, 컴퓨팅 노드가 제2 당사자인 경우, 제2 추정 양자화된 값을 결정할 때, 컴퓨팅 노드는, 교환대상 그래프 노드가 교환된 후, 제2 당사자에 대응하는 컴퓨팅 노드에 의해 요구되는 감소된 통신 거리 양 및 추가된 계산 태스크를 고려할 수 있다. 따라서, 컴퓨팅 노드는 교환대상 그래프 노드의 제3 양자화된 값 및 교환대상 그래프 노드와 제2 당사자의 그래프 노드 사이의 통신 거리에 따라 제2 추정 양자화된 값을 결정할 수 있다.
한 실시예에서, 컴퓨팅 노드는 하기 공식에 따라 제2 추정 양자화된 값을 계산할 수 있다:
여기서, 는 교환대상 그래프 노드를 나타내고, l은 제2 당사자를 나타내고, 는 제2 당사자에 의해 추정된 교환대상 그래프 노드의 제2 추정 양자화된 값을 나타내고, 는 교환대상 그래프 노드의 제3 양자화된 값을 나타내고, 는 제2 당사자 l에서의 그래프 노드 j와 교환대상 그래프 노드 i 사이의 통신 거리의 합을 나타낸다.
한 실시예에서, 는 그래프 노드 i와 그래프 노드 j 사이의 통신 거리를 나타낼 수 있다. 그래프 데이터 내의 그래프 노드들 사이의 모든 통신 거리를 계산하기 위한 많은 계산량 때문에, 컴퓨팅 노드는 수학적 근사 방법을 이용함으로써 그래프 노드들 사이의 통신 거리를 계산한다. 예를 들어, 그래프 노드들 사이의 통신 거리는 국지적 근사 방법을 이용하여 계산될 수 있다. 그래프 노드들 사이의 통신 거리는 하기 공식에 따라 계산할 수 있다:
여기서, 는 제2 당사자 l에서의 그래프 노드 j와 교환대상 그래프 노드 i 사이의 통신 거리를 나타내고, 는, 그래프 노드 j가 에지를 통해 그래프 노드 i에 접속되어 있다는 것을 의미하고, 는 그래프 노드 j와 그래프 노드 i 사이에 에지가 없다는 것을 의미한다.
즉, 그래프 노드 i가 에지를 통해 그래프 노드 j와 접속될 때, 그래프 노드 i와 그래프 노드 j 사이의 거리가 매우 짧다고 근사적으로 간주될 수 있다. 제2 당사자에 대응하는 컴퓨팅 노드가 교환대상 그래프 노드로 교환한 후, 컴퓨팅 노드에 대한 통신 거리가 감소될 수 있다. 따라서, 제2 추정 양자화된 값이 더 높다. 그래프 노드 i와 그래프 노드 j가 어떠한 에지에 의해서도 서로 접속되어 있지 않을 때, 제2 당사자에 대응하는 컴퓨팅 노드가 교환대상 그래프 노드로 교환한 후, 컴퓨팅 노드에 대한 통신 거리가 감소되지 않는다.
한 실시예에서, 컴퓨팅 노드는 대안으로서 다른 근사 방법을 이용함으로써, 예를 들어 2개의 계산될 그래프 노드들 사이에 공통의 이웃 그래프 노드가 있는지를 결정함으로써, 그래프 노드들 사이의 통신 거리를 계산할 수 있다. 2개의 그래프 노드들 사이에 공통의 이웃 그래프 노드가 있을 때, 2개의 그래프 노드들 사이의 통신 거리가 짧다고 간주될 수 있다. 제2 당사자에 대응하는 컴퓨팅 노드가 교환대상 그래프 노드로 교환한 후, 컴퓨팅 노드에 대한 더 많은 통신량이 감소된다. 또 다른 예에서, 컴퓨팅 노드는 확률적 도로 맵(probabilistic road map) 방법에 따라 2개의 그래프 노드들 사이에 도로를 생성할 수 있고, 동일한 도로 상의 그래프 노드들은 짧은 통신 거리를 갖는 것으로 간주된다. 제2 당사자에 대응하는 컴퓨팅 노드가 교환대상 그래프 노드로 교환한 후, 컴퓨팅 노드에 대한 더 많은 통신량이 감소된다.
단계 708. 제1 추정 양자화된 값 및 제2 추정 양자화된 값에 따라, 교환대상 그래프 노드로 교환하기 위한 제1 양자화된 값을 결정한다.
한 실시예에서, 컴퓨팅 노드는, 제1 추정 양자화된 값 및 제2 추정 양자화된 값에 따라, 교환대상 그래프 노드로 교환하는데 이용되는 제1 양자화된 값을 결정할 수 있다. 예를 들어, 컴퓨팅 노드는 제1 추정 양자화된 값과 제2 추정 양자화된 값의 평균값을 계산하고, 그 평균값을 교환대상 그래프 노드로 교환하기 위한 제1 양자화된 값으로서 이용할 수 있다. 대안으로서, 컴퓨팅 노드는, 특정한 가중치 비율에 따라, 제1 추정 양자화된 값 및 제2 추정 양자화된 값에 관해 가중 합산을 수행한 다음, 평균값을 획득하고, 그 평균값을 교환대상 그래프 노드로 교환하기 위한 제1 양자화된 값으로서 이용할 수 있다.
단계 710. 교환대상 그래프 노드 및 결정된 제1 양자화된 값을 컴퓨팅 노드와 또 다른 컴퓨팅 노드 사이에서 교환한다.
한 실시예에서, 교환을 수행하려는 컴퓨팅 노드들 사이에서, 제2 당사자는 결정된 제1 양자화된 값을 제1 당사자의 교환대상 그래프 노드로 교환할 수 있다.
전술된 실시예에서, 교환대상 그래프 노드로 교환하기 위한 제1 양자화된 값은, 제1 당사자에 의해 추정된 교환대상 그래프 노드의 제1 추정 양자화된 값 및 제2 당사자에 의해 추정된 교환대상 그래프 노드의 제2 추정 양자화된 값에 따라 결정된다. 이러한 방식으로, 제1 당사자와 제2 당사자의 실제 상황이 포괄적으로 고려될 수 있고, 교환을 수행하려는 컴퓨팅 노드들 사이에서 교환대상 그래프 노드 및 제1 양자화된 값이 공정하게 교환된다.
도 8에 도시된 바와 같이, 한 예시적인 실시예에서, 그래프 데이터 기반의 태스크 스케줄링 방법은 다음과 같은 단계를 포함한다.
단계 802. 처리대상 그래프 데이터에 대응하고 블록체인 네트워크에서 브로드캐스트되는 태스크 정보를 획득한다.
단계 804. 태스크 정보에 따라 태스크-실행가능한 파일 및 그래프 데이터로부터 분할된 서브그래프 데이터를 판독한다.
단계 806. 서브그래프 데이터에 따라 태스크-실행가능한 파일을 실행한다, 태스크-실행가능한 파일은 서브그래프 데이터 내의 그래프 노드에 대한 단위 컴퓨팅 태스크를 표시하는데 이용된다.
단계 808. 완료된 단위 컴퓨팅 태스크에 대응하는 전역적 컴퓨팅 데이터를 새로운 블록에 기입한다.
단계 810. 새로운 블록이 블록체인 네트워크에 의해 검증된 후, 새로운 블록을 블록체인 네트워크에 추가하여 블록체인 데이터를 형성하고, 기입된 전역적 컴퓨팅 데이터에 대응하는 단위 컴퓨팅 태스크에 대응하는 제1 양자화된 값을 생성한다.
단계 812. 전역적 컴퓨팅 데이터가 새로운 블록에 기입되기 전에 획득되는 이력 제2 양자화된 값을 획득하며, 이력 제2 양자화된 값은, 전역적 컴퓨팅 데이터가 새로운 블록에 기입되기 전에 블록체인 데이터를 형성하지 않는 완료된 단위 컴퓨팅 태스크에 대응한다.
단계 814. 제2 양자화된 값을 획득하기 위해, 이력 제2 양자화된 값으로부터 제1 양자화된 값을 차감한다.
단계 816. 블록체인 네트워크로부터 최신의 전역적 컴퓨팅 데이터를 획득한다.
단계 818. 완료된 단위 컴퓨팅 태스크에 대응하는 국지적 컴퓨팅 데이터를 획득한다.
단계 820. 서브그래프 데이터, 완료된 단위 컴퓨팅 태스크의 수량, 전역적 컴퓨팅 데이터, 및 국지적 컴퓨팅 데이터에 따라 제3 양자화된 값을 결정한다.
단계 822. 서브그래프 데이터의 현재의 제2 양자화된 값들의 제1 합을 획득한다.
단계 824. 서브그래프 데이터의 현재의 제3 양자화된 값들의 제2 합을 획득한다.
단계 826. 제1 합에 대한 제2 합의 대비 값을 결정한다.
단계 828. 대비 값이 명시된 범위를 벗어난 경우 제2 양자화된 값 및 제3 양자화된 값이 평형 조건을 충족하지 못한다고 결정한다.
단계 830. 제2 양자화된 값 및 제3 양자화된 값이 평형 조건을 충족하지 못하는 경우, 컴퓨팅 노드 및 또 다른 컴퓨팅 노드로부터, 교환대상 그래프 노드를 제공하는 제1 당사자와 교환대상 그래프 노드로 교환하는 제2 당사자를 결정한다.
단계 832. 제1 당사자에 의해 추정된 교환대상 그래프 노드의 제1 추정 양자화된 값을 결정한다.
단계 834. 제2 당사자에 의해 추정된 교환대상 그래프 노드의 제2 추정 양자화된 값을 결정한다.
단계 836. 제1 추정 양자화된 값 및 제2 추정 양자화된 값에 따라, 교환대상 그래프 노드로 교환하기 위한 제1 양자화된 값을 결정한다.
단계 838. 교환대상 그래프 노드 및 결정된 제1 양자화된 값을 컴퓨팅 노드와 또 다른 컴퓨팅 노드 사이에서 교환한다.
그래프 데이터 기반의 태스크 스케줄링 방법에서, 처리대상 그래프 데이터는 복수의 서브그래프 데이터로 분할되고, 복수의 서브그래프 데이터에 관해 분산형 처리가 수행됨으로써, 그래프 데이터 처리 효율을 크게 향상시킨다. 제1 양자화된 값, 제2 양자화된 값, 제3 양자화된 값이 별개로 획득되고, 제2 양자화된 값 및 제3 양자화된 값이 평형 조건을 충족하지 못할 때, 컴퓨팅 노드와 또 다른 컴퓨팅 노드 사이에서 그래프 노드 및 제1 양자화된 값이 교환된다. 제1 양자화된 값 및 제2 양자화된 값은 컴퓨팅 노드의 컴퓨팅 용량을 측정할 수 있고, 제3 양자화된 값은 컴퓨팅 노드의 부하 상태를 측정할 수 있다. 이러한 방식으로, 단위 컴퓨팅 태스크에 대응하는 양자화된 값을 이용함으로써 컴퓨팅 노드의 컴퓨팅 용량 및 부하 상태가 정량적으로 표시될 수 있고, 이것은 정확하고 직관적이다. 그래프 노드 및 제1 양자화된 값이 컴퓨팅 노드와 또 다른 컴퓨팅 노드 사이에서 교환되어, 제2 양자화된 값 및 제3 양자화된 값이 평형 조건을 충족하도록 유지한다. 이러한 방식으로, 태스크 할당을 위해 특정한 서버 또는 노드에 의존하는 것 대신에, 컴퓨팅 노드들은 서로 협력하여 그래프 노드를 할당하고 할당을 동적으로 조정하여, 자체-조직화된 부하 밸런싱을 구현하고 단일 지점 장애 및 특정한 서버의 네트워크 정체의 문제를 회피함으로써, 태스크 스케줄링 효율을 크게 향상시킨다. 또한, 이러한 자체-조직화된 동적 태스크 스케줄링 방법은 대규모 클러스터의 컴퓨팅 태스크 스케줄링에 맞게 적합화 수 있으며, 컴퓨팅 노드 수량의 동적 증가 또는 감소는 기존 컴퓨팅 태스크에 영향을 미치지 않으므로 높은 확장성이 달성될 수 있다.
도 8은 한 실시예에서의 그래프 데이터 기반의 태스크 스케줄링 방법의 개략적인 플로차트이다. 도 8의 플로차트에서 단계들은 화살표 표시에 따라 순차적으로 표시되지만, 단계들은 반드시 화살표로 표시된 순서대로 순차적으로 수행되는 것은 아님을 이해해야 한다. 본 개시내용에 명시되지 않는 한, 단계들의 순서는 엄격하게 제한되지 않으며, 단계들은 다른 순서로 수행될 수도 있다. 더욱이, 도 8의 단계들 중 적어도 일부는 복수의 하위단계 또는 복수의 스테이지를 포함할 수 있다. 하위단계들 또는 스테이지들은 반드시 동시에 수행되는 것은 아니라, 상이한 시간들에 수행될 수도 있다. 하위단계들 또는 스테이지들은 반드시 순차적으로 실행되는 것은 아니라, 다른 단계들의 적어도 일부 또는 다른 단계들 또는 스테이지들의 하위 단계들과 함께 차례로 수행될 수 있다.
예시적인 응용 시나리오에서, 예를 들어, 이동 외판원 문제(traveling salesman problem)(TSP)에서, 전술된 그래프 데이터 기반의 태스크 스케줄링 방법을 이용함으로써 비교적 최적화된 솔루션이 효율적으로 획득될 수 있다. TSP란, 외판원이 최단 거리에 있는 모든 도시(그래프 노드)를 주파하고 시작 도시로 돌아가는 방법을 의미한다. 이것은 비결정론적 다항식(non-deterministic polynomial)(NP) 완료 문제이며, 대개 문제의 근사적인 솔루션이 획득된다. 이 솔루션의 그래프 데이터 기반의 태스크 스케줄링 방법에 따르면, TSP는 서브그래프에서 최단 횡단 문제로 분할될 수 있다, 즉, 국지적 최적 솔루션을 구해감으로써 근사적으로 전역적 최적 솔루션에 접근한다. 전역적 컴퓨팅 데이터는 그래프 데이터에서의 경로와 전체 길이이며, 국지적 컴퓨팅 데이터는 각각의 서브그래프 데이터에서 바람직한 경로 길이 및 서브그래프에 들어오고 나가는 그래프 노드를 포함한다. 컴퓨팅 프로세스는, 경로 선택이 지속적으로 최적화되고 컴퓨팅 노드들이 서로 조율하여 그래프 노드를 동적으로 할당하여, 최적 조건에서 최적의 서브그래프 분할을 획득하고 그 조건에서 최적의 솔루션을 획득하는 프로세스이다.
이해의 편의를 위해, 상기 구현이 특정한 예를 참조하여 설명된다. 블록체인에서의 각각의 통화는 완료된 단위 컴퓨팅 태스크에 대응하고, 각각의 컴퓨팅 노드는 완료될 필요가 있는 단위 컴퓨팅 태스크를 지속적으로 생성하는 알고리즘에 의해 구동될 수 있다, 즉, 각각의 컴퓨팅 모드는 부채 생산자임이 이해될 수 있다. 그래프 노드는, 상이한 컴퓨팅 노드들 사이에서 통화를 이용함으로써 교환할 수 있고, 이러한 프로세스는 일반적으로 자체-조직화 정책을 포함한다. 가장 간단한 자체-조직화 정책은 자체-자금조달(self-financing)이다, 즉, 단위 시간당 한 컴퓨팅 노드가 소유한 그래프 노드에 의해 생성된 태스크량이 주변 컴퓨팅 노드에 의해 생성된 평균 태스크량을 초과할 때, 그 컴퓨팅 노드는 가속된 부채 상태에 있고, 그 컴퓨팅 노드의 그래프 노드는 자체-자금조달을 달성하기 위해 "판매"될 필요가 있다, 즉, 이것은 미완료 단위 컴퓨팅 태스크(부채)와 완료된 단위 컴퓨팅 태스크(자산)를 밸런싱하는 프로세스이다. 잉여 자산을 갖는 컴퓨팅 노드는 더 많은 그래프 노드를 "구매"함으로써 컴퓨팅 용량의 최대 활용을 달성할 수 있다. 이러한 방식으로, 각각의 컴퓨팅 노드의 목표는 부채와 자산을 밸런싱하는 것이다. 컴퓨팅 노드 k의 자산 포트폴리오는, 컴퓨팅 노드 k가 소유한 그래프 노드, 그래프 노드에 대응하는 자산(완료된 단위 컴퓨팅 태스크) 및 부채(미완료 단위 컴퓨팅 태스크)를 각각 나타내는 삼중항(triplet) 에 의해 형성될 수 있다.
그래프 노드는, 최종 거래 가격, 즉, 판매 가격과 구매 가격의 평균값에 따라 거래된다. 거래 동안에, 구매자는 실제로 블록체인 통화 의 구매 가격 수량을 판매자에게 보낸다. 여기서의 통화 는 위에서 언급된 그래프 노드의 자산 및 부채와 동일한 단위를 갖지만, 통화는 자산 및 부채와 상이하다. 여기서, 통화는 블록체인에 의해 실제로 등록되어 유통될 수 있는 통화인 반면, 위에서 언급된 자산과 부채는 계정에서 미래 상환가능한 자산이다. 요약하면, 컴퓨팅 노드의 부채 비율이 명시된 값을 초과하지 않는다면, 각각의 는 어카운팅을 통해 실제의 통화 로 변환될 수 있다. 어카운팅 프로세스는, 컴퓨팅 노드가 새로운 블록을 추가하고 이전 블록으로부터 현재의 시간까지의 (여기서는 로그, 전역적 컴퓨팅 파라미터, 노드 상태 보고를 포함한) 모든 거래 정보를 새로운 블록에 기록하며, 새로운 블록을 블록체인의 끝에 부착하고, 통화 의 특정한 양을 보상으로서 획득하는 프로세스이다. 보상의 값은 컴퓨팅 노드의 자산으로부터 기입된다.
도 9에 도시된 바와 같이, 한 실시예에서, 획득 모듈(901), 실행 모듈(902), 결정 모듈(903), 및 교환 모듈(904)을 포함하는 그래프 데이터-기반의 태스크 스케줄링 장치(900)가 제공된다.
획득 모듈(901)은 처리대상 그래프 데이터로부터 분할된 서브그래프 데이터를 획득하도록 구성된다.
실행 모듈(902)은 획득 모듈(901)에 의해 획득된 서브그래프 데이터 내의 그래프 노드에 대한 단위 컴퓨팅 태스크를 수행하도록 구성된다.
획득 모듈(901)은 제1 양자화된 값을 획득하도록 추가로 구성되고, 제1 양자화된 값은, 완료된 단위 컴퓨팅 태스크에 대응하는 데이터가 블록체인 데이터로 형성되는 경우 완료된 단위 컴퓨팅 태스크에 대응하는 양자화된 값이다.
획득 모듈(901)은 제2 양자화된 값을 획득하도록 추가로 구성되고, 제2 양자화된 값은, 완료된 단위 컴퓨팅 태스크에 대응하는 데이터가 블록체인 데이터로 형성되지 않은 경우 완료된 단위 컴퓨팅 태스크에 대응하는 양자화된 값이다.
결정 모듈(903)은, 서브그래프 데이터 내의 미완료 단위 컴퓨팅 태스크에 대응하는 제3 양자화된 값을 결정하도록 구성된다.
교환 모듈(904)은, 획득 모듈(901)에 의해 획득된 제2 양자화된 값 및 결정 모듈(903)에 의해 획득된 제3 양자화된 값이 평형 조건을 충족하지 못한 경우 그래프 노드 및 제1 양자화된 값을 또 다른 컴퓨팅 노드와 교환하도록 구성된다.
한 실시예에서, 획득 모듈(901)은 추가로, 그래프 데이터에 대응하고 블록체인 네트워크에서 브로드캐스트되는 태스크 정보를 획득하고, 태스크 정보에 따라, 태스크-실행가능한 파일 및 그래프 데이터로부터 분할된 서브그래프 데이터를 판독하도록 구성된다. 실행 모듈(902)은 서브그래프 데이터에 따라 태스크-실행가능한 파일을 실행하도록 추가로 구성되며, 태스크-실행가능한 파일은 서브그래프 데이터 내의 그래프 노드에 대한 단위 컴퓨팅 태스크를 표시하는데 이용된다.
한 실시예에서, 획득 모듈(901)은 추가로, 완료된 단위 컴퓨팅 태스크에 대응하는 전역적 컴퓨팅 데이터를 새로운 블록에 기입하고, 새로운 블록이 블록체인 네트워크에 의해 검증된 후 블록체인 네트워크에 새로운 블록을 추가하여 블록체인 데이터를 형성하고, 기입된 전역적 컴퓨팅 데이터에 대응하는 단위 컴퓨팅 태스크에 대응하는 제1 양자화된 값을 생성하도록 구성된다.
한 실시예에서, 획득 모듈(901)은 추가로, 전역적 컴퓨팅 데이터가 새로운 블록에 기입되기 전에 획득되는 이력 제2 양자화된 값을 획득하고 - 이력 제2 양자화된 값은 전역적 컴퓨팅 데이터가 새로운 블록에 기입되기 전에 블록체인 데이터를 형성하지 않는 완료된 단위 컴퓨팅 태스크에 대응함 -, 이력 제2 양자화된 값으로부터 제1 양자화된 값을 차감하여 제2 양자화된 값을 획득하도록 구성된다.
한 실시예에서, 결정 모듈(903)은 추가로, 블록체인 네트워크로부터 최신의 전역적 컴퓨팅 데이터를 획득하고, 완료된 단위 컴퓨팅 태스크에 대응하는 국지적 컴퓨팅 데이터를 획득하고, 서브그래프 데이터, 완료된 단위 컴퓨팅 태스크의 수량, 전역적 컴퓨팅 데이터, 및 국지적 컴퓨팅 데이터에 따라 제3 양자화된 값을 결정하도록 구성된다.
한 실시예에서, 획득 모듈(901)은 추가로, 서브그래프 데이터의 현재의 제2 양자화된 값들의 제1 합을 획득하고, 서브그래프 데이터의 현재의 제3 양자화된 값들의 제2 합을 획득하도록 구성된다. 결정 모듈(903)은 추가로, 제1 합에 대한 제2 합의 대비 값을 결정하고, 대비 값이 명시된 범위 외부에 있는 경우에 제2 양자화된 값 및 제3 양자화된 값이 평형 조건을 충족하지 못한다고 결정하도록 구성된다.
한 실시예에서, 결정 모듈(903)은 추가로, 하기 공식에 따라 대비 값을 계산하도록 구성된다:
한 실시예에서, 교환 모듈(904)은 추가로, 대비 값이 명시된 범위의 최소 값보다 작은 경우에 제1 양자화된 값을 또 다른 컴퓨팅 노드의 그래프 노드로 교환하고 - 교환 후의 대비 값은 명시된 범위 내에 있음 -, 대비 값이 명시된 범위의 최대 값보다 큰 경우 그래프 노드를 또 다른 컴퓨팅 노드의 제1 양자화된 값으로 교환하도록 - 교환 후의 대비 값은 명시된 범위 내에 있음 - 구성된다.
한 실시예에서, 교환 모듈(904)은 추가로, 컴퓨팅 노드 및 또 다른 컴퓨팅 노드로부터, 교환대상 그래프 노드를 제공하는 제1 당사자 및 교환대상 그래프 노드로 교환하는 제2 당사자를 결정하고, 제1 당사자에 의해 추정된 교환대상 그래프 노드의 제1 추정 양자화된 값을 결정하고, 제2 당사자에 의해 추정된 교환대상 그래프 노드의 제2 추정 양자화된 값을 결정하고, 제1 추정 양자화된 값 및 제2 추정 양자화된 값에 따라, 교환대상 그래프 노드로 교환하기 위한 제1 양자화된 값을 결정하고, 교환대상 그래프 노드 및 결정된 제1 양자화된 값을 컴퓨팅 노드와 또 다른 컴퓨팅 노드 사이에서 교환하도록 구성된다.
도 10에 도시된 바와 같이, 한 실시예에서, 교환 모듈(904)은 하기 공식에 따라 제1 추정 양자화된 값을 계산하도록 구성된 제1 계산 서브모듈(905)을 더 포함한다:
여기서, 는 교환대상 그래프 노드를 나타내고, k는 제1 당사자를 나타내고, 는 교환대상 그래프 노드에 대해 제1 당사자에 의해 획득된 제1 추정 양자화된 값을 나타내고, 는 교환대상 그래프 노드의 제3 양자화된 값을 나타내고, 는 교환대상 그래프 노드의 제2 양자화된 값을 나타내고, 는 제1 당사자 k에서의 그래프 노드들의 평균 제3 양자화된 값을 나타내고, 는 제1 당사자 k에서의 그래프 노드들의 평균 제2 양자화된 값을 나타내고, α 및 β는 시스템 파라미터이고, e는 자연 상수이다.
한 실시예에서, 교환 모듈(904)은 다음을 더 포함한다:
하기 공식에 따라 제2 추정 양자화된 값을 계산하도록 구성된 제2 계산 서브모듈(906):
여기서, 는 교환대상 그래프 노드를 나타내고, l은 제2 당사자를 나타내고, 는 제2 당사자에 의해 추정된 교환대상 그래프 노드의 제2 추정 양자화된 값을 나타내고, 는 교환대상 그래프 노드의 제3 양자화된 값을 나타내고, 는 제2 당사자 l에서의 그래프 노드 j와 교환대상 그래프 노드 i 사이의 통신 거리의 합을 나타낸다.
한 실시예에서, 제2 계산 서브모듈(906)은 추가로, 하기 공식에 따라 통신 거리를 계산하도록 구성된다:
여기서, 는 제2 당사자 l에서의 그래프 노드 j와 교환대상 그래프 노드 i 사이의 통신 거리를 나타내고, 는, 그래프 노드 j가 에지를 통해 그래프 노드 i에 접속되어 있다는 것을 의미하고, 는 그래프 노드 j와 그래프 노드 i 사이에 에지가 없다는 것을 의미한다.
그래프 데이터 기반의 태스크 스케줄링 장치에 의해, 처리대상 그래프 데이터는 복수의 서브그래프 데이터로 분할되고, 복수의 서브그래프 데이터에 관해 분산형 처리가 수행됨으로써, 그래프 데이터 처리 효율을 크게 향상시킨다. 제1 양자화된 값, 제2 양자화된 값, 제3 양자화된 값이 별개로 획득되고, 제2 양자화된 값 및 제3 양자화된 값이 평형 조건을 충족하지 못할 때, 컴퓨팅 노드와 또 다른 컴퓨팅 노드 사이에서 그래프 노드 및 제1 양자화된 값이 교환된다. 제1 양자화된 값 및 제2 양자화된 값은 컴퓨팅 노드의 컴퓨팅 용량을 측정할 수 있고, 제3 양자화된 값은 컴퓨팅 노드의 부하 상태를 측정할 수 있다. 이러한 방식으로, 단위 컴퓨팅 태스크에 대응하는 양자화된 값을 이용함으로써 컴퓨팅 노드의 컴퓨팅 용량 및 부하 상태가 정량적으로 표시될 수 있고, 이것은 정확하고 직관적이다. 그래프 노드 및 제1 양자화된 값이 컴퓨팅 노드와 또 다른 컴퓨팅 노드 사이에서 교환되어, 제2 양자화된 값 및 제3 양자화된 값이 평형 조건을 충족하도록 유지한다. 이러한 방식으로, 태스크 할당을 위해 특정한 서버 또는 노드에 의존하는 것 대신에, 컴퓨팅 노드들은 서로 협력하여 그래프 노드를 할당하고 할당을 동적으로 조정하여, 자체-조직화된 부하 밸런싱을 구현하고 단일 지점 장애 및 특정한 서버의 네트워크 정체의 문제를 회피함으로써, 태스크 스케줄링 효율을 크게 향상시킨다. 또한, 이러한 자체-조직화된 동적 태스크 스케줄링 방법은 대규모 클러스터의 컴퓨팅 태스크 스케줄링에 맞게 적합화 수 있으며, 컴퓨팅 노드 수량의 동적 증가 또는 감소는 기존 컴퓨팅 태스크에 영향을 미치지 않으므로 높은 확장성이 달성될 수 있다.
도 11은 한 실시예에 따른 컴퓨터 디바이스의 내부 구조의 다이어그램을 도시한다. 컴퓨터 디바이스는 도 1의 컴퓨팅 노드(120)가 분산되어 있는 컴퓨터 디바이스일 수 있다. 도 11에 도시된 바와 같이, 컴퓨터 디바이스는, 시스템 버스를 통해 접속된 프로세서, 메모리 및 네트워크 인터페이스를 포함한다. 메모리는 비휘발성 저장 매체와 내부 메모리를 포함한다. 컴퓨터 디바이스의 비휘발성 저장 매체는 운영 체제를 저장하고 프로세서에 의해 실행될 때 프로세서로 하여금 그래프 데이터 기반의 태스크 스케줄링 방법을 구현하게 하는 컴퓨터 프로그램, 컴퓨터 프로그램을 추가로 저장할 수 있다. 내부 메모리는 또한 컴퓨터 프로그램을 저장할 수 있고, 이 컴퓨터 프로그램은, 프로세서에 의해 실행될 때 프로세서로 하여금 그래프 데이터 기반의 태스크 스케줄링 방법을 수행하게 한다.
본 기술분야의 통상의 기술자라면, 도 11에 도시된 구조는 본 출원의 솔루션과 관련된 부분적인 구조의 블록도일 뿐이며, 본 출원의 솔루션이 적용되는 컴퓨터 디바이스를 제한하지 않는다는 것을 이해할 수 있을 것이다. 구체적으로, 컴퓨터 디바이스는 도면에 도시된 것들보다 더 많은 컴포넌트 또는 더 적은 컴포넌트를 포함하거나, 일부 컴포넌트가 결합되거나, 상이한 컴포넌트 배치가 이용될 수도 있다.
한 실시예에서, 본 출원에서 제공되는 그래프 데이터 기반의 태스크 스케줄링 장치는 컴퓨터 프로그램의 형태로 구현될 수 있고, 컴퓨터 프로그램은 도 11에 도시된 컴퓨터 디바이스에서 실행될 수 있다. 컴퓨터 디바이스의 메모리는, 그래프 데이터 기반의 태스크 스케줄링 장치를 형성하는 프로그램 모듈, 예를 들어, 도 9에 도시된 획득 모듈, 실행 모듈, 결정 모듈, 및 교환 모듈을 저장할 수 있다. 프로그램 모듈에 의해 형성된 컴퓨터 프로그램은 프로세서로 하여금 본 명세서에서 설명된 본 출원의 실시예들에서의 그래프 데이터 기반의 태스크 스케줄링 방법의 단계들을 수행하게 한다.
예를 들어, 도 11에 도시된 컴퓨터 디바이스는 도 9에 도시된 그래프 데이터 기반의 태스크 스케줄링 장치의 획득 모듈을 통해 단계 202, 206 및 208을 수행할 수 있다. 컴퓨터 디바이스는 실행 모듈을 통해 단계 204를 수행할 수 있다. 컴퓨터 디바이스는 결정 모듈을 통해 단계 210을 수행할 수 있다. 컴퓨터 디바이스는 교환 모듈을 통해 단계 212를 수행할 수 있고, 상세한 내용을 위해, 전술된 단계들의 설명을 참조할 수 있다.
한 실시예에서, 메모리 및 프로세서를 포함하는 컴퓨터 디바이스가 제공되고, 메모리는 컴퓨터 프로그램을 저장하고, 컴퓨터 프로그램은 프로세서에 의해 실행될 때 프로세서로 하여금 다음과 같은 단계들을 수행하게 한다: 처리대상 그래프 데이터로부터 분할된 서브그래프 데이터를 획득하는 단계, 서브그래프 데이터 내의 그래프 노드에 대한 단위 컴퓨팅 태스크를 수행하는 단계, 제1 양자화된 값을 획득하는 단계 - 제1 양자화된 값은, 완료된 단위 컴퓨팅 태스크에 대응하는 데이터가 블록체인 데이터로 형성되는 경우 완료된 단위 컴퓨팅 태스크에 대응하는 양자화된 값임 -, 제2 양자화된 값을 획득하는 단계 - 제2 양자화된 값은, 완료된 단위 컴퓨팅 태스크에 대응하는 데이터가 블록체인 데이터로 형성되지 않는 경우 완료된 단위 컴퓨팅 태스크에 대응하는 양자화된 값임 -, 서브그래프 데이터 내의 미완료 단위 컴퓨팅 태스크에 대응하는 제3 양자화된 값을 결정하는 단계, 및 제2 양자화된 값 및 제3 양자화된 값이 평형 조건을 충족하지 못하는 경우 그래프 노드 및 제1 양자화된 값을 또 다른 컴퓨팅 노드와 교환하는 단계.
한 실시예에서, 컴퓨터 프로그램이 프로세서로 하여금 처리대상 그래프 데이터로부터 분할된 서브그래프 데이터를 획득하는 단계를 수행하게 할 때, 다음과 같은 단계들이 수행될 수 있다: 그래프 데이터에 대응하고 블록체인 네트워크에서 브로드캐스트되는 태스크 정보를 획득하는 단계, 및 태스크 정보에 따라, 태스크-실행가능한 파일 및 그래프 데이터로부터 분할된 서브그래프 데이터를 판독하는 단계. 컴퓨터 프로그램이 프로세서로 하여금 서브그래프 데이터 내의 그래프 노드에 대한 단위 컴퓨팅 태스크를 수행하는 단계를 수행하게 할 때, 다음과 같은 단계가 수행될 수 있다: 서브그래프 데이터에 따라 태스크-실행가능한 파일을 실행하는 단계 - 태스크-실행가능한 파일은 서브그래프 데이터 내의 그래프 노드에 대한 단위 컴퓨팅 태스크를 표시하는데 이용됨 -.
한 실시예에서, 컴퓨터 프로그램이 프로세서로 하여금 제1 양자화된 값을 획득하는 단계를 수행하게 할 때, 다음과 같은 단계들이 수행될 수 있다: 완료된 단위 컴퓨팅 태스크에 대응하는 전역적 컴퓨팅 데이터를 새로운 블록에 기입하는 단계, 새로운 블록이 블록체인 네트워크에 의해 검증된 후, 새로운 블록을 블록체인 네트워크에 추가하여 블록체인 데이터를 형성하는 단계, 및 기입된 전역적 컴퓨팅 데이터에 대응하는 단위 컴퓨팅 태스크에 대응하는 제1 양자화된 값을 생성하는 단계.
한 실시예에서, 컴퓨터 프로그램이 프로세서로 하여금 제2 양자화된 값을 획득하는 단계를 수행하게 할 때, 다음과 같은 단계들이 수행될 수 있다: 전역적 컴퓨팅 데이터가 새로운 블록에 기입되기 전에 획득되는 이력 제2 양자화된 값을 획득하는 단계 - 이력 제2 양자화된 값은 전역적 컴퓨팅 데이터가 새로운 블록에 기입되기 전에 블록체인 데이터를 형성하지 않는 완료된 단위 컴퓨팅 태스크에 대응함 -, 및 이력 제2 양자화된 값으로부터 제1 양자화된 값을 차감하여 제2 양자화된 값을 획득하는 단계.
한 실시예에서, 컴퓨터 프로그램이 프로세서로 하여금 서브그래프 데이터 내의 미완료 단위 컴퓨팅 태스크에 대응하는 제3 양자화된 값을 결정하는 단계를 수행하게 할 때, 다음과 같은 단계들이 수행될 수 있다: 블록체인 네트워크로부터 최신의 전역적 컴퓨팅 데이터를 획득하는 단계, 완료된 단위 컴퓨팅 태스크에 대응하는 국지적 컴퓨팅 데이터를 획득하는 단계, 및 서브그래프 데이터, 완료된 단위 컴퓨팅 태스크의 수량, 전역적 컴퓨팅 데이터, 및 국지적 컴퓨팅 데이터에 따라, 제3 양자화된 값을 결정하는 단계.
한 실시예에서, 컴퓨터 프로그램은 추가로, 프로세서로 하여금 다음과 같은 단계들을 수행하게 한다: 서브그래프 데이터의 현재의 제2 양자화된 값들의 제1 합을 획득하는 단계, 서브그래프 데이터의 현재의 제3 양자화된 값들의 제2 합을 획득하는 단계, 제1 합에 대한 제2 합의 대비 값을 결정하는 단계, 및 대비 값이 명시된 범위를 벗어나는 경우 제2 양자화된 값 및 제3 양자화된 값이 평형 조건을 충족하지 못한다고 결정하는 단계.
한 실시예에서, 컴퓨터 프로그램이 프로세서로 하여금 제1 합에 대한 제2 합의 대비 값을 결정하는 단계를 수행하게 할 때, 다음과 같은 단계가 수행될 수 있다: 하기 공식에 따라 대비 값을 계산하는 단계:
한 실시예에서, 컴퓨터 프로그램이 프로세서로 하여금 그래프 노드 및 제1 양자화된 값을 또 다른 컴퓨팅 노드와 교환하는 단계를 수행하게 할 때, 다음과 같은 단계들이 수행될 수 있다: 대비 값이 명시된 범위의 최소 값보다 작은 경우 제1 양자화된 값을 또 다른 컴퓨팅 노드의 그래프 노드와 교환하는 단계 - 교환 이후의 대비 값은 명시된 범위 내에 있음 -, 및 대비 값이 명시된 범위의 최대 값보다 큰 경우 그래프 노드를 또 다른 컴퓨팅 노드의 제1 양자화된 값으로 교환하는 단계 -교환 이후의 대비 값은 명시된 범위 내에 있음 -.
한 실시예에서, 컴퓨터 프로그램이 프로세서로 하여금 그래프 노드 및 제1 양자화된 값을 또 다른 컴퓨팅 노드와 교환하는 단계를 수행하게 할 때, 다음과 같은 단계들이 수행될 수 있다: 컴퓨팅 노드 및 또 다른 컴퓨팅 노드로부터, 교환대상 그래프 노드를 제공하는 제1 당사자 및 교환대상 그래프 노드로 교환하는 제2 당사자를 결정하는 단계, 제1 당사자에 의해 추정된 교환대상 그래프 노드의 제1 추정 양자화된 값을 결정하는 단계, 제2 당사자에 의해 추정된 교환대상 그래프 노드의 제2 추정 양자화된 값을 결정하는 단계, 제1 추정 양자화된 값 및 제2 추정 양자화된 값에 따라, 교환대상 그래프 노드로 교환하기 위한 제1 양자화된 값을 결정하는 단계, 교환대상 그래프 노드 및 결정된 제1 양자화된 값을 컴퓨팅 노드와 또 다른 컴퓨팅 노드 사이에서 교환하는 단계.
한 실시예에서, 컴퓨터 프로그램이 프로세서로 하여금 제1 당사자에 의해 추정된 교환대상 그래프 노드의 제1 추정 양자화된 값을 결정하는 단계를 수행하게 할 때, 다음과 같은 단계가 수행될 수 있다: 하기 공식에 따라 제1 추정 양자화된 값을 계산하는 단계:
여기서, 는 교환대상 그래프 노드를 나타내고, k는 제1 당사자를 나타내고, 는 교환대상 그래프 노드에 대해 제1 당사자에 의해 획득된 제1 추정 양자화된 값을 나타내고, 는 교환대상 그래프 노드의 제3 양자화된 값을 나타내고, 는 교환대상 그래프 노드의 제2 양자화된 값을 나타내고, 는 제1 당사자 k에서의 그래프 노드들의 평균 제3 양자화된 값을 나타내고, 는 제1 당사자 k에서의 그래프 노드들의 평균 제2 양자화된 값을 나타내고, α 및 β는 시스템 파라미터이고, e는 자연 상수이다.
한 실시예에서, 컴퓨터 프로그램이 프로세서로 하여금 제2 당사자에 의해 추정된 교환대상 그래프 노드의 제2 추정 양자화된 값을 결정하는 단계를 수행하게 할 때, 다음과 같은 단계가 수행될 수 있다: 하기 공식에 따라 제2 추정 양자화된 값을 계산하는 단계:
여기서, 는 교환대상 그래프 노드를 나타내고, l은 제2 당사자를 나타내고, 는 제2 당사자에 의해 추정된 교환대상 그래프 노드의 제2 추정 양자화된 값을 나타내고, 는 교환대상 그래프 노드의 제3 양자화된 값을 나타내고, 는 제2 당사자 l에서의 그래프 노드 j와 교환대상 그래프 노드 i 사이의 통신 거리의 합을 나타낸다.
한 실시예에서, 컴퓨터 프로그램이 프로세서로 하여금 교환대상 그래프 노드로 교환하는 제2 당사자의 그래프 노드와 교환대상 그래프 노드 사이의 통신 거리를 결정하는 단계를 수행하게 할 때, 다음과 같은 단계가 수행될 수 있다: 하기 공식에 따라 통신 거리를 계산하는 단계:
여기서, 는 제2 당사자 l에서의 그래프 노드 j와 교환대상 그래프 노드 i 사이의 통신 거리를 나타내고, 는, 그래프 노드 j가 에지를 통해 그래프 노드 i에 접속되어 있다는 것을 의미하고, 는 그래프 노드 j와 그래프 노드 i 사이에 에지가 없다는 것을 의미한다.
컴퓨터 디바이스는 처리대상 그래프 데이터를 복수의 서브그래프 데이터로 분할하고, 복수의 서브그래프 데이터에 관해 분산형 처리를 수행함으로써, 그래프 데이터 처리 효율을 크게 향상시킨다. 제1 양자화된 값, 제2 양자화된 값, 제3 양자화된 값이 별개로 획득되고, 제2 양자화된 값 및 제3 양자화된 값이 평형 조건을 충족하지 못할 때, 컴퓨팅 노드와 또 다른 컴퓨팅 노드 사이에서 그래프 노드 및 제1 양자화된 값이 교환된다. 제1 양자화된 값 및 제2 양자화된 값은 컴퓨팅 노드의 컴퓨팅 용량을 측정할 수 있고, 제3 양자화된 값은 컴퓨팅 노드의 부하 상태를 측정할 수 있다. 이러한 방식으로, 단위 컴퓨팅 태스크에 대응하는 양자화된 값을 이용함으로써 컴퓨팅 노드의 컴퓨팅 용량 및 부하 상태가 정량적으로 표시될 수 있고, 이것은 정확하고 직관적이다. 그래프 노드 및 제1 양자화된 값이 컴퓨팅 노드와 또 다른 컴퓨팅 노드 사이에서 교환되어, 제2 양자화된 값 및 제3 양자화된 값이 평형 조건을 충족하도록 유지한다. 이러한 방식으로, 태스크 할당을 위해 특정한 서버 또는 노드에 의존하는 것 대신에, 컴퓨팅 노드들은 서로 협력하여 그래프 노드를 할당하고 할당을 동적으로 조정하여, 자체-조직화된 부하 밸런싱을 구현하고 단일 지점 장애 및 특정한 서버의 네트워크 정체의 문제를 회피함으로써, 태스크 스케줄링 효율을 크게 향상시킨다. 또한, 이러한 자체-조직화된 동적 태스크 스케줄링 방법은 대규모 클러스터의 컴퓨팅 태스크 스케줄링에 맞게 적합화 수 있으며, 컴퓨팅 노드 수량의 동적 증가 또는 감소는 기존 컴퓨팅 태스크에 영향을 미치지 않으므로 높은 확장성이 달성될 수 있다.
컴퓨터 프로그램을 저장한 컴퓨터 판독가능한 저장 매체가 제공되고, 컴퓨터 프로그램은, 프로세서에 의해 실행될 때, 프로세서로 하여금 다음과 같은 단계들을 구현하게 한다: 처리대상 그래프 데이터로부터 분할된 서브그래프 데이터를 획득하는 단계, 서브그래프 데이터 내의 그래프 노드에 대한 단위 컴퓨팅 태스크를 수행하는 단계, 제1 양자화된 값을 획득하는 단계 - 제1 양자화된 값은, 완료된 단위 컴퓨팅 태스크에 대응하는 데이터가 블록체인 데이터로 형성되는 경우 완료된 단위 컴퓨팅 태스크에 대응하는 양자화된 값임 -, 제2 양자화된 값을 획득하는 단계 - 제2 양자화된 값은 완료된 단위 컴퓨팅 태스크에 대응하는 데이터가 블록체인 데이터로 형성되지 않는 경우 완료된 단위 컴퓨팅 태스크에 대응하는 양자화된 값임 -, 서브그래프 데이터 내의 미완료 단위 컴퓨팅 태스크에 대응하는 제3 양자화된 값을 결정하는 단계, 및 제2 양자화된 값 및 제3 양자화된 값이 평형 조건을 충족하지 못하는 경우 그래프 노드 및 제1 양자화된 값을 또 다른 컴퓨팅 노드와 교환하는 단계.
한 실시예에서, 컴퓨터 프로그램이 프로세서로 하여금 처리대상 그래프 데이터로부터 분할된 서브그래프 데이터를 획득하는 단계를 수행하게 할 때, 다음과 같은 단계들이 수행될 수 있다: 그래프 데이터에 대응하고 블록체인 네트워크에서 브로드캐스트되는 태스크 정보를 획득하는 단계, 및 태스크 정보에 따라, 태스크-실행가능한 파일 및 그래프 데이터로부터 분할된 서브그래프 데이터를 판독하는 단계. 컴퓨터 프로그램이 프로세서로 하여금 서브그래프 데이터 내의 그래프 노드에 대한 단위 컴퓨팅 태스크를 수행하는 단계를 수행하게 할 때, 다음과 같은 단계가 수행될 수 있다: 서브그래프 데이터에 따라 태스크-실행가능한 파일을 실행하는 단계 - 태스크-실행가능한 파일은 서브그래프 데이터 내의 그래프 노드에 대한 단위 컴퓨팅 태스크를 표시하는데 이용됨 -.
한 실시예에서, 컴퓨터 프로그램이 프로세서로 하여금 제1 양자화된 값을 획득하는 단계를 수행하게 할 때, 다음과 같은 단계들이 수행될 수 있다: 완료된 단위 컴퓨팅 태스크에 대응하는 전역적 컴퓨팅 데이터를 새로운 블록에 기입하는 단계, 새로운 블록이 블록체인 네트워크에 의해 검증된 후, 새로운 블록을 블록체인 네트워크에 추가하여 블록체인 데이터를 형성하는 단계, 및 기입된 전역적 컴퓨팅 데이터에 대응하는 단위 컴퓨팅 태스크에 대응하는 제1 양자화된 값을 생성하는 단계.
한 실시예에서, 컴퓨터 프로그램이 프로세서로 하여금 제2 양자화된 값을 획득하는 단계를 수행하게 할 때, 다음과 같은 단계들이 수행될 수 있다: 전역적 컴퓨팅 데이터가 새로운 블록에 기입되기 전에 획득되는 이력 제2 양자화된 값을 획득하는 단계 - 이력 제2 양자화된 값은, 전역적 컴퓨팅 데이터가 새로운 블록에 기입되기 전에 블록체인 데이터를 형성하지 않는 완료된 단위 컴퓨팅 태스크에 대응함 -, 및 이력 제2 양자화된 값으로부터 제1 양자화된 값을 차감하여 제2 양자화된 값을 획득하는 단계.
한 실시예에서, 컴퓨터 프로그램이 프로세서로 하여금 서브그래프 데이터 내의 미완료 단위 컴퓨팅 태스크에 대응하는 제3 양자화된 값을 결정하는 단계를 수행하게 할 때, 다음과 같은 단계들이 수행될 수 있다: 블록체인 네트워크로부터 최신의 전역적 컴퓨팅 데이터를 획득하는 단계, 완료된 단위 컴퓨팅 태스크에 대응하는 국지적 컴퓨팅 데이터를 획득하는 단계, 및 서브그래프 데이터, 완료된 단위 컴퓨팅 태스크의 수량, 전역적 컴퓨팅 데이터, 및 국지적 컴퓨팅 데이터에 따라, 제3 양자화된 값을 결정하는 단계.
한 실시예에서, 컴퓨터 프로그램은 추가로, 프로세서로 하여금 다음과 같은 단계들을 수행하게 한다: 서브그래프 데이터의 현재의 제2 양자화된 값들의 제1 합을 획득하는 단계, 서브그래프 데이터의 현재의 제3 양자화된 값들의 제2 합을 획득하는 단계, 제1 합에 대한 제2 합의 대비 값을 결정하는 단계, 및 대비 값이 명시된 범위를 벗어나는 경우 제2 양자화된 값 및 제3 양자화된 값이 평형 조건을 충족하지 못한다고 결정하는 단계.
한 실시예에서, 컴퓨터 프로그램이 프로세서로 하여금 제1 합에 대한 제2 합의 대비 값을 결정하는 단계를 수행하게 할 때, 다음과 같은 단계가 수행될 수 있다: 하기 공식에 따라 대비 값을 계산하는 단계:
한 실시예에서, 컴퓨터 프로그램이 프로세서로 하여금 그래프 노드 및 제1 양자화된 값을 또 다른 컴퓨팅 노드와 교환하는 단계를 수행하게 할 때, 다음과 같은 단계들이 수행될 수 있다: 대비 값이 명시된 범위의 최소 값보다 작은 경우 제1 양자화된 값을 또 다른 컴퓨팅 노드의 대응하는 그래프 노드와 교환하는 단계 - 교환 이후의 대비 값은 명시된 범위 내에 있음 -, 및 대비 값이 명시된 범위의 최대 값보다 큰 경우 그래프 노드를 또 다른 컴퓨팅 노드의 제1 양자화된 값으로 교환하는 단계 - 교환 이후의 대비 값은 명시된 범위 내에 있음 -.
한 실시예에서, 컴퓨터 프로그램이 프로세서로 하여금 그래프 노드 및 제1 양자화된 값을 또 다른 컴퓨팅 노드와 교환하는 단계를 수행하게 할 때, 다음과 같은 단계들이 수행될 수 있다: 컴퓨팅 노드 및 또 다른 컴퓨팅 노드로부터, 교환대상 그래프 노드를 제공하는 제1 당사자 및 교환대상 그래프 노드로 교환하는 제2 당사자를 결정하는 단계, 제1 당사자에 의해 추정된 교환대상 그래프 노드의 제1 추정 양자화된 값을 결정하는 단계, 제2 당사자에 의해 추정된 교환대상 그래프 노드의 제2 추정 양자화된 값을 결정하는 단계, 제1 추정 양자화된 값 및 제2 추정 양자화된 값에 따라, 교환대상 그래프 노드로 교환하기 위한 제1 양자화된 값을 결정하는 단계, 교환대상 그래프 노드 및 결정된 제1 양자화된 값을 컴퓨팅 노드와 또 다른 컴퓨팅 노드 사이에서 교환하는 단계.
한 실시예에서, 컴퓨터 프로그램이 프로세서로 하여금 제1 당사자에 의해 추정된 교환대상 그래프 노드의 제1 추정 양자화된 값을 결정하는 단계를 수행하게 할 때, 다음과 같은 단계가 수행될 수 있다: 하기 공식에 따라 제1 추정 양자화된 값을 계산하는 단계:
여기서, 는 교환대상 그래프 노드를 나타내고, k는 제1 당사자를 나타내고, 는 교환대상 그래프 노드에 대해 제1 당사자에 의해 획득된 제1 추정 양자화된 값을 나타내고, 는 교환대상 그래프 노드의 제3 양자화된 값을 나타내고, 는 교환대상 그래프 노드의 제2 양자화된 값을 나타내고, 는 제1 당사자 k에서의 그래프 노드들의 평균 제3 양자화된 값을 나타내고, 는 제1 당사자 k에서의 그래프 노드들의 평균 제2 양자화된 값을 나타내고, α 및 β는 시스템 파라미터이고, e는 자연 상수이다.
한 실시예에서, 컴퓨터 프로그램이 프로세서로 하여금 제2 당사자에 의해 추정된 교환대상 그래프 노드의 제2 추정 양자화된 값을 결정하는 단계를 수행하게 할 때, 다음과 같은 단계가 형성될 수 있다: 하기 공식에 따라 제2 추정 양자화된 값을 계산하는 단계:
여기서, 는 교환대상 그래프 노드를 나타내고, l은 제2 당사자를 나타내고, 는 제2 당사자에 의해 추정된 교환대상 그래프 노드의 제2 추정 양자화된 값을 나타내고, 는 교환대상 그래프 노드의 제3 양자화된 값을 나타내고, 는 제2 당사자 l에서의 그래프 노드 j와 교환대상 그래프 노드 i 사이의 통신 거리의 합을 나타낸다.
한 실시예에서, 컴퓨터 프로그램이 프로세서로 하여금 교환대상 그래프 노드로 교환하는 제2 당사자의 그래프 노드와 교환대상 그래프 노드 사이의 통신 거리를 결정하는 단계를 수행하게 할 때, 다음과 같은 단계가 수행될 수 있다: 하기 공식에 따라 통신 거리를 계산하는 단계:
여기서, 는 제2 당사자 l에서의 그래프 노드 j와 교환대상 그래프 노드 i 사이의 통신 거리를 나타내고, 는, 그래프 노드 j가 에지를 통해 그래프 노드 i에 접속되어 있다는 것을 의미하고, 는 그래프 노드 j와 그래프 노드 i 사이에 에지가 없다는 것을 의미한다.
컴퓨터 판독가능한 저장 매체에 의해, 처리대상 그래프 데이터는 복수의 서브그래프 데이터로 분할되고, 복수의 서브그래프 데이터에 관해 분산형 처리가 수행됨으로써, 그래프 데이터 처리 효율을 크게 향상시킨다. 제1 양자화된 값, 제2 양자화된 값, 제3 양자화된 값이 별개로 획득되고, 제2 양자화된 값 및 제3 양자화된 값이 평형 조건을 충족하지 못할 때, 컴퓨팅 노드와 또 다른 컴퓨팅 노드 사이에서 그래프 노드 및 제1 양자화된 값이 교환된다. 제1 양자화된 값 및 제2 양자화된 값은 컴퓨팅 노드의 컴퓨팅 용량을 측정할 수 있고, 제3 양자화된 값은 컴퓨팅 노드의 부하 상태를 측정할 수 있다. 이러한 방식으로, 단위 컴퓨팅 태스크에 대응하는 양자화된 값을 이용함으로써 컴퓨팅 노드의 컴퓨팅 용량 및 부하 상태가 정량적으로 표시될 수 있고, 이것은 정확하고 직관적이다. 그래프 노드 및 제1 양자화된 값이 컴퓨팅 노드와 또 다른 컴퓨팅 노드 사이에서 교환되어, 제2 양자화된 값 및 제3 양자화된 값이 평형 조건을 충족하도록 유지한다. 이러한 방식으로, 태스크 할당을 위해 특정한 서버 또는 노드에 의존하는 것 대신에, 컴퓨팅 노드들은 서로 협력하여 그래프 노드를 할당하고 할당을 동적으로 조정하여, 자체-조직화된 부하 밸런싱을 구현하고 단일 지점 장애 및 특정한 서버의 네트워크 정체 문제를 회피함으로써, 태스크 스케줄링 효율을 크게 향상시킨다. 또한, 이러한 자체-조직화된 동적 태스크 스케줄링 방법은 대규모 클러스터의 컴퓨팅 태스크 스케줄링에 맞게 적합화 수 있으며, 컴퓨팅 노드 수량의 동적 증가 또는 감소는 기존 컴퓨팅 태스크에 영향을 미치지 않으므로 높은 확장성이 달성될 수 있다.
통상의 기술자라면, 실시예들의 단계들의 전부 또는 일부는 하드웨어 또는 관련 하드웨어에게 명령하는 프로그램에 의해 구현될 수 있다는 것을 이해할 수 있을 것이다. 이 프로그램은 컴퓨터 판독가능한 저장 매체에 저장될 수 있다. 저장 매체는 ROM(read-only memory), 자기 디스크 또는 광 디스크일 수 있다.
전술된 설명은 본 출원의 예시적인 실시예일뿐, 본 출원을 제한하려는 의도는 아니다. 본 출원의 사상 및 원리로부터 벗어나지 않고 이루어진 임의의 수정, 균등한 대체, 또는 개선은 본 출원의 보호 범위 내에 든다.
Claims (28)
- 컴퓨팅 노드에 적용되는, 그래프 데이터 기반의 태스크 스케줄링 방법으로서,
처리대상(to-be-processed) 그래프 데이터로부터 분할된 서브그래프 데이터를 획득하는 단계;
상기 서브그래프 데이터 내의 그래프 노드에 대한 단위 컴퓨팅 태스크(unit computing task)를 수행하는 단계;
제1 양자화된 값을 획득하는 단계 - 상기 제1 양자화된 값은 완료된 단위 컴퓨팅 태스크에 대응하는 데이터가 블록체인 데이터로 형성되는 경우 상기 완료된 단위 컴퓨팅 태스크에 대응하는 양자화된 값임 -;
제2 양자화된 값을 획득하는 단계 - 상기 제2 양자화된 값은 상기 완료된 단위 컴퓨팅 태스크에 대응하는 데이터가 블록체인 데이터로 형성되지 않은 경우 상기 완료된 단위 컴퓨팅 태스크에 대응하는 양자화된 값임 -;
상기 서브그래프 데이터 내의 미완료 단위 컴퓨팅 태스크에 대응하는 제3 양자화된 값을 결정하는 단계; 및
상기 제2 양자화된 값 및 상기 제3 양자화된 값이 평형 조건을 충족하지 못하는 경우 상기 그래프 노드와 상기 제1 양자화된 값을 또 다른 컴퓨팅 노드와 교환하는 단계
를 포함하는, 방법. - 제1항에 있어서, 상기 처리대상 그래프 데이터로부터 분할된 서브그래프 데이터를 획득하는 단계는,
상기 그래프 데이터에 대응하고 블록체인 네트워크에서 브로드캐스트되는 태스크 정보를 획득하는 단계; 및
상기 태스크 정보에 따라, 태스크-실행가능한 파일 및 상기 그래프 데이터로부터 분할된 서브그래프 데이터를 판독하는 단계
를 포함하고,
상기 서브그래프 데이터 내의 그래프 노드에 대한 단위 컴퓨팅 태스크를 수행하는 단계는,
상기 서브그래프 데이터에 따라 상기 태스크-실행가능한 파일을 실행하는 단계를 포함하고, 상기 태스크-실행가능한 파일은 상기 서브그래프 데이터 내의 상기 그래프 노드에 대한 상기 단위 컴퓨팅 태스크를 표시하는데 이용되는, 방법. - 제1항에 있어서, 상기 제1 양자화된 값을 획득하는 단계는,
상기 완료된 단위 컴퓨팅 태스크에 대응하는 전역적 컴퓨팅 데이터를 새로운 블록에 기입하는 단계; 및
상기 새로운 블록이 블록체인 네트워크에 의해 검증된 후, 상기 새로운 블록을 상기 블록체인 네트워크에 추가하여 블록체인 데이터를 형성하고, 상기 기입된 전역적 컴퓨팅 데이터에 대응하는 상기 단위 컴퓨팅 태스크에 대응하는 상기 제1 양자화된 값을 생성하는 단계
를 포함하는, 방법. - 제3항에 있어서, 상기 제2 양자화된 값을 획득하는 단계는,
상기 전역적 컴퓨팅 데이터가 상기 새로운 블록에 기입되기 전에 획득되는 이력 제2 양자화된 값을 획득하는 단계 - 상기 이력 제2 양자화된 값은 상기 전역적 컴퓨팅 데이터가 상기 새로운 블록에 기입되기 전에 블록체인 데이터를 형성하지 않는 완료된 단위 컴퓨팅 태스크에 대응함 -; 및
상기 제2 양자화된 값을 획득하기 위해, 상기 이력 제2 양자화된 값으로부터 상기 제1 양자화된 값을 차감하는 단계
를 포함하는, 방법. - 제1항에 있어서, 상기 서브그래프 데이터 내의 미완료 단위 컴퓨팅 태스크에 대응하는 제3 양자화된 값을 결정하는 단계는,
블록체인 네트워크로부터 최신의 전역적 컴퓨팅 데이터를 획득하는 단계;
상기 완료된 단위 컴퓨팅 태스크에 대응하는 국지적 컴퓨팅 데이터를 획득하는 단계; 및
상기 서브그래프 데이터, 상기 완료된 단위 컴퓨팅 태스크들의 수량, 상기 전역적 컴퓨팅 데이터, 및 상기 국지적 컴퓨팅 데이터에 따라 상기 제3 양자화된 값을 결정하는 단계
를 포함하는, 방법. - 제1항에 있어서,
상기 서브그래프 데이터의 현재의 제2 양자화된 값들의 제1 합을 획득하는 단계;
상기 서브그래프 데이터의 현재의 제3 양자화된 값들의 제2 합을 획득하는 단계;
상기 제1 합에 대한 상기 제2 합의 대비 값을 결정하는 단계; 및
상기 대비 값이 명시된 범위를 벗어난 경우 상기 제2 양자화된 값 및 상기 제3 양자화된 값이 평형 조건을 충족하지 못한다고 결정하는 단계
를 더 포함하는, 방법. - 제6항에 있어서, 상기 그래프 노드 및 상기 제1 양자화된 값을 또 다른 컴퓨팅 노드와 교환하는 단계는,
상기 대비 값이 상기 명시된 범위의 최소 값보다 작은 경우, 상기 제1 양자화된 값을 상기 또 다른 컴퓨팅 노드의 그래프 노드로 교환하는 단계 - 상기 교환 후의 상기 대비 값은 상기 명시된 범위 내에 있음 -; 및
상기 대비 값이 상기 명시된 범위의 최대 값보다 큰 경우, 상기 그래프 노드를 상기 또 다른 컴퓨팅 노드의 제1 양자화된 값으로 교환하는 단계 - 상기 교환 후의 상기 대비 값은 상기 명시된 범위 내에 있음 -
를 포함하는, 방법. - 제1항 내지 제9항 중 어느 한 항에 있어서, 상기 그래프 노드 및 상기 제1 양자화된 값을 또 다른 컴퓨팅 노드와 교환하는 단계는,
상기 컴퓨팅 노드 및 상기 또 다른 컴퓨팅 노드로부터, 교환대상 그래프 노드를 제공하는 제1 당사자 및 상기 교환대상 그래프 노드로 교환하는 제2 당사자를 결정하는 단계;
상기 제1 당사자에 의해 추정된 상기 교환대상 그래프 노드의 제1 추정 양자화된 값을 결정하는 단계;
상기 제2 당사자에 의해 추정된 상기 교환대상 그래프 노드의 제2 추정 양자화된 값을 결정하는 단계;
상기 제1 추정 양자화된 값 및 상기 제2 추정 양자화된 값에 따라, 상기 교환대상 그래프 노드로 교환하기 위한 상기 제1 양자화된 값을 결정하는 단계; 및
상기 교환대상 그래프 노드 및 상기 결정된 제1 양자화된 값을 상기 컴퓨팅 노드와 상기 또 다른 컴퓨팅 노드 사이에서 교환하는 단계
를 포함하는, 방법. - 제10항에 있어서, 상기 제1 당사자에 의해 추정된 상기 교환대상 그래프 노드의 제1 추정 양자화된 값을 결정하는 단계는,
하기 공식에 따라 상기 제1 추정 양자화된 값을 계산하는 단계를 포함하고:
는 상기 교환대상 그래프 노드를 나타내고, k는 상기 제1 당사자를 나타내고, 는 상기 제1 당사자에 의해 추정된 상기 교환대상 그래프 노드의 제1 추정 양자화된 값을 나타내고, 는 상기 교환대상 그래프 노드의 제3 양자화된 값을 나타내고, 는 상기 교환대상 그래프 노드의 제2 양자화된 값을 나타내고, 는 상기 제1 당사자 k에서의 그래프 노드들의 평균 제3 양자화된 값을 나타내고, 는 상기 제1 당사자 k에서의 그래프 노드들의 평균 제2 양자화된 값을 나타내고, α 및 β는 시스템 파라미터들이고, e는 자연 상수인, 방법. - 제10항에 있어서, 상기 제2 당사자에 의해 추정된 상기 교환대상 그래프 노드의 제2 추정 양자화된 값을 결정하는 단계는,
하기 공식에 따라 상기 제2 추정 양자화된 값을 계산하는 단계를 포함하고:
는 상기 교환대상 그래프 노드를 나타내고, l은 상기 제2 당사자를 나타내고, 는 상기 제2 당사자에 의해 추정된 상기 교환대상 그래프 노드의 제2 추정 양자화된 값을 나타내고, 는 상기 교환대상 그래프 노드의 제3 양자화된 값을 나타내고, 는 상기 제2 당사자 l에서의 그래프 노드 j와 상기 교환대상 그래프 노드 i 사이의 통신 거리의 합을 나타내는, 방법. - 그래프 데이터 기반의 태스크 스케줄링 장치로서,
처리대상 그래프 데이터로부터 분할된 서브그래프 데이터를 획득하도록 구성된 획득 모듈;
상기 획득 모듈에 의해 획득된 상기 서브그래프 데이터 내의 그래프 노드에 대한 단위 컴퓨팅 태스크를 수행하도록 구성된 실행 모듈
- 상기 획득 모듈은 제1 양자화된 값을 획득하도록 추가로 구성되고, 상기 제1 양자화된 값은 완료된 단위 컴퓨팅 태스크에 대응하는 데이터가 블록체인 데이터로 형성되는 경우 상기 완료된 단위 컴퓨팅 태스크에 대응하는 양자화된 값이며;
상기 획득 모듈은 제2 양자화된 값을 획득하도록 추가로 구성되고, 상기 제2 양자화된 값은 상기 완료된 단위 컴퓨팅 태스크에 대응하는 데이터가 블록체인 데이터로 형성되지 않은 경우 상기 완료된 단위 컴퓨팅 태스크에 대응하는 양자화된 값임 -;
상기 서브그래프 데이터 내의 미완료 단위 컴퓨팅 태스크에 대응하는 제3 양자화된 값을 결정하도록 구성된 결정 모듈; 및
상기 획득 모듈에 의해 획득된 상기 제2 양자화된 값 및 상기 결정 모듈에 의해 획득된 상기 제3 양자화된 값이 평형 조건을 충족하지 못한 경우 상기 그래프 노드 및 상기 제1 양자화된 값을 또 다른 컴퓨팅 노드와 교환하도록 구성된 교환 모듈
을 포함하는, 장치. - 메모리 및 프로세서를 포함하는 컴퓨터 디바이스로서, 상기 메모리는 컴퓨터 프로그램을 저장하며, 상기 컴퓨터 프로그램은, 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 제1항 내지 제9항 중 어느 한 항에 따른 그래프 데이터 기반의 태스크 스케줄링 방법을 수행하게 하는, 컴퓨터 디바이스.
- 컴퓨터 판독가능한 저장 매체로서, 상기 저장 매체는 적어도 하나의 명령어, 적어도 하나의 프로그램, 코드 세트, 또는 명령어 세트를 저장하고, 상기 적어도 하나의 명령어, 상기 적어도 하나의 프로그램, 상기 코드 세트 또는 상기 명령어 세트는 프로세서에 의해 로딩되고 실행되어 제1항 내지 제9항 중 어느 한 항에 따른 그래프 데이터 기반의 태스크 스케줄링 방법을 구현하는, 컴퓨터 판독가능한 저장 매체.
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810466739.X | 2018-05-16 | ||
CN201810466739.XA CN108681482B (zh) | 2018-05-16 | 2018-05-16 | 基于图数据的任务调度方法和装置 |
PCT/CN2019/080122 WO2019218778A1 (zh) | 2018-05-16 | 2019-03-28 | 基于图数据的任务调度方法、装置、存储介质和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200142070A KR20200142070A (ko) | 2020-12-21 |
KR102499076B1 true KR102499076B1 (ko) | 2023-02-14 |
Family
ID=63806564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020207032964A KR102499076B1 (ko) | 2018-05-16 | 2019-03-28 | 그래프 데이터 기반의 태스크 스케줄링 방법, 디바이스, 저장 매체 및 장치 |
Country Status (7)
Country | Link |
---|---|
US (1) | US11734060B2 (ko) |
EP (1) | EP3796166B1 (ko) |
JP (1) | JP7061693B2 (ko) |
KR (1) | KR102499076B1 (ko) |
CN (1) | CN108681482B (ko) |
SG (1) | SG11202010908TA (ko) |
WO (1) | WO2019218778A1 (ko) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108681482B (zh) * | 2018-05-16 | 2020-12-01 | 腾讯科技(深圳)有限公司 | 基于图数据的任务调度方法和装置 |
CN109542602B (zh) * | 2018-11-20 | 2021-05-11 | 苏州朗润创新知识产权运营有限公司 | 一种基于区块链的分布式任务处理方法、装置及系统 |
CN111400521B (zh) * | 2020-02-28 | 2022-06-07 | 苏州浪潮智能科技有限公司 | 一种图数据处理方法、装置、设备、介质 |
CN111400555B (zh) * | 2020-03-05 | 2023-09-26 | 湖南大学 | 图数据查询任务处理方法、装置、计算机设备和存储介质 |
US11875357B2 (en) * | 2020-07-09 | 2024-01-16 | Mastercard International Incorporated | Method and system of using miner commitment to reward proofs |
WO2022146031A1 (en) * | 2020-12-29 | 2022-07-07 | Samsung Electronics Co., Ltd. | Method and device of computing layout selection for efficient dnn inference |
CN112990332B (zh) * | 2021-03-26 | 2023-06-02 | 杭州海康威视数字技术股份有限公司 | 一种子图规模预测和分布式训练方法、装置及电子设备 |
CN113114790B (zh) * | 2021-06-10 | 2021-09-14 | 武汉研众科技有限公司 | 一种基于区块链与边缘计算的负载均衡方法与系统 |
CN113360269A (zh) * | 2021-06-29 | 2021-09-07 | 平安普惠企业管理有限公司 | 一种任务分配方法、装置、服务器及存储介质 |
CN113434273B (zh) * | 2021-06-29 | 2022-12-23 | 平安科技(深圳)有限公司 | 数据处理方法、装置、系统及存储介质 |
CN116541407B (zh) * | 2023-07-07 | 2023-10-10 | 之江实验室 | 一种数据处理的方法、装置、存储介质及电子设备 |
CN117291273B (zh) * | 2023-11-24 | 2024-02-13 | 合肥微观纪元数字科技有限公司 | 量子计算区块链系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150227586A1 (en) * | 2014-02-07 | 2015-08-13 | Futurewei Technologies, Inc. | Methods and Systems for Dynamically Allocating Resources and Tasks Among Database Work Agents in an SMP Environment |
US20170109207A1 (en) | 2014-06-27 | 2017-04-20 | Huawei Technologies Co., Ltd. | Data mining method and node |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8510538B1 (en) * | 2009-04-13 | 2013-08-13 | Google Inc. | System and method for limiting the impact of stragglers in large-scale parallel data processing |
US8972378B2 (en) * | 2012-10-22 | 2015-03-03 | Microsoft Corporation | Formulating global statistics for distributed databases |
WO2014102996A1 (ja) | 2012-12-28 | 2014-07-03 | 株式会社日立製作所 | 情報処理システム |
CN103631657B (zh) * | 2013-11-19 | 2017-08-25 | 浪潮电子信息产业股份有限公司 | 一种基于MapReduce的任务调度方法 |
US10121019B2 (en) * | 2015-06-02 | 2018-11-06 | ALTR Solutions, Inc. | Storing differentials of files in a distributed blockchain |
US10366204B2 (en) | 2015-08-03 | 2019-07-30 | Change Healthcare Holdings, Llc | System and method for decentralized autonomous healthcare economy platform |
CN105590321B (zh) * | 2015-12-24 | 2018-12-28 | 华中科技大学 | 一种基于块的子图构建及分布式图处理方法 |
CN106033476B (zh) * | 2016-05-19 | 2019-07-23 | 西安交通大学 | 一种云计算环境中分布式计算模式下的增量式图计算方法 |
CN106777351B (zh) * | 2017-01-17 | 2019-08-09 | 中国人民解放军国防科学技术大学 | 基于art树分布式系统图存储计算系统及其方法 |
CN111030802B (zh) * | 2018-05-16 | 2020-12-29 | 腾讯科技(深圳)有限公司 | 图数据的计算任务发布方法、装置、设备和存储介质 |
CN108681482B (zh) * | 2018-05-16 | 2020-12-01 | 腾讯科技(深圳)有限公司 | 基于图数据的任务调度方法和装置 |
-
2018
- 2018-05-16 CN CN201810466739.XA patent/CN108681482B/zh active Active
-
2019
- 2019-03-28 SG SG11202010908TA patent/SG11202010908TA/en unknown
- 2019-03-28 KR KR1020207032964A patent/KR102499076B1/ko active IP Right Grant
- 2019-03-28 WO PCT/CN2019/080122 patent/WO2019218778A1/zh unknown
- 2019-03-28 JP JP2020564236A patent/JP7061693B2/ja active Active
- 2019-03-28 EP EP19803567.7A patent/EP3796166B1/en active Active
-
2020
- 2020-09-01 US US17/009,342 patent/US11734060B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150227586A1 (en) * | 2014-02-07 | 2015-08-13 | Futurewei Technologies, Inc. | Methods and Systems for Dynamically Allocating Resources and Tasks Among Database Work Agents in an SMP Environment |
US20170109207A1 (en) | 2014-06-27 | 2017-04-20 | Huawei Technologies Co., Ltd. | Data mining method and node |
Also Published As
Publication number | Publication date |
---|---|
SG11202010908TA (en) | 2020-12-30 |
EP3796166A4 (en) | 2021-06-16 |
CN108681482A (zh) | 2018-10-19 |
KR20200142070A (ko) | 2020-12-21 |
JP7061693B2 (ja) | 2022-04-28 |
EP3796166A1 (en) | 2021-03-24 |
EP3796166B1 (en) | 2024-03-06 |
WO2019218778A1 (zh) | 2019-11-21 |
US11734060B2 (en) | 2023-08-22 |
US20200401445A1 (en) | 2020-12-24 |
JP2021524100A (ja) | 2021-09-09 |
CN108681482B (zh) | 2020-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102499076B1 (ko) | 그래프 데이터 기반의 태스크 스케줄링 방법, 디바이스, 저장 매체 및 장치 | |
KR102485652B1 (ko) | 그래프 데이터 처리 방법, 그래프 데이터 계산 태스크들을 공개하는 방법 및 디바이스, 저장 매체 및 컴퓨터 장치 | |
Salem et al. | An artificial bee colony algorithm for data replication optimization in cloud environments | |
US10680975B2 (en) | Method of dynamic resource allocation for public clouds | |
CN107450855B (zh) | 一种用于分布式存储的模型可变的数据分布方法及系统 | |
Kim et al. | Prediction based sub-task offloading in mobile edge computing | |
CN113037800B (zh) | 作业调度方法以及作业调度装置 | |
Saravanan et al. | Enhancing investigations in data migration and security using sequence cover cat and cover particle swarm optimization in the fog paradigm | |
US7886055B1 (en) | Allocating resources in a system having multiple tiers | |
CN106933882B (zh) | 一种大数据增量计算方法和装置 | |
CN116737370A (zh) | 一种多资源调度方法、系统、存储介质及终端 | |
CN114741029A (zh) | 应用于去重存储系统的数据分配方法及相关设备 | |
CN106209975B (zh) | 一种跨数据中心云计算系统的资源供给方法 | |
Trabelsi et al. | Application topology definition and tasks mapping for efficient use of heterogeneous resources | |
CN114581223B (zh) | 分配任务处理方法、设备、分布式计算系统及存储介质 | |
Mostafavi Amjad et al. | Locality-aware virtual machine placement based on similarity properties in mobile edge computing | |
Grady et al. | A distributed approach for calculating inundation height based on Dijkstra's algorithm | |
WO2017028930A1 (en) | Methods and apparatus for running an analytics function | |
Kaur et al. | PaF & MbOTS: Novel Task Scheduling Strategies for Fog Computing Environment | |
CN116744369A (zh) | 一种边云协同服务放置和工作负载调度方法及装置 | |
Pasdar | A data placement approach for scientific workflow execution in hybrid clouds | |
CN115509733A (zh) | 数据迁移方法、装置、计算机设备和存储介质 | |
CN118740853A (zh) | 一种区块链分片模型的负载均衡方法及装置 | |
CN118869698A (zh) | 云流量调度方法、装置、设备、介质及计算机程序产品 | |
US20170149691A1 (en) | Latency reduction with pre-moving of distributed data and adaptive allocating of compute operations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |