KR20190056624A - 분산환경에서의 cda 프로토콜을 활용한 자원할당방법 및 이를 적용한 기록매체 및 분산처리장치 - Google Patents

분산환경에서의 cda 프로토콜을 활용한 자원할당방법 및 이를 적용한 기록매체 및 분산처리장치 Download PDF

Info

Publication number
KR20190056624A
KR20190056624A KR1020170153772A KR20170153772A KR20190056624A KR 20190056624 A KR20190056624 A KR 20190056624A KR 1020170153772 A KR1020170153772 A KR 1020170153772A KR 20170153772 A KR20170153772 A KR 20170153772A KR 20190056624 A KR20190056624 A KR 20190056624A
Authority
KR
South Korea
Prior art keywords
node
jobs
resource
received
distributed processing
Prior art date
Application number
KR1020170153772A
Other languages
English (en)
Other versions
KR102045125B1 (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 전자부품연구원
Priority to KR1020170153772A priority Critical patent/KR102045125B1/ko
Priority to US15/895,242 priority patent/US11093291B2/en
Publication of KR20190056624A publication Critical patent/KR20190056624A/ko
Application granted granted Critical
Publication of KR102045125B1 publication Critical patent/KR102045125B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1021Server selection for load balancing based on client or server locations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/503Resource availability

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

자원할당방법 및 이를 적용한 기록매체 및 분산처리장치가 제공된다. 본 자원할당방법에 따르면, 복수개의 제1 노드들로부터 복수개의 작업에 대한 정보가 수신되면, 수신된 복수개의 작업 별로 필요한 자원의 크기를 각각 산출하고, 제2 노드로부터 가용자원에 대한 정보가 수신되면, 산출된 작업별 필요 자원 크기에 기초하여 복수개의 작업 중 어느 하나를 해당 제2 노드의 가용자원에 할당할 수 있게 되어, 작업마다 필요한 자원 크기를 계산하고, 우선순위를 결정하여 동적으로 자원을 할당할 수 있게 되고, 분산 클러스터에 새로운 작업이 추가될 때, 잦은 전체 자원 재할당 오버헤드를 감소시킬 수 있게 된다. 또한, 분할된 작업의 특성상 입력 데이터가 저장되어 있는 노드의 네트워크 거리를 고려하여 처리 속도를 높일 수 있게 된다.

Description

분산환경에서의 CDA 프로토콜을 활용한 자원할당방법 및 이를 적용한 기록매체 및 분산처리장치 {Resource assignment method using Continuous Double Auction protocol in distributed processing environment, recording medium and distributed processing device applying the same}
본 발명은 자원할당방법 및 이를 적용한 기록매체 및 분산처리장치에 관한 것으로, 더욱 상세하게는, 분산환경에서의 CDA(Continuous Double Auction) 프로토콜을 활용한 자원할당방법 및 이를 적용한 기록매체 및 분산처리장치에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 실시 예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
현재 Hadoop, Spark와 같은 분산 처리 시스템이 FIFO(Firt In First Out), Fair 등의 스케줄링 알고리즘을 사용한다. FIFO는 가장 오래된 작업을 먼저 처리한다. 이는 작업의 우선순위를 고려하지 않고, 적은 부하를 가진 작업을 수행할 경우에 실용적이며 대용량 클러스터에는 적합하지 않다. 큰 부하를 가진 작업을 수행할 때는 클러스터의 모든 자원을 점유해버려 다른 작업은 대기 시간이 길어지는 문제가 있다. Fair는 작업당 자원을 가능한 균등하게 공유한다. 작업이 추가되면 새로운 작업에 자원이 재할당되어 모든 작업이 동일한 비율의 자원을 가지게 된다. 이는 수행할 작업이 많을 경우에 작업이 추가될 때 마다 이미 할당된 자원을 모두 재검토하고 재할당해야 하는 오버헤드를 발생시킨다. 이와 같이 기존에 사용하는 스케줄링 알고리즘은 각각의 작업이 필요로 하는 자원의 크기를 고려하지 않아 부하가 적은 작업에 과도한 자원을 할당하거나 상대적으로 부하가 큰 작업에 자원을 적게 할당하는 문제로 인해 전체적인 처리 속도 저하 문제 또는 잦은 전체 자원 재할당으로 인한 오버헤드 증가 문제가 발생한다.
이러한 현상으로 인해 클러스터에 자원이 충분해도 작업 처리 성능이 저하되거나 자원을 낭비하게 되고, 잦은 전체 자원 재할당으로 인한 오버헤드가 증가하는 문제점이 발생한다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은, 분산처리 시스템에서의 자원할당방법에 있어서, 복수개의 제1 노드들로부터 복수개의 작업에 대한 정보가 수신되면, 수신된 복수개의 작업 별로 필요한 자원의 크기를 각각 산출하고, 제2 노드로부터 가용자원에 대한 정보가 수신되면, 산출된 작업별 필요 자원 크기에 기초하여 복수개의 작업 중 어느 하나를 해당 제2 노드의 가용자원에 할당하는 자원할당방법 및 이를 적용한 기록매체 및 분산처리장치를 제공함에 있다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른, 분산처리 시스템에서의 자원할당방법은, 복수개의 제1 노드들로부터 복수개의 작업에 대한 정보가 수신되면, 수신된 복수개의 작업 별로 필요한 자원의 크기를 각각 산출하는 단계; 및 제2 노드로부터 가용자원에 대한 정보가 수신되면, 산출된 작업별 필요 자원 크기에 기초하여 복수개의 작업 중 어느 하나를 해당 제2 노드의 가용자원에 할당하는 단계;를 포함한다.
그리고, 할당 단계는, 복수개의 작업들에 대해 스코어를 산출하고, 가장 높은 스코어의 작업을 해당 가용자원에 할당할 수도 있다.
또한, 스코어는, 입찰가(Bid)에 비용(Cost)을 나누어서 산출될 수도 있다.
그리고, 입찰가(Bid)는, 기본값을 해당 작업이 포함된 하나의 DAG(Directed Acyclic Graph) 내에 포함된 작업들의 개수로 나누어서 산출될 수도 있다.
또한, 비용(Cost)은, 가용 CPU 개수와 필요 CPU 개수의 차이, 가용 메모리와 필요 메모리의 차이, 및 제1 노드와 제2 노드 간의 네트워크 거리를 고려하여 산출될 수도 있다.
그리고, 네트워크 거리는, 제1 노드와 제2 노드가 서로 데이터센터가 다를 경우 제1의 거리값, 같은 데이터센터 내에서 랙(rack)이 서로 다르면 제2의 거리값, 같은 랙 내에서 서로 다른 서버라면 제3의 거리값, 같은 서버 내라면 제4의 거리값에 해당될 수도 있다.
또한, 제1의 거리값은 제2의 거리값보다 크고, 제2의 거리값은 제3의 거리값보다 크고, 제3의 거리값은 제4의 거리값보다 큰것일 수도 있다.
그리고, 가용자원이 할당된 제1 노드로 제2 노드의 가용자원에 대한 정보를 전송하는 단계;를 더 포함할 수도 있다.
또한, 산출단계는, 작업별로 해당 작업에 필요한 CPU의 갯수 및 메모리 용량을 포함하는 자원의 크기를 각각 산출할 수도 있다.
한편, 본 발명의 일 실시예에 따른, 컴퓨터로 읽을 수 있는 기록매체는, 복수개의 제1 노드들로부터 복수개의 작업에 대한 정보가 수신되면, 수신된 복수개의 작업 별로 필요한 자원의 크기를 각각 산출하는 단계; 및 제2 노드로부터 가용자원에 대한 정보가 수신되면, 산출된 작업별 필요 자원 크기에 기초하여 복수개의 작업 중 어느 하나를 해당 제2 노드의 가용자원에 할당하는 단계;를 포함하는 자원할당방법을 수행하는 컴퓨터 프로그램이 수록된다.
한편, 본 발명의 일 실시예에 따른, 분산처리장치는, 복수개의 제1 노드들로부터 복수개의 작업에 대한 정보를 수신하고, 제2 노드로부터 가용자원에 대한 정보를 수신하는 통신부; 및 복수개의 제1 노드들로부터 복수개의 작업에 대한 정보가 수신되면, 수신된 복수개의 작업 별로 필요한 자원의 크기를 각각 산출하고, 제2 노드로부터 가용자원에 대한 정보가 수신되면, 산출된 작업별 필요 자원 크기에 기초하여 복수개의 작업 중 어느 하나를 해당 가용자원에 할당하는 제어부;를 포함한다.
한편, 본 발명의 일 실시예에 따른, 분산처리 시스템은, 복수개의 작업에 대한 정보를 송신하는 복수개의 제1 노드; 가용자원에 대한 정보를 송신하는 제2 노드; 및 복수개의 제1 노드들로부터 복수개의 작업에 대한 정보가 수신되면, 수신된 복수개의 작업 별로 필요한 자원의 크기를 각각 산출하고, 제2 노드로부터 가용자원에 대한 정보가 수신되면, 산출된 작업별 필요 자원 크기에 기초하여 복수개의 작업 중 어느 하나를 해당 가용자원에 할당하는 분산처리장치;를 포함한다.
본 발명의 다양한 실시예에 따르면, 분산처리 시스템에서의 자원할당방법에 있어서, 복수개의 제1 노드들로부터 복수개의 작업에 대한 정보가 수신되면, 수신된 복수개의 작업 별로 필요한 자원의 크기를 각각 산출하고, 제2 노드로부터 가용자원에 대한 정보가 수신되면, 산출된 작업별 필요 자원 크기에 기초하여 복수개의 작업 중 어느 하나를 해당 제2 노드의 가용자원에 할당하는 자원할당방법 및 이를 적용한 기록매체 및 분산처리장치를 제공할 수 있게 되어, 작업마다 필요한 자원 크기를 계산하고, 우선순위를 결정하여 동적으로 자원을 할당할 수 있게 되고, 분산 클러스터에 새로운 작업이 추가될 때, 잦은 전체 자원 재할당 오버헤드를 감소시킬 수 있게 된다. 또한, 분할된 작업의 특성상 입력 데이터가 저장되어 있는 노드의 네트워크 거리를 고려하여 처리 속도를 높일 수 있게 된다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에 서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부 도면은 본 발명에 대한 실시 예를 제공하고, 상세한 설명과 함께 본 발명의 기술적 특징을 설명한다.
도 1은 본 발명의 일 실시예에 따른, 분산처리 시스템에서 자원할당방법을 개략적으로 도시한 도면,
도 2는 본 발명의 일 실시예에 따른, 분산처리 시스템에서 자원할당방법을 설명하기 위해 제공되는 흐름도,
도 3은 본 발명의 일 실시예에 따른, 분산처리 환경의 일 예를 도시한 도면,
도 4는 본 발명의 일 실시예에 따른, 작업에 대한 분산처리 수요 및 공급의 리스트를 도시한 표,
도 5는 본 발명의 일 실시예에 따른, supply_1 공급노드에 대한 수요노드들의 스코어를 도시한 표,
도 6은 본 발명의 일 실시예에 따른, supply_2 공급노드에 대한 수요노드들의 스코어를 도시한 표,
도 7은 본 발명의 일 실시예에 따른, 분산처리장치의 개략적인 구성을 도시한 블록도이다.
본 발명의 과제 해결 수단의 특징 및 이점을 보다 명확히 하기 위하여, 첨부된 도면에 도시된 본 발명의 특정 실시 예를 참조하여 본 발명을 더 상세하게 설명한다.
다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.
이하의 설명 및 도면에서 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위한 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다.
따라서 본 명세서에 기재된 실시 예와 도면에 도시된 구성은 본 발명의 가장바람직한 일 실시 예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
또한, 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하기 위해 사용하는 것으로, 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용될 뿐, 상기 구성요소들을 한정하기 위해 사용되지 않는다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제2 구성요소는 제1 구성요소로 명명될 수 있고, 유사하게 제1 구성요소도 제2 구성요소로 명명될 수 있다.
더하여, 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급할 경우, 이는 논리적 또는 물리적으로 연결되거나, 접속될 수 있음을의미한다.
다시 말해, 구성요소가 다른 구성요소에 직접적으로 연결되거나 접속되어 있을 수 있지만, 중간에 다른 구성요소가 존재할 수도 있으며, 간접적으로 연결되거나 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에서 기술되는 "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 명세서에 기재된 "…부", "…기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
또한, "일(a 또는 an)", "하나(one)", "그(the)" 및 유사어는 본 발명을 기술하는 문맥에 있어서(특히, 이하의 청구항의 문맥에서) 본 명세서에 달리 지시되거나 문맥에 의해 분명하게 반박되지 않는 한, 단수 및 복수 모두를 포함하는 의미로 사용될 수 있다.
이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른, 분산처리 시스템에서 자원할당방법을 개략적으로 도시한 도면이다.
도 1에 도시된 바와 같이, 분산처리 시스템은, 복수개의 작업에 대한 정보를 송신하는 복수개의 수요 노드, 가용자원에 대한 정보를 송신하는 공급 노드, 및 복수개의 수요 노드들로부터 복수개의 작업에 대한 정보가 수신되면, 수신된 복수개의 작업 별로 필요한 자원의 크기를 각각 산출하고, 공급 노드로부터 가용자원에 대한 정보가 수신되면, 산출된 작업별 필요 자원 크기에 기초하여 복수개의 작업 중 어느 하나를 해당 가용자원에 할당하는 분산처리장치(100)를 포함한다.
도 1에 도시된 바와 같이, 분산처리 시스템은 복수개의 노드들이 포함되어 있고, 작업의 처리를 요청하는 수요 노드에 해당되는 노드들과 가용 자원을 할당하여 요청된 작업을 처리하는 공급 노드들이 포함되어 있고, 이러한 작업들에 가용 자원을 할당하며 분산처리의 전반적인 동작을 제어하는 분산처리장치(100)가 포함된다.
도 1에서는 Node 1(10_1)과 Node 2(10_2)가 작업을 요청하는 수요 노드에 해당되고, Node 3(20)이 가용자원을 할당하여 요청된 작업을 처리하는 공급 노드에 해당된다.
이와 같이 도 1에서는 수요 노드가 2개이고 공급 노드가 1개인 것으로 도시되어 있으나, 이는 일 실시예일 뿐이며, 수요 노드 및 공급 노드는 모두 복수개가 될 수 있음은 물론이다.
또한, 도 1에서는 수요 노드와 공급 노드가 별개의 노드인 것으로 도시되어 있으나, 이는 설명의 편의를 위한 것일 뿐이며, 하나의 노드가 수요 노드이면서 동시에 공급 노드 역할도 수행할 수 있음은 물론이다. 예를 들어, Node 1(10_1)이 분산처리장치(100)에 수요 노드로서 작업 처리를 요청할 뿐만 아니라 공급 노드로서 분산처리장치(100)에 가용 자원을 전송하고 처리가 요청된 작업을 할당받아 작업을 처리할 수도 있음은 물론이다.
도 1에 도시된 바와 같이, 노드들은 특정 데이터 센터에 특정 랙에 설치된 서버에 해당된다. 구체적으로, Node 1(10_1)은 데이터센터(dc) "a"에 랙(rack) "a"에 설치된 서버이고, Node 2(10_2)는 데이터센터(dc) "a"에 랙(rack) "b"에 설치된 서버이며, Node 3(20)는 데이터센터(dc) "b"에 랙(rack) "a"에 설치된 서버인 것을 확인할 수 있다. 즉, Node 1(10_1)과 Node 2(10_2)는 같은 데이터센터에 위치되어 있지만 서로 다른 랙에 설치되어 있으며, Node 3(20)은 다른 데이터 센터에 설치되어 있는 것을 알 수 있다.
또한, 도 1에 도시된 바와 같이, 노드들은 각자 가용 리소스(Available Resource)를 보유하고 있는 것을 확인할 수 있다. 구체적으로, Node 1(10_1)은 CPU 2개, 메모리(MEM) 2메가바이트(mb), 디스크 1기가바이트(gb)를 포함하고 있고, Node 2(10_2)는 CPU 2개, GPU 2개, 메모리(MEM) 10메가바이트(mb), 디스크 1기가바이트(gb)를 포함하고 있으며, Node 3(20)은 CPU 1개, 메모리(MEM) 5메가바이트(mb), 디스크 4기가바이트(gb)를 포함하고 있는 것을 확인할 수 있다.
수요 노드들은 어떤 동작이나 데이터 처리 등을 위해 다양한 작업(Task)의 처리를 스케줄링하고 분산처리장치(100)에 요청한다. 구체적으로, Node 1(10_1)은 하나의 동작을 위해 총 5개의 작업(Task 1 ~ Task 5)의 수행이 필요하고, 이 5개의 작업들의 분산처리를 분산처리장치(100)에 요청한다. 여기에서, DAG(Directed Acyclic Graph)는 하나의 동작을 위해 필요한 작업(Task)들로 구성된 그래프를 나타내며, DAG는 적어도 하나의 잡(Job)으로 구성되며, 잡(Job)은 동작의 세부 단위를 나타내고 적어도 하나의 작업(Task)으로 구성된다. Node 1(10_1)의 경우, 하나의 DAG에 3개의 잡(Job1, Job2, Job3)이 포함되어 있고, Job1에는 1개의 작업(Task 1), Job2에는 2개의 작업(Task 2, Task 3)이 포함되어 있고, Job3에는 2개의 작업(Task 4, Task 5)이 포함되어 있는 동작의 DAG의 처리가 요구되는 상황인 것을 확인할 수 있다. 그리고, Node 2(10_2)의 경우, 하나의 DAG에 1개의 잡(Job1)이 포함되어 있고, Job1에는 3개의 작업(Task 1, Task 2, Task 3)이 포함되어 있는 동작의 DAG의 처리가 요구되는 상황인 것을 확인할 수 있다.
수요 노드는 작업들의 처리를 스케줄링하고 분산처리장치(100)에 요청하는 드라이버(Driver)가 포함되어 있는 것을 확인할 수 있다.
분산처리장치(100)는 마켓(Market)부와 마스터(Master)부가 포함되어 있으며, 마켓부에는 분산처리가 요청된 작업들이 등록되는 수요(demands) 영역과 가용 자원을 가진 공급노드가 등록되는 공급(Supplies) 영역이 포함되어 있다. 도 1에 도시된 바와 같이, 현재는 Node 1의 Job 2의 Task 2와 Node 2의 Job 1의 Task 1이 수요로 등록된 상태이고, 공급으로 공급노드인 Node 3(20)이 등록된 상태인 것을 확인할 수 있다. 마스터부는 작업이 수요에 등록되면 해당 작업의 처리에 요구되는 자원 크기를 산출하고 그에 맞는 공급 노드를 찾아서 공급에 등록하는 기능을 수행하게 된다.
이와 같은 구성의 분산처리 시스템에서 분산처리장치(100)는 공급과 수요를 매칭하는 CDA(Continuous Double Auction) 프로토콜을 사용하여 동적으로 작업의 스케줄링을 실행한다. CDA 프로토콜은 작업에 대해 최적의 자원을 할당하고, 우선순위를 결정한다. 분산처리장치(100)는 마켓부에 수신된 작업을 수요로 등록하고, 가용 자원을 공급에 등록하면, 마스터부는 자원 할당을 위하여 작업의 제약 조건을 충족시키는 모든 작업 중에서, 비용이 저렴하고 우선순위가 높으면서 빨리 등록된 작업을 공급 노드에 매치한다.
이하에서는 도 1과 도 2를 함께 참고하여, 자원할당방법에 대해 더욱 상세히 설명한다. 도 2는 본 발명의 일 실시예에 따른, 분산처리 시스템에서 자원할당방법을 설명하기 위해 제공되는 흐름도이다.
우선, 분산처리장치(100)는 복수개의 수요 노드들로부터 복수개의 작업에 대한 정보를 수신한다(S210). 예를 들어, 도 1에 도시된 바와 같이, 분산처리장치(100)는 수요 노드인 Node 1(10_1) 및 Node 2(10_2)로부터 작업(Task)들에 대한 정보를 수신하게 되며, 분산처리장치(100)는 수신된 Node 1(10_1)의 Job 2의 Task 2와 Node 2(10_2)의 Job 1의 Task 1을 수요로 등록하게 된다.
그러면, 분산처리장치(100)는 수신된 복수개의 작업 별로 필요한 자원의 크기를 각각 산출하게 된다(S220). 구체적으로, 분산처리장치(100)는 작업별로 해당 작업에 필요한 CPU의 갯수, 메모리 용량, 및 디스크 용량을 포함하는 자원의 크기를 각각 산출할 수도 있다. 예를 들어, 도 1의 경우, 분산처리장치(100)는 수신된 Node 1(10_1)의 Job 2의 Task 2에 필요한 자원 크기를 CPU 1개 및 메모리 2기가바이트 및 디스크 1기가바이트로 산출하고, Node 2(10_2)의 Job 1의 Task 1에 필요한 자원 크기를 CPU 2개 및 메모리 4기가바이트 및 디스크 2기가바이트로 산출할 수 있다. 이 때, 분산처리장치(100)는 작업에 필요한 자원을 자원 힌트를 기반으로 산출한다. 여기에서, 자원 힌트는 각 작업의 연산 종류(Map, Reduce, Sort, Partition...), 각 작업의 병렬 단위에 따라, 사전에 설정되어 있는 기본 값을 나타낸다. 또한, 분산처리장치(100)는 사용자의 설정에 따라 작업의 종류별로 우선순위를 부여할 수도 있다.
그 후에, 분산처리장치(100)는 수요에 등록된 작업들을 처리하기 위한 가용자원을 가진 공급 노드를 데이터 센터들 및 랙 내의 노드들에서 찾아서 선택하며, 선택된 공급 노드로부터 가용자원에 대한 정보를 수신한다(S230). 이 때, 가용 자원량은 해당 공급노드의 전체 자원량에서 이미 할당된 자원량을 제외한 값이다. 그리고, 분산처리장치(100)는 수신된 공급노드의 가용자원에 대한 정보를 공급으로 등록하게 된다. 도 1의 경우, 분산처리장치(100)는 공급 노드인 Node 3(20)을 공급으로 등록하였으며, 가용자원은 CPU 1개, 메모리(MEM) 5메가바이트(mb), 디스크 4기가바이트(gb)인 것을 확인할 수 있다.
그 후에, 분산처리장치(100)는 산출된 작업별 필요 자원 크기에 기초하여 복수개의 작업들에 대해 스코어를 산출하고, 복수개의 작업 중 어느 하나를 해당 공급 노드의 가용자원에 할당하게 된다(S240). 이 때, 분산처리장치(100)는 가장 높은 스코어의 작업을 해당 가용자원에 할당하게 된다. 만약, 최고 스코어가 동일한 작업들이 존재할 경우, 분산처리장치(100)는 먼저 작업 정보가 수신되어 수요로 등록된 작업을 가용자원에 할당하게 된다.
구체적으로, 분산처리장치(100)는 선택된 공급노드인 공급(s)에 대한 수요에 등록된 작업인 수요(d)를 매칭하는 함수인 Match는 아래의 수학식 1을 이용하여 계산한다. 이하에서는, 공급 노드를 공급(s)로 표시하고, 수요에 등록된 작업을 수요(d 또는 d_1~d_n)로 표시한다.
Figure pat00001
즉, 분산처리장치(100)는 선택된 공급 노드를 나타내는 공급(s)에 대하여 등록되어 있는 모든 수요에 등록된 작업들을 나타내는 수요(d_1~d_n)와 각각의 점수를 계산하고, 점수를 최대화하는 수요(d_k)와 공급(s)을 매칭한다.
즉, 우선 분산처리장치(100)는 공급 노드에 대응되는 작업들 각각의 스코어를 산출한다. 이 때, 분산처리장치(100)는 아래의 수학식 2와 같이 입찰가(Bid)에 비용(Cost)을 나누어서 스코어(Score)를 산출하게 된다.
Figure pat00002
이와 같이, 분산처리장치(100)는 수학식 2와 같이 수요(d)의 입찰가(Bid)에 수요(d)에 공급(s)을 할당하는 데 발생하는 비용(Cost)을 나누어서 스코어(Score)를 계산한다.
분산처리장치(100)는 기본값(bid)을 해당 작업이 포함된 하나의 DAG(Directed Acyclic Graph) 내에 포함된 작업들의 개수로 나누어서 입찰가(Bid)를 산출한다. 즉, 분산처리장치(100)는 수요(d)의 입찰가(Bid)를 아래의 수학식 3과 같이 기본값(bid)에 DAG에 포함되는 작업의 개수(n)를 나누어서 계산한다.
Figure pat00003
기본값(bid)은 초기값이 100으로 정해져 있으며, 수동 설정이 가능하다. 또한, 분산처리장치(100)는 기본값(bid)을 해당 작업의 종류에 따른 우선순위에 따라 서로 다른값이 할당될 수도 있다. 예를 들어, 분산처리장치(100)는 긴급 실행이 필요한 종류의 작업은 우선순위를 높게 설정하여 기본값(bid)을 100으로 설정하고, 긴급 실행이 불필요한 종류의 작업은 우선순위를 낮게 설정하여 기본값(bid)을 50으로 설정할 수도 있다.
작업 개수(n)는 자신이 속하는 하나의 DAG 내에서의 작업의 개수를 뜻한다. 작업 개수(n)가 커질수록 드라이버 프로그램의 작업 부하가 커지기 때문에(작업으로 나뉘는 단위가 disk io 발생, 병렬 단위 확장 및 축소이기 때문에), 분산처리장치(100)는 작업 개수(n)가 증가할수록 입찰가(Bid)가 감소하도록 수식을 설정하게 된다.
또한, 분산처리장치(100)는 가용 CPU 개수와 필요 CPU 개수의 차이, 가용 메모리와 필요 메모리의 차이, 및 수요 노드와 공급 노드 간의 네트워크 거리를 고려하여 비용(Cost)을 산출하게 된다. 여기에서, 네트워크 거리는 수요 노드와 공급 노드가 네트워크적으로 얼마나 떨어져있는지를 나타내는 거리개념이며, 분산처리장치(100)는 수요 노드와 공급 노드가 서로 데이터센터가 다를 경우 제1의 거리값, 같은 데이터센터 내에서 랙(rack)이 서로 다르면 제2의 거리값, 같은 랙 내에서 서로 다른 서버라면 제3의 거리값, 같은 서버 내라면 제4의 거리값으로 설정하게 된다. 그리고, 분산처리장치(100)는 제1의 거리값은 제2의 거리값보다 크고, 제2의 거리값은 제3의 거리값보다 크고, 제3의 거리값은 제4의 거리값보다 큰 값을 가지도록 설정하게 된다.
구체적으로, 공급(s)과 수요(d)의 비용(Cost)은 아래의 수학식 4와 같이 할당된 공급 cpu 개수(Cpu_s)와 요청 받은 cpu 개수(Cpu_d)의 차이가 가장 없고, 공급 메모리(Mem_s)와 요청 받은 메모리(Mem_d)의 차이가 가장 없으면서, 수요(d)의 모든 입력노드(N_di_k)와 공급 노드(N_s)간의 네트워크 거리(network distance)를 고려하여 산정한다.
Figure pat00004
또한, 두 노드간의 네트워크 거리(network distance)는 일 예로 아래의 수학식 5와 같이 계산될 수도 있다. 네트워크 거리는 두 노드의 데이터센터(dc)가 다르면 1000이며, 두 노드의 랙(rack)이 다르면 100, 서버(server)가 다르면 10이 설정되며, 모두 같다면 기본 값인 1이 설정된다.
Figure pat00005
이와 같은 과정을 통해, 분산처리장치(100)는 산출된 작업별 필요 자원 크기에 기초하여 복수개의 작업들에 대해 스코어를 산출하고, 복수개의 작업 중 어느 하나를 해당 공급 노드의 가용자원에 할당하게 된다.
그 후에, 분산처리장치(100)는 가용자원이 할당된 수요 노드로 공급 노드의 가용자원에 대한 정보를 전송하게 된다(S250). 예를 들어, 도 1의 경우, 공급 노드인 Node 3(20)의 가용자원이 수요 노드인 Node 1(10_1)에 할당되었으므로, 분산처리장치(100)는 Node 3(20)의 가용자원에 대한 정보를 Node 1(10_1)으로 전송하게 된다.
그러면, 할당된 수요 노드는 수신된 가용자원에 대한 정보를 참고하여 공급노드에 해당 작업의 처리를 요청하게 된다(S260). 예를 들어, 도 1의 경우, 수요노드인 Node 1(10_1)은 공급노드인 Node 3(20)에 자신의 작업인 Task 2를 처리해줄 것을 요청하게 된다.
이와 같은 과정을 통해, 분산처리장치(100)는 요청된 작업의 처리를 위한 가용자원을 할당하는 자원할당방법을 수행할 수 있게 되며, 이를 통해 작업마다 필요한 자원 크기를 계산하고, 우선순위를 결정하여 동적으로 자원을 할당할 수 있게 되어, 분산 클러스터에 새로운 작업이 추가될 때, 잦은 전체 자원 재할당 오버헤드를 감소시킬 수 있게 된다. 또한, 분할된 작업의 특성상 입력 데이터가 저장되어 있는 노드의 네트워크 거리를 고려하여 처리 속도를 높일 수 있게 된다.
도 3은 본 발명의 일 실시예에 따른, 분산처리 환경의 일 예를 도시한 도면이다.
클러스터(Cluster)는 데이터 센터(Data Center)의 집합이며, 데이터 센터는 랙(Rack)의 집합이며 랙은 노드에 해당되는 Agent의 집합이다. Agent가 어떠한 데이터 센터와 랙에 속해있는지에 따라 다른 Agent와의 근접도를 결정한다.
도 3과 같이 분산처리 환경의 클러스터가 구성되어 있을 경우, 자원 할당 예를 이하에서 설명한다.
도 4는 본 발명의 일 실시예에 따른, 작업에 대한 분산처리 수요 및 공급의 리스트를 도시한 표이다.
분산처리장치(100)의 마켓(Market)에 등록된 수요와 공급의 순서가 도 4의 표와 같을 때, 세번째로 들어온 공급은 첫 번째로 들어온 수요가 자원을 요청하였을 때, 같은 데이터 센터내에 가장 가용량이 높은 첫 번째 랙에서 요청된 자원량을 충족하는 Agent 중 하나로 선택된 것이다.
supply_1은 이전에 등록된 demand_1과 demand_2에 대해 스코어가 계산된다. 해당 공급인 supply_1에 대한 이전의 수요들인 demand_1과 demand_2와의 매칭 스코어는 도 5에 도시되어 있다. 도 5는 본 발명의 일 실시예에 따른, supply_1 공급노드에 대한 수요노드들의 스코어를 도시한 표이다.
도 4 및 도 5에 따르면, demand_1의 Bid가 50이며, Cost는 입력 노드와 공급의 서버가 다르기 때문에 10이 되어 스코어는 5가 되고, demand_2의 Bid가 100이며, Cost는 입력 노드와 공급의 서버가 다르며, Cpu 개수의 차이로 인해 20이 되어 스코어가 5가 된다. 즉, 두 수요에 대한 스코어가 동일하게 되며, 이와 같이 최고 스코어가 동일한 작업들이 존재할 경우, 분산처리장치(100)는 먼저 작업 정보가 수신되어 수요로 등록된 작업을 가용자원에 할당하게 된다. 따라서 supply_1의 자원인 <dc:1, rack:1, server: 10.0.0.1>는 먼저 등록된 demand_1의 작업에 할당된다.
다섯 번째로 들어온 공급인 supply_2는 두 번째로 들어온 수요가 자원을 요청하였을 때, 같은 데이터 센터내에 가장 가용량이 높은 두 번째 랙에서 요청된 자원량을 충족하는 Agent 중 하나로 선택된다. 그리고, supply_2 공급노드에 대한 수요노드들의 스코어는 도 6에 도시되어 있다. 도 6은 본 발명의 일 실시예에 따른, supply_2 공급노드에 대한 수요노드들의 스코어를 도시한 표이다.
demand_2의 Bid가 100이며, Cost는 입력 노드와 공급의 랙이 다르기 때문에 100이 되어 스코어는 1이 되고, demand_3의 Bid가 20 이며, Cost는 1이 되어 스코어가 20이 된다. 따라서 supply_2 <dc:1, rack:2, server: 10.0.0.4>의 가용자원은 demand_3의 작업에 할당된다.
여섯 번째로 들어온 공급 supply_3은 네 번째로 들어온 수요가 자원을 요청하였을 때, 같은 데이터 센터내에 가장 가용량이 높은 첫 번째 랙에서 요청된 자원량을 충족하는 Agent 중 하나로 선택된다. 수요가 하나이며, 필요한 자원량을 충족하기 때문에 supply_3와 demand_2가 매칭되어 자원이 할당된다.
이와 같이, 예시를 통하여, 필요한 자원 크기와 공급의 자원 크기에 차이가 있으면, Bid가 높아도 Cost가 높게 책정되어 자원을 요청한 작업과 해당 요청을 받아서 할당된 공급이 매칭될 확률이 높은 경우와 필요한 자원 크기와 공급의 자원 크기가 같은 경우에는 해당 공급을 요청한 작업이 아니더라도 네트워크 거리에 따라 가까운 노드의 작업이 선택되는 경우를 확인할 수 있다. 이런 경우에 자원 크기가 같기 때문에 다른 작업이 요청한 공급으로 남은 작업을 처리할 수 있게된다.
도 7은 본 발명의 일 실시예에 따른, 분산처리장치(100)의 개략적인 구성을 도시한 블록도이다. 도 7에 도시된 바와 같이, 분산처리장치(100)는 통신부(110) 및 제어부(120)를 포함한다.
통신부(110)는 다수의 공급 노드들 및 수요 노드들과 통신가능하도록 연결되며, 복수개의 수요 노드들로부터 복수개의 작업에 대한 정보를 수신하고, 공급 노드로부터 가용자원에 대한 정보를 수신한다. 통신부(110)는 다수의 서버들과 유선 또는 무선으로 연결될 수 있다.
제어부(120)는 분산처리장치(100)의 전반적인 동작을 제어한다. 그리고, 제어부(120)는 복수개의 수요 노드들로부터 복수개의 작업에 대한 정보가 수신되면, 수신된 복수개의 작업 별로 필요한 자원의 크기를 각각 산출하고, 공급 노드로부터 가용자원에 대한 정보가 수신되면, 산출된 작업별 필요 자원 크기에 기초하여 복수개의 작업 중 어느 하나를 해당 가용자원에 할당하게 된다. 구체적으로, 제어부(120)는 앞서 설명한 분산처리장치(100)의 동작들이 수행되도록 제어하게 된다.
이와 같은 구성의 분산처리장치(100)는 컴퓨터나 서버 장치가 될 수도 있고, 그외에도 분산처리를 수행할 수 있는 장치라면 어떤 것이라도 해당될 수 있음은 물론이다.
한편, 본 실시예에 따른 분산처리장치의 기능 및 자원할당방법을 수행하게 하는 컴퓨터 프로그램을 수록한 컴퓨터로 읽을 수 있는 기록매체에도 본 발명의 기술적 사상이 적용될 수 있음은 물론이다. 또한, 본 발명의 다양한 실시예에 따른 기술적 사상은 컴퓨터로 읽을 수 있는 기록매체에 기록된 컴퓨터로 읽을 수 있는 프로그래밍 언어 코드 형태로 구현될 수도 있다. 컴퓨터로 읽을 수 있는 기록매체는 컴퓨터에 의해 읽을 수 있고 데이터를 저장할 수 있는 어떤 데이터 저장 장치이더라도 가능하다. 예를 들어, 컴퓨터로 읽을 수 있는 기록매체는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광디스크, 하드 디스크 드라이브, 플래시 메모리, 솔리드 스테이트 디스크(SSD) 등이 될 수 있음은 물론이다. 또한, 컴퓨터로 읽을 수 있는 기록매체에 저장된 컴퓨터로 읽을 수 있는 코드 또는 프로그램은 컴퓨터간에 연결된 네트워크를 통해 전송될 수도 있다.
본 명세서와 도면에서는 예시적인 장치 구성을 기술하고 있지만, 본 명세서에서 설명하는 기능적인 동작과 주제의 구현물은 다른 유형의 디지털 전자 회로로구현되거나, 본 명세서에서 개시하는 구조 및 그 구조적인 등가물들을 포함하는 컴퓨터 소프트웨어, 펌웨어 혹은 하드웨어로 구현되거나, 이들 중 하나 이상의 결합으로 구현 가능하다.
따라서, 상술한 예를 참조하여 본 발명을 상세하게 설명하였지만, 본 발명이속하는 분야의 통상의 기술자라면 본 발명의 범위를 벗어나지 않으면서도 본 예들에 대한 개조, 변경 및 변형을 가할 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
10_1, 10_2 : 수요 노드
20 : 공급 노드
100 : 분산처리장치
110 : 통신부
120 : 제어부

Claims (12)

  1. 분산처리 시스템에서의 자원할당방법에 있어서,
    복수개의 제1 노드들로부터 복수개의 작업에 대한 정보가 수신되면, 수신된 복수개의 작업 별로 필요한 자원의 크기를 각각 산출하는 단계; 및
    제2 노드로부터 가용자원에 대한 정보가 수신되면, 산출된 작업별 필요 자원 크기에 기초하여 복수개의 작업 중 어느 하나를 해당 제2 노드의 가용자원에 할당하는 단계;를 포함하는 자원할당방법.
  2. 청구항 1에 있어서,
    할당 단계는,
    복수개의 작업들에 대해 스코어를 산출하고, 가장 높은 스코어의 작업을 해당 가용자원에 할당하는 것을 특징으로 하는 자원할당방법.
  3. 청구항 2에 있어서,
    스코어는,
    입찰가(Bid)에 비용(Cost)을 나누어서 산출되는 것을 특징으로 하는 자원할당방법.
  4. 청구항 3에 있어서,
    입찰가(Bid)는,
    기본값을 해당 작업이 포함된 하나의 DAG(Directed Acyclic Graph) 내에 포함된 작업들의 개수로 나누어서 산출되는 것을 특징으로 하는 자원할당방법.
  5. 청구항 3에 있어서,
    비용(Cost)은,
    가용 CPU 개수와 필요 CPU 개수의 차이, 가용 메모리와 필요 메모리의 차이, 및 제1 노드와 제2 노드 간의 네트워크 거리를 고려하여 산출되는 것을 특징으로 하는 자원할당방법.
  6. 청구항 5에 있어서,
    네트워크 거리는,
    제1 노드와 제2 노드가 서로 데이터센터가 다를 경우 제1의 거리값, 같은 데이터센터 내에서 랙(rack)이 서로 다르면 제2의 거리값, 같은 랙 내에서 서로 다른 서버라면 제3의 거리값, 같은 서버 내라면 제4의 거리값에 해당되는 것을 특징으로 하는 자원할당방법.
  7. 청구항 6에 있어서,
    제1의 거리값은 제2의 거리값보다 크고, 제2의 거리값은 제3의 거리값보다 크고, 제3의 거리값은 제4의 거리값보다 큰것을 특징으로 하는 자원할당방법.
  8. 청구항 1에 있어서,
    가용자원이 할당된 제1 노드로 제2 노드의 가용자원에 대한 정보를 전송하는 단계;를 더 포함하는 것을 특징으로 하는 자원할당방법.
  9. 청구항 1에 있어서,
    산출단계는,
    작업별로 해당 작업에 필요한 CPU의 갯수 및 메모리 용량을 포함하는 자원의 크기를 각각 산출하는 것을 특징으로 하는 자원할당방법.
  10. 분산처리 시스템에서의 자원할당방법에 있어서,
    복수개의 제1 노드들로부터 복수개의 작업에 대한 정보가 수신되면, 수신된 복수개의 작업 별로 필요한 자원의 크기를 각각 산출하는 단계; 및
    제2 노드로부터 가용자원에 대한 정보가 수신되면, 산출된 작업별 필요 자원 크기에 기초하여 복수개의 작업 중 어느 하나를 해당 제2 노드의 가용자원에 할당하는 단계;를 포함하는 자원할당방법을 수행하는 컴퓨터 프로그램이 수록된 컴퓨터로 읽을 수 있는 기록매체.
  11. 복수개의 제1 노드들로부터 복수개의 작업에 대한 정보를 수신하고, 제2 노드로부터 가용자원에 대한 정보를 수신하는 통신부; 및
    복수개의 제1 노드들로부터 복수개의 작업에 대한 정보가 수신되면, 수신된 복수개의 작업 별로 필요한 자원의 크기를 각각 산출하고, 제2 노드로부터 가용자원에 대한 정보가 수신되면, 산출된 작업별 필요 자원 크기에 기초하여 복수개의 작업 중 어느 하나를 해당 가용자원에 할당하는 제어부;를 포함하는 분산처리장치.
  12. 복수개의 작업에 대한 정보를 송신하는 복수개의 제1 노드;
    가용자원에 대한 정보를 송신하는 제2 노드; 및
    복수개의 제1 노드들로부터 복수개의 작업에 대한 정보가 수신되면, 수신된 복수개의 작업 별로 필요한 자원의 크기를 각각 산출하고, 제2 노드로부터 가용자원에 대한 정보가 수신되면, 산출된 작업별 필요 자원 크기에 기초하여 복수개의 작업 중 어느 하나를 해당 가용자원에 할당하는 분산처리장치;를 포함하는 분산처리 시스템.

KR1020170153772A 2017-11-17 2017-11-17 분산환경에서의 cda 프로토콜을 활용한 자원할당방법 및 이를 적용한 기록매체 및 분산처리장치 KR102045125B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170153772A KR102045125B1 (ko) 2017-11-17 2017-11-17 분산환경에서의 cda 프로토콜을 활용한 자원할당방법 및 이를 적용한 기록매체 및 분산처리장치
US15/895,242 US11093291B2 (en) 2017-11-17 2018-02-13 Resource assignment using CDA protocol in distributed processing environment based on task bid and resource cost

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170153772A KR102045125B1 (ko) 2017-11-17 2017-11-17 분산환경에서의 cda 프로토콜을 활용한 자원할당방법 및 이를 적용한 기록매체 및 분산처리장치

Publications (2)

Publication Number Publication Date
KR20190056624A true KR20190056624A (ko) 2019-05-27
KR102045125B1 KR102045125B1 (ko) 2019-11-14

Family

ID=66532981

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170153772A KR102045125B1 (ko) 2017-11-17 2017-11-17 분산환경에서의 cda 프로토콜을 활용한 자원할당방법 및 이를 적용한 기록매체 및 분산처리장치

Country Status (2)

Country Link
US (1) US11093291B2 (ko)
KR (1) KR102045125B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102154446B1 (ko) * 2019-11-14 2020-09-09 한국전자기술연구원 분산·협업형 컨테이너 플랫폼 환경에서의 자원 균등 배분을 위한 고속 스케줄링 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3884383A1 (en) * 2018-12-21 2021-09-29 Huawei Technologies Co., Ltd. Data deterministic deliverable communication technology based on qos as a service
CN111240841B (zh) * 2020-01-10 2023-09-05 支付宝(杭州)信息技术有限公司 用于执行新任务或处理资源撤回请求的方法和系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8458691B2 (en) * 2004-04-15 2013-06-04 International Business Machines Corporation System and method for dynamically building application environments in a computational grid
US8112755B2 (en) * 2006-06-30 2012-02-07 Microsoft Corporation Reducing latencies in computing systems using probabilistic and/or decision-theoretic reasoning under scarce memory resources
US8046765B2 (en) * 2006-07-25 2011-10-25 Hewlett-Packard Development Company, L.P. System and method for determining allocation of resource access demands to different classes of service based at least in part on permitted degraded performance
US8972306B2 (en) * 2007-08-31 2015-03-03 Raytheon Company System and method for sensor tasking
US20110066556A1 (en) * 2009-09-15 2011-03-17 Albert Kadosh Method and System for Intelligent Job Assignment Through an Electronic Communications Network
US9043401B2 (en) * 2009-10-08 2015-05-26 Ebay Inc. Systems and methods to process a request received at an application program interface
US9535764B2 (en) * 2012-02-15 2017-01-03 Cisco Technology, Inc. Resource allocation mechanism
US9141432B2 (en) * 2012-06-20 2015-09-22 International Business Machines Corporation Dynamic pending job queue length for job distribution within a grid environment
KR101262679B1 (ko) * 2013-02-13 2013-05-20 송형근 클라우드 컴퓨팅을 위한 효율적인 자원 배분 장치
US9391749B2 (en) * 2013-03-14 2016-07-12 Ashwin Amanna, III System and method for distributed data management in wireless networks
US20160127255A1 (en) * 2014-10-30 2016-05-05 Diana Cobb Method and system for capacity planning of system resources
US20170109815A1 (en) * 2015-10-16 2017-04-20 International Business Machines Corporation On demand auctions of cloud resources (bundles) in hybrid cloud environments
US9904975B2 (en) * 2015-11-11 2018-02-27 Amazon Technologies, Inc. Scaling for virtualized graphics processing

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Deepal J 외 5인, ‘Improving Performance and Availability of Services Hosted on IaaS Clouds with Structural Constraint-aware Virtual Machine Placement’, 2011 IEEE International Conference, July 2011* *
Hesam I 외 4인, ‘A Continuous Double Auction Method for Resource Allocation in Computational Grids’, 2009 IEEE Symposium on Computational Intelligence in Scheduling, March 2009* *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102154446B1 (ko) * 2019-11-14 2020-09-09 한국전자기술연구원 분산·협업형 컨테이너 플랫폼 환경에서의 자원 균등 배분을 위한 고속 스케줄링 방법
US11429449B2 (en) 2019-11-14 2022-08-30 Korea Electronics Technology Institute Method for fast scheduling for balanced resource allocation in distributed and collaborative container platform environment

Also Published As

Publication number Publication date
US11093291B2 (en) 2021-08-17
KR102045125B1 (ko) 2019-11-14
US20190155657A1 (en) 2019-05-23

Similar Documents

Publication Publication Date Title
US11221884B2 (en) Hybrid virtual machine configuration management
US9229764B2 (en) Estimating migration costs for migrating logical partitions within a virtualized computing environment based on a migration cost history
US8694995B2 (en) Application initiated negotiations for resources meeting a performance parameter in a virtualized computing environment
CN108234581B (zh) 一种资源的调度方法和服务器
US10007558B2 (en) Method and apparatus for allocating central processing unit resources in a default resource pool
US9069610B2 (en) Compute cluster with balanced resources
US8782657B2 (en) Dynamic creation and destruction of IO resources based on actual load and resource availability
US8627325B2 (en) Scheduling memory usage of a workload
KR20130119285A (ko) 클러스터 컴퓨팅 환경에서의 자원 할당 장치 및 그 방법
KR102045125B1 (ko) 분산환경에서의 cda 프로토콜을 활용한 자원할당방법 및 이를 적용한 기록매체 및 분산처리장치
CN111625339A (zh) 集群资源调度方法、装置、介质和计算设备
CN111352735A (zh) 数据加速方法、装置、存储介质及设备
KR102640232B1 (ko) 가상화 환경에서의 자원 할당 방법 및 장치
JP2013182502A (ja) リソース配分システム、リソース配分方法、及びリソース配分プログラム
JP4121525B2 (ja) リソース利用率を制御する方法およびコンピュータシステム
KR101639947B1 (ko) 하둡 선점 데드라인 제약 스케줄링 방법 및 그 방법을 수행하는 컴퓨터프로그램과, 그 프로그램이 기록된 매체
CN111813564B (zh) 集群资源管理方法、装置及容器集群管理系统
KR20160063430A (ko) 가상머신 리소스 사전예약을 통한 가용 리소스 자원 관리 및 할당 방법
JP2023009934A (ja) 情報処理装置、情報処理方法及び情報処理プログラム
CN115543554A (zh) 一种计算作业的调度方法、装置及计算机可读存储介质
JP2022088762A (ja) 情報処理装置およびジョブスケジューリング方法
CN114138400A (zh) 资源调度系统及方法
CN116610422A (zh) 一种任务调度方法、装置和系统
CN117519604A (zh) 基于spdk的虚拟机磁盘性能调整方法、装置、设备及存储器

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)