KR20200064415A - 자원 관리를 위한 컴퓨팅 장치 및 시스템에서 자원사용 표현방법 - Google Patents

자원 관리를 위한 컴퓨팅 장치 및 시스템에서 자원사용 표현방법 Download PDF

Info

Publication number
KR20200064415A
KR20200064415A KR1020180150524A KR20180150524A KR20200064415A KR 20200064415 A KR20200064415 A KR 20200064415A KR 1020180150524 A KR1020180150524 A KR 1020180150524A KR 20180150524 A KR20180150524 A KR 20180150524A KR 20200064415 A KR20200064415 A KR 20200064415A
Authority
KR
South Korea
Prior art keywords
resource
resource usage
group
amount
remaining execution
Prior art date
Application number
KR1020180150524A
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 KR1020180150524A priority Critical patent/KR20200064415A/ko
Publication of KR20200064415A publication Critical patent/KR20200064415A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3017Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking
    • 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
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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]

Abstract

본 발명은 자원 할당 및 스케줄링 성능을 향상시키기 위한 자원사용 표현 방법 및 장치에 관한 것이다. 또한, 본 발명은 컴퓨팅 장치 또는 컴퓨팅 시스템에서 상기 자원사용 표현 방법을 활용한 자원사용 데이터의 업데이트 방법에 관한 것이다. 본 발명 컴퓨팅 시스템은, 작업을 수행하고, 작업 및 자원사용에 관한 정보를 제공하는 자원개체 수단, 상기 작업 및 자원에 관한 정보를 입력 받아, 상기 작업들을 잔여 실행량에 따라 그룹화하고, 각 그룹마다, 각 자원 유닛별 자원 사용량을 판별하여, 자원 사용상태 데이터를 생성 및 업데이트하는 자원사용 표현개체 수단, 및 상기 자원사용 데이터를 활용하여, 자원 할당, 스케줄링 및 관리를 수행하는 자원관리 개체 수단을 포함한다. 본 발명의 실시예에 따른 자원사용 표현 방법은, 낮은 표현 복잡도를 가지면서도 시간에 따른 자원 가용성에 관한 정보를 보존할 수 있다.

Description

자원 관리를 위한 컴퓨팅 장치 및 시스템에서 자원사용 표현방법 {Apparatus and method for resource usage representation for resource management}
본 발명은 자원관리를 위한 컴퓨팅 장치 및 시스템에서 자원 할당 및 스케줄링의 확장성 및 성능을 향상시키기 위한 자원사용 표현, 해당 표현의 업데이트 방법, 및 장치에 관한 것이다.
자원 할당 및 스케줄링 문제는 정보통신은 물론 공학 전반에 걸쳐 활용도가 높은 분야이다. 대표적인 예로 다음 경우를 예로 들 수 있다. 정보통신 분야의 운영체제, 분산 컴퓨팅 및 클라우드 시스템에서 각종 작업(job, task, function, process, thread등)의 자원 (CPU, GPU, memory, storage, buffer, queue, virtual machine, server 등) 할당 및 스케줄링에 활용될 수 있다. 또한, 정보통신 분야의 컴퓨터 네트워크 시스템에서 각종 부하(load: packet, traffic, task 등)의 자원 (channel, frequency slot, time slot, link, bandwidth, path 등)할당 및 스케줄링에 활용될 수 있다. 또한, 산업전반에서 공장 및 생산 시스템에서 각종 작업(job, task, activity 등)의 자원(시설, 장치, 인력 등)할당 및 스케줄링에 활용될 수 있다,
관련하여, 본 명세서에서 제안하는 자원사용 표현으로 표현된 자원사용 데이터는 자원관리 개체의 입력으로 사용된다. 본 명세서에서 언급하는 자원관리 개체는 인간 관리자, 자동화된 알고리즘 또는 인공지능이 내재된 하드웨어 및 소프트웨어 장치를 포괄한다. 자원관리 개체는 시스템에 인가되는 작업 요청들의 집합과 시스템의 자원사용 현황을 관찰하여, 주어진 목적(비용, 처리율, 속도 등)을 최적화하기 위한 자원 할당 및 스케줄링 작업을 수행한다.
본 명세서에서 언급하는 자원할당 및 스케줄링은 다음의 경우를 포괄한다. 1) 어떤 작업의 수행을 위해 어떤 자원들을 언제, 얼마 동안 할당할 것인가? 2) 여러 개의 작업 중 어떤 작업에게 우선적으로 자원을 할당할 것인가? 3) 여러 개의 작업 중 어떤 작업에게 어떤 자원을 우선적으로 할당할 것인가? 4) 여러 개의 작업들을 어떤 순서로 실행시킬 것인가? 5) 상기 사항을 포괄하는 가능한 모든 문제
또한 본 명세서에서 언급하는 최적화는 선형 계획법 (linear programming), 비선형 계획법 (non-linear programming), 동적 계획법 (dynamic programming), 경사 하강법 (gradient descent/ascent method), 모의 담금질 (simulated annealing), 유전학적 알고리즘 (genetic algorithm), 강화 학습 (reinforcement learning) 등 가능한 모든 기법을 포괄한다.
자원 할당 및 스케줄링 문제는 대표적인 결정문제(decision problem)에 속한다. 자원관리 개체가 인간인 경우, 자원사용 데이터를 포함한 시스템의 상태를 직접 관찰하여 자원 할당 및 스케줄링을 제어할 것이다.이를 위해,예를 들어, 형태로 시각화된 자원사용 현황 그래프를 GUI(Graphic User Interface)로 제공하는 모니터링프로그램을 활용할 수도 있을 것이다. 자원관리 개체가 자동화된 알고리즘이 내재된 하드웨어 또는 소프트웨어 장치인 경우, 내재되는 알고리즘은 주로 확률과정 (random process), 대기행렬 이론 (queueing theory), 최적화 이론 (optimization theory) 및 제어 이론 (control theory)등을 활용하여 설계한다. 종래에는 상기 분야에 능통한 인간 전문가가 자원사용 데이터 셋을 모아, 상기 분야를 활용한 분석을 수행함으로써, 자원 할당 및 스케줄링 알고리즘을 설계하였다. 근래에는 강화학습에 심층 신경망(DNN: Deep Neural Network)을 결합한 심층강화 학습이 자동화 및 자율제어 분야에서 의미 있는 성과를 보여줌에 따라, 자원관리 개체를 강화학습 에이전트 형태로 구현하고, 에이전트에 자원사용 데이터를 포함한 다양한 경험 데이터를 대량으로 입력시킴으로써, 자원관리 개체가 자원 할당 및 스케줄링 알고리즘을 학습 또는 자가생성(self-generation, self-programming)하도록 하는 연구개발 사례들이 등장하고 있다.
자원관리 개체는 일반적으로 다음의 사항들을 입력으로 받는다. 1) 어떤 자원이 어떤 작업에 의해 사용되고 있는가? 2) 해당 작업은 향후 어느 정도의 처리시간 또는 처리량을 더 필요로 하는가? 단, 상기 사항들로만 한정되지 않으며, 다른 정보도 함께 포함할 수 있다. 예를 들어, 새롭게 요청된 작업에 관한 정보를 포함할 수도 있다. 본 명세서에서는 위와 같은 입력을 자원사용(resource usage) 데이터라고 명명한다.
이하, 도 1 내지 도 3을 참조하여, 자원사용 데이터를 활용한 자원 할당 및 스케줄링 시스템 및 방법을 설명한다.
도 1은 자원관리를 필요로 하는 일반적인 시스템을 도시한 것으로, 자원사용 데이터를 관찰하여 자원 할당 및 스케줄링을 수행하는 자원관리 개체(resource management entity)와, 작업들에게 자원을 제공하여 작업의 수행을 담당하는 자원개체(resource entity) 간의 상호작용을 예를 들어 도시한 것이다. 또한, 도 2는 자원사용을 일반적인 컴퓨팅 시스템에서의 예를 들어 도시한 것이고, 도 3은 종래 사용되는 자원사용 표현 방법을 예를 들어 도시한 것이다.
도 2에서
Figure pat00001
Figure pat00002
번째 자원 유닛(resource unit)을 의미하고,
Figure pat00003
Figure pat00004
번째 자원 유닛(resource unit)의
Figure pat00005
번째 자원을 의미한다 (
Figure pat00006
). 또한
Figure pat00007
Figure pat00008
번째 작업을 의미한다 (
Figure pat00009
).
Figure pat00010
는 작업
Figure pat00011
의 향후 필요 처리시간(또는 처리량)이다 (
Figure pat00012
). 도 2의 예에서,
Figure pat00013
,
Figure pat00014
는 CPU 자원이고,
Figure pat00015
,
Figure pat00016
,
Figure pat00017
는 메모리 자원을 예를 들어 도시한 것이다. CPU 자원
Figure pat00018
은 작업
Figure pat00019
에 의해 사용된다. 메모리 자원
Figure pat00020
은 작업
Figure pat00021
에 의해 사용된다. 작업
Figure pat00022
의 향후 처리시간은15ms이다.
도 2와 같은 자원 사용은 다양한 형태의 자료구조 또는 메시지에 수납되어 도 1의 자원관리 개체(resource management entity)의 입력으로 전달된다. 여기서 자료구조는 프로그래밍 개념에서 함수에 인자로 전달되는 구조체 (structure) 또는 개체/객체(object)까지 포괄하는 개념이다. 이후의 상호 작용은 다음의 절차들로 구성된다. 1) 시스템에 작업들의 실행이 요청된다. 예를 들어, 클라우드 컴퓨팅 시스템에 작업의 집합
Figure pat00023
의 실행이 요청된다. 2) 이후, 자원개체에서 자원사용 데이터가 메시지 또는 자료구조에 수납되어 자원관리 개체에 입력으로 전달된다. 3) 자원관리 개체는 각 작업들의 수행 순서와 할당할 자원들을 결정하여 자원개체에 전달한다. 예를 들어, 작업
Figure pat00024
에게 CPU 자원
Figure pat00025
,
Figure pat00026
,
Figure pat00027
와 메모리 자원
Figure pat00028
을 할당하여 전달한다. 4) 자원개체는 관찰된 피드백(feedback)을 자원관리 개체에게 전달한다. 예를 들어, 처리율, 응답시간, 비용등과 같은 각종 성능측정값이 피드백정보에 해당될 수 있다. 도 1의 상호작용은 꼭 상기 예시의 순서대로 수행될 필요는 없다. 예를 들어, 자원사용 데이터가 여러 번 전달될 수도 있고, 다수 개의 피드백이 한꺼번에 전달될 수도 있다.
자원관리 개체는 최적화 또는 최적화를 위한 점근적 결정을 출력하는 알고리즘 또는 함수를 내포하고 있다. 자원관리 개체가 인간 관리자인 경우 내포된 알고리즘 또는 함수는 인간이 직접적으로 결정하는 것을 지칭하고, 자원관리 개체가 자동화된 하드웨어 또는 소프트웨어 시스템인 경우, 해당 알고리즘 또는 함수는 프로그래밍이나 회로를 통해 구현될 것이다. 자동화된 알고리즘 또는 함수는 인간 전문가의 분석을 통해 설계 및 구현될 수도 있고, 자원관리 개체를 인공지능/기계학습 에이전트 형태로 먼저 구현한 후 자가 학습 또는 자가 생성시킬 수도 있다.
예를 들어, 강화학습 기법을 사용하는 경우, 자원관리 개체는 에이전트 (agent), 자원개체는 환경(environment)으로 볼 수 있다. 자원 개체가 자원관리 개체에게 전달하는, 자원사용 데이터를 포함하는, 입력 데이터는 강화학습 개념의 상태(state)에 포함될 수 있다. 유사하게, 자원 할당 및 스케줄링은 강화학습 개념의 행동(action), 피드백은 강화학습 개념의 보상(reward)에 포함될 수 있다.
자원 할당 및 스케줄링 알고리즘의 설계, 생성 및 성능은 대개 자원사용 표현복잡도(representation complexity)와 밀접한 연관이 있다. 본 명세서에서 언급하는 표현복잡도란 자원사용 데이터를 수치적으로 표시하기 위해 필요한 값의 개수이다. 도 3은 종래 제안된 자원 할당 및 스케줄링 알고리즘에서 자원사용을 어떻게 표현하는지 예를 들어 도시한 것이다.
도 3을 참조하면, 현재 시스템에서 자원을 점유하고 있는 작업의 개수는 5개이고, 해당 작업들에 의해 점유되는 자원의 개수는 총 26개이다. 따라서, 자원 사용 데이터는 31개의 값으로 표현된다. 이를 일반화하면 자원 사용의 표현복잡도
Figure pat00029
은 다음의 (식 1)로 표현할 수 있다.
Figure pat00030
(식 1)에서
Figure pat00031
은 자원 유닛의 집합이며,
Figure pat00032
는 작업의 집합이다.
Figure pat00033
는 자원 유닛
Figure pat00034
에서 사용 중인 자원의 개수이다.
만일 시스템 내에 작업의 개수가 100개(
Figure pat00035
)이고, 이들이 100개의 자원 유닛(
Figure pat00036
)각각에 대해 3개씩의 자원을 사용 중이라고 가정해보면
Figure pat00037
이 된다.
즉,
Figure pat00038
Figure pat00039
의 개수가 조금만 증가해도, 자원사용 데이터의 표현복잡도는 이들의 곱에 비례하여 증가함을 알 수 있다. 이와 같은 표현복잡도의 증가는 실제 구현시 확장성(scalability) 문제로 이어지게 된다. 즉, 높은 표현복잡도는 다음과 같은 문제점이 있다.
첫째, 자원 할당 및 스케줄링 알고리즘의 설계 및 생성이 어려워진다. 인간 전문가가 설계하는 경우 확률과정, 대기행렬 이론 및 최적화 이론 등의 적용이 어려워지며, 설계를 위한 시간적, 노동적 비용이 증가한다. 또한 시스템 설계 과정에서 자원사용 데이터 셋(dataset)의 분석의 용이성을 위한 무리한 가정들을 추가하면서, 알고리즘의 결정 성능이 떨어진다. 강화학습 에이전트의 형태로 구현하여 알고리즘을 자가 생성시키는 경우, 에이전트의 두뇌에 해당하는 근사화 함수(approximator)의 훈련(training)이 어려워진다. 근사화 함수는 신경망과 같은 기계학습 모델의 형태로 구현되고, 자원사용 데이터 셋은 특징벡터(feature vector)의 형태로 변환되어 기계학습 모델에 입력되는데,
Figure pat00040
이 과도하게 증가하면 특징벡터의 길이 역시 과도하게 증가한다. 이는 이른바 “차원의 저주(curse of dimensionality)”에 의한 학습시간의 급증과 알고리즘의 결정 성능 하락으로 이어진다.
둘째, 자원개체가 자원사용 데이터를 자원관리 개체에게 전달하기 위한 관측 및 제어비용(monitoring/controlling overhead)이 증가한다. 예를 들어, 자원관리 개체의 자원 할당 및 스케줄링 주기가1ms이고,
Figure pat00041
인 경우, 1ms 마다
Figure pat00042
개의 값을 포함하는 메시지 또는 자료구조를 생성하여 전달하는 것은 현실적이지 않다.
상기 종래 문제점으로 언급한 확장성은, 자원 할당 및 스케줄링 알고리즘의 실용성 및 현실성 획득을 위해 반드시 제공되어야 할 중요한 요소이다. 하지만
Figure pat00043
을 낮추기 위해 자원사용을 섣불리 축약시켜 표현하면, 최적화에 유용한 정보의 손실로 인해 알고리즘의 결정 성능이 저하될 수 있다. 예를 들어, 1) 잔여실행시간이 3초 이내인 작업이 전체 작업의 몇 %인가? 2) 100ms 이내에 사용 완료되어 반환될 자원은 얼마나 되는가?와 같은 중요한 정보가 손실될 수 있다.
따라서
Figure pat00044
을 낮추면서도 자원 할당 및 스케줄링 전략에 중요한 역할을 하는 정보는 보존하는 효과적인 자원사용 표현 방법이 필요하다. 이하, 본 발명은 다음 사항들을 만족시킴으로써 상기 언급한 효과적인 자원사용 표현 방법을 제안하고자 한다. 첫째,
Figure pat00045
Figure pat00046
의 증가가,
Figure pat00047
의 과도한 증가로 이어지지 않도록 한다. 둘째, 자원 할당 및 스케줄링 문제를 확률과정, 대기행렬 이론, 최적화 이론, 제어 이론 및 강화학습의 측면에서 접근했을 때, 유용한 정보들이 포함되도록 한다. 셋째, 제안하는 표현기법으로 표현된 자원사용 데이터를 자원관리 개체에 입력으로 사용했을 때, 타당하고 합리적인 할당 및 스케줄링 결정이 출력될 수 있도록 한다.
따라서, 본 발명의 목적은, 전술한 종래 기술의 문제점을 해결하기 위해, 효과적인 자원사용 데이터 표현 방법 및 해당 표현의 업데이트 방법을 제공하는, 컴퓨팅 장치 및 시스템을 제공하는 것에 있다.
본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허청구범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상기 목적을 달성하기 위한, 본 발명 및 장치의 자원사용 표현 방법은, 자원 할당 및 스케줄링을 필요로 하는 컴퓨팅 장치 및 시스템에서, 실행되는 작업들 및 작업들이 사용하고 있는 자원에 관한 데이터를 수신하는 과정, 상기 작업들을 향후 잔여 실행량에 따라 그룹화하여 나누는 과정, 및 각 잔여 실행량 그룹별로 자원 유닛(resource unit)별 사용 자원의 양(number of resource)을 판별하여, 자원사용 데이터를 생성하는 과정을 포함한다.
또한, 상기 그룹화를 위한 각 그룹별 잔여 실행량을 향후 잔여 실행시간, 향후 실행해야 할 작업의 양등으로 포괄적으로 정의할 수 있는 것을 특징으로 한다.
또한, 상기 그룹화를 위한 잔여 실행량의 간격은 동일한 값으로 설정하는 것을 특징으로 한다. 예를 들어, 잔여 실행량을 잔여 실행시간으로 정의하는 경우, 모든 그룹에 대하여, 동일한 값으로 100ms를 사용할 수 있다.
또한, 상기 그룹화를 위한 잔여 실행량의 간격은 상이한 값으로 설정하는 것을 특징으로 한다. 예를 들어, 잔여 실행량을 잔여 실행시간으로 정의하는 경우, 첫 번째 그룹은 10ms, 두 번째 그룹은 25ms 등으로 자유롭게 설정할 수 있다.
또한, 상기 자원사용 표현의 업데이트 방법은, 신규로 실행되는 작업들의 필요 실행량을 판별하는 과정, 상기 판별 결과에 따라, 히스토그램 상에서 신규 작업들이 속하는 잔여 실행량 그룹을 판별하는 과정, 각 잔여 실행량 그룹 별로, 각 자원 유닛 별로, 신규 작업들이 필요로 하는 자원의 양을 판별하는 과정, 및 상기 판별에 기초하여, 잔여 실행량 그룹 별, 자원 유닛 별 사용 자원의 양을 변경하여, 자원사용 데이터를 생성하는 과정을 더 포함한다.
또한, 상기 자원사용 표현의 업데이트 방법은, 시간의 흐름에 따라 각 작업의 잔여 실행량과, 각 작업이 속하는 잔여 실행량 그룹을 다시 판별하여 갱신하는 과정, 및 상기 판별에 기초하여, 각 잔여 실행량 그룹 별, 각 자원 유닛 별 사용 자원의 양을 변경하여, 자원사용 데이터를 갱신하는 과정을 더 포함한다.
또한, 상기 자원사용 표현의 업데이트 방법은, 시간의 흐름에 따라 실행을 마치고 종료된 작업들을 판별하는 과정, 각 잔여 실행량 그룹 별로, 각 자원 유닛 별로, 종료된 작업들이 반환한 자원의 양을 판별하는 과정, 및 상기 판별에 기초하여, 잔여 실행량 그룹 별, 자원 유닛 별 사용 자원의 양을 변경하여, 자원사용 데이터를 갱신하는 과정을 더 포함한다.
상기 목적을 달성하기 위한, 본 발명 시스템은, 자원 할당 및 스케줄링을 필요로 하는 시스템에 있어서, 작업을 수행하고, 작업 및 자원사용에 관한 데이터를 생성하는 자원개체 수단, 작업 및 자원사용 정보를 활용하여, 자원 할당 및 스케줄링을 결정하는 자원관리 개체 수단을 포함한다.
또한, 상기 본 발명 시스템은, 작업 및 자원사용에 관한 데이터를 입력 받아, 상기 작업들을 잔여 실행량에 따라 그룹화하고, 각 잔여 실행량 그룹 별,각 자원 유닛 별, 사용 자원의 양을 판별하여, 자원사용 데이터를 표현하며, 신규 작업이 실행되었을 때, 자원사용 데이터를 갱신하며, 시간의 흐름에 따라, 각 작업들의 잔여 실행량이 변경되었을 때, 자원사용 데이터를 갱신하며, 시간의 흐름에 따라, 종료된 작업들이 발생하였을 때, 자원사용 데이터를 갱신하는, 자원사용 표현 개체 수단을 포함한다.
또한, 상기 시스템에서, 자원관리 개체 수단은 인간 관리자를 지칭할 수도 있다. 이 경우, 인간 관리자가 관리 운영을 위해 사용하는 하드웨어, 또는 소프트웨어, 또는 CLI (Command Line Interface) 또는 GUI도 해당 수단에 포괄한다. 또는, 미리 설계된 자동화된 알고리즘을 내재한 하드웨어 또는 소프트웨어 시스템을 지칭할 수 있다. 또는, 인공지능/기계학습 에이전트로 동작하는 하드웨어 또는 소프트웨어 시스템을 지칭할 수도 있다.
본 발명의 실시예에 따른 자원사용 표현 방법은, 낮은 표현복잡도를 가지면서도 시간에 따른 자원 가용성에 관한 정보를 보존할 수 있다. 즉, 본 발명 실시예에서 제안하는 표현기법을 통해, 표현 간소화와 자원 가용성 (availability) 정보보존이라는 상충(trade-off) 관계에서 적절한 균형을 유지하는 것이 가능하다. 표현의 간소화에 의거, 본 발명에서 제안하는 자원 사용 표현 방법은 다음의 구체적인 효과를 기대할 수 있다.
우선 본 발명의 실시예에 따른 자원 사용상태 표현 방법은, 확장성 (scalability)을 가진다. 이를 통해, 대량의 작업과 대량의 자원 유닛을 포함하는 대규모 시스템의 자원관리에 적용 가능하다.
또한, 본 발명의 실시예에 따른 자원사용 표현 방법은, 효율성 (efficiency)을 가진다. 이를 통해, 자원 할당 및 스케줄링 알고리즘의 분석, 설계 및 생성비용을 절감할 수 있게 된다. 또한 인공지능/기계학습 에이전트에 제안하는 자원사용 표현 기법을 적용한 데이터 셋을 입력하는 경우 학습비용을 절감할 수도 있다.
또한, 본 발명의 실시예에 따른 자원 사용상태 표현 방법은, 실용성 (practicality)을 가진다. 즉, 상술한 확장성과 효율성의 개선으로부터 실용성의 개선으로 이어지게 된다.
도 1은 종래 자원 할당 및 스케줄링을 필요로 하는, 일반적인 시스템을 예를 들어 도시한 것이다.
도 2는 일반적인 컴퓨팅 시스템에서의 자원사용을 예를 들어 도시한 것이다.
도 3은 종래 자원사용 표현 방법을 컴퓨팅 시스템의 예를 들어 도시한 것이다.
도 4는 본 발명의 실시예에 따른, 자원사용 표현 방법을 컴퓨팅 시스템에의 예를 들어 도시한 것이다.
도 5는 본 발명의 실시 예에 따른, 자원사용 표현 방법을 구현하는 컴퓨팅 시스템을 도시한 것이다.
도 6은 본 발명의 실시 예에 따른, 새로운 작업들이 시작되어 자원을 점유했을 때, 자원사용 데이터의 업데이트 방법을 도시한 것이다.
도 7은 도 6에서 기술한 방법을 예를 들어 도시한 것이다.
도 8은 본 발명의 실시 예에 따른, 시간이 흐름으로써, 실행되던 작업들의 잔여 실행량이 변경되었을 때, 자원사용 데이터의 업데이트 방법을 예를 들어 도시한 것이다.
도 9는 본 발명의 실시 예에 따른, 기존에 실행되던 작업들이 종료되어 자원을 반환했을 때, 자원사용 데이터의 업데이트 방법을 도시한 것이다.
도 10은 도 8내지 도 9에서 기술한 방법을 예를 들어 도시한 것이다.
도 11은 본 발명의 다른 실시 예에 따른, 자원사용 표현 데이터가 시각화된 정보의 형태로, 제공되는 예를 도시한 것이다.
이하에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나, 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.
본 발명의 실시 예를 설명함에 있어서 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그에 대한 상세한 설명은 생략한다. 그리고, 도면에서 본 발명에 대한 설명과 관계없는 부분은 생략하였으며, 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 발명에 있어서, 서로 구별되는 구성요소들은 각각의 특징을 명확하게 설명하기 위함이며, 구성요소들이 반드시 분리되는 것을 의미하지는 않는다. 즉, 복수의 구성요소가 통합되어 하나의 하드웨어 또는 소프트웨어 단위로 이루어질 수도 있고, 하나의 구성요소가 분산되어 복수의 하드웨어 또는 소프트웨어 단위로 이루어질 수도 있다. 따라서, 별도로 언급하지 않더라도 이와 같이 통합된 또는 분산된 실시 예도 본 발명의 범위에 포함된다.
본 발명에 있어서, 다양한 실시 예에서 설명하는 구성요소들이 반드시 필수적인 구성요소들을 의미하는 것은 아니며, 일부는 선택적인 구성요소일 수 있다. 따라서, 일 실시 예에서 설명하는 구성요소들의 부분집합으로 구성되는 실시 예도 본 발명의 범위에 포함된다. 또한, 다양한 실시 예에서 설명하는 구성요소들에 추가적으로 다른 구성요소를 포함하는 실시 예도 본 발명의 범위에 포함된다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예들에 대해서 설명한다.
도 4는 본 발명의 실시예에 따른, 컴퓨팅 시스템에서의 자원 사용상태 표현 방법을 예를 들어 도시한 것이다. 전술한 도 3의 종래 자원 사용상태 표현 방법과 비교하여 설명하면 다음과 같다.
대다수의 자원 할당 및 스케줄링 문제들을 관찰해보면, 시간에 따른 자원들의 가용성을 파악하는 것이 핵심임을 알 수 있다. 예를 들어, 다음과 같은 사항들을 파악하면 자원 할당 및 스케줄링 전략에 유용하게 활용할 수 있을 것이다. 자원 유닛1에서 향후 1.5초 이내에 사용 완료되어 반환될 자원의 개수는 몇 개인가?, 자원 유닛2에서 향후1초 이상, 3초 이내에 사용 완료되어 반환될 자원의 개수는 몇 개인가?, 자원 유닛3에서 향후 0.5초 이후에도 계속 사용될 자원의 개수는 몇 개인가?, 자원 유닛3의 총 자원 개수 대비 몇 %인가?
상기 요청된 사항들을 파악할 수 있는 방식은, 자원을 향후 잔여 실행량의 구간 (interval) 별로 그룹화(grouping)하여 표현하는 것이다. 도 4를 참조하면, 예를 들어, 잔여 실행량은 각 작업의 잔여실행시간으로 정의되며, 자원개체에서 5개의 작업이 수행 중이고, 각각의 향후 잔여실행시간이 3.1초, 0.05초, 0.7초, 2.18초, 3.82초인 경우를 예시한 것임을 알 수 있다. 이로부터, 향후 1초 이상 3초 이내에 사용 완료될 작업의 수는 3개임을 알 수 있다.
즉, 상기 예시에서 착안하여, 본 발명에서는 작업의 향후 잔여 실행시간을 구간별로 나누어 그룹화하고 (예: 50ms, 100ms, 0.5초, 1초 또는 가변), 각 그룹이 점유하고 있는 자원이 몇 개인가를 표시하는 형태로 자원사용 데이터를 표현하고자 한다.
관련하여, 도 4는 도 3과 동일한 자원개체를 가정했을 때, 자원사용이 어떻게 표현되는가를 예시한 것이다. 예를 들어, 도 4의 예시에서는 잔여 실행량을 향후 잔여 실행시간으로 정의하고, 이것을 1초 단위로 분할하여, 작업을 5개의 종류로 나누어 그룹화한 경우를 도시한 것이다. 따라서, 첫번째 그룹
Figure pat00048
는 향후 잔여실행시간이 0부터 1초 미만인 작업들의 그룹이며, 두번째 그룹
Figure pat00049
은 향후 잔여실행시간이 1초 이상 2초 미만인 작업들의 그룹이다. 마찬가지로, 세번째 그룹
Figure pat00050
는 2초 이상 3초 미만, 네번째 그룹
Figure pat00051
는 3초 이상, 4초 미만, 마지막 다섯번째 그룹
Figure pat00052
는 4초 이상 5초 미만인 작업들의 그룹을 의미한다. 단, 이는 예시적인 경우에 해당하며, 각 그룹을 구별하는 시간 간격은 시스템에 따라 달리 적용할 수 있다. 예를 들어, 시스템에 따라 그룹별 시간 간격을 동일한 시간 간격으로 하거나, 또는 상이한 가변적인 시간 간격으로 설정하는 것이 모두 가능하다. 이는 시스템의 성능 및 부하를 고려하여 설계자의 선택에 의해 결정될 수 있다.
도 4를 다시 참조하여, 예시한 자원 사용 표현을 살펴보면,
Figure pat00053
에 속하는 작업이 사용하는 CPU 자원은 10개이며, 메모리 자원은 4개이다.또한
Figure pat00054
에 속하는 작업이 사용하는 CPU 자원은 3개이며,메모리 자원은 1개이다.이와 같이 자원 유닛별로 그룹별 자원의 점유량을 표시함으로써,자원사용은 10(=5
Figure pat00055
2)개의 값들로 표현된다.이를 일반화하면 본 발명에서 제안한 자원 사용 표현복잡도
Figure pat00056
은 다음의 (식 2)로 표현할 수 있다.
Figure pat00057
(식 2)에서
Figure pat00058
는 그룹의 집합이다.
Figure pat00059
는 종래
Figure pat00060
와 달리
Figure pat00061
의 증가에 영향을 받지 않으며,
Figure pat00062
|를
Figure pat00063
Figure pat00064
에 비해 상대적으로 낮게 설정함으로써,
Figure pat00065
의 값을 작게 유지할 수 있다. 즉,
Figure pat00066
Figure pat00067
의 증가가,
Figure pat00068
의 과도한 증가로 이어지지 않게 된다.
또한 본 발명의 자원 사용상태 표현은 자원 가용성을 효과적으로 표현할 수 있다. 도 4의 예시에서, 제안하는 자원 사용상태 표현을 통해 아래 예시적 질문에 대한 해답을 쉽게 찾아낼 수 있게 된다. 예를 들어,
Figure pat00069
에서 사용되지 않는 자원의 개수는 얼마인가 84개(= 100 - 16).
Figure pat00070
의 가용률은 얼마인가? 90% (= (100 - 10) / 100). 3초 이후,
Figure pat00071
Figure pat00072
에서 사용을 마치고 반환될 자원의 개수는 몇 개인가?
Figure pat00073
: 13개,
Figure pat00074
: 5개. 즉, 본 발명의 자원 사용상태표현 방식은 자원 가용성 측면에서 유용한 정보들을 포함하고 있음을 알 수 있다.
상기 전술한, 수학적 방법론들은 (예를 들어, 확률 과정, 대기행렬 이론, 최적화 이론, 강화학습 등을 포함), 자원사용 데이터가 주어졌을 때, 자원의 할당 및 스케줄링 문제에 대한 예측 기반 알고리즘의 산출에 활용될 수 있다. 본 발명에서 제안하는 자원사용 표현 방법이 낮은 표현복잡도
Figure pat00075
로 자원 가용성을 효과적으로 표현하는 것을 감안하면,해당 수학적 방법론들을 적용함으로써 자원 가용성을 예측하고,이에 기반하여 효율적 성능으로 동작하는 알고리즘을 설계 또는 생성할 수 있음은 자명하다.
예를 들어, 인간 전문가에 의해 자원관리 알고리즘을 직접 설계하는 경우에는, 확률과정, 대기행렬 이론등을 적용하여 시간에 따라 자원 가용성이 어떻게 변할 것인가를 판단할 예측모델을 만들고, 최적화 이론을 통해 그에 따른 행동 알고리즘을 산출할 수 있게 된다. 또는 인공지능/기계학습을 자원관리 알고리즘을 자가 생성하는 경우에는, 시간 가용성에 대한 예측모델과 행동 알고리즘이 에이전트 내부의 근사화 함수에 내재될 수 있다.
도 5 내지 도 11는 본 발명의 실시예에 따른, 시스템에서의 자원사용 표현 방법, 자원사용 데이터의 업데이트 방법,및 자원관리 방법을 수행하는 과정을 도시한 것이다.
우선, 도 5는 본 발명의 실시예에 따른, 자원 사용상태 표현 방법, 자원사용 데이터의 업데이트 방법, 및 자원관리 방법을 수행하는 시스템을 예를 들어 도시한 것이고, 도 6 내지 도 7은상기 도5의 실시예에 따른 시스템에서, 신규 작업이 실행될 때, 자원사용 데이터의 업데이트 방법 및 자원관리 방법을 예를 들어 도시한 것이다. 도 8 내지 도 10은 상기 도 5의 실시 예에 따른 시스템에서, 시간의 흐름에 따라 작업들의 그룹화 형태가 달라질 때, 또는 종료되는 작업들이 발생할 때,자원사용 데이터의 업데이트 방법 및 자원관리 방법을 예를 들어 도시한 것이다. 도 11은 상기 도 5의 실시 예에 따른 시스템에서, 제안하는 자원사용 표현으로 표현된 자원사용 데이터가 구체적으로 어떻게 활용되는가를 예를 들어 도시한 것이다.
구체적으로, 도 5를 구성하는 본 발명의 실시 예에 따른, 자원 사용상태 표현 방법, 자원사용 데이터의 업데이트 방법, 및 자원관리 방법을 수행하는 시스템은, 작업을 수행하고, 작업 및 자원에 관한 정보를 제공하는 자원개체 수단(503), 상기 작업 및 자원사용에 관한 데이터를 입력 받아, 상기 작업들을 잔여 실행량에 따라 그룹화하고, 각 잔여 실행량 그룹마다 각 자원 유닛별 사용 자원의 양을 판별하여, 자원사용 데이터를 표현하는 자원사용 표현개체 수단(502), 및 상기 자원사용 데이터를 활용하여, 자원 할당 및 스케줄링을 결정하는 자원관리 개체 수단(501)을 포함하여 이루어 진다.
즉, 도 5의 본 발명 시스템 구성은, 종래 도 1의 시스템과 비교하여, 상기 자원사용 표현개체 수단(502)이 더 추가됨을 특징으로 한다, 단, 도 5에서는 설명의 편의를 위해 해당 개체(502)가 자원개체 수단(503) 과 자원관리 개체 수단(501) 사이에 위치함을 도시하였지만, 실제 구현에 따라서는 자원관리 개체 수단(503) 또는 자원 개체 수단(501)의 부개체(sub-entity)로 포함되어도 무방하다.
관련하여, 본 발명의 실시예에 따른 다른 장치는, 자원 할당 및 스케줄링을 수행하는 프로세서(processor)를 포함할 수 있다. 상기 장치의 프로세서는 전술한 상기 자원관리 개체 수단(501) 및 상기 자원사용 표현개체 수단(502)의 기능들을 포함하여 구성될 수 있다. 본 발명에서 언급한 프로세서는 하드웨어 및 소프트웨어를 포괄하는 개념이며, 상기 프로세서를 포함하는 본 발명의 장치는, 가능한 모든 컴퓨팅 시스템, 예를 들어, PC (Personal Computer) 및 스마트 폰과 같은 개인 정보화 기기부터, 분산 시스템, 데이터센터, 컴퓨터 네트워크, 공장 시스템 등이 해당될 수 있다.
도 6은 본 발명 실시 예에 따른 시스템에서, 신규 작업들이 실행되었을 때, 자원사용 데이터의 업데이트 방법을 도시한 것이다.
도 6을 참조하면, 본 발명의 신규 작업 실행 시 자원사용 데이터의 업데이트 방법은,신규 작업들의 필요 실행량을 판별하는 과정 (610), 판별된 결과에 따라 신규 작업들이 속하는 잔여 실행량 그룹을 판별하는 과정 (620), 각 잔여 실행량 그룹 별로,각 자원 유닛 별로,신규작업들이 필요로 하는 자원의 양을 판별하는 과정 (630), 각 잔여 실행량 그룹 별로,각 자원 유닛 별로,기존에 사용하던 자원의 양에 신규 작업들이 필요로 하는 자원의 양을 더해 줌으로써, 자원사용 데이터를 갱신하는 과정(640)으로 이루어진다.
또한, 도 7은 도 6에서 기술한 방법을 컴퓨팅 시스템의 구체적인 예를 들어 도시한 것이다.
도 7의 예시에서 가정한 사항과 초기상태는 다음과 같다. 1) 자원 개체 수단(503)은 용량이 100인 CPU 자원 유닛을 제공하는 컴퓨팅 시스템이고, 2) 현재 5개의 작업이 실행 중이다. 3) 잔여 실행량 그룹은 도 4의 예와 동일한 설정을 사용하여, 1초 단위 구간으로 분할한다. 잔여시간이 1초 이내인 그룹
Figure pat00076
에는 작업
Figure pat00077
Figure pat00078
이 속하며,이들 각각이 점유하는 CPU 자원의 양은9 및 1이다. 따라서
Figure pat00079
이 현재 사용하는 자원의 양은 10이다. 같은 개념을 사용하면,
Figure pat00080
의 자원 사용량은 0,
Figure pat00081
의 자원 점유량은 3,
Figure pat00082
의 자원 점유량은 3, 및
Figure pat00083
의 자원 점유량은 0임을 알 수 있다. 4) 이를 제안하는 자원사용 표현으로 바꾸면, 도면 상단 우측의 자원사용 표현이 된다.
도 7을 참조하여, 초기상태에서 새로운 작업이 실행했을 때, 자원사용의 업데이트 과정은 다음과 같다. 1) 자원 개체 수단(503)에 새로운 작업
Figure pat00084
가 실행된다.
Figure pat00085
는3개의 CPU 자원을 필요로 하며, 향후 필요 실행량은 4.1초이다. 2)
Figure pat00086
의 향후 필요 실행량이 4초 이상, 5초 미만이기 때문에, 자원표현 개체 수단(502)은
Figure pat00087
의 잔여 실행량 그룹을
Figure pat00088
로 판별한다. 3)
Figure pat00089
의 이전 자원 사용량 0에
Figure pat00090
의 자원 사용량 3을 더하여
Figure pat00091
의 자원 사용량이 3으로 변경된다. 4) 도면 하단의 우측과 같이 새롭게 자원사용 표현이 갱신된다.
도 8은 본 발명 실시 예에 따른 시스템에서, 시간이 흐름으로써, 실행되던 작업들의 잔여 실행량이 변경되었을 때, 자원사용 데이터의 업데이트 방법을 도시한 것이다.
도 8을 참조하면, 본 발명의 시간의 흐름에 따른, 실행 중 작업의 잔여 실행량 변경에 따른 자원사용 데이터의 업데이트 방법은, 시간의 흐름에 따라 각 작업의 잔여 실행량과 각 작업이 속하는 잔여 실행량 그룹을 다시 판별하여 갱신하는 과정 (810), 각 잔여 실행량 그룹 별로, 각 자원 유닛 별로, 기존에 사용하던 자원의 양에서 다른 그룹으로 이동한 작업들이 사용하던 자원의 양을 빼 줌으로써, 자원사용 데이터를 갱신하는 과정 (820), 각 잔여 실행량 그룹 별로,각 자원 유닛 별로, 기존에 사용하던 자원의 양에서 다른 그룹에서 이동해 온 작업들이 사용하는 자원의 양을 더해 줌으로써, 자원사용 데이터를 갱신하는 과정(830)으로 이루어진다.
도 9는 본 발명 실시 예에 따른 시스템에서, 시간이 흐름으로써, 실행을 마치고 종료된 작업들이 발생했을 때, 자원사용 데이터의 업데이트 방법을 도시한 것이다.
도 9를 참조하면, 본 발명의 시간의 흐름에 따른, 작업 종료에 따른 자원사용 데이터의 업데이트 방법은, 실행을 마치고 종료된 작업들을 판별하는 과정(910), 각 잔여 실행량 그룹 별로,각 자원 유닛 별로,종료된 작업들이 반환한 자원의 양을 판별하는 과정 (920), 각 잔여 실행량 그룹 별로,각 자원 유닛 별로,기존에 사용하던 자원의 양에서 종료된 작업들이 반환한 자원의 양을 빼 줌으로써, 자원사용 데이터를 갱신하는 과정(930)으로 이루어진다.
또한, 도 10은 도 8 내지 도 9에서 기술한 방법을 컴퓨팅 시스템의 구체적인 예를 들어 도시한 것이다.
도 10의 예시에서 가정한 사항과 초기상태는, 도 7의 예시에서 가정한 사항과 초기상태와 동일하다.
도 10을 참조하여, 시간의 흐름에 따른, 작업들의 잔여 실행량 변경 및 종료 작업 발생 시, 자원사용 데이터의 업데이트 과정을 예시하면 다음과 같다. 1) 시간이 1초 경과되며, 자원 개체 수단(503)에서 실행되던 작업들의 잔여 실행량이 1초씩 감소한다. 2)자원사용 표현 개체 수단(502)은 작업들의 잔여 실행량의 변화 및 종료 여부를 판별한다. 초기 상태에서
Figure pat00092
에 속하던 작업
Figure pat00093
Figure pat00094
는 종료되어, 이들이 사용하던 CPU 자원이 자원 개체에 반환되었다. 초기 상태에서
Figure pat00095
에 속하던 작업
Figure pat00096
Figure pat00097
에 속하게 되며,
Figure pat00098
에 속하던 작업
Figure pat00099
Figure pat00100
Figure pat00101
에 속하게 된다. 이러한 변화는 도 10 하단 가운데의 잔여 실행량 분포 막대 그래프에 예시된다. 3) 자원사용 표현 개체 수단(502)은 상기 변화를 반영하여 도면 하단 우측과 같이 자원사용 데이터를 업데이트한다.
또한 도 11은 본 발명 실시 예에 따른 시스템에서, 1) 자원사용 표현 데이터가 시각화된 정보의 형태로, 인간 관리자에게 전달되어, 자원관리에 사용되거나, 2) 자원사용 표현 데이터가 시각화된 정보의 형태로, 알고리즘 설계자에게 전달되어, 자원관리 개체 및 알고리즘의 설계에 사용되거나, 3) 자원사용 표현 데이터가 하드웨어 및 소프트웨어 시스템으로 구현된, 자동화된 자원관리 개체에게 입력되어, 자원관리에 사용되거나, 4) 자원사용 표현 데이터가 인공지능/기계학습 시스템으로 구현된, 자동화된 자원관리 개체에 입력되어, 학습 또는 자원관리에 사용되는 경우를 예시한 것이다.
본 개시의 다양한 실시 예는 모든 가능한 조합을 나열한 것이 아니고 본 개시의 대표적인 양상을 설명하기 위한 것이며, 다양한 실시 예에서 설명하는 사항들은 독립적으로 적용되거나 또는 둘 이상의 조합으로 적용될 수도 있다.
또한, 본 개시의 다양한 실시 예는 하드웨어, 펌웨어(firmware), 소프트웨어, 또는 그들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 범용 프로세서(general processor), 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
본 개시의 범위는 다양한 실시 예의 방법에 따른 동작이 장치 또는 컴퓨터 상에서 실행되도록 하는 소프트웨어 또는 머신-실행 가능한 명령들(예를 들어, 운영체제, 애플리케이션, 펌웨어(firmware), 프로그램 등), 및 이러한 소프트웨어 또는 명령 등이 저장되어 장치 또는 컴퓨터 상에서 실행 가능한 비-일시적 컴퓨터-판독가능 매체(non-transitory computer-readable medium)를 포함한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로, 본 발명의 범위는 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
501: 자원관리 개체
502: 자원사용 표현개체
503: 자원개체

Claims (14)

  1. 자원 할당, 스케줄링 및 관리를 위한 컴퓨팅 장치에서,
    작업 및 자원사용에 관한 정보를 획득하는 단계,
    상기 작업들을 잔여 실행량에 따라 그룹화하는 단계, 및
    상기 각 그룹마다 자원 유닛(resource unit)별 자원 사용량(amount of resource)에 기초하여, 자원사용 데이터를 생성하는 단계를 포함하는 컴퓨팅 장치의 자원사용 표현 방법.
  2. 제1항에 있어서, 상기 자원사용 표현 방법은,
    신규로 실행되는 작업들의 필요 실행량을 판별하는 단계,
    상기 판별 결과에 따라, 신규 작업들이 속하는 잔여 실행량 그룹을 판별하는 단계, 및
    상기 판별 결과에 기초하여, 상기 각 그룹마다, 자원 유닛별 자원 사용량을 갱신하여, 갱신된 자원사용데이터를 생성하는 단계를 더 포함하는 컴퓨팅 장치의 자원사용 표현 방법.
  3. 제 1항에 있어서, 상기 자원사용 표현 방법은,
    종료된 작업들이 속하는 잔여 실행량 그룹을 판별하는 단계,
    상기 판별 결과에 따라, 상기 각 그룹마다, 자원 유닛별 사용 후 반환된 자원의 양을 판별하는 단계, 및
    상기 판별 결과에 기초하여, 상기 각 그룹마다, 자원 유닛 별 자원 사용량을 갱신하여, 갱신된 자원사용 데이터를 생성하는 단계를 더 포함하는 컴퓨팅 장치의 자원사용 표현 방법.
  4. 제 1항에 있어서, 상기 자원사용 표현 방법은,
    시간의 흐름에 따라, 실행 중인 작업들의 잔여 실행량을 변경하는 단계,
    상기 판별 결과에 따라, 각 그룹마다, 자원 유닛 별 사용되는 자원의 증감 량을 판별하는 단계, 및
    상기 판별 결과에 기초하여, 상기 각 그룹마다, 자원 유닛 별 자원 사용량을 갱신하여, 갱신된 자원사용 데이터를 생성하는 단계를 더 포함하는 컴퓨팅 장치의 자원사용 표현 방법.
  5. 제 1항에 있어서,
    잔여 실행량의 단위를 시간으로 정의하는 것을 특징으로 하는 컴퓨팅 장치의 자원사용 표현 방법.
  6. 제 1항에 있어서,
    잔여 실행량의 단위를 수행할 하부작업 (sub-task) 또는 명령어(instruction)의 양으로 정의하는 것을 특징으로 하는 컴퓨팅 장치의 자원사용 표현 방법.
  7. 제 1항에 있어서,
    상기 잔여 실행량의 그룹화 간격을 동일한 크기로 설정하는 것을 특징으로 하는 컴퓨팅 장치의 자원사용 표현 방법.
  8. 제 1항에 있어서,
    상기 잔여 실행량의 그룹화 간격을 상이한 크기로 설정하는 것을 특징으로 하는 컴퓨팅 장치의 자원사용 표현 방법.
  9. 자원 할당, 스케줄링 및 관리를 위한 컴퓨팅 시스템에 있어서,
    작업을 수행하고, 작업 및 자원사용에 관한 정보를 제공하는 자원개체 수단,
    상기 작업 및 자원에 관한 정보를 입력 받아, 상기 작업들을 잔여 실행량에 따라 그룹화하고, 각 그룹마다, 각 자원 유닛별 자원 사용량을 판별하여, 자원 사용상태 데이터를 생성 및 업데이트하는 자원사용 표현개체 수단, 및
    상기 자원사용 데이터를 활용하여, 자원 할당, 스케줄링 및 관리를 수행하는 자원관리 개체 수단을 포함하는 것을 특징으로 하는 컴퓨팅 시스템.
  10. 제 9항에 있어서,
    상기 자원관리 개체 수단은 인간 전문가인 것을 특징으로 하는 컴퓨팅 시스템.
  11. 제 9항에 있어서,
    상기 자원관리 개체 수단은 자동화된 알고리즘 또는 인공지능 기계학습 장치인 것을 특징으로 하는 컴퓨팅 시스템.
  12. 제 9항에 있어서,
    자원사용 표현개체 수단이 생성하는 데이터는 잔여 실행량 그룹의 일부 또는 전체에 대해, 자원 사용량을 배열 또는 리스트로 표현한 자료구조 또는 파일인 것을 특징으로 하는 컴퓨팅 시스템
  13. 제 9항에 있어서,
    자원사용 표현개체 수단이 생성하는 데이터는 잔여 실행량 그룹의 일부 또는 전체에 대해, 각각의 자원 사용량을 시각화한 그래프인 것을 특징으로 하는 컴퓨팅 시스템.
  14. 자원 할당, 스케줄링 및 관리를 위한 컴퓨팅 장치에서,
    작업 및 자원사용에 관한 정보를 획득하는 단계,
    상기 작업들을 잔여 실행량에 따라 그룹화하는 단계,
    상기 각 그룹마다 자원 유닛 (resource unit)별 자원 사용량(amount of resource)에 기초하여, 자원사용 데이터를 생성하는 단계, 및
    상기 생성된 자원사용 데이터에 기초하여, 원 할당 및 스케줄링을 결정하는 단계를 포함하는 컴퓨팅 장치의 자원 할당 방법.
KR1020180150524A 2018-11-29 2018-11-29 자원 관리를 위한 컴퓨팅 장치 및 시스템에서 자원사용 표현방법 KR20200064415A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180150524A KR20200064415A (ko) 2018-11-29 2018-11-29 자원 관리를 위한 컴퓨팅 장치 및 시스템에서 자원사용 표현방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180150524A KR20200064415A (ko) 2018-11-29 2018-11-29 자원 관리를 위한 컴퓨팅 장치 및 시스템에서 자원사용 표현방법

Publications (1)

Publication Number Publication Date
KR20200064415A true KR20200064415A (ko) 2020-06-08

Family

ID=71090060

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180150524A KR20200064415A (ko) 2018-11-29 2018-11-29 자원 관리를 위한 컴퓨팅 장치 및 시스템에서 자원사용 표현방법

Country Status (1)

Country Link
KR (1) KR20200064415A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220076139A (ko) * 2020-11-30 2022-06-08 한국생산기술연구원 매출 tr 정보를 이용한 매장 내 고객의 방문 정보를 예측하는 방법과 이를 이용한 매장 내 계산원 인력을 스케줄링하는 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220076139A (ko) * 2020-11-30 2022-06-08 한국생산기술연구원 매출 tr 정보를 이용한 매장 내 고객의 방문 정보를 예측하는 방법과 이를 이용한 매장 내 계산원 인력을 스케줄링하는 방법

Similar Documents

Publication Publication Date Title
Shahidinejad et al. An elastic controller using Colored Petri Nets in cloud computing environment
Cui et al. A reinforcement learning-based mixed job scheduler scheme for grid or IaaS cloud
EP2650786A2 (en) Distributed processing system, scheduler node and scheduling method of distributed processing system, and program generation apparatus thereof
JP2022532890A (ja) デジタルワークフォースの知的調整のためのシステムおよび方法
EP3035619B1 (en) A method and system for scaling and a telecommunications network
Khoshkbarforoushha et al. Elasticity management of streaming data analytics flows on clouds
Bousselmi et al. QoS-aware scheduling of workflows in cloud computing environments
da Rosa Righi et al. A lightweight plug-and-play elasticity service for self-organizing resource provisioning on parallel applications
Ralha et al. Multiagent system for dynamic resource provisioning in cloud computing platforms
KR20220030050A (ko) 복수의 vnf(virtualized network function)에 대한 컴퓨팅 자원의 할당을 조정하는 방법 및 그 서버
Azad et al. A fuzzy-based method for task scheduling in the cloud environments using inverted ant colony optimisation algorithm
Vengerov A reinforcement learning framework for utility-based scheduling in resource-constrained systems
Kiss et al. A cloud-agnostic queuing system to support the implementation of deadline-based application execution policies
Heger et al. Dispatching rule selection with Gaussian processes
Priyadarsini et al. PBCOPSO: A parallel optimization algorithm for task scheduling in cloud environment
Tchernykh et al. Mitigating uncertainty in developing and applying scientific applications in an integrated computing environment
Dogani et al. Auto-scaling techniques in container-based cloud and edge/fog computing: Taxonomy and survey
Genez et al. Time-discretization for speeding-up scheduling of deadline-constrained workflows in clouds
Jangra et al. An efficient load balancing framework for deploying resource schedulingin cloud based communication in healthcare
CN110114732A (zh) 可编程控制器、管理装置和控制系统
Stavrinides et al. Orchestrating bag-of-tasks applications with dynamically spawned tasks in a distributed environment
KR20200064415A (ko) 자원 관리를 위한 컴퓨팅 장치 및 시스템에서 자원사용 표현방법
Santos et al. gym-hpa: Efficient auto-scaling via reinforcement learning for complex microservice-based applications in kubernetes
Nair et al. A reinforcement learning algorithm for rescheduling preempted tasks in fog nodes
Vahora et al. Cloudsim-a survey on vm management techniques