KR102248978B1 - 다수 사용자의 분산 기계학습에서 평균 지연 속도 절감을 위한 자원 할당 방법 및 장치 - Google Patents

다수 사용자의 분산 기계학습에서 평균 지연 속도 절감을 위한 자원 할당 방법 및 장치 Download PDF

Info

Publication number
KR102248978B1
KR102248978B1 KR1020190156429A KR20190156429A KR102248978B1 KR 102248978 B1 KR102248978 B1 KR 102248978B1 KR 1020190156429 A KR1020190156429 A KR 1020190156429A KR 20190156429 A KR20190156429 A KR 20190156429A KR 102248978 B1 KR102248978 B1 KR 102248978B1
Authority
KR
South Korea
Prior art keywords
user
allocation method
optimal
cluster
target vector
Prior art date
Application number
KR1020190156429A
Other languages
English (en)
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 KR1020190156429A priority Critical patent/KR102248978B1/ko
Application granted granted Critical
Publication of KR102248978B1 publication Critical patent/KR102248978B1/ko

Links

Images

Classifications

    • 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/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • 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/505Allocation 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 load
    • 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/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multi Processors (AREA)

Abstract

다수 사용자의 분산 기계학습에서 평균 지연 속도 절감을 위한 자원 할당 방법 및 장치가 제시된다. 본 발명에서 제안하는 다수 사용자의 분산 기계학습에서 평균 지연 속도 절감을 위한 자원 할당 방법은 각 유저들이 해당 워커들로부터 코딩된 행렬과 유저의 타겟 벡터의 곱을 수신하는 단계, 코딩된 행렬과 유저의 타겟 벡터의 곱에 대하여 밸런싱 조건(balancing condition)을 추가하여 LPP(linear programming problem)로 바꾸는 단계, LPP를 푸는 것에 의해 최적 클러스터 할당 방법을 획득하는 단계 및 각 유저가 지연시간을 최소화 하기 위해 클러스터에 오프로딩(offloading) 해야 하는 최적의 작업량을 분배하는 단계를 포함한다.

Description

다수 사용자의 분산 기계학습에서 평균 지연 속도 절감을 위한 자원 할당 방법 및 장치{Resource Allocation Method and Apparatus for Reducing the Expected Latency in Distributed Machine Learning with Multiple Users}
본 발명은 다수 사용자의 분산 기계학습에서 평균 지연 속도 절감을 위한 자원 할당 방법 및 장치에 관한 것이다.
행렬 곱(matrix multiplication) 연산은 최근 부상하고 있는 머신러닝 알고리즘에서의 가장 기본적이며 동시에 중요한 모듈(module)로서 역할을 한다. 특히 뉴럴 네트워크(neural network) 연산, 강화 학습(reinforcement learning), 경사 하강법(Gradient descent algorithm), 선형/로지스틱(linear/logistic) 회귀(regression) 에서 행렬 곱 연산을 바탕으로 작동한다.
최근 처리해야 하는 데이터의 양이 기하 급수적으로 증가함에 따라 대규모 데이터 처리를 위해서 분산 컴퓨팅(distributed computing)이 필수적인 요소로 고려되고 있다.
클라우드와 엣지로 작업을 오프로딩하는 방법이 고려되고 있다. 하지만 일반적으로 컴퓨팅 클러스터들은 각기 다른 연산속도 즉 이기종(heterogeneous) 연산 속도를 가지고 있다. 따라서 적절한 작업량의 분배가 필요하다.
또한 다수의 사용자가 기계 학습을 위해 컴퓨팅 클러스터들을 사용하는 경우 지연속도를 줄이기 위한 클러스터의 적절한 분배가 필수적이다.
본 발명이 이루고자 하는 기술적 과제는 분산 클라우드 컴퓨팅 환경에서 다수의 사용자가 기계학습을 하는 경우, 다수의 사용자에게 컴퓨팅 클러스터들(computing clusters)을 각 유저에게 최적으로 할당하는 방법 및 장치를 제공하는데 있다. 각 유저에게 할당된 컴퓨팅 클러스터들의 수가 정해지면 각 유저의 지연속도를 최소화 하기 위해 각 유저가 처리해야 하는 작업량을 컴퓨팅 클러스터에게 분배하는 최적의 작업량 분배 방법 및 장치를 제안한다.
일 측면에 있어서, 본 발명에서 제안하는 다수 사용자의 분산 기계학습에서 평균 지연 속도 절감을 위한 자원 할당 방법은 각 유저들이 해당 워커들로부터 코딩된 행렬과 유저의 타겟 벡터의 곱을 수신하는 단계, 코딩된 행렬과 유저의 타겟 벡터의 곱에 대하여 밸런싱 조건(balancing condition)을 추가하여 LPP(linear programming problem)로 바꾸는 단계, LPP를 푸는 것에 의해 최적 클러스터 할당 방법을 획득하는 단계 및 각 유저가 지연시간을 최소화 하기 위해 클러스터에 오프로딩(offloading) 해야 하는 최적의 작업량을 분배하는 단계를 포함한다.
각 유저들이 해당 워커들로부터 코딩된 행렬과 유저의 타겟 벡터의 곱을 수신하는 단계는 각 유저를 서브(serve)하는 워커들의 수를 구하고, 각 유저를 서브하는 워커들의 수가 정해지면 각 유저는 해당 워커들에게 유저의 타겟 벡터를 전송하고 연산결과인 코딩된 행렬과 유저의 타겟 벡터의 곱을 수신한다.
코딩된 행렬과 유저의 타겟 벡터의 곱에 대하여 밸런싱 조건을 추가하여 LPP로 바꾸는 단계는 최적 클러스터 할당 방법이 최적이 되기 위한 필요조건인 각 유저가 일을 마치는 시간이 같아지도록 코딩된 행렬과 유저의 타겟 벡터의 곱에 대하여 밸런싱 조건을 추가하여 LPP로 바꾼다.
LPP를 푸는 것에 의해 최적 클러스터 할당 방법을 획득하는 단계는 실수 벡터(real vector) 값인 최적 클러스터 할당 방법을 정수 벡터(integer vector)로 라운드(round)한다.
LPP를 푸는 것에 의해 최적 클러스터 할당 방법을 획득하는 단계는 하기 식을 이용하여 최적 클러스터 할당 방법(
Figure 112019123341671-pat00001
)을 획득하고,
Figure 112019123341671-pat00002
여기서, m은 유저, j는 클러스터가 속해있는 그룹을 나타낸다.
각 유저가 지연시간을 최소화 하기 위해 클러스터에 오프로딩(offloading) 해야 하는 최적의 작업량을 분배하는 단계는, 하기 식과 같이 나타내고,
Figure 112019123341671-pat00003
여기서, m은 유저, j는 클러스터가 속해있는 그룹, k m 은 행렬의 행의 수, N워커들의 수를 나타낸다.
또 다른 일 측면에 있어서, 본 발명에서 제안하는 다수 사용자의 분산 기계학습에서 평균 지연 속도 절감을 위한 자원 할당 장치는 각 유저들이 해당 워커들로부터 코딩된 행렬과 유저의 타겟 벡터의 곱을 수신하는 통신부, 코딩된 행렬과 유저의 타겟 벡터의 곱에 대하여 밸런싱 조건(balancing condition)을 추가하여 LPP(linear programming problem)로 바꾸고, LPP를 푸는 것에 의해 최적 클러스터 할당 방법을 획득하는 최적 클러스터 할당 방법 계산부 및 각 유저가 지연시간을 최소화 하기 위해 클러스터에 오프로딩(offloading) 해야 하는 최적의 작업량을 분배하는 최적 작업량 분배부를 포함한다.
본 발명의 실시예들에 따르면 클러스터 제안하는 할당 방법과 작업량 분배 방법을 통하여, 기계학습에서 다수의 사용자가 분산 컴퓨팅을 이용한 학습을 하는 경우 평균 지연시간을 최소화 할 수 있다. 또한, 부호화(coding)을 이용하여 스트래글러(straggler)로 여겨지는 시스템 오류(system failure)나 통신 병목(communication bottleneck)로 인해 분산 컴퓨팅 환경에서 발생할 수 있는 다수 사용자의 평균 지연 속도를 획기적으로 줄일 수 있다.
도 1은 본 발명의 일 실시예에 따른 다수 사용자의 분산 기계학습에서 평균 지연 속도 절감을 위한 자원 할당 방법을 설명하기 위한 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 다수 사용자의 분산 기계학습에서 평균 지연 속도 절감을 위한 자원 할당 방법의 전체 과정을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 다수 사용자의 분산 기계학습에서 평균 지연 속도 절감을 위한 자원 할당 장치의 구성을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 각 유저들이 해당 워커들로부터 코딩된 행렬과 유저의 타겟 벡터의 곱을 수신하는 과정을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 램버트(Lambert) W 함수를 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 클러스터 할당과 작업량 분배를 다른 기법들을 비교한 것이다.
도 7은 본 발명의 일 실시예에 따른 클러스터 분배를 나타내는 도면이다.
도 8은 본 발명의 일 실시예에 따른 시뮬레이션 결과 그래프이다.
본 발명의 실시예에 따르면 분산 클라우드 컴퓨팅 환경에서 다수의 사용자가 기계학습을 하는 경우, 다수의 사용자에게 컴퓨팅 클러스터들(computing clusters)을 각 유저에게 최적으로 할당하는 방법을 제안한다. 여기서 최적은 최소의 지연속도를 갖는 것을 의미한다. 각 유저에게 할당된 컴퓨팅 클러스터들의 수가 정해지면, 각 유저의 지연속도를 최소화하기 위해 각 유저가 처리해야 하는 작업량을 컴퓨팅 클러스터에게 분배하는 최적의 작업량 분배 방법을 제안한다.
제안된 연산 클러스터들의 할당 방법과 작업량 분배 방법은 각 컴퓨팅 클러스터들의 연산 능력(computing capability)이 이기종(heterogeneous)인 상황을 가정한다. 각 컴퓨팅 클러스터의 런타임 분배(runtime distribution)가 쉬프티드 익스포넨셜(shifted exponential)인 경우 문제를 해결할 수 있다. 컴퓨팅 클러스터들을 리소스(resource)로 간주하여 리소스 밸런싱 조건(resource balancing condition)을 제안한다. 주어진 문제에 밸런싱 조건을 추가하여 제안된 문제를 LPP(linear programming problem)로 바꾸고 최적 클러스터 할당(optimal cluster assignment) 방법을 솔루션으로 제시한다. 추가로 각 사용자가 지연시간을 최소화 하기 위해 클러스터에 오프로딩(offloading)해야 하는 최적의 작업량 분배 방법(optimal load allocation)을 제시한다. 이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 다수 사용자의 분산 기계학습에서 평균 지연 속도 절감을 위한 자원 할당 방법을 설명하기 위한 흐름도이다.
제안하는 다수 사용자의 분산 기계학습에서 평균 지연 속도 절감을 위한 자원 할당 방법은 각 유저들이 해당 워커들로부터 코딩된 행렬과 유저의 타겟 벡터의 곱을 수신하는 단계(110), 코딩된 행렬과 유저의 타겟 벡터의 곱에 대하여 밸런싱 조건(balancing condition)을 추가하여 LPP(linear programming problem)로 바꾸는 단계(120), LPP를 푸는 것에 의해 최적 클러스터 할당 방법을 획득하는 단계(130) 및 각 유저가 지연시간을 최소화 하기 위해 클러스터에 오프로딩(offloading) 해야 하는 최적의 작업량을 분배하는 단계(140)를 포함한다.
도 2는 본 발명의 일 실시예에 따른 다수 사용자의 분산 기계학습에서 평균 지연 속도 절감을 위한 자원 할당 방법의 전체 과정을 설명하기 위한 도면이다.
본 발명의 실시예에 따른 유저들에게 클러스터를 할당하는 방법과 유저가 클러스터들에게 작업량 분배 방법을 통하여, 기계학습에서 다수의 사용자가 분산 컴퓨팅을 이용한 학습을 하는 경우 평균 지연시간을 최소화 할 수 있다.
또한 부호화(coding)을 이용하여 스트래글러(straggler)로 여겨지는 시스템 오류(system failure)나 통신 병목(communication bottleneck)로 인해 분산 컴퓨팅 환경에서 발생할 수 있는 다수 사용자의 평균 지연 속도를 획기적으로 줄일 수 있다. 본 발명에서 사용되는 노테이션 및 정의에 대하여 아래 표에 정리한다.
Figure 112019123341671-pat00004
도 2를 참조하면, 각 유저에 따른 연산 속도를
Figure 112019123341671-pat00005
, 로 표기한다. 은 유저를 는 클러스터가 속해 있는 그룹을 나타낸다. 유저 이 크기가
Figure 112019123341671-pat00006
인 데이터 매트릭스를 부과했을 때 그룹 의 워커가 평균적으로 끝내는 시간은
Figure 112019123341671-pat00007
가 된다.
본 발명에서는 모든 유저가 주어진 연산을 끝내는데 걸리는 평균 시간을 최소화 하는 클러스터의 할당과 작업량 배분을 목적으로 한다.
다시 도 1을 참조하면 단계(110)에서, 각 유저들이 해당 워커들로부터 코딩된 행렬과 유저의 타겟 벡터의 곱을 수신한다. 각 유저를 서브(serve)하는 워커들의 수를 구하고, 각 유저를 서브하는 워커들의 수가 정해지면 각 유저는 해당 워커들에게 유저의 타겟 벡터를 전송하고 연산결과인 코딩된 행렬과 유저의 타겟 벡터의 곱을 수신한다.
단계(120)에서, 코딩된 행렬과 유저의 타겟 벡터의 곱에 대하여 밸런싱 조건(balancing condition)을 추가하여 LPP(linear programming problem)로 바꾼다. 최적 클러스터 할당 방법이 최적이 되기 위한 필요조건인 각 유저가 일을 마치는 시간이 같아지도록 코딩된 행렬과 유저의 타겟 벡터의 곱에 대하여 밸런싱 조건을 추가하여 LPP로 바꾼다.
단계(130)에서, LPP를 푸는 것에 의해 최적 클러스터 할당 방법을 획득한다. 실수 벡터(real vector) 값인 최적 클러스터 할당 방법을 정수 벡터(integer vector)로 라운드(round)한다.
단계(140)에서, 각 유저가 지연시간을 최소화 하기 위해 클러스터에 오프로딩(offloading) 해야 하는 최적의 작업량을 분배한다.
도 3은 본 발명의 일 실시예에 따른 다수 사용자의 분산 기계학습에서 평균 지연 속도 절감을 위한 자원 할당 장치의 구성을 설명하기 위한 도면이다.
다수 사용자의 분산 기계학습에서 평균 지연 속도 절감을 위한 자원 할당 장치(300)는 통신부(310), 최적 클러스터 할당 방법 계산부(320) 및 최적 작업량 분배부(330)를 포함한다.
통신부(310)는 각 유저들이 해당 워커들로부터 코딩된 행렬과 유저의 타겟 벡터의 곱을 수신한다. 각 유저를 서브(serve)하는 워커들의 수를 구하고, 각 유저를 서브하는 워커들의 수가 정해지면 각 유저는 해당 워커들에게 유저의 타겟 벡터를 전송하고 연산결과인 코딩된 행렬과 유저의 타겟 벡터의 곱을 수신한다.
최적 클러스터 할당 방법 계산부(320)는 코딩된 행렬과 유저의 타겟 벡터의 곱에 대하여 밸런싱 조건(balancing condition)을 추가하여 LPP(linear programming problem)로 바꾼다. 최적 클러스터 할당 방법이 최적이 되기 위한 필요조건인 각 유저가 일을 마치는 시간이 같아지도록 코딩된 행렬과 유저의 타겟 벡터의 곱에 대하여 밸런싱 조건을 추가하여 LPP로 바꾼다.
최적 작업량 분배부(330)는 LPP를 푸는 것에 의해 최적 클러스터 할당 방법을 획득한다. 실수 벡터(real vector) 값인 최적 클러스터 할당 방법을 정수 벡터(integer vector)로 라운드(round)한다.
단계(140)에서, 각 유저가 지연시간을 최소화 하기 위해 클러스터에 오프로딩(offloading) 해야 하는 최적의 작업량을 분배한다.
도 4는 본 발명의 일 실시예에 따른 각 유저들이 해당 워커들로부터 코딩된 행렬과 유저의 타겟 벡터의 곱을 수신하는 과정을 설명하기 위한 도면이다.
통신부를 통해 각 유저들이 해당 워커들로부터 코딩된 행렬과 유저의 타겟 벡터의 곱을 수신하는 단계에서는 종래기술에서 모든 워커들이 마스터를 서브(serve)했던 것과 달리, 마스터(m)를 서브하는 워커들의 수를 구하는 것이 목적이다.
각 마스터를 서브하는 워커들의 수가 정해지면 각 마스터는 그 워커들에게 xm을 전송하고(도 4(a) 참조) 연산결과인
Figure 112019123341671-pat00008
을 수신 받는다. 유저(m)은
Figure 112019123341671-pat00009
의 계산을 목적으로 하고, 유저(m)은 xm을 유저를 서브하는 클러스터들에게 전송한다. 클러스터 i는  
Figure 112019123341671-pat00010
와 xm을 곱하여 유저에게 연산결과인  
Figure 112019123341671-pat00011
을 전송한다. 여기서
Figure 112019123341671-pat00012
이다.
최적의 클러스터 할당 방법이 최적이 되기 위한 필요조건은 각 유저가 일을 마치는 시간이 같아져야 한다(resource balancing)는 것이다.
최적 로드 할당이 주어진 경우에 워커 어사인먼트가 최적이 되기 위한 필요조건을 제시한다. 이때, M은 2보다 크고, 최적 로드 할당(l*, r*)이 주어진다. N*이 최적 워커 어사인먼트일 때, 필요조건은 T* m1= T* m2 (for m1, m2∈ [M]) 이다.
여기서,
Figure 112019123341671-pat00013
이고,
Figure 112019123341671-pat00014
,
Figure 112019123341671-pat00015
이다.
이와 같이, 필요조건을 추가하여 주어진 문제를 다음과 같은 LPP로 치환한다. 이러한 LPP 문제를 푸는 것에 의해 최적의 클러스터 할당 방법(
Figure 112019123341671-pat00016
)을 얻는다.
Figure 112019123341671-pat00017
Figure 112019123341671-pat00018
이 LPP는 simplex dual form 으로 Matlab의 내장함수인 linprog()를 사용하여 쉽게 구할 수 있다.
위의 결과로 얻은
Figure 112019123341671-pat00019
값은 실수 벡터(real vector)이다. 따라서 정수 벡터(integer vector)로의 라우드(round) 과정이 필요하다.
Figure 112019123341671-pat00020
를 보다 크거나 같은 가장 작은 정수라고 정의 한다. 의 The nearest integer function을 <>로 표기하고
Figure 112019123341671-pat00021
로 정의한다.
실수 벡터
Figure 112019123341671-pat00022
값을 얻으면 후속과정으로 다음과 같은 라운딩(rounding)을 거친다. 다음과정을 모든 ∈{1,2,…,}에 대하여 반복한다.
Figure 112019123341671-pat00023
,을 먼저
Figure 112019123341671-pat00024
로 라운드한다. 여기서
Figure 112019123341671-pat00025
이고,
Figure 112019123341671-pat00026
을 는
Figure 112019123341671-pat00027
로 라운드한다.
다음은 최적의 작업량 분배 방법에 대하여 설명한다. 주어진 변수는 다음과 같다.
M은 유저(User)
Figure 112019123341671-pat00028
는 각 마스터 런타임 분배(runtime distribution)가 고정되어 있다.
Figure 112019123341671-pat00029
는 각 마스터에게 할당된 최적의 클러스터 분배 방법이다. 이때,
Figure 112019123341671-pat00030
이다.
최적의 작업량 분배 방법은 하기 식과 같이 나타낼 수 있다.
Figure 112019123341671-pat00031
여기서,
Figure 112019123341671-pat00032
는 마스터 을 서브하는 그룹 의 클러스터에게 할당되는 작업량을 나타낸다.
도 5는 본 발명의 일 실시예에 따른 램버트(Lambert) W 함수를 설명하기 위한 도면이다.
램버트(Lambert) W 함수의 리얼 브랜치(real branch) 중에서 W -1으로 표현되는 부분이 로워 브랜치(lower branch)이고, W 0는 프린서플 브랜치(principle branch)이다. 여기서 사용하는 것이 로워 브랜치이다. 도메인과 코도메인(codomain)은 다음과 같다.
Figure 112019123341671-pat00033
Figure 112019123341671-pat00034
도 6은 본 발명의 일 실시예에 따른 클러스터 할당과 작업량 분배를 다른 기법들을 비교한 것이다.
도 7은 본 발명의 일 실시예에 따른 클러스터 분배를 나타내는 도면이다.
도 8은 본 발명의 일 실시예에 따른 시뮬레이션 결과 그래프이다.
로워 바운드(Lower Bound)는
Figure 112019123341671-pat00035
을 나타낸다. 이 경우
Figure 112019123341671-pat00036
는 실수 값으로 대입된다.
Figure 112019123341671-pat00037
로워 바운드 유니폼(Lower Bound Uniform)은
Figure 112019123341671-pat00038
을 나타낸다.
Figure 112019123341671-pat00039
은 Uniform-WA을 나타내는 표기법이다. 바운드의 경우에는 수식값을 플로팅 한 것이고, 각 기법들의 경우에는 그래프에 monte Carlo simulation을 통해서 나온 실험 값을 플로팅한 것이다.
일 실시예에 따른 클러스터 할당과 작업량 분배에 대한 시뮬레이션 결과는 도 8과 같다. 먼저 마스터(M)와 그룹(G)이 2개가 있는 경우이다. 각 그룹의 워커수는 200, 800으로 설정되어있다. 여기서 도 8과 같이 각 스트래글링 파라미터는 5, 5, 3, 0.25로 설정되었다. 즉, 첫 번째 그룹은 두 개의 마스터에 대해서 평균적으로 같은 속도로 일을 한다. 반면 두 번째 그룹의 경우에는 마스터 1에 대해서는 그룹1보다는 조금 느리지만 상대적으로 마스터 2보다는 빠른 속도로 작업을 처리하게 된다. 이 때의 최적 솔루션인 N*는 실수 값이기 때문에 N은 nearest integer function을 써서 사용하였다. 테이블에서 그룹1의 워커들은 모두 마스터 2를 서브하는 것을 확인할 수 있다. 그리고 마스터 1을 그룹2의 워커들이 담당하고 나머지 부족 부분을 컴퓨팅 능력이 작은 마스터2를 서브하는 그룹2의 워커들이 채워주는 것을 알 수 있다.
실험을 위해서 nearest integer function을 써서 N*를 라운드 했다. 제안된 방법이 로워 바운드를 달성한다는 것을 알 수 있다. 또한 coded with l* 즉, 워커는 유니폼으로 배치하고 로드는 최적으로 부과했을 때의 경우에도 바운드를 달성한다는 것을 알 수 있다. 제안된 기법과 uncoded uniform의 경우에는 10배의 성능차이를 보이고, 제안된 방법과 그리디 알고리즘은 약 30%의 성능 차이를 보인다.
본 발명의 실시예에 따르면, 스트래글러들로 인해 발생하는 분산 컴퓨팅에서의 평균 지연 속도가 증가하는 문제를 해결할 수 있다.
본 발명에서 제시하는 다수 사용자의 기계 학습을 위한 최적의 클러스터 할당 및 작업량 분배 방법을 통하여 다양한 사업에서 비용을 획기적으로 줄일 수 있다. 또한 모든 사용자의 평균 지연시간의 감소로 분산 컴퓨팅 플랫폼(platform)을 이용하는 고객의 만족도를 늘릴 수 있을 것으로 기대할 수 있다. 사용 가능한 플랫폼들은 스트래글러가 나타나는 모든 경우를 포함한다. 예를 들어, 클라우드 컴퓨팅(Amazon EC2), 모바일 에지 컴퓨팅, 포그 컴퓨팅, 페더레이티드 러닝(federated learing) 등이 있다.
제안된 방법은 기계 학습 알고리즘들 중 행렬 곱 연산을 기반으로 하는 알고리즘에서 각 컴퓨팅 클러스터에 할당되는 열(row)의 수를 적절하게 분배하여 평균 지연속도를 줄이는 것을 목적으로 한다. 하지만 행렬 곱 연산이 아닌 다른 대규모 연산을 분산 컴퓨팅 환경에서 하는 경우에도 그 연산량을 행렬 곱 연산에 적절하게 대응시켜 다수의 유저가 최소의 지연속도를 갖도록 클러스터를 할당하고 작업량을 분배할 수 있을 것으로 기대할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다.  또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다.  이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다.  예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다.  또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다.  소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다.  소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다.  상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.  상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.  컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.  프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다.  예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (12)

  1. 통신부를 통해 각 유저들이 해당 워커들로부터 코딩된 행렬과 유저의 타겟 벡터의 곱을 수신하는 단계;
    코딩된 행렬과 유저의 타겟 벡터의 곱에 대하여 최적 클러스터 할당 방법 계산부를 통해 밸런싱 조건(balancing condition)을 추가하여 LPP(linear programming problem)로 바꾸는 단계;
    최적 클러스터 할당 방법 계산부를 통해 LPP를 푸는 것에 의해 최적 클러스터 할당 방법을 획득하는 단계; 및
    각 유저가 지연시간을 최소화 하기 위해 최적 작업량 분배부를 통해 클러스터에 오프로딩(offloading) 해야 하는 최적의 작업량을 분배하는 단계
    를 포함하고,
    각 유저가 지연시간을 최소화 하기 위해 최적 작업량 분배부를 통해 클러스터에 오프로딩(offloading) 해야 하는 최적의 작업량을 분배하는 단계는,
    하기 식과 같이 나타내고,
    Figure 112021015737178-pat00055

    여기서, m은 유저, j는 클러스터가 속해있는 그룹, km 은 행렬의 행의 수, N워커들의 수를 나타내는
    자원 할당 방법.
  2. 제1항에 있어서,
    통신부를 통해 각 유저들이 해당 워커들로부터 코딩된 행렬과 유저의 타겟 벡터의 곱을 수신하는 단계는,
    각 유저를 서브(serve)하는 워커들의 수를 구하고, 각 유저를 서브하는 워커들의 수가 정해지면 각 유저는 해당 워커들에게 유저의 타겟 벡터를 전송하고 연산결과인 코딩된 행렬과 유저의 타겟 벡터의 곱을 수신하는
    자원 할당 방법.
  3. 제1항에 있어서,
    코딩된 행렬과 유저의 타겟 벡터의 곱에 대하여 최적 클러스터 할당 방법 계산부를 통해 밸런싱 조건을 추가하여 LPP로 바꾸는 단계는,
    최적 클러스터 할당 방법이 최적이 되기 위한 필요조건인 각 유저가 일을 마치는 시간이 같아지도록 코딩된 행렬과 유저의 타겟 벡터의 곱에 대하여 밸런싱 조건을 추가하여 LPP로 바꾸는
    자원 할당 방법.
  4. 제1항에 있어서,
    최적 클러스터 할당 방법 계산부를 통해 LPP를 푸는 것에 의해 최적 클러스터 할당 방법을 획득하는 단계는,
    실수 벡터(real vector) 값인 최적 클러스터 할당 방법을 정수 벡터(integer vector)로 라운드(round)하는
    자원 할당 방법.
  5. 제1항에 있어서,
    최적 클러스터 할당 방법 계산부를 통해 LPP를 푸는 것에 의해 최적 클러스터 할당 방법을 획득하는 단계는,
    하기 식을 이용하여 최적 클러스터 할당 방법(
    Figure 112021015737178-pat00056
    )을 획득하고,
    Figure 112021015737178-pat00057

    여기서, m은 유저, j는 클러스터가 속해있는 그룹을 나타내는
    자원 할당 방법.
  6. 삭제
  7. 각 유저들이 해당 워커들로부터 코딩된 행렬과 유저의 타겟 벡터의 곱을 수신하는 통신부;
    코딩된 행렬과 유저의 타겟 벡터의 곱에 대하여 밸런싱 조건(balancing condition)을 추가하여 LPP(linear programming problem)로 바꾸고, LPP를 푸는 것에 의해 최적 클러스터 할당 방법을 획득하는 최적 클러스터 할당 방법 계산부; 및
    각 유저가 지연시간을 최소화 하기 위해 클러스터에 오프로딩(offloading) 해야 하는 최적의 작업량을 분배하는 최적 작업량 분배부
    를 포함하고,
    최적 작업량 분배부가 각 유저가 지연시간을 최소화 하기 위해 클러스터에 오프로딩(offloading) 해야 하는 최적의 작업량을 구하는 식은 하기 식과 같이 나타내고,
    Figure 112021015737178-pat00058

    여기서, m은 유저, j는 클러스터가 속해있는 그룹, km 은 행렬의 행의 수, N워커들의 수를 나타내는
    자원 할당 장치.
  8. 제7항에 있어서,
    통신부는,
    각 유저를 서브(serve)하는 워커들의 수를 구하고, 각 유저를 서브하는 워커들의 수가 정해지면 각 유저는 해당 워커들에게 유저의 타겟 벡터를 전송하고 연산결과인 코딩된 행렬과 유저의 타겟 벡터의 곱을 수신하는
    자원 할당 장치.
  9. 제7항에 있어서,
    최적 클러스터 할당 방법 계산부는,
    최적 클러스터 할당 방법이 최적이 되기 위한 필요조건인 각 유저가 일을 마치는 시간이 같아지도록 코딩된 행렬과 유저의 타겟 벡터의 곱에 대하여 밸런싱 조건을 추가하여 LPP로 바꾸는
    자원 할당 장치.
  10. 제7항에 있어서,
    최적 클러스터 할당 방법 계산부는,
    실수 벡터(real vector) 값인 최적 클러스터 할당 방법을 정수 벡터(integer vector)로 라운드(round)하는
    자원 할당 장치.
  11. 제7항에 있어서,
    최적 클러스터 할당 방법 계산부는,
    하기 식을 이용하여 최적 클러스터 할당 방법(
    Figure 112021015737178-pat00059
    )을 획득하고,
    Figure 112021015737178-pat00060

    여기서, m은 유저, j는 클러스터가 속해있는 그룹을 나타내는
    자원 할당 장치.
  12. 삭제
KR1020190156429A 2019-11-29 2019-11-29 다수 사용자의 분산 기계학습에서 평균 지연 속도 절감을 위한 자원 할당 방법 및 장치 KR102248978B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190156429A KR102248978B1 (ko) 2019-11-29 2019-11-29 다수 사용자의 분산 기계학습에서 평균 지연 속도 절감을 위한 자원 할당 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190156429A KR102248978B1 (ko) 2019-11-29 2019-11-29 다수 사용자의 분산 기계학습에서 평균 지연 속도 절감을 위한 자원 할당 방법 및 장치

Publications (1)

Publication Number Publication Date
KR102248978B1 true KR102248978B1 (ko) 2021-05-07

Family

ID=75916462

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190156429A KR102248978B1 (ko) 2019-11-29 2019-11-29 다수 사용자의 분산 기계학습에서 평균 지연 속도 절감을 위한 자원 할당 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102248978B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100478346B1 (ko) * 2003-10-21 2005-03-25 한국전자통신연구원 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드밸런싱 방법 및 그 시스템
JP2009519548A (ja) * 2005-12-12 2009-05-14 ザ マスワークス, インク 計器に基づく分散計算システム関連出願
US20140289733A1 (en) * 2013-03-22 2014-09-25 Palo Alto Research Center Incorporated System and method for efficient task scheduling in heterogeneous, distributed compute infrastructures via pervasive diagnosis
KR101794696B1 (ko) * 2016-08-12 2017-11-07 서울시립대학교 산학협력단 이기종 프로세싱 타입을 고려한 태스크 스케쥴링 방법 및 분산 처리 시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100478346B1 (ko) * 2003-10-21 2005-03-25 한국전자통신연구원 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드밸런싱 방법 및 그 시스템
JP2009519548A (ja) * 2005-12-12 2009-05-14 ザ マスワークス, インク 計器に基づく分散計算システム関連出願
US20140289733A1 (en) * 2013-03-22 2014-09-25 Palo Alto Research Center Incorporated System and method for efficient task scheduling in heterogeneous, distributed compute infrastructures via pervasive diagnosis
KR101794696B1 (ko) * 2016-08-12 2017-11-07 서울시립대학교 산학협력단 이기종 프로세싱 타입을 고려한 태스크 스케쥴링 방법 및 분산 처리 시스템

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Amirhossein Reisizadeh 외 3명. Coded Computation over Heterogeneous Clusters. 2017년 *

Similar Documents

Publication Publication Date Title
US9021477B2 (en) Method for improving the performance of high performance computing applications on Cloud using integrated load balancing
CN103347055B (zh) 云计算平台中的任务处理系统、设备及方法
US10129101B2 (en) Application driven and adaptive unified resource management for data centers with Multi-Resource Schedulable Unit (MRSU)
KR101432751B1 (ko) 가상화 환경 내 하둡 맵리듀스의 부하 분산 방법 및 시스템
CN107111517B (zh) 针对归约器任务的虚拟机优化分配和/或生成
US20150074216A1 (en) Distributed and parallel data processing systems including redistribution of data and methods of operating the same
US20080059555A1 (en) Parallel application load balancing and distributed work management
US11055139B2 (en) Smart accelerator allocation and reclamation for deep learning jobs in a computing cluster
US9292353B2 (en) Resource allocation using capacity distribution
US20150355943A1 (en) Weighted stealing of resources
US11150944B2 (en) Balancing mechanisms in ordered lists of dispatch queues in a computational device
CN104598316B (zh) 一种存储资源分配方法及装置
KR20210002646A (ko) Gpu를 위한 피드백 기반 분할 작업 그룹 디스패치
Pham et al. Joint consolidation and service-aware load balancing for datacenters
US10423452B2 (en) Allocating resources to virtual machines
Zikos et al. A clairvoyant site allocation policy based on service demands of jobs in a computational grid
CN109412865B (zh) 一种虚拟网络资源分配方法、系统及电子设备
US20210390405A1 (en) Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof
CN105487928A (zh) 一种控制方法、装置及Hadoop系统
Kumar et al. QoS‐aware resource scheduling using whale optimization algorithm for microservice applications
Imdoukh et al. Optimizing scheduling decisions of container management tool using many‐objective genetic algorithm
KR102193747B1 (ko) 매니코어 시스템의 하이퍼바이저에서 스케줄링 하는 방법
KR102248978B1 (ko) 다수 사용자의 분산 기계학습에서 평균 지연 속도 절감을 위한 자원 할당 방법 및 장치
US20220413941A1 (en) Computing clusters
US11669358B2 (en) Virtual network functions allocation in a datacenter

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant