KR20200064415A - 자원 관리를 위한 컴퓨팅 장치 및 시스템에서 자원사용 표현방법 - Google Patents
자원 관리를 위한 컴퓨팅 장치 및 시스템에서 자원사용 표현방법 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3017—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking
-
- 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]
Abstract
본 발명은 자원 할당 및 스케줄링 성능을 향상시키기 위한 자원사용 표현 방법 및 장치에 관한 것이다. 또한, 본 발명은 컴퓨팅 장치 또는 컴퓨팅 시스템에서 상기 자원사용 표현 방법을 활용한 자원사용 데이터의 업데이트 방법에 관한 것이다. 본 발명 컴퓨팅 시스템은, 작업을 수행하고, 작업 및 자원사용에 관한 정보를 제공하는 자원개체 수단, 상기 작업 및 자원에 관한 정보를 입력 받아, 상기 작업들을 잔여 실행량에 따라 그룹화하고, 각 그룹마다, 각 자원 유닛별 자원 사용량을 판별하여, 자원 사용상태 데이터를 생성 및 업데이트하는 자원사용 표현개체 수단, 및 상기 자원사용 데이터를 활용하여, 자원 할당, 스케줄링 및 관리를 수행하는 자원관리 개체 수단을 포함한다. 본 발명의 실시예에 따른 자원사용 표현 방법은, 낮은 표현 복잡도를 가지면서도 시간에 따른 자원 가용성에 관한 정보를 보존할 수 있다.
Description
본 발명은 자원관리를 위한 컴퓨팅 장치 및 시스템에서 자원 할당 및 스케줄링의 확장성 및 성능을 향상시키기 위한 자원사용 표현, 해당 표현의 업데이트 방법, 및 장치에 관한 것이다.
자원 할당 및 스케줄링 문제는 정보통신은 물론 공학 전반에 걸쳐 활용도가 높은 분야이다. 대표적인 예로 다음 경우를 예로 들 수 있다. 정보통신 분야의 운영체제, 분산 컴퓨팅 및 클라우드 시스템에서 각종 작업(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에서 는 번째 자원 유닛(resource unit)을 의미하고, 는 번째 자원 유닛(resource unit)의 번째 자원을 의미한다 (). 또한 는번째 작업을 의미한다 ().는 작업 의 향후 필요 처리시간(또는 처리량)이다 (). 도 2의 예에서, , 는 CPU 자원이고, , , 는 메모리 자원을 예를 들어 도시한 것이다. CPU 자원 은 작업 에 의해 사용된다. 메모리 자원 은 작업 에 의해 사용된다. 작업 의 향후 처리시간은15ms이다.
도 2와 같은 자원 사용은 다양한 형태의 자료구조 또는 메시지에 수납되어 도 1의 자원관리 개체(resource management entity)의 입력으로 전달된다. 여기서 자료구조는 프로그래밍 개념에서 함수에 인자로 전달되는 구조체 (structure) 또는 개체/객체(object)까지 포괄하는 개념이다. 이후의 상호 작용은 다음의 절차들로 구성된다. 1) 시스템에 작업들의 실행이 요청된다. 예를 들어, 클라우드 컴퓨팅 시스템에 작업의 집합 의 실행이 요청된다. 2) 이후, 자원개체에서 자원사용 데이터가 메시지 또는 자료구조에 수납되어 자원관리 개체에 입력으로 전달된다. 3) 자원관리 개체는 각 작업들의 수행 순서와 할당할 자원들을 결정하여 자원개체에 전달한다. 예를 들어, 작업 에게 CPU 자원 , , 와 메모리 자원을 할당하여 전달한다. 4) 자원개체는 관찰된 피드백(feedback)을 자원관리 개체에게 전달한다. 예를 들어, 처리율, 응답시간, 비용등과 같은 각종 성능측정값이 피드백정보에 해당될 수 있다. 도 1의 상호작용은 꼭 상기 예시의 순서대로 수행될 필요는 없다. 예를 들어, 자원사용 데이터가 여러 번 전달될 수도 있고, 다수 개의 피드백이 한꺼번에 전달될 수도 있다.
자원관리 개체는 최적화 또는 최적화를 위한 점근적 결정을 출력하는 알고리즘 또는 함수를 내포하고 있다. 자원관리 개체가 인간 관리자인 경우 내포된 알고리즘 또는 함수는 인간이 직접적으로 결정하는 것을 지칭하고, 자원관리 개체가 자동화된 하드웨어 또는 소프트웨어 시스템인 경우, 해당 알고리즘 또는 함수는 프로그래밍이나 회로를 통해 구현될 것이다. 자동화된 알고리즘 또는 함수는 인간 전문가의 분석을 통해 설계 및 구현될 수도 있고, 자원관리 개체를 인공지능/기계학습 에이전트 형태로 먼저 구현한 후 자가 학습 또는 자가 생성시킬 수도 있다.
예를 들어, 강화학습 기법을 사용하는 경우, 자원관리 개체는 에이전트 (agent), 자원개체는 환경(environment)으로 볼 수 있다. 자원 개체가 자원관리 개체에게 전달하는, 자원사용 데이터를 포함하는, 입력 데이터는 강화학습 개념의 상태(state)에 포함될 수 있다. 유사하게, 자원 할당 및 스케줄링은 강화학습 개념의 행동(action), 피드백은 강화학습 개념의 보상(reward)에 포함될 수 있다.
자원 할당 및 스케줄링 알고리즘의 설계, 생성 및 성능은 대개 자원사용 표현복잡도(representation complexity)와 밀접한 연관이 있다. 본 명세서에서 언급하는 표현복잡도란 자원사용 데이터를 수치적으로 표시하기 위해 필요한 값의 개수이다. 도 3은 종래 제안된 자원 할당 및 스케줄링 알고리즘에서 자원사용을 어떻게 표현하는지 예를 들어 도시한 것이다.
도 3을 참조하면, 현재 시스템에서 자원을 점유하고 있는 작업의 개수는 5개이고, 해당 작업들에 의해 점유되는 자원의 개수는 총 26개이다. 따라서, 자원 사용 데이터는 31개의 값으로 표현된다. 이를 일반화하면 자원 사용의 표현복잡도은 다음의 (식 1)로 표현할 수 있다.
즉, 와 의 개수가 조금만 증가해도, 자원사용 데이터의 표현복잡도는 이들의 곱에 비례하여 증가함을 알 수 있다. 이와 같은 표현복잡도의 증가는 실제 구현시 확장성(scalability) 문제로 이어지게 된다. 즉, 높은 표현복잡도는 다음과 같은 문제점이 있다.
첫째, 자원 할당 및 스케줄링 알고리즘의 설계 및 생성이 어려워진다. 인간 전문가가 설계하는 경우 확률과정, 대기행렬 이론 및 최적화 이론 등의 적용이 어려워지며, 설계를 위한 시간적, 노동적 비용이 증가한다. 또한 시스템 설계 과정에서 자원사용 데이터 셋(dataset)의 분석의 용이성을 위한 무리한 가정들을 추가하면서, 알고리즘의 결정 성능이 떨어진다. 강화학습 에이전트의 형태로 구현하여 알고리즘을 자가 생성시키는 경우, 에이전트의 두뇌에 해당하는 근사화 함수(approximator)의 훈련(training)이 어려워진다. 근사화 함수는 신경망과 같은 기계학습 모델의 형태로 구현되고, 자원사용 데이터 셋은 특징벡터(feature vector)의 형태로 변환되어 기계학습 모델에 입력되는데, 이 과도하게 증가하면 특징벡터의 길이 역시 과도하게 증가한다. 이는 이른바 “차원의 저주(curse of dimensionality)”에 의한 학습시간의 급증과 알고리즘의 결정 성능 하락으로 이어진다.
둘째, 자원개체가 자원사용 데이터를 자원관리 개체에게 전달하기 위한 관측 및 제어비용(monitoring/controlling overhead)이 증가한다. 예를 들어, 자원관리 개체의 자원 할당 및 스케줄링 주기가1ms이고, 인 경우, 1ms 마다 개의 값을 포함하는 메시지 또는 자료구조를 생성하여 전달하는 것은 현실적이지 않다.
상기 종래 문제점으로 언급한 확장성은, 자원 할당 및 스케줄링 알고리즘의 실용성 및 현실성 획득을 위해 반드시 제공되어야 할 중요한 요소이다. 하지만 을 낮추기 위해 자원사용을 섣불리 축약시켜 표현하면, 최적화에 유용한 정보의 손실로 인해 알고리즘의 결정 성능이 저하될 수 있다. 예를 들어, 1) 잔여실행시간이 3초 이내인 작업이 전체 작업의 몇 %인가? 2) 100ms 이내에 사용 완료되어 반환될 자원은 얼마나 되는가?와 같은 중요한 정보가 손실될 수 있다.
따라서 을 낮추면서도 자원 할당 및 스케줄링 전략에 중요한 역할을 하는 정보는 보존하는 효과적인 자원사용 표현 방법이 필요하다. 이하, 본 발명은 다음 사항들을 만족시킴으로써 상기 언급한 효과적인 자원사용 표현 방법을 제안하고자 한다. 첫째, 와 의 증가가, 의 과도한 증가로 이어지지 않도록 한다. 둘째, 자원 할당 및 스케줄링 문제를 확률과정, 대기행렬 이론, 최적화 이론, 제어 이론 및 강화학습의 측면에서 접근했을 때, 유용한 정보들이 포함되도록 한다. 셋째, 제안하는 표현기법으로 표현된 자원사용 데이터를 자원관리 개체에 입력으로 사용했을 때, 타당하고 합리적인 할당 및 스케줄링 결정이 출력될 수 있도록 한다.
따라서, 본 발명의 목적은, 전술한 종래 기술의 문제점을 해결하기 위해, 효과적인 자원사용 데이터 표현 방법 및 해당 표현의 업데이트 방법을 제공하는, 컴퓨팅 장치 및 시스템을 제공하는 것에 있다.
본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허청구범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상기 목적을 달성하기 위한, 본 발명 및 장치의 자원사용 표현 방법은, 자원 할당 및 스케줄링을 필요로 하는 컴퓨팅 장치 및 시스템에서, 실행되는 작업들 및 작업들이 사용하고 있는 자원에 관한 데이터를 수신하는 과정, 상기 작업들을 향후 잔여 실행량에 따라 그룹화하여 나누는 과정, 및 각 잔여 실행량 그룹별로 자원 유닛(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은 본 발명의 다른 실시 예에 따른, 자원사용 표현 데이터가 시각화된 정보의 형태로, 제공되는 예를 도시한 것이다.
도 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개의 종류로 나누어 그룹화한 경우를 도시한 것이다. 따라서, 첫번째 그룹 는 향후 잔여실행시간이 0부터 1초 미만인 작업들의 그룹이며, 두번째 그룹 은 향후 잔여실행시간이 1초 이상 2초 미만인 작업들의 그룹이다. 마찬가지로, 세번째 그룹 는 2초 이상 3초 미만, 네번째 그룹는 3초 이상, 4초 미만, 마지막 다섯번째 그룹는 4초 이상 5초 미만인 작업들의 그룹을 의미한다. 단, 이는 예시적인 경우에 해당하며, 각 그룹을 구별하는 시간 간격은 시스템에 따라 달리 적용할 수 있다. 예를 들어, 시스템에 따라 그룹별 시간 간격을 동일한 시간 간격으로 하거나, 또는 상이한 가변적인 시간 간격으로 설정하는 것이 모두 가능하다. 이는 시스템의 성능 및 부하를 고려하여 설계자의 선택에 의해 결정될 수 있다.
도 4를 다시 참조하여, 예시한 자원 사용 표현을 살펴보면,에 속하는 작업이 사용하는 CPU 자원은 10개이며, 메모리 자원은 4개이다.또한 에 속하는 작업이 사용하는 CPU 자원은 3개이며,메모리 자원은 1개이다.이와 같이 자원 유닛별로 그룹별 자원의 점유량을 표시함으로써,자원사용은 10(=52)개의 값들로 표현된다.이를 일반화하면 본 발명에서 제안한 자원 사용 표현복잡도 은 다음의 (식 2)로 표현할 수 있다.
(식 2)에서 는 그룹의 집합이다.는 종래 와 달리의 증가에 영향을 받지 않으며,|를나 에 비해 상대적으로 낮게 설정함으로써, 의 값을 작게 유지할 수 있다. 즉,와 의 증가가, 의 과도한 증가로 이어지지 않게 된다.
또한 본 발명의 자원 사용상태 표현은 자원 가용성을 효과적으로 표현할 수 있다. 도 4의 예시에서, 제안하는 자원 사용상태 표현을 통해 아래 예시적 질문에 대한 해답을 쉽게 찾아낼 수 있게 된다. 예를 들어, 에서 사용되지 않는 자원의 개수는 얼마인가 84개(= 100 - 16). 의 가용률은 얼마인가? 90% (= (100 - 10) / 100). 3초 이후, 와 에서 사용을 마치고 반환될 자원의 개수는 몇 개인가? : 13개, : 5개. 즉, 본 발명의 자원 사용상태표현 방식은 자원 가용성 측면에서 유용한 정보들을 포함하고 있음을 알 수 있다.
상기 전술한, 수학적 방법론들은 (예를 들어, 확률 과정, 대기행렬 이론, 최적화 이론, 강화학습 등을 포함), 자원사용 데이터가 주어졌을 때, 자원의 할당 및 스케줄링 문제에 대한 예측 기반 알고리즘의 산출에 활용될 수 있다. 본 발명에서 제안하는 자원사용 표현 방법이 낮은 표현복잡도 로 자원 가용성을 효과적으로 표현하는 것을 감안하면,해당 수학적 방법론들을 적용함으로써 자원 가용성을 예측하고,이에 기반하여 효율적 성능으로 동작하는 알고리즘을 설계 또는 생성할 수 있음은 자명하다.
예를 들어, 인간 전문가에 의해 자원관리 알고리즘을 직접 설계하는 경우에는, 확률과정, 대기행렬 이론등을 적용하여 시간에 따라 자원 가용성이 어떻게 변할 것인가를 판단할 예측모델을 만들고, 최적화 이론을 통해 그에 따른 행동 알고리즘을 산출할 수 있게 된다. 또는 인공지능/기계학습을 자원관리 알고리즘을 자가 생성하는 경우에는, 시간 가용성에 대한 예측모델과 행동 알고리즘이 에이전트 내부의 근사화 함수에 내재될 수 있다.
도 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초 이내인 그룹 에는 작업 과이 속하며,이들 각각이 점유하는 CPU 자원의 양은9 및 1이다. 따라서 이 현재 사용하는 자원의 양은 10이다. 같은 개념을 사용하면, 의 자원 사용량은 0,의 자원 점유량은 3,의 자원 점유량은 3, 및 의 자원 점유량은 0임을 알 수 있다. 4) 이를 제안하는 자원사용 표현으로 바꾸면, 도면 상단 우측의 자원사용 표현이 된다.
도 7을 참조하여, 초기상태에서 새로운 작업이 실행했을 때, 자원사용의 업데이트 과정은 다음과 같다. 1) 자원 개체 수단(503)에 새로운 작업가 실행된다. 는3개의 CPU 자원을 필요로 하며, 향후 필요 실행량은 4.1초이다. 2) 의 향후 필요 실행량이 4초 이상, 5초 미만이기 때문에, 자원표현 개체 수단(502)은 의 잔여 실행량 그룹을 로 판별한다. 3) 의 이전 자원 사용량 0에 의 자원 사용량 3을 더하여 의 자원 사용량이 3으로 변경된다. 4) 도면 하단의 우측과 같이 새롭게 자원사용 표현이 갱신된다.
도 8은 본 발명 실시 예에 따른 시스템에서, 시간이 흐름으로써, 실행되던 작업들의 잔여 실행량이 변경되었을 때, 자원사용 데이터의 업데이트 방법을 도시한 것이다.
도 8을 참조하면, 본 발명의 시간의 흐름에 따른, 실행 중 작업의 잔여 실행량 변경에 따른 자원사용 데이터의 업데이트 방법은, 시간의 흐름에 따라 각 작업의 잔여 실행량과 각 작업이 속하는 잔여 실행량 그룹을 다시 판별하여 갱신하는 과정 (810), 각 잔여 실행량 그룹 별로, 각 자원 유닛 별로, 기존에 사용하던 자원의 양에서 다른 그룹으로 이동한 작업들이 사용하던 자원의 양을 빼 줌으로써, 자원사용 데이터를 갱신하는 과정 (820), 각 잔여 실행량 그룹 별로,각 자원 유닛 별로, 기존에 사용하던 자원의 양에서 다른 그룹에서 이동해 온 작업들이 사용하는 자원의 양을 더해 줌으로써, 자원사용 데이터를 갱신하는 과정(830)으로 이루어진다.
도 9는 본 발명 실시 예에 따른 시스템에서, 시간이 흐름으로써, 실행을 마치고 종료된 작업들이 발생했을 때, 자원사용 데이터의 업데이트 방법을 도시한 것이다.
도 9를 참조하면, 본 발명의 시간의 흐름에 따른, 작업 종료에 따른 자원사용 데이터의 업데이트 방법은, 실행을 마치고 종료된 작업들을 판별하는 과정(910), 각 잔여 실행량 그룹 별로,각 자원 유닛 별로,종료된 작업들이 반환한 자원의 양을 판별하는 과정 (920), 각 잔여 실행량 그룹 별로,각 자원 유닛 별로,기존에 사용하던 자원의 양에서 종료된 작업들이 반환한 자원의 양을 빼 줌으로써, 자원사용 데이터를 갱신하는 과정(930)으로 이루어진다.
또한, 도 10은 도 8 내지 도 9에서 기술한 방법을 컴퓨팅 시스템의 구체적인 예를 들어 도시한 것이다.
도 10의 예시에서 가정한 사항과 초기상태는, 도 7의 예시에서 가정한 사항과 초기상태와 동일하다.
도 10을 참조하여, 시간의 흐름에 따른, 작업들의 잔여 실행량 변경 및 종료 작업 발생 시, 자원사용 데이터의 업데이트 과정을 예시하면 다음과 같다. 1) 시간이 1초 경과되며, 자원 개체 수단(503)에서 실행되던 작업들의 잔여 실행량이 1초씩 감소한다. 2)자원사용 표현 개체 수단(502)은 작업들의 잔여 실행량의 변화 및 종료 여부를 판별한다. 초기 상태에서 에 속하던 작업 과 는 종료되어, 이들이 사용하던 CPU 자원이 자원 개체에 반환되었다. 초기 상태에서 에 속하던 작업 는 에 속하게 되며, 에 속하던 작업 과 가 에 속하게 된다. 이러한 변화는 도 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: 자원개체
502: 자원사용 표현개체
503: 자원개체
Claims (14)
- 자원 할당, 스케줄링 및 관리를 위한 컴퓨팅 장치에서,
작업 및 자원사용에 관한 정보를 획득하는 단계,
상기 작업들을 잔여 실행량에 따라 그룹화하는 단계, 및
상기 각 그룹마다 자원 유닛(resource unit)별 자원 사용량(amount of resource)에 기초하여, 자원사용 데이터를 생성하는 단계를 포함하는 컴퓨팅 장치의 자원사용 표현 방법.
- 제1항에 있어서, 상기 자원사용 표현 방법은,
신규로 실행되는 작업들의 필요 실행량을 판별하는 단계,
상기 판별 결과에 따라, 신규 작업들이 속하는 잔여 실행량 그룹을 판별하는 단계, 및
상기 판별 결과에 기초하여, 상기 각 그룹마다, 자원 유닛별 자원 사용량을 갱신하여, 갱신된 자원사용데이터를 생성하는 단계를 더 포함하는 컴퓨팅 장치의 자원사용 표현 방법.
- 제 1항에 있어서, 상기 자원사용 표현 방법은,
종료된 작업들이 속하는 잔여 실행량 그룹을 판별하는 단계,
상기 판별 결과에 따라, 상기 각 그룹마다, 자원 유닛별 사용 후 반환된 자원의 양을 판별하는 단계, 및
상기 판별 결과에 기초하여, 상기 각 그룹마다, 자원 유닛 별 자원 사용량을 갱신하여, 갱신된 자원사용 데이터를 생성하는 단계를 더 포함하는 컴퓨팅 장치의 자원사용 표현 방법.
- 제 1항에 있어서, 상기 자원사용 표현 방법은,
시간의 흐름에 따라, 실행 중인 작업들의 잔여 실행량을 변경하는 단계,
상기 판별 결과에 따라, 각 그룹마다, 자원 유닛 별 사용되는 자원의 증감 량을 판별하는 단계, 및
상기 판별 결과에 기초하여, 상기 각 그룹마다, 자원 유닛 별 자원 사용량을 갱신하여, 갱신된 자원사용 데이터를 생성하는 단계를 더 포함하는 컴퓨팅 장치의 자원사용 표현 방법.
- 제 1항에 있어서,
잔여 실행량의 단위를 시간으로 정의하는 것을 특징으로 하는 컴퓨팅 장치의 자원사용 표현 방법.
- 제 1항에 있어서,
잔여 실행량의 단위를 수행할 하부작업 (sub-task) 또는 명령어(instruction)의 양으로 정의하는 것을 특징으로 하는 컴퓨팅 장치의 자원사용 표현 방법.
- 제 1항에 있어서,
상기 잔여 실행량의 그룹화 간격을 동일한 크기로 설정하는 것을 특징으로 하는 컴퓨팅 장치의 자원사용 표현 방법.
- 제 1항에 있어서,
상기 잔여 실행량의 그룹화 간격을 상이한 크기로 설정하는 것을 특징으로 하는 컴퓨팅 장치의 자원사용 표현 방법.
- 자원 할당, 스케줄링 및 관리를 위한 컴퓨팅 시스템에 있어서,
작업을 수행하고, 작업 및 자원사용에 관한 정보를 제공하는 자원개체 수단,
상기 작업 및 자원에 관한 정보를 입력 받아, 상기 작업들을 잔여 실행량에 따라 그룹화하고, 각 그룹마다, 각 자원 유닛별 자원 사용량을 판별하여, 자원 사용상태 데이터를 생성 및 업데이트하는 자원사용 표현개체 수단, 및
상기 자원사용 데이터를 활용하여, 자원 할당, 스케줄링 및 관리를 수행하는 자원관리 개체 수단을 포함하는 것을 특징으로 하는 컴퓨팅 시스템.
- 제 9항에 있어서,
상기 자원관리 개체 수단은 인간 전문가인 것을 특징으로 하는 컴퓨팅 시스템.
- 제 9항에 있어서,
상기 자원관리 개체 수단은 자동화된 알고리즘 또는 인공지능 기계학습 장치인 것을 특징으로 하는 컴퓨팅 시스템.
- 제 9항에 있어서,
자원사용 표현개체 수단이 생성하는 데이터는 잔여 실행량 그룹의 일부 또는 전체에 대해, 자원 사용량을 배열 또는 리스트로 표현한 자료구조 또는 파일인 것을 특징으로 하는 컴퓨팅 시스템
- 제 9항에 있어서,
자원사용 표현개체 수단이 생성하는 데이터는 잔여 실행량 그룹의 일부 또는 전체에 대해, 각각의 자원 사용량을 시각화한 그래프인 것을 특징으로 하는 컴퓨팅 시스템.
- 자원 할당, 스케줄링 및 관리를 위한 컴퓨팅 장치에서,
작업 및 자원사용에 관한 정보를 획득하는 단계,
상기 작업들을 잔여 실행량에 따라 그룹화하는 단계,
상기 각 그룹마다 자원 유닛 (resource unit)별 자원 사용량(amount of resource)에 기초하여, 자원사용 데이터를 생성하는 단계, 및
상기 생성된 자원사용 데이터에 기초하여, 원 할당 및 스케줄링을 결정하는 단계를 포함하는 컴퓨팅 장치의 자원 할당 방법.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220076139A (ko) * | 2020-11-30 | 2022-06-08 | 한국생산기술연구원 | 매출 tr 정보를 이용한 매장 내 고객의 방문 정보를 예측하는 방법과 이를 이용한 매장 내 계산원 인력을 스케줄링하는 방법 |
-
2018
- 2018-11-29 KR KR1020180150524A patent/KR20200064415A/ko unknown
Cited By (1)
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 |