KR101695013B1 - 적응형 자원 할당 및 관리 방법 - Google Patents

적응형 자원 할당 및 관리 방법 Download PDF

Info

Publication number
KR101695013B1
KR101695013B1 KR1020120146892A KR20120146892A KR101695013B1 KR 101695013 B1 KR101695013 B1 KR 101695013B1 KR 1020120146892 A KR1020120146892 A KR 1020120146892A KR 20120146892 A KR20120146892 A KR 20120146892A KR 101695013 B1 KR101695013 B1 KR 101695013B1
Authority
KR
South Korea
Prior art keywords
resource
task
allocation
adaptive
capacity
Prior art date
Application number
KR1020120146892A
Other languages
English (en)
Other versions
KR20140077769A (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 KR1020120146892A priority Critical patent/KR101695013B1/ko
Publication of KR20140077769A publication Critical patent/KR20140077769A/ko
Application granted granted Critical
Publication of KR101695013B1 publication Critical patent/KR101695013B1/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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17318Parallel communications techniques, e.g. gather, scatter, reduce, roadcast, multicast, all to all
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

적응형 자원 할당 및 관리 방법이 개시된다. 자원 및 작업 관리 장치가 자원 연관성 정보에 기초한 자원 할당 요청을 받고, 상기 자원 및 작업 관리 장치가 상기 할당 요청에 상응하는 자원에서 작업을 수행하고, 상기 작업 수행에 따른 자원 사용 프로파일링 데이터를 생성하고, 상기 자원 연관성 정보와 상기 프로파일링 데이터에 기초하여 자원 사용 효율성 분석하고, 상기 작업 재수행 필요시에 상기 자원 사용 효율성 분석에 기초하여 상기 작업에 대한 자원 할당 요청을 변경하여 전체 시스템의 자원 활용 효율성을 증대한다.

Description

적응형 자원 할당 및 관리 방법{METHOD FOR ALLOCATING AND MANAGING OF ADAPTIVE RESOURCE}
본 발명은 클러스터 시스템 환경에서 자원 할당 및 관리 방법에 관한 것으로, 더욱 상세하게는 자원 사용 효율성을 고려한 최적의 시스템 성능을 보장하는 적응형 자원 할당 및 관리 방법에 관한 것이다.
HPC(high performance computing)분야에서 주류를 이루는 분산/병렬 컴퓨팅 환경은 클러스터 시스템이다. 하드웨어 기술의 발달로 클러스터를 구성하는 노드들의 자원 구성이 이기종으로 다양화 되고 각 자원이 지원하는 용량도 대용량화 되고 있다.
도 1은 이기종 매니 코어(many core) 기반 고성능 컴퓨팅 클러스터 자원 관리 시스템의 구성도이다.
대부분의 고성능 컴퓨팅 클러스터 시스템에서는 전용의 자원 관리 시스템이 제공된다. 자원 관리 시스템 관점에서의 클러스터 시스템(100)의 하드웨어는 이기종 연산장치에 기반한 계산 성능 가속노드로 구성되는 자원 에이전트 노드(Resource Agent Nodes)(140), 이종 자원의 효과적인 시스템 관리 및 서비스를 위한 자원 관리자 노드(Resource Manager node)(130), 그리고 고속 네크워크에 기반한 시스템 네트워크(160)로 연결된 형상을 가진다. 일반 네트워크(120)로 연결된 클라이언트 노드(110)는 이기종 고성능 컴퓨팅 클러스트 시스템에 접속하여 반복적인 파이프라인 형태의 작업 수행을 요청한다. 클라이언트 노드(110)은 작업을 수행할 자원 할당을 요청하고, 요청된 자원을 포함하는 노드들이 할당되면 대상 작업을 할당된 노드상에서 수행시킨다.
그런데, 유전체 분석과 같은 다양한 자원 요구 특성을 갖는 파이프 라인 형태로 구성되는 작업들을 수행하는 환경에서는 각 단계 별 응용의 정확한 자원 특성 및 자원 사용 요구량을 사용자가 정확하게 예측하여 실행하는 것이 어려우며, 이러한 분석 작업은 동일한 형태의 수행으로 입력 데이터만 다른 반복적인 수행으로 이루어진다.
이와 같이 입력 데이터만 다른 반복적인 수행에서 일부 자원 연관성과 정책 및 작업 특성을 기반으로 이종 자원의 할당을 수행하면, 특정 병목 자원에 의해 성능 저하가 발생하거나 필요 이상의 자원이 할당되어 동작하는 경우 시스템 전체 성능 및 효율성 저하를 초래한다.
또한, 일부 프로파일링을 통한 자원 사용 현황을 반영하여 반복적인 수행에서 자원 할당의 효율성을 높이고 있으나, 기회 비용 관점의 전체 수행 대비 병목 자원에 대한 자원 사용 효율성을 고려한 자원 분배 및 할당이 이루어지지 않아서 여전히 자원 사용의 효율성이 떨어지고, 시스템 성능 감소 현상이 나타나게 된다.
상술한 바와 같은 단점을 극복하기 위한 본 발명의 목적은 이기종 자원을 할당 받아 동작하는 반복적으로 수행되는 파이프라인 형태의 작업 수행 중에 발생하는 자원 사용 프로파일링 정보와 자원 연관성 정보를 이용하여 자원 사용 효율성을 분석하고, 자원 사용 효율성 개념을 기반으로 병목 자원에 의한 작업 성능 저하나 과잉 할당에 의한 시스템 자원 활용율 저하가 되는 상황을 인지하여 작업의 성능 최적화를 위한 연관 자원의 자원 요구량을 산출하고 이를 기반으로 작업의 자원 할당 요청을 변경하여 작업의 성능 향상 및 시스템 자원 활용 효율성을 증가시켜 전체적인 시스템의 성능을 향상시키는 적응형 자원 할당 및 관리 방법을 제공하는 것이다.
상술한 본 발명의 목적을 달성하기 위한 본 발명에 따른 적응형 자원 할당 및 관리 방법은 자원 및 작업 관리 장치가 자원 연관성 정보에 기초한 자원 할당 요청을 받고, 상기 자원 및 작업 관리 장치가 상기 할당 요청에 상응하는 자원에서 작업을 수행하고, 상기 작업 수행에 따른 자원 사용 프로파일링 데이터를 생성하고, 상기 자원 연관성 정보와 상기 프로파일링 데이터에 기초하여 자원 사용 효율성 분석하고, 상기 작업 재수행 필요시에 상기 자원 사용 효율성 분석에 기초하여 상기 작업에 대한 자원 할당 요청을 변경한다.
상술한 바와 같은 적응형 자원 할당 및 관리 방법에 따르면 파이프라인 형태의 다양한 자원을 복합적으로 사용하는 반복적인 작업 수행 환경에서 자원 사용 효율성을 고려한 프로파일링 분석과 자원 연관성 기반의 적응형 자원 할당 및 관리 방법을 통해 파이프라인 형태의 작업을 수행하는 일반 사용자가 수행되는 대상 시스템에 대한 자원 할당에 대한 복잡한 요청 없이, 반복적인 작업 수행을 통해 최적의 자원 사용 환경을 제공받을 수 있는 성능 최적화 및 활용 편의성을 증대시킬 수 있다.
도 1은 이기종 매니 코어(many core) 기반 고성능 컴퓨팅 클러스터 자원 관리 시스템의 구성도이다.
도 2는 본 발명의 일 실시예에 따른 적응형 자원 할당 및 관리 방법에서 자원 및 작업 관리 장치의 소프트웨어 구조도이다.
도 3은 본 발명의 일 실시예에 따른 적응형 자원 할당 및 관리 방법에서 자원 할당 및 할당 자원 기반 작업 수행 시 흐름을 나타내는 순서도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
본 발명은 이기종 자원을 할당 받아 동작하는 반복적으로 수행되는 파이프라인 형태의 작업 수행 중에 발생하는 자원 사용 프로파일링 정보와 자원 연관성 정보를 이용하여 자원 사용 효율성을 분석하고, 자원 사용 효율성 개념을 기반으로 작업의 자원 할당 요청을 변경하여 작업의 성능 향상 및 시스템 자원 활용 효율성을 증가시키는 방법을 제안한다.
도 2는 본 발명의 일 실시예에 따른 적응형 자원 할당 및 관리 방법에서 자원 및 작업 관리 장치의 소프트웨어 구조도이다.
자원 및 작업 관리 장치는 작업 스케줄러(Job Scheduler)(231), 자원 관리자(Resource Manager)(232), 프로파일링 도구(Profiling tools)(233), 자원 할당기(Resource allocator)(234), 프로파일링 분석기(Profiling analyzer)(235), 그리고 자원 효율성 계산기(Resource efficiency calculator)(236)로 구성된다.
상기 작업 스케줄러(231), 자원 관리자(232), 프로파일링 도구(233), 자원 할당기(234), 프로파일링 분석기(235), 자원 효율성 계산기(236)은 기능을 설명하기 위하여 구분하였으나 실제 구현에 있어서는 하나 또는 몇 개의 장치로 구현될 수 있으며, 특정한 수로 한정되지 않으며 상기 기능은 프로그램의 형태로 구현될 수 있다.
예를 들어 수행 요청된 작업(210)은 여러 작업(job)으로 나누어진 수행 순서를 가지고 있다. 상기 수행 요청된 작업은 파이프라인(220) 형태로 작업을 요청하게 된다.
작업 스케줄러(231)는 사용자로부터 수행 요청된 작업(210)에 대해 자원 관리자(232)에 자원 할당을 요청하고, 할당된 자원을 이용하여 작업을 수행시키고 관리하는 역할을 수행한다.
작업 스케줄러(231)로부터 자원 할당 요청을 받은 자원 관리자(232)는 사용자가 입력한 인자를 해석하여 하부 블록의 실행에 필요한 정보를 전달하는 역할을 수행한다. 또한, 자원 관리자(232)는 작업이 적절히 수행되도록 자원을 제어하며 자원 할당기(234)를 통해 자원 할당을 수행하고 작업 스케줄러(231)에 자원 할당 결과를 전달하는 역할을 수행한다.
자원 할당기(234)는 자원 관리자(232)로부터 전달 받은 해당 작업 정보를 바탕으로 최적의 노드와 자원을 할당한다. 자원 할당기(234)는 자원 할당 요청이 완료되면 자원 할당 인스턴스를 생성하고 할당된 노드 및 자원 정보를 반영하여 저장한다.
프로파일링 도구(233)는 작업 스케줄러(231)가 수행하는 수행 작업에 대한 자원 별 자원 사용 정보를 모니터링하고 저장, 관리한다.
프로파일링 분석기(235)는 프로파일링 도구(233)가 작업 수행에 의해 실제 사용된 자원 사용 정보를 모니터링하여 저장한 프로파일링 데이터를 분석한다. 프로파일링 분석기(235)는 프로파일링 데이터 분석을 통해 병목 자원의 존재 여부나 자원의 사용 효율 저하가 발생했는지 판단할 수 있다. 또한, 병목 자원이 존재하면 병목 자원의 전체 수행 시간 대비 비율을 산정하고 주기성을 판단하는 역할을 수행한다.
자원 효율성 계산기(236)는 프로파일링 분석기(235)의 분석 결과를 기반으로 대상 작업에 대한 연관 자원 기반의 효율적인 자원 용량을 산출하며, 산출된 자원 할당에 대한 정보는 작업 스케줄러(231)의 대상 작업에 대한 재수행에 사용된다.
자원 및 작업 관리 장치는 기 수행된 작업의 투입 자원에 대한 자원 사용에 의한 효율성 뿐만아니라, 병목 자원에 대한 자원 할당 확대 여부를 판단하기 위해 추가 투입 자원 대비 자원 활용의 달성 가능 정도를 예측하여 자원 사용 효율성을 산출할 수 있다.
예를 들어, 입출력 자원의 병목으로 인해 작업의 입출력 대기 시간이 늘어나면 프로파일링 기반 자원 관리에서는 모자라는 입출력을 해결할 수 있는 입출력 대역폭을 해당 작업에 할당하여 작업의 효율성 및 시스템의 성능 향상을 시도한다. 그러나, 이런 접근법에서는 입출력 대기로 인한 수행 지연 시간이 전체 작업의 수행 시간에서 차지하는 비율에 대한 고려가 이루어지지 않기 때문에, 해당 작업에 대한 효율 및 수행 시간은 개선될 수 있지만 시스템 전체의 수행 작업 관점에서 보면 해당 입출력이 전체 작업 수행 시간에서 차지하는 비율이 작은 경우, 나머지 시간 동안 다른 작업에 투입될 수 있는 입출력 대역폭이 특정 작업에 한정되어 시스템 전체의 자원 활용 효율성이나 성능 측면에서는 나빠지는 경우가 발생할 수도 있다.
본 발명의 자원 사용 효율성은 이런 측면을 고려한 병목 자원의 추가 투입 여부와 추가 투입되는 자원의 할당량을 산출하는 개념이다. 병목을 유발시키는 자원 구간에 해당하는 수행 시간이 전체 작업 수행 시간에서 차지하는 비율과 해당 병목이 100% 성능을 기준으로 일정 비율으로 예를 들어 10%의 비율로 병목이 발생하는 수행 시간의 비율을 계산하여 자원 사용 효율성을 산출할 수 있다.
예를 들어, 프로파일링 결과 해당 작업(job)에서 자원 B에 의해 병목을 유발하는 수행 시간의 비율이 전체 작업 수행 대비 40% 일 경우, 자원 B의 병목이 최대인 구간, 즉 프로파일링 결과 자원 B의 할당량을 넘어서는 최대 요구량을 100%로하였을 때 자원 B의 최대 요구량의 시간 비율이 5%, 자원 B에 병목 최대 요구량 대비 70%에 해당하는 구간의 시간 비율이 35%면, 해당 작업에 병목 자원 B의 최대 요구량의 70%에 해당하는 자원을 추가 투입하면, 해당 자원에 의해 병목이 발생하는 수행 시간의 구간이 전체 수행 시간 대비 5%정도로 단축될 수 있다. 위의 예를 보면, 병목 자원에 해당하는 자원에 대한 추가 자원을 단순하게 투입하는 것보다 전체 시스템에서 수행되는 작업들의 관점에서 병목 수행 시간과 추가 투입 자원의 비율을 동시에 고려하여 추가 투입 자원의 할당량을 결정하는 것이 전체적인 자원의 효율성과 시스템 성능 향상을 가져올 수 있다.
도 3은 본 발명의 일 실시예에 따른 적응형 자원 할당 및 관리 방법에서 자원 할당 및 할당 자원 기반 작업 수행 시 흐름을 나타내는 순서도이다.
자원 및 작업 관리 장치는 사용자로부터 수행 작업 및 요구되는 자원의 정보를 입력으로 받으면, 작업 스케줄러(231)로 수행 요청을 전달한다. 작업 수행을 위한 자원 할당 요청을 위해 작업 스케줄러(231)는 자원에 대한 작업 특성, 할당 정책 또는 각 할당 자원의 용량 등을 포함하는 자원 연관성 데이터(310)를 파라미터로 자원 관리자(232)에 자원 할당을 요청한다(S101).
자원 관리자(232)는 자원 연관성 데이터(310)를 기반으로 자원 할당기(234)를 호출하여 자원 할당을 수행한다.
자원 할당기(234)는 자원 연관성에 의한 자원 할당을 통해 연관성 높은 노드를 할당하여 성능을 최적화하고, 부하가 가장 적은 노드 할당으로 전체 시스템의 사용률 및 로드 밸런싱을 높이는 자원 할당이 가능하게 한다.
자원 관리자(232)에서 자원 할당에 대한 요청이 완료되면 작업 스케줄러(231)는 할당된 자원을 통해 대상 작업을 수행시킨다(S102).
대상 작업에 대한 수행이 시작되면 프로파일링 도구(235)에 의해 자원 사용 프로파일링이 실행되어 수행 작업에 대한 할당 자원 별 사용 현황에 대한 정보가 자원 사용 프로파일링 데이터(320)로 자원 및 작업 관리 장치의 저장소에 기록된다(S103).
작업 수행이 정상적으로 종료되면 자원 사용 프로파일링 데이터(320)와 자원 연관성 데이터(310)를 기초로 작업에 대한 자원 사용 효율성 분석을 수행한다(S104).
자원 사용 효율성 분석 단계에서는 병목 자원의 유무나 자원 과잉 할당 여부를 먼저 판단한다.
자원 과잉 할당은 프로파일링 결과 실제 할당된 자원 보다 사용한 자원의 양이 작은 경우를 의미할 수 있다.
자원 과잉 할당의 경우 프로파일링 결과 해당 자원의 최고 사용율과 전체 수행 시간 대비 수행 시간 비율에서 다음 작업 수행에서의 자원 할당 용량을 결정한다. 다음 작업 수행에서의 자원 할당 용량을 결정하기 위하여 최고 사용율에서 일정한 비율 간격으로 자원 사용에 대한 수행 시간 비율을 산출한다. 산출된 수행 시간 비율에서 전체 수행 시간 대비 미리 설정한 수행 시간 비율 예를 들어 10%를 넘는 경우의 자원 사용율을 다음 작업 수행에서의 자원 할당 용량으로 결정한다.
예를 들어 프로파일링 결과 자원 A는 할당된 자원을 다 사용하지 않는 자원 과잉 할당의 경우로 판단되면, 자원 A의 최고 사용율을 산출한다. 예를 들어 자원 A의 최고 사용율이 할당량 대비 50%일 경우라면, 자원 사용율 간격을 20%로 하여 해당 자원 사용율을 수행하는 시간 비율을 산출한다. 예를 들어 자원 A의 사용율이 50%이고, 이때 전체 수행 시간 대비 자원 사용율 50%의 수행 시간이 5%, 자원 A의 사용율이 30%일 때, 전체 수행 시간 대비 자원 사용율 30%의 수행시간이 15%, 자원 A의 사용율이 10%일 때, 전체 수행 시간 대비 자원 사용율 10%의 수행시간이 5%라면, 전체 수행 시간 대비 수행 시간의 비율이 10%를 넘는 자원 사용율 30%를 다음 작업 수행에서의 자원 A의 할당량으로 결정한다.
이 때 전체 수행 시간 대비 자원 A 수행 시간 비율 기준 10%는 하나의 예로서 한정되지 않고, 상황에 따라 다른 값으로 설정할 수 있다.
병목 자원은 프로파일링 결과 자원의 요구량이 실제 할당된 자원을 넘어서는 경우를 의미할 수 있다.
병목 자원의 경우도 자원 과잉 할당의 경우와 비슷하게 프로파일링 결과 자원 최대 요구량과 전체 수행 시간의 비율을 바탕으로 다음 작업에서의 자원 할당량을 결정할 수 있다.
병목 자원의 경우는 병목 자원 실제 할당량을 넘어서는 최대 요구량을 100%로 설정하고, 10%범위 별 병목 자원율의 평균을 산출하여 다음 수행에서의 추가 투입 자원의 용량을 결정할 수 있다.
여기서 병목 자원율의 평균을 산출 할 때 사용하는 단위 계산 값 10%는 특정한 값으로 한정되지 않으며, 상황에 따라서 다른 값을 사용할 수 있다.
여기서 실제 할당량을 넘어서는 최대 요구량을 100%로 설정한다는 것은 해당 작업에서 자원 C의 할당량이 100으로 가정하였을 때, 프로파일링 결과 자원 C의 최대 요구량이 150이었을 때, 할당량 100을 넘어서는 자원 요구량 50을 병목 자원의 값으로 정의하고, 이 때 자원 요구량 50을 병목자원율 100%로 정의할 수 있다.
병목 자원의 다음 작업 수행에서의 추가 투입 자원의 용량을 결정하는 예는 다음과 같다.
프로파일링 결과 자원 C가 할당량보다 많은 자원 요구가 있고, 이로 인해서 전체 수행 시간 대비 많은 수행 시간을 가진다면 병목 자원으로 판단할 수 있다.
프로파일링 결과 자원 C의 전체 작업 수행 시간 대비 병목 자원 수행 시간이 50%이고, 병목 자원율 10%일 경우 전체 작업 수행 시간 대비 병목 자원 수행 시간이 30%, 병목 자원율 20%일 경우 전체 작업 수행 시간 대비 병목 자원 수행 시간이 3%, 병목 자원율 30%일 경우 전체 작업 수행 시간 대비 병목 자원 수행 시간이 5%, 병목 자원율 40%일 경우 전체 작업 수행 시간 대비 병목 자원 수행 시간이 0%, 병목 자원율 50%일 경우 전체 작업 수행 시간 대비 병목 자원 수행 시간이 2%, 병목 자원율 60%일 경우 전체 작업 수행 시간 대비 병목 자원 수행 시간이 3%, 병목 자원율 70%일 경우 전체 작업 수행 시간 대비 병목 자원 수행 시간이 2%, 병목 자원율 80%일 경우 전체 작업 수행 시간 대비 병목 자원 수행 시간이 1%, 병목 자원율 90%일 경우 전체 작업 수행 시간 대비 병목 자원 수행 시간이 2%, 병목 자원율 100%일 경우 전체 작업 수행 시간 대비 병목 자원 수행 시간이 2%라면 다음과 같이 평균 값을 구하여 다음 작업 수행에서의 추가 투입 자원의 용량으로 결정할 수 있다.
(10 × 30 ÷ 50 + 20 × 3 ÷ 50 + 30 × 5 ÷ 50 + 50 × 2 ÷ 50 + 60 × 3 ÷ 50 + 70 × 2 ÷ 50 + 80 × 1 ÷ 50 + 90 × 2 ÷ 50 + 100 × 2 ÷ 50) = 27.8
즉, 자원 C의 할당량을 넘어서는 최대 요구량의 27.8%를 다음 작업 수행에서 추가로 투입한다면 대략 전체 수행 시간 대비 33%의 병목 자원 구간을 해소할 수 있다.
이러한 과정으로 모든 할당 자원에 대한 자원 효율성 분석 과정이 완료되면, 자원 사용 효율성 분석 데이터(330)가 작성된다.
자원 및 작업 관리 장치는 반복 수행되는 작업에서 요구되는 자원 할당 요구량 계산 시에 자원 연관성 정보를 활용하여 필요한 자원 별 할당 용량을 결정한다(S105).
자원 사용 효율성 정보는 다음 수행 시의 자원 사용 효율성 측정을 위한 데이터로 저장되고 관리된다.
여기서, 자원 연관성 정보는 시스템을 구성하는 물리적인 자원간의 연관성 정보로서, 예를 들어 범용 프로세서(CPU)는 내부에 여러 개의 소켓으로 구성되고 소켓은 여러 개의 코어로 구성될 때 소켓마다 메모리가(RAM) 연결되어 있는데, 동일 시스템이라도 현재 소켓이 아니라 다른 소켓에 연결된 메모리를 사용하게 되면 자신의 소켓 메모리를 사용하는 경우보다는 성능 저하가 발생할 수 있다. 따라서 동일한 용량의 자원들을 할당하는 경우에도 자원의 물리적인 위치나 관계의 의해 성능에 영향을 미칠 수 있는 자원간의 정보를 자원 연관성 정보라고 할 수 있다.
작업에 대한 재수행에 대한 요청을 판단하여(S106), 재수행이 요청되면 자원 사용 효율성 정보를 기반으로 작업에 대한 자원 할당 요청을 변경하고(S107), 할당된 자원에 작업을 수행하는 단계(S102)로 이동하여 작업 수행을 반복한다.
또한, 작업에 대한 재수행 요청을 판단하여(S106), 작업의 재수행 요청이 없으면 해당 작업에 대한 수행은 종료한다.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 매체의 예에는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함한다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100 : 클러스터 시스템 110 : 클라이언트 노드
120 : 일반 네트워크 130 : 자원 관리자 노드
140 : 자원 에이전트 노드 150 : 노드
160 : 시스템 네트워크
210 : 작업 220 : 파이프라인
231 : 작업 스케줄러 232 : 자원 관리자
233 : 프로파일링 도구 234 : 자원 할당기
235 : 프로파일링 분석기 236 : 자원 효율성 계산기

Claims (13)

  1. 자원 및 작업 관리 장치가 자원 연관성 정보에 기초한 자원 할당 요청을 수신하는 단계;
    상기 자원 및 작업 관리 장치가 상기 할당 요청에 상응하는 자원을 할당하여 작업을 수행하고, 상기 작업 수행에 따른 자원 사용 프로파일링 데이터를 생성하는 단계;
    상기 자원 연관성 정보와 상기 프로파일링 데이터에 기초하여 자원 사용 효율성을 분석하는 단계를 포함하고,
    상기 자원 사용 효율성을 분석하는 단계는,
    할당된 자원의 병목이나 과잉 여부를 판단하고, 상기 할당된 자원을 사용하여 상기 작업을 수행한 시간이 시스템 전체 작업 수행 시간에서 차지하는 비율을 고려하여 효율성을 분석하는 적응형 자원 할당 및 관리 방법.
  2. 청구항 1에 있어서,
    상기 자원 연관성 정보는,
    자원 및 작업 관리 장치가 관리하는 시스템을 구성하는 물리적인 자원간의 연관성 정보인 것을 특징으로 하는,
    적응형 자원 할당 및 관리 방법.
  3. 삭제
  4. 청구항 1에 있어서,
    상기 자원 사용 효율성을 분석하는 단계는,
    자원 사용 효율성 분석 결과를 바탕으로 자원 사용 효율성 분석 데이터를 작성하는 단계를 포함하는,
    적응형 자원 할당 및 관리 방법.
  5. 청구항 4에 있어서,
    상기 자원 사용 효율성을 분석하는 단계 이후에,
    상기 작업의 재수행 필요시, 상기 자원 연관성 정보 및 상기 자원 사용 효율성 분석 데이터를 활용하여 필요한 자원 별 할당 용량을 결정하는 단계를 더 포함하는 것을 특징으로 하는,
    적응형 자원 할당 및 관리 방법.
  6. 청구항 5에 있어서,
    상기 자원 별 할당 용량을 결정하는 단계는,
    과잉 할당인 경우, 시스템 전체 수행 시간 대비 자원 사용율에 상응하는 수행 시간이, 미리 설정한 비율을 넘는 경우의 자원 사용율을 선정하여 그에 상응하는 자원 용량을 할당 용량으로 결정하고,
    병목 상태인 경우, 평균 병목 자원율에 상응하는 자원 용량을 할당 용량으로 결정하되,
    상기 자원 사용율은 최고 사용율을 일정한 비율 간격으로 구분한 것을 특징으로 하는,
    적응형 자원 할당 및 관리 방법.
  7. 청구항 5에 있어서,
    상기 자원 별 할당 용량을 결정하는 단계 이후에,
    상기 결정된 할당 용량을 바탕으로, 상기 작업 재수행에 따른 자원 할당 요청을 변경하는 단계를 더 포함하는 것을 특징으로 하는,
    적응형 자원 할당 및 관리 방법.
  8. 적응형 자원 할당 및 관리 장치에 있어서,
    사용자로부터 수행 요청된 작업에 대해 자원 관리자에 자원 할당을 요청하고, 할당된 자원을 이용하여 작업을 수행 및 관리하는 작업 스케줄러;
    상기 작업 스케줄러로부터 자원 할당 요청을 받고, 자원을 제어하며, 자원 할당 결과를 작업 스케줄러에 전송하는 자원 관리자;
    작업 스케줄러가 수행하는 수행 작업에 대한 자원 별 자원 사용 정보를 모니터링, 저장 및 관리하는 프로파일링 도구;
    작업 정보를 바탕으로 최적의 노드와 자원을 할당하고, 자원 할당 인스턴스에 이를 반영하여 저장하는 자원 할당기;
    상기 프로파일링 도구가 저장한 프로파일링 데이터를 분석하는 프로파일링 분석기; 및
    프로파일링 데이터 분석 결과를 기반으로 대상 작업에 대한 자원 용량을 산출하는 자원 효율성 계산기를 포함하는,
    적응형 자원 할당 및 관리 장치.
  9. 청구항 8에 있어서,
    상기 프로파일링 분석기는,
    할당된 자원의 병목이나 과잉 여부를 판단하고, 할당된 자원을 사용하여 작업을 수행한 시간이 시스템 전체 작업 수행 시간에서 차지하는 비율을 고려하여 효율성을 분석하는 것을 특징으로 하는,
    적응형 자원 할당 및 관리 장치.
  10. 청구항 9에 있어서,
    상기 프로파일링 분석기는,
    자원 사용 효율성 분석 결과를 바탕으로 자원 사용 효율성 분석 데이터를 작성하는 것을 특징으로 하는,
    적응형 자원 할당 및 관리 장치.
  11. 청구항 10에 있어서,
    상기 자원 효율성 계산기는,
    작업 스케줄러에 의해 수행 작업 재수행 필요시, 자원 연관성 정보 및 상기 자원 사용 효율성 분석 데이터를 활용하여 필요한 자원 별 할당 용량을 결정하는 것을 특징으로 하는,
    적응형 자원 할당 및 관리 장치.
  12. 청구항 11에 있어서,
    상기 자원 효율성 계산기는,
    과잉 할당인 경우, 시스템 전체 수행 시간 대비 자원 사용율에 상응하는 수행 시간이, 미리 설정한 비율을 넘는 경우의 자원 사용율을 선정하여 그에 상응하는 자원 용량을 할당 용량으로 결정하고,
    병목 상태인 경우, 평균 병목 자원율에 상응하는 자원 용량을 할당 용량으로 결정하되,
    상기 자원 사용율은 최고 사용율을 일정한 비율 간격으로 구분한 것을 특징으로 하는,
    적응형 자원 할당 및 관리 장치.
  13. 청구항 11에 있어서,
    상기 결정된 할당 용량은 상기 작업 스케줄러의 대상 작업에 대한 재수행시에 사용되는 것을 특징으로 하는,
    적응형 자원 할당 및 관리 장치.
KR1020120146892A 2012-12-14 2012-12-14 적응형 자원 할당 및 관리 방법 KR101695013B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120146892A KR101695013B1 (ko) 2012-12-14 2012-12-14 적응형 자원 할당 및 관리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120146892A KR101695013B1 (ko) 2012-12-14 2012-12-14 적응형 자원 할당 및 관리 방법

Publications (2)

Publication Number Publication Date
KR20140077769A KR20140077769A (ko) 2014-06-24
KR101695013B1 true KR101695013B1 (ko) 2017-01-10

Family

ID=51129619

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120146892A KR101695013B1 (ko) 2012-12-14 2012-12-14 적응형 자원 할당 및 관리 방법

Country Status (1)

Country Link
KR (1) KR101695013B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200103181A (ko) * 2019-02-13 2020-09-02 한국전자통신연구원 클라우드 컴퓨팅 기반의 시뮬레이션 장치 및 방법
WO2023153752A1 (ko) * 2022-02-08 2023-08-17 삼성전자 주식회사 태스크에 메모리 자원을 할당하는 전자 장치 및 전자 장치의 동작 방법

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101815529B1 (ko) 2016-07-29 2018-01-30 (주)신테카바이오 휴먼 하플로타이핑 시스템 및 방법
KR102212108B1 (ko) * 2016-09-28 2021-02-04 한국전자기술연구원 스토리지 오케스트레이션의 학습형 최적화 대상 볼륨 선정 방법
KR102496115B1 (ko) * 2019-11-28 2023-02-06 한국전자통신연구원 강화학습 기반 이타적 스케줄링 장치 및 방법
KR102300118B1 (ko) * 2019-12-30 2021-09-07 숙명여자대학교산학협력단 Gpu 응용을 위한 기계 학습 기반 작업 배치 방법
KR20220101789A (ko) * 2021-01-12 2022-07-19 삼성전자주식회사 전자 장치 및 전자 장치의 동작 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7171668B2 (en) * 2001-12-17 2007-01-30 International Business Machines Corporation Automatic data interpretation and implementation using performance capacity management framework over many servers
EP2038748A1 (en) * 2006-06-19 2009-03-25 Diskeeper Corporation Resource-based scheduler
US8111260B2 (en) * 2006-06-28 2012-02-07 Microsoft Corporation Fast reconfiguration of graphics pipeline state
KR101079828B1 (ko) * 2010-03-30 2011-11-03 (주)한양정보통신 그리드 컴퓨팅 시스템 및 그리드 컴퓨팅 서비스 제공방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200103181A (ko) * 2019-02-13 2020-09-02 한국전자통신연구원 클라우드 컴퓨팅 기반의 시뮬레이션 장치 및 방법
KR102456023B1 (ko) 2019-02-13 2022-10-19 한국전자통신연구원 클라우드 컴퓨팅 기반의 시뮬레이션 장치 및 방법
US11650855B2 (en) 2019-02-13 2023-05-16 Electronics And Telecommunications Research Institute Cloud computing-based simulation apparatus and method for operating the same
WO2023153752A1 (ko) * 2022-02-08 2023-08-17 삼성전자 주식회사 태스크에 메모리 자원을 할당하는 전자 장치 및 전자 장치의 동작 방법

Also Published As

Publication number Publication date
KR20140077769A (ko) 2014-06-24

Similar Documents

Publication Publication Date Title
KR101695013B1 (ko) 적응형 자원 할당 및 관리 방법
US10733026B2 (en) Automated workflow selection
Chowdhury et al. Implementation and performance analysis of various VM placement strategies in CloudSim
US9069610B2 (en) Compute cluster with balanced resources
Piao et al. A network-aware virtual machine placement and migration approach in cloud computing
US8959526B2 (en) Scheduling execution of complementary jobs based on resource usage
CA2780231C (en) Goal oriented performance management of workload utilizing accelerators
CN107851039B (zh) 用于资源管理的***和方法
Sampaio et al. PIASA: A power and interference aware resource management strategy for heterogeneous workloads in cloud data centers
KR101471749B1 (ko) 클라우드 서비스의 가상자원 할당을 위한 퍼지 로직 기반의 자원평가 장치 및 방법
KR20130088513A (ko) 멀티코어 시스템의 태스크 분배 방법 및 장치
JP6221588B2 (ja) 情報処理システム、管理装置制御プログラム及び情報処理システムの制御方法
JP5616523B2 (ja) 情報処理システム
KR101770191B1 (ko) 자원 할당 방법 및 그 장치
US8819239B2 (en) Distributed resource management systems and methods for resource management thereof
Sfakianakis et al. Skynet: Performance-driven resource management for dynamic workloads
Roytman et al. Algorithm design for performance aware VM consolidation
Syed HAMM: A hybrid algorithm of Min-Min and Max-Min task scheduling algorithms in cloud computing
JP4121525B2 (ja) リソース利用率を制御する方法およびコンピュータシステム
Xhafa et al. Immediate mode scheduling of independent jobs in computational grids
Ru et al. Providing fairer resource allocation for multi-tenant cloud-based systems
Yang et al. AutoAdmin: automatic and dynamic resource reservation admission control in Hadoop YARN clusters
KR20150089665A (ko) 워크플로우 작업 스케줄링 장치
US9710311B2 (en) Information processing system, method of controlling information processing system, and recording medium
JP6322968B2 (ja) 情報処理装置、情報処理方法およびプログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20191223

Year of fee payment: 4