KR20120066189A - 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 장치 및 방법 - Google Patents

매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 장치 및 방법 Download PDF

Info

Publication number
KR20120066189A
KR20120066189A KR1020100127408A KR20100127408A KR20120066189A KR 20120066189 A KR20120066189 A KR 20120066189A KR 1020100127408 A KR1020100127408 A KR 1020100127408A KR 20100127408 A KR20100127408 A KR 20100127408A KR 20120066189 A KR20120066189 A KR 20120066189A
Authority
KR
South Korea
Prior art keywords
application
information
state
manicore
performance
Prior art date
Application number
KR1020100127408A
Other languages
English (en)
Other versions
KR101671184B1 (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 KR1020100127408A priority Critical patent/KR101671184B1/ko
Priority to US13/297,744 priority patent/US8914808B2/en
Priority to EP11193126.7A priority patent/EP2466469A3/en
Publication of KR20120066189A publication Critical patent/KR20120066189A/ko
Application granted granted Critical
Publication of KR101671184B1 publication Critical patent/KR101671184B1/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
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons

Abstract

매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 장치 및 방법에 관한 것으로서, 응용 프로그램의 상태 변경에 대응하여, 상기 응용 프로그램으로부터 등록 정보를 수신하고, 상기 수신된 등록 정보에 기초하여, 상기 응용 프로그램의 상태 변경을 처리한다.

Description

매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 장치 및 방법{APPARATUS FOR DYNAMICALLY SELF-ADAPTING OF SOFTWARE FRAMEWORK ON MANY-CORE SYSTEMS AND METHOD OF THE SAME}
본 발명은 다수의 코어로 이루어진 시스템에서의 응용 프로그램 관리에 관한 것으로서, 응용 프로그램이 런타임 매니저에 자신의 모핑 인스턴스 및 성능 정보를 등록 및 전달하고, 상기 런타임 매니저는 측정된 시스템 정보 및 응용 프로그램의 정보를 이용하여 응용 프로그램의 동작을 최적화하는 기술적 사상을 개시한다.
최근 마이크로프로세서 설계의 가장 두드러진 추세는 멀티코어 프로세서라고 할 수 있다. 듀얼 코어 제품이 등장한 이후 그 추세는 더욱 두드러져 최근에는 멀티코어를 넘어 매니코어(Many-Core) 프로세서의 시대를 열어가고 있다.
이러한 시대적인 배경에 힘입어, 프로세서의 칩 밀도가 높아지고 멀티코어 아키텍쳐가 출현해서, 온 칩 프로세싱 자원이 무어의 법칙을 따르며 증가하고 있다.
오늘날 멀티코어 칩은 10여 개의 코어를 포함하고 있으며, 조만간 수백 개의 코어가 한 칩에 포함되는 시대가 올 것으로 예상된다. 이러한 멀티코어 아키텍쳐의 보편화로 인해, 클러스터로 이루어진 슈퍼 컴퓨터뿐만 아니라 퍼스널 컴퓨터, 심지어는 임베디드 시스템에서도 병렬 처리가 널리 사용되고 있다.
클러스터 컴퓨팅에서처럼, 멀티코어에서도 복수의 응용이 컴퓨팅 자원을 공유해야 하고, 멀티코어에서 동작하는 응용 프로그램의 컴퓨팅 자원 요구 사항도 다양하다. 게다가 동적 상황에서는 시스템의 유휴 자원도 수시로 변하며, 응용 프로그램의 요구 사항도 실행하면서 변화한다. 전통적인 정적인 응용 프로그램 병렬화는 이러한 동적인 환경에서 좋은 성능을 발휘하지 못하고 있는 추세이다.
본 발명의 일실시예에 따른 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 장치는 응용 프로그램의 상태 변경에 대응하여, 상기 응용 프로그램으로부터 등록 정보를 수신하는 등록부, 및 상기 수신된 등록 정보에 기초하여, 상기 응용 프로그램의 상태 변경을 처리하는 매니코어 런타임 관리부를 포함할 수 있다.
본 발명의 일실시예에 따른 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 방법은 응용 프로그램의 상태 변경에 대응하여, 상기 응용 프로그램으로부터 등록 정보를 수신하는 단계, 상기 응용 프로그램의 성능 및 상태 중에서 적어도 어느 하나를 감시하는 단계, 및 상기 수신된 등록 정보 및 상기 감시에 대한 결과 중에서 적어도 하나에 기초하여, 상기 응용 프로그램의 상태 변경을 처리하는 단계를 포함할 수 있다.
도 1은 본 발명의 일실시예에 따른 응용 프로그램의 상태 재구성 장치를 설명하기 위한 블록도이다.
도 2는 본 발명의 일실시예에 따른 등록부를 구체적으로 설명하기 위한 블록도이다.
도 3은 본 발명의 일실시예에 따른 모니터링부를 구체적으로 설명하기 위한 블록도이다.
도 4는 본 발명의 일실시예에 따른 응용 프로그램의 상태 재구성 방법을 설명하기 위한 블록도이다.
도 5는 본 발명의 일실시예에 따른 매니코어 런타임 관리부와 응용 프로그램 간의 동작을 설명하는 흐름도이다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
본 발명을 설명함에 있어서, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고, 본 명세서에서 사용되는 용어(terminology)들은 본 발명의 바람직한 실시예를 적절히 표현하기 위해 사용된 용어들로서, 이는 사용자, 운용자의 의도 또는 본 발명이 속하는 분야의 관례 등에 따라 달라질 수 있다. 따라서, 본 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일실시예에 따른 응용 프로그램의 상태 재구성 장치(100)를 설명하기 위한 블록도이다.
본 발명의 일실시예에 따른 매니코어 시스템에서 응용 프로그램의 상태 재구성 장치(100)는 등록부(110), 매니코어 런타임 관리부(120), 및 모니터링부(130)를 포함할 수 있다.
본 발명의 일실시예에 따른 등록부(110)는 응용 프로그램의 상태 재구성(변경)에 대응하여, 상기 응용 프로그램으로부터 등록 정보를 수신할 수 있다.
본 발명의 일실시예에 따른 응용 프로그램의 상태 재구성이라 함은, 감시되는 상기 응용 프로그램의 성능에 따라, 응용 프로그램이 최상의 성능을 구현할 수 있도록 사전에 정의된 알고리즘에 의해서 특정 시점에 특정 인스턴스를 이용하여 처리될 수 있다.
이하에서는, 이러한 응용 프로그램의 상태 재구성 또는 상태 변경을 응용 프로그램의 모핑(morphing)이라고 한다.
본 발명의 일실시예에 따른 매니코어 런타임 관리부(120)는 런타임 매니저(RTM, runtime manager)를 이용하여, 상기 등록된 등록 정보에 기초하여 상기 응용 프로그램의 모핑을 지시하여, 처리할 수 있다.
상기 런타임 매니저는 응용 프로그램으로부터 모핑 범위와 각 모핑의 특성을 확인할 수 있다.
응용 프로그램은 자체적으로 변화할 수 있는 여러 종류의 모핑 인스턴스 집합을 가지고 있다.
매니코어 런타임 관리부(120)는 런타임 매니저를 통해 시스템 자원을 관리하고, 자원 할당을 결정하며, 스케쥴링 및 응용 프로그램의 모핑을 결정할 수 있다.
상기 런타임 매니저는 응용 프로그램의 성능을 감시하며, 응용 프로그램이 변경될 필요가 생기면, 응용 프로그램에 모핑을 지시할 수 있다. 이를 위해, 상기 런타임 매니저는 모니터링부(130)와 연동할 수 있다.
매니코어 런타임 관리부(120)는 상기 응용 프로그램에 대응되는 적어도 하나 이상의 알고리즘을 변경하거나, 상기 응용 프로그램과 연동하는 데이터를 분할하여, 상기 응용 프로그램의 상태 변경을 처리할 수 있다.
모니터링부(130)는 상기 응용 프로그램의 성능 및 상태 중에서 적어도 어느 하나를 감시할 수 있다.
이에, 본 발명의 일실시예에 따른 매니코어 런타임 관리부(120)는 상기 수신된 등록 정보 및 상기 감시에 대한 결과에 기초하여, 상기 응용 프로그램의 모핑을 처리할 수 있다.
먼저, 본 발명의 일실시예에 따른 등록부(110)를 구체적으로 설명한다.
도 2는 본 발명의 일실시예에 따른 등록부(200)를 구체적으로 설명하기 위한 블록도이다.
본 발명의 일실시예에 따른 등록부(200)는 하드웨어 속성 등록부(210), 소프트웨어 속성 등록부(220), 성능 속성 등록부(230), 및 범위 등록부(240)를 포함할 수 있다.
응용 프로그램은 모핑을 위해서, 매니코어 런타임 관리부의 런타임 매니저에 상태 변경을 위한 범위 정보 및 상태 변경을 위한 속성 정보 등의 등록 정보를 제공해야 한다. 이때, 등록부(200)는 상기 응용 프로그램으로부터 제공되는 등록 정보를 수신할 수 있다.
이 중에서, 하드웨어 속성 등록부(210)는 하드웨어 속성과 관련된 등록 정보를 수신할 수 있고, 소프트웨어 속성 등록부(220)는 소프트웨어 속성과 관련된 등록 정보를 수신할 수 있다.
마찬가지로, 성능 속성 등록부(230)는 성능 속성과 관련된 등록 정보를 수신할 수 있고, 범위 등록부(240)는 모핑 가능한 응용 프로그램의 범위에 대한 등록 정보를 수신할 수 있다.
상기 범위 정보는 상기 응용 프로그램에 대응되는 하드웨어 속성 정보, 스프트웨어 속성 정보, 및 성능 정보 중에서 적어도 하나의 정보를 포함할 수 있다.
이때, 상기 하드웨어 속성 정보는 스크래치 패드 메모리 사용량 정보, 전체 메모리 사용량 정보, 중앙처리기 사용량 정보, 네트워크 사용량 정보, 및 버스 사용량 정보 중에서 적어도 하나의 정보를 포함할 수 있다.
또한, 상기 소프트웨어 속성 정보는 상기 응용 프로그램에 대응되는 쓰레드 개수 정보, 병렬화 오버헤드 정보, 통신 밀도 정보, 메모리 접근 밀도 정보, 및 캐시 사용량 정보 중에서 적어도 하나의 정보를 포함할 수 있다.
또한, 상기 성능 정보는 상기 응용 프로그램으로부터 수신되는 상기 응용 프로그램의 현재 성능에 대한 정보를 포함할 수 있다.
도 3은 본 발명의 일실시예에 따른 모니터링부(300)를 구체적으로 설명하기 위한 블록도이다.
본 발명의 일실시예에 따른 모니터링부(300)는 상기 응용 프로그램에 대응하는 하드웨어를 감시하는 하드웨어 모니터링부(310), 상기 응용 프로그램에 대응하는 소프트웨어를 감시하는 소프트웨어 모니터링부(320), 및 상기 응용 프로그램의 성능을 감시하는 성능 모니터링부(330)를 포함할 수 있다.
이에, 본 발명의 일실시예에 따른 매니코어 런타임 관리부는 상기 성능 및 상기 상태 중에서 적어도 어느 하나의 감시 결과에 기초하여, 상기 응용 프로그램에 모핑을 지시할 수 있다.
즉, 매니코어 런타임 관리부의 런타임 매니저는 본 발명의 일실시예에 따른 모니터링부(300)를 이용해 응용 프로그램의 성능 및 시스템의 상태를 감시할 수 있다.
본 발명에 따른 응용 프로그램은 다양한 알고리즘을 구현하거나, 데이터 분할 방식을 변경할 수 있도록 해서 모핑 인스턴스 세트를 구성할 수 있다. 응용 프로그램의 모핑 인스턴스는 실제 하드 코딩해서 컴파일 된 결과물일 수도 있고, 소스 코드 생성기에 의해서 동적으로 생성되고 런타임에 컴파일될 수도 있다.
이렇게 작성된 응용 프로그램은 런타임 매니저에 자신의 변경 가능 범위를 알려 줘야 하는데, 이는 하드웨어 속성, 소프트웨어 속성, 성능 속성, 모핑 범위로 표현될 수 있다. 하드웨어 속성은 각 모핑 인스턴스가 최적의 성능을 낼 수 있는 스크래치 패드 메모리 사용량, 메모리 사용량, CPU 사용량, 네트워크 사용량, 버스 사용량 등이 포함될 수 있다.
다시 말해, 런타임 매니저는 모니터링부(300)를 이용해 하드웨어 성능을 모니터링하고 있으며, 하드웨어의 상태에 따라서 모핑 인스턴스를 선택할 수 있다.
소프트웨어 속성은 모핑 인스턴스가 사용하는 쓰레드의 개수, 병렬화 오버헤드, 통신 밀도, 메모리 접근 밀도, 캐시 사용량 등을 포함할 수 있다.
특정 인스턴스는 초기 병렬화를 위한 오버헤드가 크지만 동기화 오버헤드는 작을 수 있고, 특정 인스턴스는 반대의 특성을 가질 수 있다. 성능 속성은 응용 프로그램이 자신의 성능을 측정할 수 있도록 런타임 매니저가 수신하는 정보이다.
성능 측정을 위해 간단한 heartbeat를 사용해서 런타임 매니저가 이를 카운팅(counting)하는 방식을 사용할 수도 있고, 또는 다른 복잡한 방식을 등록할 수도 있다.
도 4는 본 발명의 일실시예에 따른 응용 프로그램의 상태 재구성 방법을 설명하기 위한 블록도이다.
본 발명의 일실시예에 따른 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 방법은 응용 프로그램의 상태 변경에 대응하여, 상기 응용 프로그램으로부터 등록 정보를 수신할 수 있다(단계 401).
본 발명의 일실시예에 따른 상기 등록 정보는 스크래치 패드 메모리 사용량 정보, 전체 메모리 사용량 정보, 중앙처리기 사용량 정보, 네트워크 사용량 정보, 버스 사용량 정보, 쓰레드 개수 정보, 병렬화 오버헤드 정보, 통신 밀도 정보, 메모리 접근 밀도 정보, 캐시 사용량 정보, 및 상기 응용 프로그램의 현재 성능에 대한 정보 중에서 적어도 하나를 포함할 수 있다.
다음으로, 본 발명의 일실시예에 따른 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 방법은 상기 응용 프로그램의 성능 및 상태 중에서 적어도 어느 하나를 감시할 수 있다.
즉, 상기 응용 프로그램은 자신의 모핑 범위와 특성을 런타임 매니저에 등록하는데, 런타임 매니저는 응용 프로그램의 성능을 측정하고 감시할 수 있다.
본 발명의 일실시예에 따른 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 방법은 상기 수신된 등록 정보 및 상기 감시에 대한 결과 중에서 적어도 하나에 기초하여, 상기 응용 프로그램의 상태 변경, 즉 모핑을 처리할 수 있다.
이때, 본 발명의 일실시예에 따른 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 방법은 상기 응용 프로그램에 대응되는 적어도 하나 이상의 알고리즘을 변경하거나, 상기 응용 프로그램과 연동하는 데이터를 분할할 수 있다.
상기 런타임 매니저는 상기 등록된 정보에 기초하여, 시스템 상태 변화 및 응용 프로그램의 성능 변화에 따라 응용 프로그램을 모핑시키기 위해 적절한 모핑 시점 및 모핑 인스턴스를 선택할 수 있다.
도 5는 본 발명의 일실시예에 따른 매니코어 런타임 관리부와 응용 프로그램 간의 동작을 설명하는 흐름도이다.
도 5를 참고하면, 응용 프로그램은 실행되면 자신의 모핑 범위를 매니코어 런타임 관리부의 런타임 매니저에게 등록 요청하고, 모핑 인스턴스의 속성을 등록한다(단계 501).
인스턴스 속성 정보가 없는 경우, 응용 프로그램은 런타임 매니저에게 프로파일링을 통해 정보 수집을 요청할 수도 있다.
다음으로, 상기 매니코어 런타임 관리부의 런타임 매니저는 현재 시스템 상황에 맞게 최상의 모핑 인스턴스를 선택해서 응용 프로그램에 전달할 수 있다(단계 502).
본 발명의 일실시예에 따른 상기 응용 프로그램은 상기 선택된 모핑 인스턴스에 기초하여, 새로운 모핑을 수행해야 하는지 여부를 판단할 수 있다(단계 503). 만약, 수행해야 할 새로운 모핑이 있다면, 상기 응용 프로그램은 상기 수신한 모핑 인스턴스에 기초하여 모핑을 수행하고(단계 504), 실행될 수 있다(단계 505).
만약, 수행해야 할 새로운 모핑이 없다면, 상기 응용 프로그램은 단계 505로 즉시 분기하여, 실행될 수 있다.
상기 응용 프로그램은 동작하면서 수시로 진행 상태를 런타임 매니저에 전달하고, 정해진 지점에서 런타임 매니저로부터 새로운 모핑 지시를 받았는지 점검할 수 있다. 만일 새로운 모핑 지시를 받으면, 상기 응용 프로그램은 해당 상태로 모핑하고 응용을 수행할 수 있다.
상기 런타임 매니저는 응용프로그램으로부터 전달받은 성능 힌트와 자신이 측정한 시스템 정보를 이용해서 시스템의 성능 및 응용 프로그램의 상태를 감시하여(단계 506), 모핑이 필요한지 여부를 판단할 수 있다(단계 507).
만약, 런타임 매니저가 모핑이 필요하다고 판단하면, 즉, 모핑 시점이 되면 상기 런타임 매니저는 최상의 모핑 인스턴스를 선택해서 응용 프로그램에 모핑을 지시할 수 있다.
결국, 본 발명에 따르면, 다수의 코어를 갖는 시스템에서 최상의 성능을 낼 수 있도록 응용 프로그램을 관리할 수 있다.
구체적으로, 성능 및 시스템 부하를 측정하는 기능을 시스템 레벨의 런타임 매니저가 담당함으로써, 응용 프로그램을 디자인하는 것이 더 쉬워지고, 응용 프로그램의 성능을 향상시킬 수 있다.
다시 말해, 응용 프로그램의 최적화를 런타임 매니저를 통해 수행하여, 시스템 레벨의 다양한 정보를 이용할 수 있고, 시스템 차원에서 스케쥴링이나 자원 할당을 조절함으로써 최적화를 수행할 수도 있다.
또한, 응용 프로그램의 중단이나 재시작 없이 실행 도중에도 최적화를 진행할 수 있다.
본 발명의 일실시예에 따른 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 응용 프로그램의 상태 재구성 장치
110: 등록부 120: 매니코어 런타임 관리부
130: 모니터링부

Claims (15)

  1. 응용 프로그램의 상태 변경에 대응하여, 상기 응용 프로그램으로부터 등록 정보를 수신하는 등록부; 및
    상기 수신된 등록 정보에 기초하여, 상기 응용 프로그램의 상태 변경을 처리하는 매니코어 런타임 관리부
    를 포함하는 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 장치.
  2. 제1항에 있어서,
    상기 응용 프로그램의 성능 및 상태 중에서 적어도 어느 하나를 감시하는 모니터링부
    를 더 포함하는 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 장치.
  3. 제2항에 있어서,
    상기 매니코어 런타임 관리부는,
    상기 수신된 등록 정보 및 상기 감시에 대한 결과에 기초하여, 상기 응용 프로그램의 상태 변경을 처리하는 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 장치.
  4. 제2항에 있어서,
    상기 모니터링부는,
    상기 응용 프로그램에 대응하는 하드웨어를 감시하는 하드웨어 모니터링부;
    상기 응용 프로그램에 대응하는 소프트웨어를 감시하는 소프트웨어 모니터링부; 및
    상기 응용 프로그램의 성능을 감시하는 성능 모니터링부
    를 포함하는 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 장치.
  5. 제2항에 있어서,
    상기 매니코어 런타임 관리부는,
    상기 성능 및 상기 상태 중에서 적어도 어느 하나의 감시 결과에 기초하여, 상기 응용 프로그램에 상태 변경을 지시하는 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 장치.
  6. 제1항에 있어서,
    상기 등록 정보는,
    상태 변경을 위한 범위 정보 및 상태 변경을 위한 속성 정보 중에서 적어도 어느 하나의 정보를 포함하는 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 장치.
  7. 제6항에 있어서,
    상기 범위 정보는,
    상기 응용 프로그램에 대응되는 하드웨어 속성 정보, 스프트웨어 속성 정보, 및 성능 정보 중에서 적어도 하나의 정보를 포함하는 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 장치.
  8. 제7항에 있어서,
    상기 하드웨어 속성 정보는,
    스크래치 패드 메모리 사용량 정보, 전체 메모리 사용량 정보, 중앙처리기 사용량 정보, 네트워크 사용량 정보, 및 버스 사용량 정보 중에서 적어도 하나의 정보를 포함하는 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 장치.
  9. 제7항에 있어서,
    상기 하드웨어 속성 정보는,
    상기 응용 프로그램에 대응되는 쓰레드 개수 정보, 병렬화 오버헤드 정보, 통신 밀도 정보, 메모리 접근 밀도 정보, 및 캐시 사용량 정보 중에서 적어도 하나의 정보를 포함하는 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 장치.
  10. 제1항에 있어서,
    상기 성능 정보는,
    상기 응용 프로그램으로부터 수신되는 상기 응용 프로그램의 현재 성능에 대한 정보를 포함하는 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 장치.
  11. 제1항에 있어서,
    상기 매니코어 런타임 관리부는,
    상기 응용 프로그램에 대응되는 적어도 하나 이상의 알고리즘을 변경하거나, 상기 응용 프로그램과 연동하는 데이터를 분할하여, 상기 응용 프로그램의 상태 변경을 처리하는 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 장치.
  12. 응용 프로그램의 상태 변경에 대응하여, 상기 응용 프로그램으로부터 등록 정보를 수신하는 단계;
    상기 응용 프로그램의 성능 및 상태 중에서 적어도 어느 하나를 감시하는 단계; 및
    상기 수신된 등록 정보 및 상기 감시에 대한 결과 중에서 적어도 하나에 기초하여, 상기 응용 프로그램의 상태 변경을 처리하는 단계
    를 포함하는 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 방법.
  13. 제12항에 있어서,
    상기 등록 정보는,
    스크래치 패드 메모리 사용량 정보, 전체 메모리 사용량 정보, 중앙처리기 사용량 정보, 네트워크 사용량 정보, 버스 사용량 정보, 쓰레드 개수 정보, 병렬화 오버헤드 정보, 통신 밀도 정보, 메모리 접근 밀도 정보, 캐시 사용량 정보, 및 상기 응용 프로그램의 현재 성능에 대한 정보 중에서 적어도 하나를 포함하는 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 방법.
  14. 제12항에 있어서,
    상기 응용 프로그램의 상태 변경을 처리하는 단계는,
    상기 응용 프로그램에 대응되는 적어도 하나 이상의 알고리즘을 변경하거나, 상기 응용 프로그램과 연동하는 데이터를 분할하는 단계
    를 포함하는 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 방법.
  15. 제12항 내지 제14항 중 어느 한 항의 방법을 수행하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.
KR1020100127408A 2010-12-14 2010-12-14 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 장치 및 방법 KR101671184B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020100127408A KR101671184B1 (ko) 2010-12-14 2010-12-14 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 장치 및 방법
US13/297,744 US8914808B2 (en) 2010-12-14 2011-11-16 Apparatus and method for dynamically reconfiguring state of application program in a many-core system
EP11193126.7A EP2466469A3 (en) 2010-12-14 2011-12-13 Apparatus and method for dynamically reconfiguring state of application program in a many-core system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100127408A KR101671184B1 (ko) 2010-12-14 2010-12-14 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20120066189A true KR20120066189A (ko) 2012-06-22
KR101671184B1 KR101671184B1 (ko) 2016-11-01

Family

ID=45442847

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100127408A KR101671184B1 (ko) 2010-12-14 2010-12-14 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 장치 및 방법

Country Status (3)

Country Link
US (1) US8914808B2 (ko)
EP (1) EP2466469A3 (ko)
KR (1) KR101671184B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140096897A (ko) * 2013-01-29 2014-08-06 삼성전자주식회사 어플리케이션과 비즈니스 요구에 기반한 프로그램 가능한 지능적 스토리지 아키텍처
KR20170026130A (ko) 2015-08-26 2017-03-08 서경대학교 산학협력단 매니코어 플랫폼에서 코어에 프로세스를 할당하는 방법 및 코어 프로세스간 통신 방법
KR102009425B1 (ko) * 2018-02-09 2019-08-09 울산과학기술원 컴퓨팅 시스템의 성능 관리 방법, 이를 위한 컴퓨터 프로그램 및 컴퓨터 판독 가능 기록 매체
KR20200045927A (ko) * 2018-10-23 2020-05-06 울산과학기술원 시스템의 메모리 대역폭을 분할하는 방법 및 장치

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102799560A (zh) * 2012-09-07 2012-11-28 上海交通大学 一种基于片上网络的动态可重构子网划分方法及系统
CN103645954B (zh) * 2013-11-21 2018-12-14 华为技术有限公司 一种基于异构多核体系的cpu调度方法、装置和系统
CN105009083A (zh) * 2013-12-19 2015-10-28 华为技术有限公司 一种应用进程调度方法和装置
CN104956328B (zh) * 2014-01-28 2018-12-14 华为技术有限公司 一种可重入资源调度方法、设备及系统
US10649914B1 (en) * 2016-07-01 2020-05-12 The Board Of Trustees Of The University Of Illinois Scratchpad-based operating system for multi-core embedded systems
WO2019024800A1 (en) 2017-07-31 2019-02-07 Guangdong Oppo Mobile Telecommunications Corp., Ltd. RESOURCE ALLOCATION METHOD AND TERMINAL DEVICE
CN107450988B (zh) * 2017-07-31 2019-12-27 Oppo广东移动通信有限公司 资源配置方法及相关产品

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7730246B2 (en) * 2005-06-30 2010-06-01 Intel Corporation Opportunistic transmission of software state information within a link based computing system
KR20100118826A (ko) * 2009-04-29 2010-11-08 삼성전자주식회사 병렬 응용 프로그램을 동적으로 병렬처리 하는 시스템 및 방법

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5303369A (en) 1990-08-31 1994-04-12 Texas Instruments Incorporated Scheduling system for multiprocessor operating system
FR2854260B1 (fr) 2003-04-28 2006-03-10 France Telecom Procede d'optimisation dynamique des performances d'applications, dispositif et programme d'ordinateur correspondants
US7379989B2 (en) * 2003-07-31 2008-05-27 International Business Machines Corporation Method for dual agent processes and dual active server processes
US7543091B2 (en) 2004-09-22 2009-06-02 Kabushiki Kaisha Toshiba Self-organized parallel processing system
US7734895B1 (en) 2005-04-28 2010-06-08 Massachusetts Institute Of Technology Configuring sets of processor cores for processing instructions
US20110179477A1 (en) * 2005-12-09 2011-07-21 Harris Corporation System including property-based weighted trust score application tokens for access control and related methods
US9141435B2 (en) 2007-07-30 2015-09-22 Sybase, Inc. System and methodology providing workload management in database cluster
KR100962531B1 (ko) 2007-12-11 2010-06-15 한국전자통신연구원 동적 로드 밸런싱을 지원하는 멀티 쓰레딩 프레임워크를 수행하는 장치 및 이를 이용한 프로세싱 방법
US8495342B2 (en) 2008-12-16 2013-07-23 International Business Machines Corporation Configuring plural cores to perform an instruction having a multi-core characteristic
KR101155377B1 (ko) 2009-05-26 2012-06-19 전자부품연구원 커패시터 유전체용 조성물
US9645839B2 (en) * 2010-10-27 2017-05-09 Microsoft Technology Licensing, Llc Stateful applications operating in a stateless cloud computing environment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7730246B2 (en) * 2005-06-30 2010-06-01 Intel Corporation Opportunistic transmission of software state information within a link based computing system
KR20100118826A (ko) * 2009-04-29 2010-11-08 삼성전자주식회사 병렬 응용 프로그램을 동적으로 병렬처리 하는 시스템 및 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140096897A (ko) * 2013-01-29 2014-08-06 삼성전자주식회사 어플리케이션과 비즈니스 요구에 기반한 프로그램 가능한 지능적 스토리지 아키텍처
KR20170026130A (ko) 2015-08-26 2017-03-08 서경대학교 산학협력단 매니코어 플랫폼에서 코어에 프로세스를 할당하는 방법 및 코어 프로세스간 통신 방법
KR102009425B1 (ko) * 2018-02-09 2019-08-09 울산과학기술원 컴퓨팅 시스템의 성능 관리 방법, 이를 위한 컴퓨터 프로그램 및 컴퓨터 판독 가능 기록 매체
KR20200045927A (ko) * 2018-10-23 2020-05-06 울산과학기술원 시스템의 메모리 대역폭을 분할하는 방법 및 장치

Also Published As

Publication number Publication date
US8914808B2 (en) 2014-12-16
EP2466469A3 (en) 2014-07-30
KR101671184B1 (ko) 2016-11-01
EP2466469A2 (en) 2012-06-20
US20120151502A1 (en) 2012-06-14

Similar Documents

Publication Publication Date Title
KR101671184B1 (ko) 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 장치 및 방법
Xu et al. Graph processing on GPUs: Where are the bottlenecks?
US8707314B2 (en) Scheduling compute kernel workgroups to heterogeneous processors based on historical processor execution times and utilizations
EP2466460B1 (en) Compiling apparatus and method for a multicore device
Boyer et al. Load balancing in a changing world: dealing with heterogeneity and performance variability
Sridharan et al. Adaptive, efficient, parallel execution of parallel programs
US8489904B2 (en) Allocating computing system power levels responsive to service level agreements
Yang et al. Elfen Scheduling:{Fine-Grain} Principled Borrowing from {Latency-Critical} Workloads Using Simultaneous Multithreading
US8484495B2 (en) Power management in a multi-processor computer system
US8972702B2 (en) Systems and methods for power management in a high performance computing (HPC) cluster
US10176014B2 (en) System and method for multithreaded processing
JP6668355B2 (ja) 動的時間的電力ステアリングのためのシステム及び方法
US20140373010A1 (en) Intelligent resource management for virtual machines
Breitbart et al. Case study on co-scheduling for hpc applications
US10866838B2 (en) Cluster computing service assurance apparatus and method
Gottschlag et al. Automatic core specialization for AVX-512 applications
Wu et al. vprobe: Scheduling virtual machines on numa systems
EP3295276B1 (en) Reducing power by vacating subsets of cpus and memory
Pathania et al. Distributed fair scheduling for many-cores
Chen et al. Scheduling overcommitted VM: Behavior monitoring and dynamic switching-frequency scaling
JP2016012344A (ja) アプリケーションを実行する方法及びリソースマネジャ
Gottschlag et al. Fair Scheduling for {AVX2} and {AVX-512} Workloads
Cho et al. Adaptive space-shared scheduling for shared-memory parallel programs
Lyerly et al. An Openmp runtime for transparent work sharing across cache-incoherent heterogeneous nodes
Patki The case for hardware overprovisioned supercomputers

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