KR20140146272A - 멀티코어 프로세서 기반의 모니터링 장치 및 그 방법 - Google Patents

멀티코어 프로세서 기반의 모니터링 장치 및 그 방법 Download PDF

Info

Publication number
KR20140146272A
KR20140146272A KR1020130068437A KR20130068437A KR20140146272A KR 20140146272 A KR20140146272 A KR 20140146272A KR 1020130068437 A KR1020130068437 A KR 1020130068437A KR 20130068437 A KR20130068437 A KR 20130068437A KR 20140146272 A KR20140146272 A KR 20140146272A
Authority
KR
South Korea
Prior art keywords
core
unit
cores
state information
monitoring
Prior art date
Application number
KR1020130068437A
Other languages
English (en)
Other versions
KR101694310B1 (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 KR1020130068437A priority Critical patent/KR101694310B1/ko
Priority to US14/301,364 priority patent/US20140372810A1/en
Publication of KR20140146272A publication Critical patent/KR20140146272A/ko
Application granted granted Critical
Publication of KR101694310B1 publication Critical patent/KR101694310B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3404Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for parallel or distributed programming
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

본 발명은 멀티코어 프로세서 기반의 모니터링 장치 및 그 방법에 관한 것으로, 다수개의 코어들로부터 추출되는 각각의 상태정보를 수집하여, 해당 메모리 영역에 저장하는 상태정보 수집부; 및 상기 상태정보를 수신받아 저장부에 전송하고 이를 토대로 모니터링을 수행하는 모니터링부;를 포함하되, 상기 모니터링부는 상기 다수개의 코어들 중 어느 하나에 구비된다.

Description

멀티코어 프로세서 기반의 모니터링 장치 및 그 방법{APPARATUS AND METHOD FOR MONITORING BASED ON A MULTI-CORE PROCESSOR}
본 발명은 멀티코어 프로세서 기반의 모니터링 장치 및 그 방법에 관한 것으로, 보다 자세하게는 멀티코어 프로세서를 기반으로 하는 운영체제의 코어에 대한 성능을 모니터링하기 위한 멀티코어 프로세서 기반의 모니터링 장치 및 그 방법에 관한 것이다.
컴퓨팅의 성능 향상을 위해 빠른 클락 속도를 지향하던 종래의 프로세서 개발 방식에서 최근 코어의 개수를 늘여 성능을 향상시키면서 기하급수적으로 증가하는 소비 전력을 낮추는 형태로 기술 개발 방식으로 변화하고 있다.
이러한 프로세서를 멀티코어 프로세서라고 불리며, 코어의 개수에 따라 매니코어라는 용어를 사용하기도 한다. 멀티코어 프로세서의 등장은 각각의 코어에 할당된 태스크를 동시에 수행함으로써 성능을 증가시킬 수 있게 되며, 코어 별 요구전력이 적다는 장점으로 인해 다양한 분야에 활용되고 있다. 특히 전력의 제약이 심한 임베디드 기기에 빠르게 적용되고 있다.
한편, 멀티코어의 활용을 위해 병렬 컴퓨팅 기법과 같은 다양한 기법들이 등장하고 있다. 그러나 코어들 간에 공정한 태스크의 할당과 같은 운영체제의 스케줄링 기법이 동반되지 않을 경우 기존의 코어들의 활용도가 감소하고 이에 따른 성능 향상을 기대하기 어렵게 된다.
이러한 문제점을 해결하기 위해 멀티코어 프로세서를 탑재한 운영체제들은 태스크 혹은 프로세스에 대한 다양한 관리 기술(스케줄러, 스케줄링 기법)들이 적용되고 있다. 단일 코어 기반으로 태스크를 관리하던 기존의 운영체제와 달리 멀티코어 기반의 태스크 스케줄러의 경우 코어에 대한 태스크의 할당뿐만 아니라 코어 간의 로드를 균형 있게 유지함으로써 전체 프로세서 사용률을 증가시키는 장점이 있다. 관련하여, 한국공개특허 10-2007-0090649호는 "멀티코어 시스템에서 협력적 스케줄링을 제공하는 장치 및 방법"에 관한 기술을 개시하고 있다.
그러나, 멀티코어 기반의 태스크 스케줄러에 대한 성능 평가 기법 및 도구들은 싱글코어 기반의 프로세서를 기반으로 설계되어 있기 때문에 멀티코어의 특성에 대한 평가가 쉽지 않은 문제점을 있다. 즉, 어떤 코어에 언제 성능 측정 태스크가 동작하는 지에 따라 성능 특성에 대한 왜곡이 발생할 수 있다. 또한, 성능 평가를 위한 모니터링 소프트웨어의 경우 코어 간의 캐시 문제 및 저장 장치에 대한 입출력 문제로 인해 성능 측정을 위한 오버헤드가 증가하는 문제점이 있었다.
본 발명은 상기와 같은 문제점을 해결하기 위해 발명된 것으로서, 멀티코어 프로세서를 기반으로 하는 운영체제의 코어에 대한 성능을 평가하기 위해 코어 별로 상태정보를 수집하여 성능을 모니터링 할 수 있는 멀티코어 프로세서 기반의 모니터링 장치 및 그 방법을 제공하는데 그 목적이 있다.
또한, 본 발명은 다수개의 코어 중 어느 하나의 코어에만 모니터링 수단을 구비함으로써, 전체 코어의 성능을 모니터링 할 수 있는 멀티코어 프로세서 기반의 모니터링 장치 및 그 방법을 제공하는데 그 목적이 있다.
상기한 목적을 달성하기 위한 본 발명에 따른 멀티코어 프로세서 기반의 모니터링 장치는 다수개의 코어들로부터 추출되는 각각의 상태정보를 수집하여, 해당 메모리 영역에 저장하는 상태정보 수집부; 및 상기 상태정보를 수신받아 저장부에 전송하고 이를 토대로 모니터링을 수행하는 모니터링부;를 포함하되, 상기 모니터링부는 상기 다수개의 코어들 중 어느 하나에 구비된다.
또한, 상기 다수개의 코어들은 상기 상태정보를 추출하는 상태정보 추출부를 각각 구비하는 것을 특징으로 한다.
또한, 상기 상태정보는 코어별로 처리한 태스크의 개수 또는 데이터의 양을 적어도 하나 이상 포함하는 정보인 것을 특징으로 한다.
또한, 상기 상태정보 수집부는, 코어별로 서로 다른 다수개의 메모리 영역을 구비하여, 수집되는 상기 각각의 상태정보를 해당 메모리 영역에 저장하는 메모리부; 상기 메모리 영역에 저장되는 상기 상태정보에 대응되는 상기 다수개의 코어들에 할당된 태스크들이 스케줄링 대상이 되는지 여부를 판단하는 스케줄링 판단부; 상기 태스크들이 할당된 코어에서만 수행되도록 태스크 위치를 고정적으로 설정하는 설정부; 및 상기 스케줄링 대상이 되는 태스크가 상기 모니터링부를 구비한 코어에 할당되었는지 여부를 판단하는 코어 판단부;를 포함한다.
또한, 상기 모니터링부는 스케줄링 대상이 되는 태스크가 상기 모니터링부를 구비된 코어에 할당된 태스크인 경우, 상기 저장된 상태정보를 상기 저장부에 전송한 다음 상기 상태정보 수집부를 초기화하여 상기 모니터링을 수행하는 것을 특징으로 한다.
상기한 목적을 달성하기 위한 본 발명에 따른 멀티코어 프로세서 기반의 모니터링 방법은 상태정보 수집부에 의해, 다수개의 코어들로부터 추출되는 각각의 상태정보를 수집하여, 해당 메모리 영역에 저장하는 단계; 및 상기 다수개의 코어들 중 어느 하나에 구비되는 모니터링부에 의해, 상기 수집한 상태정보를 저장부에 저장하고 이를 토대로 모니터링을 수행하는 단계;를 포함한다.
또한, 상기 다수개의 코어들로부터 추출되는 각각의 상태정보를 수집하여, 해당 메모리 영역에 저장하는 단계 이전에, 상기 다수개의 코어들은 상기 상태정보를 추출하는 상태정보 추출부를 각각 구비하는 것을 특징으로 한다.
또한, 상기 다수개의 코어들로부터 추출되는 각각의 상태정보를 수집하여, 해당 메모리 영역에 저장하는 단계는, 코어별로 서로 다른 다수개의 메모리 영역을 구비하여, 수집되는 상기 각각의 상태정보를 해당 메모리 영역에 저장하는 단계;상기 메모리 영역에 저장되는 상기 상태정보에 대응되는 상기 다수개의 코어들에 할당된 태스크들이 스케줄링 대상이 되는지 여부를 판단하는 단계; 상기 태스크들이 할당된 코어에서만 수행되도록 태스크 위치를 고정적으로 설정하는 단계; 및 상기 스케줄링 대상이 되는 태스크가 상기 모니터링부를 구비한 코어에 할당되었는지 여부를 판단하는 단계;를 포함하는 것을 특징으로 한다.
또한, 상기 수집한 상태정보를 저장부에 저장하고 이를 토대로 모니터링을 수행하는 단계는, 스케줄링 대상이 되는 태스크가 할당된 코어가 상기 모니터링부가 구비된 코어인지 여부를 판단하는 단계; 및 상기 수집한 상태정보를 상기 저장부에 저장한 다음 상기 상태정보 수집부를 초기화하여 상기 모니터링을 수행하는 단계;를 포함한다.
상기와 같은 구성을 갖는 본 발명에 의한 멀티코어 프로세서 기반의 모니터링 장치 및 그 방법은 멀티코어 프로세서를 기반으로 하는 운영체제의 코어에 대한 성능을 평가하기 위해 코어 별로 상태정보를 수집함으로써, 성능 모니터링에 대한 부하를 코어별로 균등하게 분배할 수 있는 효과가 있다.
또한, 본 발명은 다수개의 코어 중 어느 하나의 코어에만 모니터링 수단을 구비함으로써, 전체 코어의 성능을 공정하게 모니터링할 수 있는 효과가 있다.
도 1은 본 발명에 따른 멀티코어 프로세스 기반의 태스크 스케줄러의 구성을 설명하기 위한 도면이다.
도 2는 본 발명에 따른 멀티코어 프로세스 기반의 모니터링 장치에 대한 구성을 설명하기 위한 도면이다.
도 3은 본 발명에 따른 멀티코어 프로세스 기반의 모니터링 장치에 대한 세부 구성을 설명하기 위한 도면이다.
도 4는 본 발명에 따른 멀티코어 프로세스 기반의 모니터링 장치에 채용되는 상태정보 수집부의 세부 구성을 설명하기 위한 도면이다.
도 5는 도 4에 따른 상태정보 수집부에 채용되는 메모리부의 세부 구성을 설명하기 위한 도면이다.
도 6은 본 발명의 실시예에 따른 멀티코어 프로세스 기반의 성능 모니터링 방법에 대한 순서를 설명하기 위한 도면이다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부 도면을 참조하여 설명하기로 한다. 우선, 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 및 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
이하에서는, 본 발명의 실시 예에 따른 멀티코어 프로세스 기반의 모니터링 장치 및 그 방법에 대하여 첨부한 도면을 참고로 하여 상세히 설명한다.
도 1은 본 발명에 따른 멀티코어 프로세스 기반 시스템의 구성을 설명하기 위한 도면이다.
도 1을 참조하여 설명하면, 본 발명에 따른 멀티코어 프로세스 시스템은 크게 다수개의 코어를 포함하는 멀티코어 프로세서(10)와 태스크 스케줄러(20)를 포함하며, 태스크 스케줄러는 로드 밸런서(21), 스케줄러(22a,22b,22c,22d) 및 실행 큐(23a,23b,23c,23d)를 포함한다.
우선, 멀티코어 프로세스 시스템상에는 하나 이상의 어플리케이션이 수행중이라고 가정한다. 어플리케이션이 새로이 데이터를 생성하거나 기존의 데이터를 다른 형태의 데이터로 변환하는 등의 태스크를 다수개의 코어에 할당하고, 각각의 코어에 할당된 태스크들의 실행 순서를 조절하는 것을 로드 밸런서(21)에 의해 결정된다. 로드 밸런서(21)는 요청된 태스크가 어떤 코어에 할당될지를 결정한다. 일반적인 태스크 스케줄러(20)의 성능은 태스크의 특성에 따라 다르게 나타나지만 멀티코어 프로세스 기반의 스케줄러는 로드 밸런서(21)를 통해 각각의 코어들에 공정하게 태스크가 분배될 경우 좋은 성능을 보이기 때문에 공통적으로 다수개의 코어들 간의 공평한 태스크 분배에 대한 알고리즘을 내포하고 있다. 또한, 성능 평가를 위한 모니터링 수단은 멀티코어에 적합한 형태로 설계되어야 하며, 그 구체적인 구성은 이후에 설명되는 도 2에 나타내고 있다.
로드 밸런서(21)는 어플리케이션으로부터 태스크 요청이 접수되면 해당 태스크가 다수개의 코어들에 의하여 병렬적으로 수행될 수 있도록 보다 작은 크기의 다수개의 단위 태스크로 구분한다. 이때, 단위 태스크의 크기는 코어의 개수 및 성능, 전체 컴퓨팅 시스템의 구성뿐만 아니라 처리되어야 할 태스크의 특성 등을 종합적으로 고려하여 결정될 수 있다. 그리고 단위 태스크가 구분되고 나면 다수개의 코어들에 초기 태스크를 할당하게 된다. 이러한 초기 태스크의 양은 코어의 개수 및 성능, 전체 컴퓨팅 시스템의 구성 및 처리되어야 할 태스크의 특성 등을 종합적으로 고려하여 결정될 수 있다.
다수개의 코어는 할당된 태스크를 실행한다. 이때, 로드 밸런서(21)가 각각의 코어들에 태스크를 할당하는 것을 코어별로 구비되는 스케줄러(22a,22b,22c,22d)가 실행큐(23a,23b,23c,23d)에 각 단위 태스크에 대한 정보를 입력하는 방식으로 수행될 수 있다. 이처럼, 본 발명에 따른 멀티코어 프로세서(10)는 싱글코어 프로세서와 달리 다수개의 코어별로 내부 스케줄러(22a,22b,22c,22d) 및 실행큐(23a,23b,23c,23d)를 포함하고 있다.
그리고 다수개의 코어들은 CPU(Central Processing Unit), DSP(Digital Processing Processor) 또는 GPU(Graphic Processing Unit) 중에서 선택되는 어느 하나로서, 다수개의 코어가 모두 동일한 코어이거나 서로 다른 코어일 수 있다.
도 2는 본 발명에 따른 멀티코어 프로세스 기반의 모니터링 장치에 대한 구성을 설명하기 위한 도면이다.
도 2를 참조하여 설명하면, 본 발명에 따른 모니터링 장치(100)는 상태정보 수집부(110), 모니터링부(120) 및 저장부(130)를 포함한다.
상태정보 수집부(110)는 다수개의 코어들로부터 추출되는 각각의 상태정보를 수집하여 내부에 구비되는 해당 메모리 영역에 저장한다. 이때, 상태정보는 다수개의 코어별로 처리한 태스크의 개수 또는 데이터 양을 적어도 하나 이상 포함하는 정보일 수 있다. 이러한, 상태정보 수집부(110)의 세부 구성에 대해서는 이후 도 4에서 자세하게 설명하기로 한다.
모니터링부(120)는 상태정보 수집부(110)에 수집된 상태정보를 수신받아 저장부(130)에 전송하고 이를 토대로 코어의 성능을 측정하기 위한 모니터링을 수행한다. 이때, 다수개의 코어들의 성능을 측정하기 위한 모니터링 방법으로 각각의 코어가 수행한 단위 태스크의 개수 또는 단위 태스크를 수행하면서 처리한 데이터 양을 그 동안 수행한 시간으로 나누어 태스크 처리 속도에 대한 산술평균을 얻는 방법을 예로 들 수 있다. 이때, 다수개의 코어들은 태스크를 처리할 때마다 성능이 동일할 수도 있지만 일부 디바이스에서는 코드 전송시간, 코드 캐쉬의 영향으로 인해 점점 성능이 좋아질 수도 있고, 필요에 따라 전체 태스크를 수행한 횟수가 아니라 최근 단위 태스크만을 성능 측정에 사용할 수 있다. 이러한 정보에 기초하여 단위 시간당 다수개의 코어들이 처리한 단위 태스크의 개수 또는 데이터의 양 즉, 상태정보를 주기적으로 갱신하면서 다수개의 코어별로 성능을 모니터링 할 수 있다.
도 3은 본 발명에 따른 멀티코어 프로세스 기반의 모니터링 장치에 대한 세부 구성을 설명하기 위한 도면이고, 도 4는 본 발명에 따른 멀티코어 프로세스 기반의 모니터링 장치에 채용되는 상태정보 수집부의 세부 구성을 설명하기 위한 도면이고, 도 5는 도 4에 따른 상태정보 수집부의 메모리부의 세부 구성을 설명하기 위한 도면이다.
도 3을 참조하여 설명하면, 본 발명에 따른 멀티코어 프로세스 기반의 모니터링 장치는 다수개의 코어, 다수개의 코어들 각각에 구비되는 상태정보 추출부(101a,101b), 상태정보 수집부(110), 다수개의 코어 중 어느 하나의 코어에만 구비되는 모니터링부(120), 저장부(130)를 포함한다.
상태정보 추출부(101a,101b)는 다수개의 코어 각각에 구비되어, 자신이 속한 코어에 대한 상태정보만을 추출한다. 이때, 상태정보는 앞서 설명한 바와 같이 다수개의 코어별로 처리한 태스크의 개수 또는 데이터 양을 적어도 하나 이상 포함하는 정보일 수 있다. 이와 같이 다수개의 코어별로 상태정보 추출부(101a,101b)가 구비되는 것은 모니터링에 소비되는 부하를 공통적으로 분배하여 코어의 성능 평가를 공정하게 유지하기 위함이다.
상태정보 추출부(101a,101b)는 추출한 상태정보를 상태정보 수집부(110)로 전송한다. 이때, 상태정보 추출부(101a,101b)는 상태정보 추출 및 전송에 있어 모니터링부(120)의 성능 측정에 대한 요구사항에 따라 다르게 결정될 수 있다. 예를 들어, 모니터링부(120)가 일정한 시간주기마다 다수개의 코어들의 성능을 모니터링 하고자 할 경우 상태정보 추출부(101a,101b)는 그 시간주기에 맞춰 각각의 코어의 상태정보를 추출하여 상태정보 수집부(110)에 전송할 수 있다. 또한, 모니터링부(120)가 다수개의 코어들의 태스크 완료에 따라 다수개의 코어들의 성능을 모니터링 하고자 할 경우 상태정보 추출부(101a,101b)는 태스크 완료 시점에 맞춰 각각의 코어들의 상태정보를 추출하여 상태정보 수집부(110)에 전송할 수 있다.
상태정보 수집부(110)는 다수개의 코어들로부터 추출되는 각각의 상태정보를 수집하여 내부에 구비되는 해당 메모리 영역에 저장한다.
이를 위해, 상태정보 수집부(110)는 도 4에 도시된 바와 같이, 메모리부(111), 스케줄링 판단부(112), 코어 설정부(113) 및 코어 판단부(114)를 포함한다.
메모리부(111)는 코어별로 서로 다른 다수개의 메모리 영역을 구비하여, 수집되는 각각의 상태정보를 해당 메모리 영역에 저장한다. 즉, 메모리부(111)는 다수개의 코어별로 서로 다른 메모리 영역을 할당하여, 주기적으로 다수개의 코어들 각각의 상태정보를 해당 메모리 영역에 수집하여 저장한다. 도 5에 도시된 바와 같이, 상태정보 수집부(110)는 core 0으로부터 추출되는 상태정보는 core 0 상태정보 메모리 영역에 저장하고, core N으로부터 추출되는 상태정보는 core N 상태정보 메모리 영역에 저장한다.
스케줄링 판단부(112)는 메모리 영역에 저장되는 상태정보에 대응되는 다수개의 코어들에 할당된 태스크들이 스케줄링 대상이 되는지 여부를 판단한다.
코어 설정부(113)는 태스크들이 할당된 코어에서만 수행되도록 태스크 위치를 고정적으로 설정한다. 이에 따라, 태스크가 이후 스케줄링이 되더라도 할당된 코어에서 재 수행될 수 있다.
코어 판단부(114)는 스케줄링 대상이 되는 태스크가 모니터링부(120)를 구비한 코어에 할당되었는지 여부를 판단하여, 스케줄링 대상이 되는 태스크가 모니터링부(120)를 구비된 코어에 할당된 태스크인 경우, 모니터링부(120)가 모니터링을 수행할 수 있도록 한다.
모니터링부(120)는 다수개의 코어들 중 어느 하나의 코어에만 할당되어, 상태정보 수집부(110)에 수집된 상태정보들을 저장부(130)에 전송하고, 이를 토대로 모니터링을 수행한다.
즉, 모니터링부(120)는 코어 판단부에 의해, 스케줄링 대상이 되는 태스크가 모니터링부(120)를 구비된 코어에 할당된 태스크인 경우, 저장된 상태정보를 저장부(130)에 전송한 다음 상태정보 수집부(110)를 초기화하여 모니터링을 수행한다.
도 6은 본 발명의 실시예에 따른 멀티코어 프로세스 기반의 성능 모니터링 방법에 대한 순서를 설명하기 위한 도면이다.
도 6을 참조하여 설명하면, 본 발명에 따른 멀티코어 프로세스 기반의 성능 모니터링 방법은 앞서 설명한 멀티코어 프로세스 기반의 성능 모니터링 장치를 이용하는 방법으로 이하, 중복되는 설명은 생략하기로 한다.
먼저, 다수개의 코어들은 커널 시작과 함께 상태정보 추출부(101a,101b)를 할당받는다.(S100) 그리고, 다수개의 코어들 중 어느 하나의 코어에는 모니터링부(120)가 할당된다.
다음, 할당된 상태정보 추출부(101a,101b)는 자신이 속한 코어로부터 추출되는 상태정보를 상태정보 수집부(110)로 전송한다.(S200) 이때, 상태정보 수집부(110)는 다수개의 코어별로 서로 다른 메모리 영역을 할당하여, 주기적으로 다수개의 코어들 각각의 상태정보를 해당 메모리 영역에 수집하여 저장한다.
그 다음, 메모리 영역에 저장되는 상태정보에 대응되는 다수개의 코어들에 할당된 태스크들이 스케줄링 대상이 되는지 여부를 판단한다.(S300) 이때, 각각의 코어에 할당된 태스크가 스케줄링 대상인 경우, 해당 태스크가 할당된 코어에서만 수행되도록 태스크 위치를 고정적으로 설정하는 CPU 어피니티를 설정한다.(S400) 그러나 각각의 코어에 할당된 태스크가 스케줄링 대상이 아닌 경우, 전 S200 단계로 돌아간다.
그 다음, S300 단계에서 스케줄링 되는 태스크가 모니터링부(120)를 구비한 코어의 태스크인지 여부를 판단한다.(S500)
그 다음, 스케줄링 되는 태스크가 모니터링부(120)가 구비된 코어의 태스크인 경우, 상태정보 수집부(110)에 저장된 전체 코어에 대한 상태정보를 저장부(130)에 전송한다.(S600)
그 다음, 상태정보 수집부(110)를 초기화하여 다수개의 코어들의 성능을 모니터링한다.(S700)
마지막으로, 해당 태스크의 스케줄링을 수행한다.(S800) 그리고, S500 단계에서 스케줄링 되는 태스크가 모니터링부(120)가 할당된 코어의 태스크가 아닌 경우에는 바로 S800 단계로 진행된다.
이처럼, 본 발명에 따른 멀티코어 프로세서 기반의 모니터링 장치 및 그 방법은 멀티코어 프로세서를 기반으로 하는 운영체제의 코어에 대한 성능을 평가하기 위해 코어 별로 상태정보를 수집함으로써, 성능 모니터링에 대한 부하를 코어별로 균등하게 분배할 수 있다.
또한, 본 발명은 다수개의 코어 중 어느 하나의 코어에만 모니터링 수단을 구비함으로써, 전체 스케줄러의 성능을 공정하게 모니터링할 수 있다.
이상에서와 같이 도면과 명세서에서 최적의 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100 : 멀티코어 프로세서 기반의 모니터링 장치
101a,101b : 상태정보 추출부 110 : 상태정보 수집부
120 : 모니터링부 130 : 저장부

Claims (9)

  1. 다수개의 코어들로부터 추출되는 각각의 상태정보를 수집하여, 상기 다수개의 코어별로 구비되는 메모리 영역에 저장하는 상태정보 수집부; 및
    상기 상태정보를 수신받아 저장부에 전송하고 이를 토대로 모니터링을 수행하는 모니터링부;를 포함하되,
    상기 모니터링부는 상기 다수개의 코어들 중 어느 하나에 구비되는 것을 특징으로 하는 멀티코어 프로세서 기반의 모니터링 장치.
  2. 제 1항에 있어서,
    상기 다수개의 코어들은 상기 상태정보를 추출하는 상태정보 추출부를 각각 구비하는 것을 특징으로 하는 멀티코어 프로세서 기반의 모니터링 장치.
  3. 제 1항에 있어서,
    상기 상태정보는 코어별로 처리한 태스크의 개수 또는 데이터의 양을 적어도 하나 이상 포함하는 정보인 것을 특징으로 하는 멀티코어 프로세서 기반의 모니터링 장치.
  4. 제 1항에 있어서,
    상기 상태정보 수집부는,
    코어별로 서로 다른 다수개의 메모리 영역을 구비하여, 수집되는 상기 각각의 상태정보를 해당 메모리 영역에 저장하는 메모리부;
    상기 메모리 영역에 저장되는 상기 상태정보에 대응되는 상기 다수개의 코어들에 할당된 태스크들이 스케줄링 대상이 되는지 여부를 판단하는 스케줄링 판단부;
    상기 태스크들이 할당된 코어에서만 수행되도록 태스크 위치를 고정적으로 설정하는 코어 설정부; 및
    상기 스케줄링 대상이 되는 태스크가 상기 모니터링부를 구비한 코어에 할당되었는지 여부를 판단하는 코어 판단부;
    를 포함하는 것을 특징으로 하는 멀티코어 프로세서 기반의 모니터링 장치.
  5. 제 1항에 있어서,
    상기 모니터링부는 스케줄링 대상이 되는 태스크가 상기 모니터링부를 구비된 코어에 할당된 태스크인 경우, 상기 저장된 상태정보를 상기 저장부에 전송한 다음 상기 상태정보 수집부를 초기화하여 상기 모니터링을 수행하는 것을 특징으로 하는 멀티코어 프로세서 기반의 모니터링 장치.
  6. 상태정보 수집부에 의해, 다수개의 코어들로부터 추출되는 각각의 상태정보를 수집하여, 상기 다수개의 코어별로 구비되는 메모리 영역에 저장하는 단계; 및
    상기 다수개의 코어들 중 어느 하나에 구비되는 모니터링부에 의해, 상기 수집한 상태정보를 저장부에 저장하고 이를 토대로 모니터링을 수행하는 단계;
    를 포함하는 것을 특징으로 하는 멀티코어 프로세서 기반의 모니터링 방법.
  7. 제 6항에 있어서,
    상기 다수개의 코어들로부터 추출되는 각각의 상태정보를 수집하여, 해당 메모리 영역에 저장하는 단계 이전에,
    상기 다수개의 코어들은 상기 상태정보를 추출하는 상태정보 추출부를 각각 구비하는 것을 특징으로 하는 멀티코어 프로세서 기반의 모니터링 방법.
  8. 제 6항에 있어서,
    상기 다수개의 코어들로부터 추출되는 각각의 상태정보를 수집하여, 해당 메모리 영역에 저장하는 단계는,
    코어별로 서로 다른 다수개의 메모리 영역을 구비하여, 수집되는 상기 각각의 상태정보를 해당 메모리 영역에 저장하는 단계;
    상기 메모리 영역에 저장되는 상기 상태정보에 대응되는 상기 다수개의 코어들에 할당된 태스크들이 스케줄링 대상이 되는지 여부를 판단하는 단계;
    상기 태스크들이 할당된 코어에서만 수행되도록 태스크 위치를 고정적으로 설정하는 단계; 및
    상기 스케줄링 대상이 되는 태스크가 상기 모니터링부를 구비한 코어에 할당되었는지 여부를 판단하는 단계;
    를 포함하는 것을 특징으로 하는 멀티코어 프로세서 기반의 모니터링 방법.
  9. 제 6항에 있어서,
    상기 수집한 상태정보를 저장부에 저장하고 이를 토대로 모니터링을 수행하는 단계는,
    스케줄링 대상이 되는 태스크가 할당된 코어가 상기 모니터링부가 구비된 코어인지 여부를 판단하는 단계; 및
    상기 수집한 상태정보를 상기 저장부에 저장한 다음 상기 상태정보 수집부를 초기화하여 상기 모니터링을 수행하는 단계;
    를 포함하는 것을 특징으로 하는 멀티코어 프로세서 기반의 모니터링 방법.
KR1020130068437A 2013-06-14 2013-06-14 멀티코어 프로세서 기반의 모니터링 장치 및 그 방법 KR101694310B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130068437A KR101694310B1 (ko) 2013-06-14 2013-06-14 멀티코어 프로세서 기반의 모니터링 장치 및 그 방법
US14/301,364 US20140372810A1 (en) 2013-06-14 2014-06-11 Apparatus and method for monitoring performance of cores based on multi-core processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130068437A KR101694310B1 (ko) 2013-06-14 2013-06-14 멀티코어 프로세서 기반의 모니터링 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20140146272A true KR20140146272A (ko) 2014-12-26
KR101694310B1 KR101694310B1 (ko) 2017-01-10

Family

ID=52020341

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130068437A KR101694310B1 (ko) 2013-06-14 2013-06-14 멀티코어 프로세서 기반의 모니터링 장치 및 그 방법

Country Status (2)

Country Link
US (1) US20140372810A1 (ko)
KR (1) KR101694310B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220068777A (ko) * 2020-11-19 2022-05-26 엘아이지넥스원 주식회사 복합 센서 이동형 레이더의 실시간 코어 사용량 측정 장치 및 방법
KR20230076494A (ko) * 2021-11-24 2023-05-31 엘아이지넥스원 주식회사 복합 센서 이동형 레이더의 실시간 연산 태스크 재할당 장치 및 방법

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9544351B1 (en) * 2013-03-15 2017-01-10 Steven Sanghoon Lee Media sharing and consumption
KR101927233B1 (ko) 2015-03-16 2018-12-12 한국전자통신연구원 이기종 멀티-코어 시스템의 gpu 전력 측정 방법
JP2016186704A (ja) * 2015-03-27 2016-10-27 富士通株式会社 情報処理装置、情報処理システム及びプログラム
US10091283B2 (en) * 2016-03-03 2018-10-02 Flipboard, Inc. Distributed scheduling systems for digital magazine
US10884761B2 (en) * 2016-03-22 2021-01-05 Lenovo Enterprise Solutions (Singapore) Pte. Ltd Best performance delivery in heterogeneous computing unit environment
US10203747B2 (en) 2016-03-22 2019-02-12 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Workload placement based on heterogeneous compute performance per watt
US10860499B2 (en) 2016-03-22 2020-12-08 Lenovo Enterprise Solutions (Singapore) Pte. Ltd Dynamic memory management in workload acceleration
US10503524B2 (en) 2016-03-22 2019-12-10 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Interception of a function call, selecting a function from available functions and rerouting the function call
JP6666195B2 (ja) * 2016-04-26 2020-03-13 日立オートモティブシステムズ株式会社 情報処理装置、情報処理システム
US10908946B2 (en) * 2016-12-30 2021-02-02 Texas Instruments Incorporated Scheduling of external block based data processing tasks on a hardware thread scheduler
KR102300347B1 (ko) 2017-08-07 2021-09-10 한국전자통신연구원 멀티코어 임베디드 시스템에 대한 연속 프로파일링 장치 및 그 방법
KR102442921B1 (ko) 2017-12-11 2022-09-13 삼성전자주식회사 디지털 시그널 프로세서(dsp)의 태스크 관리 효율을 높일 수 있는 전자 장치
KR20220067795A (ko) 2020-11-18 2022-05-25 삼성전자주식회사 스토리지 장치 및 이를 포함하는 스토리지 시스템
US20230121841A1 (en) * 2021-10-19 2023-04-20 EMC IP Holding Company LLC Facilitating per-cpu reference counting for multi-core systems with a long-lived reference

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090117700A (ko) * 2007-06-27 2009-11-12 인터내셔널 비지네스 머신즈 코포레이션 프로세서 성능 모니터링
US7996346B2 (en) * 2007-12-19 2011-08-09 International Business Machines Corporation Method for autonomic workload distribution on a multicore processor

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816877B2 (ja) * 1991-06-10 1996-02-21 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理システム用資源データの実時間捕獲及び減縮方法及びシステム
US20040083246A1 (en) * 2002-10-25 2004-04-29 Hakim Kahlouche Method and system for performance management in a computer system
US8115659B2 (en) * 2008-06-10 2012-02-14 International Business Machines Corporation Method and apparatus for efficient gathering of information in a multicore system
KR101651871B1 (ko) * 2009-12-28 2016-09-09 삼성전자주식회사 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치
KR101699770B1 (ko) * 2010-09-06 2017-02-13 삼성전자주식회사 가상화 시스템 및 그 가상화 시스템에서 자원 할당 방법
US9081925B1 (en) * 2012-02-16 2015-07-14 Xilinx, Inc. Estimating system performance using an integrated circuit

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090117700A (ko) * 2007-06-27 2009-11-12 인터내셔널 비지네스 머신즈 코포레이션 프로세서 성능 모니터링
US7996346B2 (en) * 2007-12-19 2011-08-09 International Business Machines Corporation Method for autonomic workload distribution on a multicore processor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220068777A (ko) * 2020-11-19 2022-05-26 엘아이지넥스원 주식회사 복합 센서 이동형 레이더의 실시간 코어 사용량 측정 장치 및 방법
KR20230076494A (ko) * 2021-11-24 2023-05-31 엘아이지넥스원 주식회사 복합 센서 이동형 레이더의 실시간 연산 태스크 재할당 장치 및 방법

Also Published As

Publication number Publication date
KR101694310B1 (ko) 2017-01-10
US20140372810A1 (en) 2014-12-18

Similar Documents

Publication Publication Date Title
KR101694310B1 (ko) 멀티코어 프로세서 기반의 모니터링 장치 및 그 방법
US8707314B2 (en) Scheduling compute kernel workgroups to heterogeneous processors based on historical processor execution times and utilizations
Polo et al. Performance management of accelerated mapreduce workloads in heterogeneous clusters
KR101640848B1 (ko) 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치
US9575810B2 (en) Load balancing using improved component capacity estimation
Shirahata et al. Hybrid map task scheduling for GPU-based heterogeneous clusters
KR101651871B1 (ko) 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치
Kang et al. Lalarand: Flexible layer-by-layer cpu/gpu scheduling for real-time dnn tasks
US9632836B2 (en) Scheduling applications in a clustered computer system
Gu et al. GaiaGPU: Sharing GPUs in container clouds
Pérez et al. Energy efficiency of load balancing for data-parallel applications in heterogeneous systems
Ben-Yehuda et al. The offline scheduler for embedded vehicular systems
KR20130114497A (ko) 분산 처리 시스템, 분산 처리 시스템의 스케줄러 노드 및 스케줄 방법, 및 이를 위한 프로그램 생성 장치
CN110300959B (zh) 用于动态运行时任务管理的方法、系统、设备、装置和介质
KR101553650B1 (ko) 멀티코어 시스템에서의 로드 밸런싱 장치 및 방법
EP3779673B1 (en) Methods and apparatus to configure heterogenous components in an accelerator
KR20130088513A (ko) 멀티코어 시스템의 태스크 분배 방법 및 장치
Hartmann et al. Gpuart-an application-based limited preemptive gpu real-time scheduler for embedded systems
KR101694302B1 (ko) 이기종 멀티코어 프로세서 시스템의 관리 장치 및 방법
EP3779778A1 (en) Methods and apparatus to enable dynamic processing of a predefined workload
US20170371713A1 (en) Intelligent resource management system
Pathania et al. Optimal greedy algorithm for many-core scheduling
KR20140006351A (ko) 예상 실행 시간 정보를 이용하여 작업을 분배하는 이종 멀티코어 프로세서 시스템의 작업 분배 방법 및 그 방법을 이용하는 이종 멀티코어 프로세서 시스템
Gracioli et al. Two‐phase colour‐aware multicore real‐time scheduler
Markthub et al. Using rcuda to reduce gpu resource-assignment fragmentation caused by job scheduler

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