KR102089450B1 - 데이터이주장치 및 그 동작 방법 - Google Patents

데이터이주장치 및 그 동작 방법 Download PDF

Info

Publication number
KR102089450B1
KR102089450B1 KR1020190115565A KR20190115565A KR102089450B1 KR 102089450 B1 KR102089450 B1 KR 102089450B1 KR 1020190115565 A KR1020190115565 A KR 1020190115565A KR 20190115565 A KR20190115565 A KR 20190115565A KR 102089450 B1 KR102089450 B1 KR 102089450B1
Authority
KR
South Korea
Prior art keywords
memory
application
data
specific application
migration
Prior art date
Application number
KR1020190115565A
Other languages
English (en)
Inventor
박근철
이종민
이광호
박찬열
노승우
최지은
Original Assignee
한국과학기술정보연구원
원광대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술정보연구원, 원광대학교산학협력단 filed Critical 한국과학기술정보연구원
Priority to KR1020190115565A priority Critical patent/KR102089450B1/ko
Priority to US16/665,936 priority patent/US11113160B2/en
Application granted granted Critical
Publication of KR102089450B1 publication Critical patent/KR102089450B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/203Failover techniques using migration
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • G06F9/4862Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate
    • G06F9/4875Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate with migration policy, e.g. auction, contract negotiation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • 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/3419Recording 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 by assessing time
    • 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/3452Performance evaluation by statistical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • 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/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Nonlinear Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명은 하이브리드 메모리를 채택한 고성능 컴퓨팅(HPC, High Performance Computing) 환경에서, 어플리케이션이 실행되는 동안의 성능 변화를 모니터링한 결과에 따라 메모리 간 데이터 이주(Migration)를 처리하기 위한 데이터이주장치 및 그 동작 방법에 관한 것이다.

Description

데이터이주장치 및 그 동작 방법{DATA MIGRATION APPARATUS, AND CONTROL METHOD THEREOF}
본 발명은 하이브리드 메모리를 채택한 고성능 컴퓨팅(HPC, High Performance Computing) 환경에서, 어플리케이션이 실행되는 동안의 성능 변화를 모니터링한 결과에 따라 메모리 간 데이터 이주(Migration)를 처리하기 위한 기술에 관한 것이다.
프로세스 기술의 발달과 응용 프로그램으로부터 요구되는 성능이 증가함에 어플리케이션으로부터 요구되는 성능이 증가함에 따라서 현대의 프로세서들은 여러 개의 코어(core)들을 한 칩에 집적할 수 있게 되었다.
이러한 기술의 발전은 하나의 칩에 수십에서 수백 개의 코어를 포함하고 있는 매니코어(many-core) 형태의 프로세서를 등장시키게 되었고, 다수의 응용 프로그램의 실행을 동시에 프로세서에서 수행할 수 있는 고성능 컴퓨팅(HPC, High Performance Computing) 시스템을 구축 하기까지에 이르게 되었다.
이러한, 고성능 컴퓨팅 시스템은 강력한 컴퓨팅 연산능력과 큰 메모리 용량을 제공할 필요가 있으며, 이에 따라 메모리 대역폭의 증가를 위해 이기종(heterogeneous)의 메모리인 하이브리드 메모리를 채택하고 있다.
다만, 이처럼 고성능 컴퓨팅 시스템에 채택하고 있는 하이브리드 메모리의 경우, 하이브리드 메모리는 이기종의 메모리 간 접근시간, 지연시간, 용량 등이 서로 다른 특성을 갖는바, 이러한, 하이브리드 메모리의 효율적 사용을 위해서는, 메모리 간 데이터 이주 정책을 정의할 필요가 있다.
본 발명은 상기한 사정을 감안하여 창출된 것으로서, 본 발명에서 도달하고자 하는 목적은, 하이브리드 메모리를 채택한 고성능 컴퓨팅(HPC, High Performance Computing) 환경에서, 어플리케이션이 실행되는 동안의 성능 변화를 모니터링 결과에 따라 메모리 간 데이터 이주(Migration)를 처리하는데 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 데이터이주장치는, 어플리케이션 별로 각 어플리케이션이 실행되는 동안의 성능 변화를 모니터링하는 모니터링부; 상기 모니터링 결과로부터 각 어플리케이션에 대한 연산 강도(Arithmetic Intensity)를 계산하는 계산부; 및 상기 연산 강도를 기초로 메모리 접근 요청에 비해 컴퓨팅 연산 요청의 수가 가장 적을 것으로 예측되는 특정 어플리케이션을 메모리 이주 대상으로 선정하는 선정부를 포함하는 것을 특징으로 한다.
구체적으로, 상기 데이터이주장치는, 상기 메모리 이주 대상으로 선정된 특정 어플리케이션의 데이터를 저 대역폭 메모리인 제1메모리로부터 고 대역폭 메모리인 제2메모리로 이주(migration) 처리하는 처리부를 더 포함할 수 있다.
구체적으로, 상기 모니터링부는, 각 어플리케이션의 모니터링 데이터로부터 수집되는 부동 소수점 연산 동작, 페이지 참조 정보, 및 페이지 폴트 정보 중 적어도 하나에 따른 어플리케이션 별 성능 변화를 모니터링할 수 있다.
구체적으로, 상기 계산부는, 각 어플리케이션에 대해 상기 부동 소수점 연산 동작과 상기 페이지 참조 정보로부터 부동 소수점 연산량과 데이터 이동량의 비율을 나타내는 상기 연산 강도를 계산하며, 상기 부동 소수점 연산량 대비 상기 데이터 이동량의 비율이 높을수록 상기 연산 강도를 보다 작게 계산할 수 있다.
구체적으로, 상기 선정부는, 각 어플리케이션 별로 설정 주기마다 계산된 연산 강도에 대해 선형 회기를 수행하여 이웃한 다음 주기의 연산 강도를 예측하며, 상기 이웃한 다음 주기의 연산 강도가 가장 작은 값으로 예측되는 특정 어플리케이션을 메모리 이주 대상으로 선정할 수 있다.
구체적으로, 상기 선정부는, 상기 특정 어플리케이션의 페이지 폴트 값과, 나머지 어플리케이션의 평균 페이지 폴트 값을 비교하여 상기 특정 어플리케이션의 지역성(locality)을 판단하며, 상기 특정 어플리케이션의 페이지 폴트 값이 나머지 어플리케이션의 평균 페이지 폴트 값 이상인 경우, 상기 특정 어플리케이션을 메모리 이주 대상을 선정할 수 있다.
구체적으로, 상기 처리부는, 상기 메모리 이주 대상인 상기 특정 어플리케이션의 사용률을 포함한 상기 제2메모리의 이용률이 임계수치 이하인 경우, 상기 특정 어플리케이션의 데이터를 상기 제2메모리로 이주시킬 수 있다.
구체적으로, 상기 처리부는, 상기 메모리 이주 대상인 상기 특정 어플리케이션의 사용률을 포함한 상기 제2메모리의 이용률이 임계수치를 초과하는 경우, 상기 제2메모리로 이주된 각 어플리케이션의 부동 소수점 연산 성능을 확인하며, 확인 결과 상기 제1메모리에서의 부동 소수점 연산 성능보다 낮은 성능을 보이는 어플리케이션이 존재하는 경우, 해당 어플리케이션의 데이터를 상기 제1메모리로 복귀시킬 수 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 데이터이주장치의 동작 방법은, 어플리케이션 별로 각 어플리케이션이 실행되는 동안의 성능 변화를 모니터링하는 모니터링단계; 상기 모니터링 결과로부터 각 어플리케이션에 대한 연산 강도(Arithmetic Intensity)를 계산하는 계산단계; 및 상기 연산 강도를 기초로 메모리 접근 요청에 비해 컴퓨팅 연산 요청의 수가 가장 적을 것으로 예측되는 특정 어플리케이션을 메모리 이주 대상으로 선정하는 선정단계를 포함하는 것을 특징으로 한다.
구체적으로, 상기 방법은, 상기 메모리 이주 대상으로 선정된 특정 어플리케이션의 데이터를 저 대역폭 메모리인 제1메모리로부터 고 대역폭 메모리인 제2메모리로 이주(migration) 처리하는 처리단계를 더 포함할 수 있다.
구체적으로, 상기 모니터링단계는, 각 어플리케이션의 모니터링 데이터로부터 수집되는 부동 소수점 연산 동작, 페이지 참조 정보, 및 페이지 폴트 정보 중 적어도 하나에 따른 어플리케이션 별 성능 변화를 모니터링할 수 있다.
구체적으로, 상기 계산단계는, 각 어플리케이션에 대해 상기 부동 소수점 연산 동작과 상기 페이지 참조 정보로부터 부동 소수점 연산량과 데이터 이동량의 비율을 나타내는 상기 연산 강도를 계산하며, 상기 부동 소수점 연산량 대비 상기 데이터 이동량의 비율이 높을수록 상기 연산 강도를 보다 작게 계산할 수 있다.
구체적으로, 상기 선정단계는, 각 어플리케이션 별로 설정 주기마다 계산된 연산 강도에 대해 선형 회기를 수행하여 이웃한 다음 주기의 연산 강도를 예측하며, 상기 이웃한 다음 주기의 연산 강도가 가장 작은 값으로 예측되는 특정 어플리케이션을 메모리 이주 대상으로 선정할 수 있다.
구체적으로, 상기 선정단계는, 상기 특정 어플리케이션의 페이지 폴트 값과, 나머지 어플리케이션의 평균 페이지 폴트 값을 비교하여 상기 특정 어플리케이션의 지역성(locality)을 판단하며, 상기 특정 어플리케이션의 페이지 폴트 값이 나머지 어플리케이션의 평균 페이지 폴트 값 이상인 경우, 상기 특정 어플리케이션을 메모리 이주 대상을 선정할 수 있다.
구체적으로, 상기 처리단계는, 상기 메모리 이주 대상인 상기 특정 어플리케이션의 사용률을 포함한 상기 제2메모리의 이용률이 임계수치 이하인 경우, 상기 특정 어플리케이션의 데이터를 상기 제2메모리로 이주시킬 수 있다.
구체적으로, 상기 처리단계는, 상기 메모리 이주 대상인 상기 특정 어플리케이션의 사용률을 포함한 상기 제2메모리의 이용률이 임계수치를 초과하는 경우, 상기 제2메모리로 이주된 각 어플리케이션의 부동 소수점 연산 성능을 확인하며, 확인 결과 상기 제1메모리에서의 부동 소수점 연산 성능보다 낮은 성능을 보이는 어플리케이션이 존재하는 경우, 해당 어플리케이션의 데이터를 상기 제1메모리로 복귀시킬 수 있다.
이에, 본 발명의 데이터이주장치 및 그 동작 방법에서는, 하이브리드 메모리를 채택한 고성능 컴퓨팅(HPC, High Performance Computing) 환경에서 어플리케이션이 실행되는 동안의 성능 변화를 모니터링한 결과에 따라 메모리 간 데이터 이주(Migration)를 처리하는 데이터 이주 정책을 정의함으로써, 하이브리드 메모리의 효율적 사용을 지원할 수 있다.
도 1은 본 발명의 일 실시예에 따른 특허 수명 예측 환경을 설명하기 위한 개략적인 구성도.
도 2는 본 발명의 일 실시예에 따른 데이터이주장치의 구성을 설명하기 위한 구성도.
도 3은 본 발명의 일 실시예에 따른 윈도우 리스트를 설명하기 위한 예시도.
도 4는 본 발명의 일 실시예에 따른 Roofline 모델을 설명하기 위한 예시도.
도 5는 본 발명의 일 실시예에 따른 페이지 이주를 설명하기 위한 예시도.
도 6은 본 발명의 일 실시예에 따른 데이터이주장치의 동작 방법을 설명하기 위한 개략적인 순서도.
도 1은 본 발명의 일 실시예에 따른 고성능 컴퓨팅 환경을 개략적으로 보여주고 있다.
도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 고성능 컴퓨팅 환경은, 메모리 간 데이터 이주를 처리하는 데이터이주장치(100)를 포함할 수 있다.
데이터이주장치(100)는 고성능 컴퓨팅(HPC, High Performance Computing) 환경에서 메모리 간 데이터 이주를 처리하기 위한 장치를 일컫는 것으로서, 유무선 통신망을 통해 접속 가능한 서버의 형태로 구현되거나, 또는 컴퓨터 시스템(예: 컴퓨터, 모바일 폰) 내 프로그램 형태로도 구현될 수 있다.
이러한 데이터이주장치(100)가 서버의 형태로 구현되는 경우에는, 예컨대, 웹 서버, 데이터베이스 서버, 프록시 서버 등의 형태로 구현될 수 있으며, 네트워크 부하 분산 메커니즘, 내지 서비스 장치가 인터넷 또는 다른 네트워크 상에서 동작할 수 있도록 하는 다양한 소프트웨어 중 하나 이상이 설치될 수 있으며, 이를 통해 컴퓨터화된 시스템으로도 구현될 수 있다. 또한, 네트워크는 http 네트워크일 수 있으며, 전용 회선(private line), 인트라넷 또는 임의의 다른 네트워크일 수 있고, 또한 본 발명의 일 실시예에 따른 시스템 내 각 구성 간의 연결은, 데이터가 임의의 해커 또는 다른 제3자에 의한 공격을 받지 않도록 보안 네트워크로 연결될 수 있다.
한편, 고성능 컴퓨팅 시스템의 경우 강력한 컴퓨팅 연산능력과 큰 메모리 용량을 제공할 필요가 있으며, 이에 따라 메모리 대역폭의 증가를 위해 이기종(heterogeneous)의 메모리인 하이브리드 메모리를 채택한다.
다만, 이처럼 고성능 컴퓨팅 시스템의 하이브리드 메모리는, 하이브리드 메모리는 이기종의 메모리 간 접근시간, 지연시간, 용량 등이 메모리 간 서로 상이한 특성을 가지며, 이러한, 하이브리드 메모리의 효율적 사용을 위해서는, 메모리 간 데이터 이주 정책이 마련되어야만 한다.
이에, 본 발명의 일 실시예에서는, 하이브리드 메모리를 채택한 고성능 컴퓨팅(HPC, High Performance Computing) 환경에서, 어플리케이션이 실행되는 동안의 성능 변화를 모니터링한 결과에 따라 메모리 간 데이터 이주(Migration)를 처리하고자 하며, 이하에서는 이를 실현하기 위한 데이터이주장치(100)의 구성에 대해 보다 구체적으로 설명하기로 한다.
한편, 이하에서는 본 발명의 일 실시예에 따른 하이브리드 메모리가 저 대역폭 메모리(LBM: Low Bandwidth Memory, 이하, '제1메모리'라 칭함)와 고 대역폭 메모리(HBM: High Bandwidth Memory, 이하, '제2메모리'라 칭함)를 포함하고 있음을 전제로 설명을 이어가기로 한다.
도 2는 본 발명의 일 실시예에 따른 데이터이주장치(100)의 구성을 보여주고 있다.
도 2에 도시된 바와 같이, 본 발명이 일 실시예에 따른 데이터이주장치(100)는 어플리케이션이 실행되는 동안의 성능 변화를 모니터링하는 모니터링부(10), 각 어플리케이션에 대한 연산 강도(Arithmetic Intensity)를 계산하는 계산부(20), 및 메모리 이주 대상인 어플리케이션을 선정하는 선정부(30)를 포함하는 구성을 가질 수 있다.
또한, 본 발명의 일 실시예에 따른 데이터이주장치(100)는 전술한 구성 이외에 데이터 이주를 처리하는 처리부(40)의 구성을 더 포함할 수 있다.
이상의 모니터링부(10), 계산부(20), 선정부(30), 및 처리부(40)를 포함하는 데이터이주장치(100)의 전체 구성 내지는 적어도 일부는 하드웨어 모듈 형태 또는 소프트웨어 모듈 형태로 구현되거나, 하드웨어 모듈과 소프트웨어 모듈이 조합된 형태로도 구현될 수 있다.
여기서, 소프트웨어 모듈이란, 예컨대, 데이터이주장치(100) 내에서 연산을 제어하는 프로세서에 의해 실행되는 명령어로 이해될 수 있으며, 이러한 명령어는 데이터이주장치(100) 내 메모리에 탑재된 형태를 가질 수 있을 것이다.
한편, 본 발명의 일 실시예에 따른 데이터이주장치(100)는 전술한 구성 이외에, 유무선 통신망 접속을 지원하기 위한 통신 기능을 담당하는 RF 모듈인 통신부(50)의 구성을 더 포함할 수 있다.
여기서, 통신부(50)는 예컨대, 안테나 시스템, RF 송수신기, 하나 이상의 증폭기, 튜너, 하나 이상의 발진기, 디지털 신호 처리기, 코덱(CODEC) 칩셋, 및 메모리 등을 포함하지만 이에 제한되지는 않으며, 이 기능을 수행하는 공지의 회로는 모두 포함할 수 있다.
이상 본 발명의 일 실시예에 따른 데이터이주장치(100)는 전술한 구성을 통해서 어플리케이션이 실행되는 동안의 성능 변화를 모니터링한 결과에 따라 메모리 간 데이터 이주(Migration)를 처리할 수 있는데, 이하에서는 이를 실현하기 위한 데이터이주장치(100) 내 각 구성에 대해 보다 구체적으로 설명하기로 한다.
모니터링부(10)는 어플리케이션이 실행되는 동안의 성능 변화를 모니터링하는 기능을 수행한다.
보다 구체적으로, 모니터링부(10)는 어플리케이션들이 시스템에서 실행되는 동안의 성능 변화를 하드웨어 모니터링 도구를 활용하여 주기적으로 모니터링하게 된다.
이때, 모니터링부(10)는 각 어플리케이션의 모니터링 데이터로부터 수집되는 부동 소수점 연산 동작, 페이지 참조 정보, 및 페이지 폴트 정보로부터 어플리케이션 별 성능 변화를 모니터링할 수 있다.
한편, 본 발명의 일 실시예에 따른 전술의 모니터링 과정은 예컨대 아래와 같은 알고리즘을 통해서 구현될 수 있다.
참고로, 아래의 알고리즘은, 저 대역폭 메모리인 제1메모리를 LBM으로 고 대역폭 메모리인 제2메모리를 HBM으로 가지고 있는 하이브리드 메모리 시스템에서의 실시예에 해당한다.
Figure 112019096031306-pat00001
본 발명의 일 실시예에 따른 모니터링을 위한 위 알고리즘에 따르면, 실행되고 있는 어플리케이션의 리스트 L과 모니터링 데이터를 위한 윈도우 리스트 W를 입력 받는다.
여기서, 현재 실행되고 있는 어플리케이션들의 모니터링된 데이터의 리스트를 M으로 표기되며, i번째의 어플리케이션에 대한 모니터링 데이터는 Mi로 표기된다.
이와 관련하여 도 3에는 모니터링 데이터를 위한 윈도우 리스트 W를 예시적으로 보여주고 있다.
모니터링 작업을 통해선 부동 소수점 연산 동작들과 페이지 참조 그리고 페이지폴트 정보가 수집되며, Mi.fp와 Mi.pref는 연산 강도(Arithmetic Intensity를 계산하기 위해서 사용된다.
for 반복문은 i가 리스트 L의 크기와 같을 때 멈추게 되며, M에는 W0가 다음 단계를 위해 삽입된다.
계산부(20)는 어플리케이션 별 연산 강도(Arithmetic Intensity)를 계산하는 기능을 수행한다.
보다 구체적으로, 계산부(20)는 각 어플리케이션이 실행되는 동안의 성능 변화를 모니터링한 결과로부터 각 어플리케이션에 대한 연산 강도(Arithmetic Intensity)를 계산하게 된다.
이때, 계산부(20)는 각 어플리케이션에 대해 부동 소수점 연산 동작과 페이지 참조 정보로부터 부동 소수점 연산량과 데이터 이동량의 비율을 나타내는 연산 강도를 계산할 수 있으며, 부동 소수점 연산량 대비 데이터 이동량의 비율이 높을수록 연산 강도를 보다 작게 계산한다.
여기서, 연산 강도가 작다는 것은, 메모리 접근 요청에 비해 컴퓨팅 연산 요청의 수가 적다는 것을 의미한다.
선정부(30)는 메모리 이주 대상에 해당하는 어플리케이션을 선정하는 기능을 수행한다.
보다 구체적으로, 선정부(30)는 각 어플리케이션에 대한 연산 강도가 계산되면, 연산 강도 계산 결과를 기반으로 메모리 접근 요청에 비해 컴퓨팅 연산 요청의 수가 가장 적을 것으로 예측되는 특정 어플리케이션을 메모리 이주 대상으로 선정하게 된다.
즉, 선정부(30)는 각 어플리케이션에 대한 연산 강도 계산 결과, 연산 강도가 가장 작은 특정 어플리케이션을 메모리 이주 대상으로 선정할 수 있는 것이다.
이때, 선정부(30)는 각 어플리케이션 별로 설정 주기마다 계산된 연산 강도에 대해 선형 회기를 수행하여 이웃한 다음 주기의 연산 강도를 예측하게 되며, 예측 결과 이웃한 다음 주기의 연산 강도가 가장 작은 값으로 예측되는 특정 어플리케이션을 메모리 이주 대상으로 선정할 수 있다.
다만, 선정부(30)는 이러한 메모리 이주 대상 선정에 있어서, 연산 강도가 가장 작은 값으로 예측되는 후보 어플리케이션의 페이지 폴트 값과, 나머지 어플리케이션의 평균 페이지 폴트 값을 비교하여 후보 어플리케이션의 지역성(locality)을 판단하게 되며, 이 과정에서 후보 어플리케이션의 페이지 폴트 값이 나머지 어플리케이션의 평균 페이지 폴트 값 이상인 경우, 후보 어플리케이션을 메모리 이주 대상을 선정한다.
한편, 본 발명의 일 실시예에 따른 전술의 메모리 이주 대상 선정 과정은 예컨대 아래와 같은 알고리즘을 통해서 구현될 수 있다.
Figure 112019096031306-pat00002
본 발명의 일 실시예에 따른 메모리 이주 대상 선정을 위한 위 알고리즘에 따르면, 메모리 이주 대상 선정을 위해 예컨대, Roofline 모델을 사용하게 되며, 예컨대, 도 4에서와 같이, 어플리케이션의 실행 상태가 Roofline 모델에 그려질 때 메모리 상한선에서 가장 낮은 연산 강도(Arithmetic Intensity)를 가진 어플리케이션을 선택한다.
이는, 이 전략은 계산연산량 대비 메모리 참조 비율이 높은 어플리케이션에게 더 많은 기회를 주기 위함으로 이해될 수 있다.
regressionAndSort 작업은 먼저 리스트 W에 저장된 부동 소수점 연산과 페이지 참조 사용하여 각 어플리케이션의 arithmetic intensity를 계산한다.
이후, 선형 회귀를 수행하여 각 어플리케이션의 다음 연산 강도(Arithmetic Intensity)를 예측한다.
마지막으로 어플리케이션 리스트 S는 예측된 연산 강도(Arithmetic Intensity) 값에 따라서 오름차순으로 정렬된다.
모든 후보 어플리케이션들이 리스트 S로 정렬되고 난 후 리스트의 첫 번째 어플리케이션을 메모리 이주 대상으로 고려한다.
먼저 후보 어플리케이션들의 예측 미스의 기록(V)이 있는지를 확인한다. 리스트 V는 이주(Migration) 작업에서 어플리케이션이 이주된 이후 성능 향상을 보이지 않을 경우 생성된다.
또한 낮은 메모리 지역성을 나타내는 어플리케이션을 제외하기 위해 페이지 폴트 값을 사용하게 되며, 첫 번째 어플리케이션의 페이지 폴트 값과 어플리케이션들의 평균 페이지 폴트 값을 비교한다.
모든 작업이 끝나진다면, 후보 어플리케이션 b를 이주를 위해 반환한다.
처리부(40)는 메모리 간 데이터 이주를 처리하는 기능을 수행한다.
보다 구체적으로, 처리부(40)는 메모리 이주 대상이 선정되면, 메모리 이주 대상으로 선정된 특정 어플리케이션의 데이터를 저 대역폭 메모리인 제1메모리로부터 고 대역폭 메모리인 제2메모리로 이주(migration) 처리하게 된다.
이때, 처리부(40)는 메모리 이주 대상인 특정 어플리케이션의 사용률을 포함한 상기 제2메모리의 이용률이 임계수치 이하인 경우에 한해, 상기 특정 어플리케이션의 데이터를 제2메모리로 이주시킬 수 있다.
반면, 처리부(40)는 메모리 이주 대상인 상기 특정 어플리케이션의 사용률을 포함한 제2메모리의 이용률이 임계수치를 초과하는 경우, 상기 제2메모리로 이주된 각 어플리케이션의 부동 소수점 연산 성능을 확인하며, 확인 결과 상기 제1메모리에서의 부동 소수점 연산 성능보다 낮은 성능을 보이는 어플리케이션이 존재하는 경우, 해당 어플리케이션의 데이터를 제1메모리로 복귀시킬 수 있다.
한편, 본 발명의 일 실시예에 따른 전술의 데이터 이주 처리 과정은 예컨대 아래와 같은 알고리즘을 통해서 구현될 수 있다.
Figure 112019096031306-pat00003
본 발명의 일 실시예에 따른 데이터 이주 처리를 위한 위 알고리즘에 따르면, 메모리 이중 대상으로 선정된 어플리케이션의 현재 메모리 사용률을 포함한 전체 메모리의 이용률을 확인하고 임계 수치 t(예: 전체에 90% 해당)를 초과하지 않는지 확인한다.
이때, 제2메모리(HBM)의 이용률이 임계 수치 t보다 작다면 선택된 어플리케이션에서 윈도우 리스트 W 구간동안 참조 된 페이지를 제2메모리(HBM)로 이주한다.
이와 관련하여 도 5에는 어플리케이션의 참조된 페이지의 이주를 예시적으로 보여주고 있다.
제2메모리(HBM)의 이용률이 임계 수치 t보다 크다면 이미 제2메모리(HBM)로 이주한 어플리케이션들의 부동 소수점 연산 성능의 변화를 확인한다.
만약 어플리케이션의 부동 소수점 연산 성능이 지난 부동 소수점 연산 성능보다 적어도 한번 증가되었다면 해당 어플리케이션은 제2메모리(HBM)에 계속 있도록 한다.
이는, 자주 페이지를 이주시키는 것은 성능적인 관점이나 에너지 관점에서 추가적인 오버헤드를 발생시키기 때문에 엄격한 롤백 방법을 적용하기 위함이다.
만약 부동 소수점 연산 성능의 변화가 없는 어플리케이션을 발견한다면, checkFlops는 어플리케이션의 id r을 반환한다. 그러고 나서 해당 어플리케이션은 잘못 예측된 것을 기록하기 위하여 리스트 V에 추가되고 그 어플리케이션의 페이지들은 제1메모리(LBM)으로 다시 이주된다.
이상에서 살펴본 바와 같이, 본 발명의 일 실시예에 따른 데이터이주장치(100)의 구성에 따르면, 하이브리드 메모리를 가진 고성능 컴퓨팅(HPC, High Performance Computing) 환경에서 어플리케이션들이 실행되는 동안 하드웨어 모니터링 도구를 활용해 주기적으로 모니터링(Monitoring)을 수행하고 수집된 데이터들을 기반으로 Roofline 모델을 사용하여 보다 더 메모리의 대역폭을 요구하는 후보 어플리케이션들을 선택하여 고 대역폭 메모리와 저 대역폭 메모리의 데이터를 동적으로 이주시키는 메모리 간 데이터 이주 정책을 정의함으로써, 하이브리드 메모리의 효율적 사용을 가능하게 함을 알 수 있다.
이하에서는, 도 6을 참조하여 데이터이주장치(100)의 동작 방법에 대한 설명을 이어 가기로 한다.
먼저, 모니터링부(10)는 어플리케이션들이 시스템에서 실행되는 동안의 성능 변화를 하드웨어 모니터링 도구를 활용하여 주기적으로 모니터링한다(S10-S20).
이때, 모니터링부(10)는 각 어플리케이션의 모니터링 데이터로부터 수집되는 부동 소수점 연산 동작, 페이지 참조 정보, 및 페이지 폴트 정보로부터 어플리케이션 별 성능 변화를 모니터링할 수 있다.
이어서, 계산부(20)는 각 어플리케이션이 실행되는 동안의 성능 변화를 모니터링한 결과로부터 각 어플리케이션에 대한 연산 강도(Arithmetic Intensity)를 계산한다(S30).
이때, 계산부(20)는 각 어플리케이션에 대해 부동 소수점 연산 동작과 페이지 참조 정보로부터 부동 소수점 연산량과 데이터 이동량의 비율을 나타내는 연산 강도를 계산할 수 있으며, 부동 소수점 연산량 대비 데이터 이동량의 비율이 높을수록 연산 강도를 보다 작게 계산한다.
여기서, 연산 강도가 작다는 것은, 메모리 접근 요청에 비해 컴퓨팅 연산 요청의 수가 적다는 것을 의미한다.
나아가, 선정부(30)는 각 어플리케이션에 대한 연산 강도가 계산되면, 연산 강도 계산 결과를 기반으로 메모리 접근 요청에 비해 컴퓨팅 연산 요청의 수가 가장 적을 것으로 예측되는 특정 어플리케이션을 메모리 이주 대상으로 선정한다(S40-S60).
즉, 선정부(30)는 각 어플리케이션에 대한 연산 강도 계산 결과, 연산 강도가 가장 작은 특정 어플리케이션을 메모리 이주 대상으로 선정할 수 있는 것이다.
이때, 선정부(30)는 각 어플리케이션 별로 설정 주기마다 계산된 연산 강도에 대해 선형 회기를 수행하여 이웃한 다음 주기의 연산 강도를 예측하게 되며, 예측 결과 이웃한 다음 주기의 연산 강도가 가장 작은 값으로 예측되는 특정 어플리케이션을 메모리 이주 대상으로 선정할 수 있다.
다만, 선정부(30)는 이러한 메모리 이주 대상 선정에 있어서, 연산 강도가 가장 작은 값으로 예측되는 후보 어플리케이션의 페이지 폴트 값과, 나머지 어플리케이션의 평균 페이지 폴트 값을 비교하여 후보 어플리케이션의 지역성(locality)을 판단하게 되며, 이 과정에서 후보 어플리케이션의 페이지 폴트 값이 나머지 어플리케이션의 평균 페이지 폴트 값 이상인 경우, 후보 어플리케이션을 메모리 이주 대상을 선정한다.
이후, 처리부(40)는 메모리 이주 대상이 선정되면, 메모리 이주 대상으로 선정된 특정 어플리케이션의 데이터를 저 대역폭 메모리인 제1메모리로부터 고 대역폭 메모리인 제2메모리로 이주(migration) 처리한다(S70-S80).
이때, 처리부(40)는 메모리 이주 대상인 특정 어플리케이션의 사용률을 포함한 상기 제2메모리의 이용률이 임계수치 이하인 경우에 한해, 상기 특정 어플리케이션의 데이터를 제2메모리로 이주시킬 수 있다.
한편, 처리부(40)는 단계 S70에서 메모리 이주 대상인 상기 특정 어플리케이션의 사용률을 포함한 제2메모리의 이용률이 임계수치를 초과하는 것이 확인되는 경우, 상기 제2메모리로 이주된 각 어플리케이션의 부동 소수점 연산 성능을 확인하며, 확인 결과 상기 제1메모리에서의 부동 소수점 연산 성능보다 낮은 성능을 보이는 어플리케이션이 존재하는 경우, 해당 어플리케이션의 데이터를 제1메모리로 복귀시킬 수 있다(S90).
이상에서 살펴본 바와 같이, 본 발명의 일 실시예에 따른 데이터이주장치(100)의 동작 방법에 따르면, 하이브리드 메모리를 가진 고성능 컴퓨팅(HPC, High Performance Computing) 환경에서 어플리케이션들이 실행되는 동안 하드웨어 모니터링 도구를 활용해 주기적으로 모니터링(Monitoring)을 수행하고 수집된 데이터들을 기반으로 Roofline 모델을 사용하여 보다 더 메모리의 대역폭을 요구하는 후보 어플리케이션들을 선택하여 고 대역폭 메모리와 저 대역폭 메모리의 데이터를 동적으로 이주시키는 메모리 간 데이터 이주 정책을 정의함으로써, 하이브리드 메모리의 효율적 사용을 가능하게 함을 알 수 있다.
한편, 여기에 제시된 실시예들과 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
지금까지 본 발명을 바람직한 실시 예를 참조하여 상세히 설명하였지만, 본 발명이 상기한 실시 예에 한정되는 것은 아니며, 이하의 특허청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 또는 수정이 가능한 범위까지 본 발명의 기술적 사상이 미친다 할 것이다.
본 발명에 따른 데이터이주장치 및 그 동작 방법에 따르면, 하이브리드 메모리를 채택한 고성능 컴퓨팅(HPC, High Performance Computing) 환경에서, 어플리케이션이 실행되는 동안의 성능 변화를 모니터링한 결과에 따라 메모리 간 데이터 이주(Migration) 처리할 수 있다는 점에서, 기존 기술의 한계를 뛰어 넘음에 따라 관련 기술에 대한 이용만이 아닌 적용되는 장치의 시판 또는 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용가능성이 있는 발명이다.
100: 데이터이주장치
10: 모니터링부 20: 계산부
30: 선정부 40: 처리부

Claims (16)

  1. 어플리케이션 별로 각 어플리케이션이 실행되는 동안의 성능 변화를 모니터링하는 모니터링부;
    상기 모니터링 결과를 기초로 각 어플리케이션에 대한 연산 강도(Arithmetic Intensity)를 계산하는 계산부; 및
    각 어플리케이션 별로 설정 주기마다 계산되는 상기 연산 강도에 대해 선형 회기를 수행하여, 이웃한 다음 주기의 연산 강도를 예측하며, 상기 이웃한 다음 주기의 연산 강도가 가장 작은 값으로 예측되는 특정 어플리케이션의 데이터를 메모리 이주 대상으로 선정하는 선정부를 포함하는 것을 특징으로 하는 데이터이주장치.
  2. 제 1 항에 있어서,
    상기 데이터이주장치는,
    상기 메모리 이주 대상으로 선정된 특정 어플리케이션의 데이터를 저 대역폭 메모리인 제1메모리로부터 고 대역폭 메모리인 제2메모리로 이주(migration) 처리하는 처리부를 더 포함하는 것을 특징으로 하는 데이터이주장치.
  3. 제 1 항에 있어서,
    상기 모니터링부는,
    각 어플리케이션의 모니터링 데이터로부터 수집되는 부동 소수점 연산 동작, 페이지 참조 정보, 및 페이지 폴트 정보 중 적어도 하나에 따른 어플리케이션 별 성능 변화를 모니터링하는 것을 특징으로 하는 데이터이주장치.
  4. 제 3 항에 있어서,
    상기 계산부는,
    각 어플리케이션에 대해 상기 부동 소수점 연산 동작과 상기 페이지 참조 정보로부터 확인되는 부동 소수점 연산량 대비 데이터 이동량의 비율을 상기 연산 강도로 계산하는 것을 특징으로 하는 데이터이주장치.
  5. 삭제
  6. 제 3 항에 있어서,
    상기 선정부는,
    상기 특정 어플리케이션의 페이지 폴트 값과, 나머지 어플리케이션의 평균 페이지 폴트 값을 비교하여 상기 특정 어플리케이션의 지역성(locality)을 판단하며,
    상기 특정 어플리케이션의 페이지 폴트 값이 나머지 어플리케이션의 평균 페이지 폴트 값 이상인 경우, 상기 특정 어플리케이션의 데이터를 메모리 이주 대상을 선정하는 것을 특징으로 하는 데이터이주장치.
  7. 제 2 항에 있어서,
    상기 처리부는,
    상기 메모리 이주 대상인 상기 특정 어플리케이션의 데이터가 상기 제2메모리로 이주된 경우에 해당하는 상기 제2메모리의 이용률이 임계수치 이하인 경우, 상기 특정 어플리케이션의 데이터를 상기 제2메모리로 이주시키는 것을 특징으로 하는 데이터이주장치.
  8. 제 2 항에 있어서,
    상기 처리부는,
    상기 메모리 이주 대상인 상기 특정 어플리케이션의 데이터가 상기 제2메모리로 이주된 경우에 해당하는 상기 제2메모리의 이용률이 임계수치를 초과하는 경우, 상기 제2메모리로 이주된 각 어플리케이션의 부동 소수점 연산 성능을 확인하며, 확인 결과 상기 제1메모리에서의 부동 소수점 연산 성능보다 낮은 성능을 보이는 어플리케이션이 존재하는 경우, 해당 어플리케이션의 데이터를 상기 제1메모리로 복귀시키는 것을 특징으로 하는 데이터이주장치.
  9. 어플리케이션 별로 각 어플리케이션이 실행되는 동안의 성능 변화를 모니터링하는 모니터링단계;
    상기 모니터링 결과를 기초로 각 어플리케이션에 대한 연산 강도(Arithmetic Intensity)를 계산하는 계산단계; 및
    각 어플리케이션 별로 설정 주기마다 계산되는 상기 연산 강도에 대해 선형 회기를 수행하여, 이웃한 다음 주기의 연산 강도를 예측하며, 상기 이웃한 다음 주기의 연산 강도가 가장 작은 값으로 예측되는 특정 어플리케이션의 데이터를 메모리 이주 대상으로 선정하는 선정단계를 포함하는 것을 특징으로 하는 데이터이주장치의 동작 방법.
  10. 제 9 항에 있어서,
    상기 방법은,
    상기 메모리 이주 대상으로 선정된 특정 어플리케이션의 데이터를 저 대역폭 메모리인 제1메모리로부터 고 대역폭 메모리인 제2메모리로 이주(migration) 처리하는 처리단계를 더 포함하는 것을 특징으로 하는 데이터이주장치의 동작 방법.
  11. 제 9 항에 있어서,
    상기 모니터링단계는,
    각 어플리케이션의 모니터링 데이터로부터 수집되는 부동 소수점 연산 동작, 페이지 참조 정보, 및 페이지 폴트 정보 중 적어도 하나에 따른 어플리케이션 별 성능 변화를 모니터링하는 것을 특징으로 하는 데이터이주장치의 동작 방법.
  12. 제 11 항에 있어서,
    상기 계산단계는,
    각 어플리케이션에 대해 상기 부동 소수점 연산 동작과 상기 페이지 참조 정보로부터 확인되는 부동 소수점 연산량 대비 데이터 이동량의 비율을 상기 연산 강도로 계산하는 것을 특징으로 하는 데이터이주장치의 동작 방법.
  13. 삭제
  14. 제 11 항에 있어서,
    상기 선정단계는,
    상기 특정 어플리케이션의 페이지 폴트 값과, 나머지 어플리케이션의 평균 페이지 폴트 값을 비교하여 상기 특정 어플리케이션의 지역성(locality)을 판단하며, 상기 특정 어플리케이션의 페이지 폴트 값이 나머지 어플리케이션의 평균 페이지 폴트 값 이상인 경우, 상기 특정 어플리케이션의 데이터를 메모리 이주 대상을 선정하는 것을 특징으로 하는 데이터이주장치의 동작 방법.
  15. 제 10 항에 있어서,
    상기 처리단계는,
    상기 메모리 이주 대상인 상기 특정 어플리케이션의 데이터가 상기 제2메모리로 이주된 경우에 해당하는 상기 제2메모리의 이용률이 임계수치 이하인 경우, 상기 특정 어플리케이션의 데이터를 상기 제2메모리로 이주시키는 것을 특징으로 하는 데이터이주장치의 동작 방법.
  16. 제 10 항에 있어서,
    상기 처리단계는,
    상기 메모리 이주 대상인 상기 특정 어플리케이션의 데이터가 상기 제2메모리로 이주된 경우에 해당하는 상기 제2메모리의 이용률이 임계수치를 초과하는 경우, 상기 제2메모리로 이주된 각 어플리케이션의 부동 소수점 연산 성능을 확인하며, 확인 결과 상기 제1메모리에서의 부동 소수점 연산 성능보다 낮은 성능을 보이는 어플리케이션이 존재하는 경우, 해당 어플리케이션의 데이터를 상기 제1메모리로 복귀시키는 것을 특징으로 하는 데이터이주장치의 동작 방법.
KR1020190115565A 2019-09-19 2019-09-19 데이터이주장치 및 그 동작 방법 KR102089450B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190115565A KR102089450B1 (ko) 2019-09-19 2019-09-19 데이터이주장치 및 그 동작 방법
US16/665,936 US11113160B2 (en) 2019-09-19 2019-10-28 Apparatus for migrating data and method of operating same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190115565A KR102089450B1 (ko) 2019-09-19 2019-09-19 데이터이주장치 및 그 동작 방법

Publications (1)

Publication Number Publication Date
KR102089450B1 true KR102089450B1 (ko) 2020-05-26

Family

ID=70914750

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190115565A KR102089450B1 (ko) 2019-09-19 2019-09-19 데이터이주장치 및 그 동작 방법

Country Status (2)

Country Link
US (1) US11113160B2 (ko)
KR (1) KR102089450B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113835624A (zh) * 2021-08-30 2021-12-24 阿里巴巴(中国)有限公司 基于异构内存的数据迁移方法及装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230205539A1 (en) * 2021-12-29 2023-06-29 Advanced Micro Devices, Inc. Iommu collocated resource manager

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008065051A2 (de) * 2006-12-01 2008-06-05 Basf Se Herstellung von festen lösungen von pestiziden durch kurzzeitüberhitzung und schnelle trocknung
KR20130115982A (ko) * 2010-05-20 2013-10-22 샌디스크 아이엘 엘티디 호스트 장치 내 캐시를 우회함으로써 저장장치 내 가상 파일에 액세스하기 위한 호스트 장치 및 방법
KR20140012320A (ko) * 2012-07-19 2014-02-03 삼성전자주식회사 어플리케이션을 고속으로 처리하는 연산 처리 장치 및 방법
KR101853648B1 (ko) * 2018-03-13 2018-06-08 전남대학교 산학협력단 캐쉬 우회 기법, 그 기법이 적용된 스트리밍 멀티프로세서 및 임베디드 시스템
KR20190067938A (ko) * 2016-11-08 2019-06-17 마이크론 테크놀로지, 인크. 하이브리드 메모리의 데이터 재배치

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8515052B2 (en) * 2007-12-17 2013-08-20 Wai Wu Parallel signal processing system and method
US8402229B1 (en) * 2008-02-14 2013-03-19 Nvidia Corporation System and method for enabling interoperability between application programming interfaces
US8539516B1 (en) * 2008-02-14 2013-09-17 Nvidia Corporation System and method for enabling interoperability between application programming interfaces
US8755515B1 (en) * 2008-09-29 2014-06-17 Wai Wu Parallel signal processing system and method
WO2011069411A1 (en) * 2009-12-07 2011-06-16 The Chinese University Of Hong Kong Methods and systems for estimating longitudinal relaxation times in mri
US9769873B2 (en) * 2015-12-29 2017-09-19 At&T Intellectual Property I, L.P. Access node architecture for 5G radio and other access networks
US10754744B2 (en) * 2016-03-15 2020-08-25 Wisconsin Alumni Research Foundation Method of estimating program speed-up in highly parallel architectures using static analysis
US10228938B2 (en) * 2016-12-30 2019-03-12 Intel Corporation Apparatus and method for instruction-based flop accounting

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008065051A2 (de) * 2006-12-01 2008-06-05 Basf Se Herstellung von festen lösungen von pestiziden durch kurzzeitüberhitzung und schnelle trocknung
KR20130115982A (ko) * 2010-05-20 2013-10-22 샌디스크 아이엘 엘티디 호스트 장치 내 캐시를 우회함으로써 저장장치 내 가상 파일에 액세스하기 위한 호스트 장치 및 방법
KR20140012320A (ko) * 2012-07-19 2014-02-03 삼성전자주식회사 어플리케이션을 고속으로 처리하는 연산 처리 장치 및 방법
KR20190067938A (ko) * 2016-11-08 2019-06-17 마이크론 테크놀로지, 인크. 하이브리드 메모리의 데이터 재배치
KR101853648B1 (ko) * 2018-03-13 2018-06-08 전남대학교 산학협력단 캐쉬 우회 기법, 그 기법이 적용된 스트리밍 멀티프로세서 및 임베디드 시스템

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113835624A (zh) * 2021-08-30 2021-12-24 阿里巴巴(中国)有限公司 基于异构内存的数据迁移方法及装置

Also Published As

Publication number Publication date
US11113160B2 (en) 2021-09-07
US20210089414A1 (en) 2021-03-25

Similar Documents

Publication Publication Date Title
US11455193B2 (en) Method for deploying virtual machines in cloud computing systems based on predicted lifetime
US10873541B2 (en) Systems and methods for proactively and reactively allocating resources in cloud-based networks
US10963285B2 (en) Resource management for virtual machines in cloud computing systems
US9645756B2 (en) Optimization of in-memory data grid placement
JP5218390B2 (ja) 自律制御サーバ、仮想サーバの制御方法及びプログラム
KR20210042161A (ko) 분산 시스템을 위한 데이터 동기화 방법 및 장치, 매체, 및 전자 디바이스
KR20190070659A (ko) 컨테이너 기반의 자원 할당을 지원하는 클라우드 컴퓨팅 장치 및 방법
US20180300206A1 (en) Method and system for data backup and restoration in cluster system
US9921861B2 (en) Virtual machine management method and information processing apparatus
US9191330B2 (en) Path selection for network service requests
CN105528330A (zh) 负载均衡的方法、装置、丛集和众核处理器
US20200167252A1 (en) Method and apparatus for managing storage system
US9270539B2 (en) Predicting resource provisioning times in a computing environment
KR102089450B1 (ko) 데이터이주장치 및 그 동작 방법
CN104424106A (zh) 为存储优化操作分配存储设备的资源的方法和系统
CN104750538B (zh) 用于为目标应用提供虚拟存储池的方法和系统
US20190377622A1 (en) Processing System For Performing Predictive Error Resolution And Dynamic System Configuration Control
CN107479944B (zh) 混合云模式下的虚拟机内存自适应热迁移调度方法及系统
CN110875838B (zh) 一种资源部署方法、装置和存储介质
CN112256433B (zh) 基于Kafka集群的分区迁移方法和装置
Noor et al. Portkey: Adaptive key-value placement over dynamic edge networks
CN106201658A (zh) 一种迁移虚拟机目的主机多目标优化选择方法
US20190310920A1 (en) Pre-Fetching and Staging of Restore Data on Faster Tiered Storage
CN109308243B (zh) 数据处理方法、装置、计算机设备和介质
CN113824590A (zh) 微服务网络的问题预测方法、计算机设备和存储介质