KR102022481B1 - Gpu 사용량을 이용한 고성능 컴퓨팅 시스템의 체크포인트 생성 방법 - Google Patents

Gpu 사용량을 이용한 고성능 컴퓨팅 시스템의 체크포인트 생성 방법 Download PDF

Info

Publication number
KR102022481B1
KR102022481B1 KR1020170166404A KR20170166404A KR102022481B1 KR 102022481 B1 KR102022481 B1 KR 102022481B1 KR 1020170166404 A KR1020170166404 A KR 1020170166404A KR 20170166404 A KR20170166404 A KR 20170166404A KR 102022481 B1 KR102022481 B1 KR 102022481B1
Authority
KR
South Korea
Prior art keywords
processing unit
checkpoint
graphic processing
generation threshold
unit performing
Prior art date
Application number
KR1020170166404A
Other languages
English (en)
Other versions
KR20190066712A (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 KR1020170166404A priority Critical patent/KR102022481B1/ko
Publication of KR20190066712A publication Critical patent/KR20190066712A/ko
Application granted granted Critical
Publication of KR102022481B1 publication Critical patent/KR102022481B1/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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/1407Checkpointing the instruction stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Retry When Errors Occur (AREA)

Abstract

본 실시예들은 대규모 병렬 처리를 수행하는 GPU의 부하 수준이 일정 수준을 초과할 것으로 예상되는 시점을 기준으로 체크포인트 시점을 생성함으로써 복구시간을 최소화하여 전체 프로그램의 수행시간을 단축하고 높은 신뢰도를 확보할 수 있는 컴퓨팅 시스템의 체크포인트 생성 및 복원 방법을 제공한다.

Description

GPU 사용량을 이용한 고성능 컴퓨팅 시스템의 체크포인트 생성 방법 {Method for Generating Checkpoint of High Performance Computing System Using GPU Usage}
본 실시예가 속하는 기술 분야는 고성능 컴퓨팅 시스템에서 체크포인트를 생성하고 복원하는 방법에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
컴퓨팅 시스템 분야에서 발생한 오류의 복구는 TMR(Triple Modular Redundancy)방식에서 투표방식(Voter)을 이용하여 오류 값을 보정하거나 체크포인트 및 재실행(Checkpoint & Restart) 방식을 사용하여 오류 발생 이전 시점으로 롤백(Roll-back)하여 다시 연산을 실시하는 방법 등을 사용한다. TMR의 경우 연산에 소모되는 시스템의 점유율이 세배이므로 성능의 효율성에 있어 경쟁력을 기대하기 어렵다. 체크포인트 및 재실행 방법은 오류가 발생하였을 때 오류가 발생하기 이전 시점에 저장된 체크포인트 지점에서 다시 연산을 실시하게 된다.
슈퍼컴퓨터나 고성능 컴퓨팅 시스템(HPC)과 같이 대규모 연산을 수행하는 시스템에서는 체크포인트 및 재실행 방법이 널리 사용되고 있다. 대규모 연산을 수행하는 도중 시스템에 문제가 발생하여 연산이 중단된다면, 전체 연산을 처음부터 다시 수행해야 하기 때문에 많은 시간을 낭비하게 될 가능성이 높다. 따라서 특정 시점에 시스템의 정보를 저장 장치에 기록하여 체크포인트를 생성함으로써 시스템에 고장이 발생하더라도 연산을 초기 상태에서 다시 시작하지 않고 중간 단계에서 다시 시작할 수 있게 한다.
체크포인트 및 재실행 방법은 운영체제 또는 응용프로그램 단계에서 수행할 수 있다. 운영체제에서 체크포인트 및 재실행을 사용하는 것은 고장이 발생했을 때, 모든 수행중인 프로그램의 정보를 잃지 않고 복원할 수 있다는 장점이 있다. 그러나 슈퍼컴퓨터나 고성능 컴퓨팅 시스템(HPC)과 같이 여러 개의 프로그램이 대규모 연산을 수행하는 시스템은 운영체제가 체크포인트 생성 및 복원에 거의 모든 응용프로그램에 대한 정보를 필요로 한다. 따라서 체크포인트 생성과 재실행을 위한 시스템 복원에 시간이 오래 걸릴 뿐만 아니라, 저장 장치의 공간을 낭비하게 되는 문제점이 있다.
시스템 레벨에서 체크포인트 및 재실행 방법을 적용할 때 오류 발생 시점 및 체크포인트 시점 간에 낭비되는 시간을 개선할 필요가 있다.
본 발명의 실시예들은 대규모 병렬 처리를 수행하는 GPU 시스템의 체크포인트 생성 및 복원 방식에서 GPU 부하 수준이 일정 수준을 초과할 것으로 예상되는 시점을 기준으로 체크포인트 시점을 생성함으로써 복구시간을 최소화하여 전체 프로그램의 수행시간을 단축하고 높은 신뢰도를 확보하는 고성능 컴퓨팅 시스템을 구축하는 데 발명의 주된 목적이 있다.
본 발명의 명시되지 않은 또 다른 목적들은 하기의 상세한 설명 및 그 효과로부터 용이하게 추론할 수 있는 범위 내에서 추가적으로 고려될 수 있다.
본 실시예의 일 측면에 의하면, 연산을 수행하는 컴퓨팅 시스템의 체크포인트 생성 방법에 있어서, 중앙 프로세싱 유닛(Central Procesing Unit, CPU)이 상기 중앙 프로세싱 유닛에 연결된 복수의 그래픽 프로세싱 유닛(Graphics Processing Unit, GPU)으로 상기 연산에 관한 명령어를 전송하면, (i) 상기 연산에 관한 명령어, (ii) 상기 연산을 수행하는 그래픽 프로세싱 유닛의 연산코어의 개수, 및 (iii) 상기 연산을 수행하는 그래픽 프로세싱 유닛에 포함된 메모리의 사용량을 비교 테이블에 저장하는 단계, 상기 연산을 수행하는 그래픽 프로세싱 유닛의 연산코어의 개수 및 상기 연산을 수행하는 그래픽 프로세싱 유닛에 포함된 메모리의 사용량을 기반으로 체크포인트 생성 임계값을 설정하는 단계, 및 상기 체크포인트 생성 임계값을 기준으로 체크포인트 버퍼에 체크포인트를 생성하는 단계를 포함하는 체크포인트 생성 방법을 제공한다.
본 실시예의 다른 측면에 의하면, 연산을 수행하는 컴퓨팅 시스템에 있어서, 중앙 프로세싱 유닛, 상기 중앙 프로세싱 유닛에 연결된 복수의 그래픽 프로세싱 유닛, 및 상기 중앙 프로세싱 유닛 및 상기 복수의 그래픽 프로세싱 유닛에 연결되며, 비교 테이블, 체크포인트 생성 임계값, 및 체크포인트 버퍼를 저장하는 저장부를 포함하며, 상기 중앙 프로세싱 유닛이 복수의 그래픽 프로세싱 유닛으로 상기 연산에 관한 명령어를 전송하면, 상기 저장부는 (i) 상기 연산에 관한 명령어, (ii) 상기 연산을 수행하는 그래픽 프로세싱 유닛의 연산코어의 개수, 및 (iii) 상기 연산을 수행하는 그래픽 프로세싱 유닛에 포함된 메모리의 사용량을 상기 비교 테이블에 저장하고, 상기 저장부는 상기 연산을 수행하는 그래픽 프로세싱 유닛의 연산코어의 개수 및 상기 연산을 수행하는 그래픽 프로세싱 유닛에 포함된 메모리의 사용량을 기반으로 체크포인트 생성 임계값을 저장하고, 상기 저장부는 상기 체크포인트 생성 임계값을 기준으로 생성된 체크포인트 버퍼에 체크포인트를 저장하는 것을 특징으로 하는 컴퓨팅 시스템을 제공한다.
이상에서 설명한 바와 같이 본 발명의 실시예들에 의하면, 대규모 병렬 처리를 수행하는 GPU 시스템의 체크포인트 생성 및 복원 방식에서 GPU 부하 수준이 일정 수준을 초과할 것으로 예상되는 시점을 기준으로 체크포인트 시점을 생성함으로써 복구시간을 최소화하여 전체 프로그램의 수행시간을 단축하고 높은 신뢰도를 확보할 수 있는 효과가 있다.
여기에서 명시적으로 언급되지 않은 효과라 하더라도, 본 발명의 기술적 특징에 의해 기대되는 이하의 명세서에서 기재된 효과 및 그 잠정적인 효과는 본 발명의 명세서에 기재된 것과 같이 취급된다.
도 1은 본 발명의 일 실시예에 따른 컴퓨팅 시스템을 예시한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 컴퓨팅 시스템이 체크포인트를 생성하는 동작을 예시한 도면이다.
도 3은 본 발명의 다른 실시예에 따른 체크포인트 생성 방법을 예시한 흐름도이다.
이하, 본 발명을 설명함에 있어서 관련된 공지기능에 대하여 이 분야의 기술자에게 자명한 사항으로서 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하고, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다.
도 1은 컴퓨팅 시스템을 예시한 블록도이다. 고성능 컴퓨팅 시스템은 대규모 연산을 수행하며, 특정 시점에 시스템의 정보를 저장 장치에 기록하여 체크포인트를 생성한다.
본 실시예에 따른 고성능 컴퓨팅 시스템은 시스템 레벨에서 GPU 사용량 정보를 수집하고 저장한다. 시스템 레벨은 하나의 노드 전체를 포함하는 레벨이며, 운영체제 단계에서 응용프로그램의 유형에 제한되지 않고 체크포인트를 생성할 수 있다.
고성능 컴퓨팅 시스템은 수집한 GPU 사용량 정보를 기반으로 임계값을 설정하고, 실시간을 수집하는 GPU 사용량과 임계값을 비교하여 체크포인트 시점을 예측하고 체크포인트를 생성한다. 고성능 컴퓨팅 시스템은 시스템 오류가 발생하면 체크포인트 시점으로 시스템을 복원한다. GPU의 메모리 입출력 과정에서 발생하는 오류는 ECC(Error Correction Code)를 통해 보정이 가능한 반면에, 개별 코어의 연산 과정에서 발생하는 시스템 오류는 보정할 수 없는 오류이므로 체크포인트 시점으로 회귀하여 다시 연산한다.
도 1을 참조하면, 컴퓨팅 시스템(100)은 중앙 프로세싱 유닛(110), 그래픽 프로세싱 유닛(120), 및 저장부(130)를 포함한다. 컴퓨팅 시스템(100)는 도 1에서 예시적으로 도시한 다양한 구성요소들 중에서 일부 구성요소를 생략하거나 다른 구성요소를 추가로 포함할 수 있다. 예컨대, 컴퓨팅 시스템(100)은 노스브릿지(North Bidge)를 추가로 포함할 수 있다. 노스브릿지는 CPU, 메모리, 바이오스 롬, GPU, 사우스브릿드 등의 고속 장치를 버스로 연결하여 제어하는 집적회로이다. 사우스브릿지는 주변장치의 데이터 흐름을 제어하거나 전원을 관리한다.
중앙 프로세싱 유닛(CPU, 110)은 외부에서 정보를 입력 받고, 기억하고, 컴퓨터 프로그램의 명령어를 해석하여 연산하고, 외부로 출력하는 역할을 한다. 즉, 중앙 프로세싱 유닛은 컴퓨터 부품과 정보를 교환하면서 컴퓨터 전체의 동작을 제어한다. 운영체제는 그래픽 프로세싱 유닛(GPU, 120)의 사용량을 수집할 수 있다.
그래픽 프로세싱 유닛(120)은 컴퓨터 그래픽스를 위한 계산을 수행할 뿐만 아니라, 응용 프로그램들의 계산에 사용할 수 있다. 프로그램 가능한 층과 고정도 연산을 그래픽 파이프라인에 연결하여 데이터에 스트림 프로세싱을 수행할 수 있다. 그래픽 프로세싱 유닛은 병렬로 한번에 하나의 커널을 흐름 속의 많은 레코드에 실행시킨다. 흐름이란 단순히 유사한 계산을 필요로 하는 레코드의 모음이며, 흐름으로 데이터 병렬성을 구현할 수 있다. 커널은 흐름 속의 각 요소에 적용되는 함수이다. 그래픽 프로세싱 유닛은 대량의 코어들을 포함하고, 내부에 메모리를 갖는다. 복수의 그래픽 프로세싱 유닛은 중앙 프로세싱 유닛(110) 또는 노스브릿지에 연결된다.
저장부(130)는 중앙 프로세싱 유닛(110) 및 복수의 그래픽 프로세싱 유닛(120)에 연결되며, 메모리로 구현될 수 있다. 저장부(130)는 비교 테이블, 체크포인트 생성 임계값, 및 체크포인트 버퍼를 저장한다.
중앙 프로세싱 유닛(110)이 복수의 그래픽 프로세싱 유닛(120)으로 연산에 관한 명령어를 전송하면, 저장부(130)는 (i) 연산에 관한 명령어, (ii) 연산을 수행하는 그래픽 프로세싱 유닛(120)의 연산코어의 개수, 및 (iii) 연산을 수행하는 그래픽 프로세싱 유닛(130)에 포함된 메모리의 사용량을 비교 테이블에 저장한다. 연산에 관한 명령어는 중앙 프로세싱 유닛(110)이 그래픽 프로세싱 유닛(120)에 포함된 각각의 메모리에 데이터를 복사하기 위한 명령어이거나 데이터에 관한 연산을 실행하기 위한 명령어일 수 있다.
중앙 프로세싱 유닛(110)은 연산을 수행하는 그래픽 프로세싱 유닛(120)의 연산코어의 개수 및 연산을 수행하는 그래픽 프로세싱 유닛(120)에 포함된 메모리의 사용량을 통계적으로 분석하여 체크포인트 생성 임계값을 산출한다. 저장부(130)는 연산을 수행하는 그래픽 프로세싱 유닛(120)의 연산코어의 개수 및 연산을 수행하는 그래픽 프로세싱 유닛(120)에 포함된 메모리의 사용량을 기반으로 체크포인트 생성 임계값을 저장한다.
중앙 프로세싱 유닛(110)은 체크포인트 생성 임계값을 기준으로 체크포인트를 생성한다. 저장부(130)는 생성된 체크포인트를 체크포인트 버퍼에 저장한다.
중앙 프로세싱 유닛(110)은 체크포인트 생성 임계값이 미설정된 상태에서 연산을 수행하는 중간에 오류가 발생하면, 체크포인트 생성 임계값을 연산을 수행하는 그래픽 프로세싱 유닛의 연산코어의 개수 및 연산을 수행하는 그래픽 프로세싱 유닛에 포함된 메모리의 사용량의 평균값으로 설정할 수 있다.
중앙 프로세싱 유닛(110)은 연산을 수행하는 그래픽 프로세싱 유닛(120)의 연산코어의 개수 및 연산을 수행하는 그래픽 프로세싱 유닛(120)에 포함된 메모리의 사용량이 체크포인트 생성 임계값을 초과한 상태에서 연산을 수행하는 중간에 기설정된 시간 동안 오류가 발생하지 않으면, 비교 테이블에 저장된 체크포인트 생성 임계값을 삭제하고, 체크포인트 생성 임계값을 연산을 수행하는 그래픽 프로세싱 유닛(120)의 연산코어의 개수 및 연산을 수행하는 그래픽 프로세싱 유닛에 포함된 메모리의 사용량의 평균값으로 갱신할 수 있다.
중앙 프로세싱 유닛(110)은 연산을 수행하는 그래픽 프로세싱 유닛(120)의 연산코어의 개수 및 연산을 수행하는 그래픽 프로세싱 유닛(120)에 포함된 메모리의 사용량이 체크포인트 생성 임계값을 초과하지 않은 상태에서 연산을 수행하는 중간에 오류가 발생하면, 비교 테이블에 저장된 체크포인트 생성 임계값을 삭제하고, 체크포인트 생성 임계값을 연산을 수행하는 그래픽 프로세싱 유닛(120)의 연산코어의 개수 및 연산을 수행하는 그래픽 프로세싱 유닛(120)에 포함된 메모리의 사용량의 평균값으로 갱신할 수 있다.
중앙 프로세싱 유닛(110)은 연산을 수행하는 그래픽 프로세싱 유닛(120)의 연산코어의 개수 및 연산을 수행하는 그래픽 프로세싱 유닛(120)에 포함된 메모리의 사용량이 체크포인트 생성 임계값을 초과한 상태에서 연산을 수행하는 중간에 오류가 발생하면, 그래픽 프로세싱 유닛(120)의 연산을 중지하고 체크포인트를 생성할 수 있다.
그래픽 프로세싱 유닛(120)은 연산을 수행하는 중간에 오류가 발생하면, 체크포인트 버퍼를 참조하여 체크포인트로 복귀하여 다시 연산을 진행한다.
도 2는 컴퓨팅 시스템이 체크포인트를 생성하는 동작을 예시한 도면이다. 도 2의 (a)는 기존의 일정한 주기로 설정된 체크포인트 방식에서 오류가 발생하지 않은 것이고, 도 2의 (b)는 기존의 일정한 주기로 설정된 체크포인트 방식에서 오류가 발생한 상태의 동작이고, 도 2의 (c)는 본 실시예에 따른 체크포인트 생성 방식에서 오류가 발생한 상태의 동작이다.
도 2를 참조하면, 기존의 일정한 주기로 설정된 체크포인트 방식은 우발적인 시스템 오류에 대해 전체적인 시간 낭비가 발생하여 전체 프로그램 수행시간에 영향을 준다. 반면에, 본 실시예에 따른 체크포인트 생성 방식은 GPU 부하 수준이 일정 수준을 초과할 것으로 예상되는 시점을 기준으로 체크포인트 시점을 생성함으로써 오류가 검출되면 바로 재연산을 실행할 수 있는 효과가 있다.
컴퓨팅 시스템에 포함된 구성요소들이 도 1에서는 분리되어 도시되어 있으나, 복수의 구성요소들은 상호 결합되어 적어도 하나의 모듈로 구현될 수 있다. 구성요소들은 장치 내부의 소프트웨어적인 모듈 또는 하드웨어적인 모듈을 연결하는 통신 경로에 연결되어 상호 간에 유기적으로 동작한다. 이러한 구성요소들은 하나 이상의 통신 버스 또는 신호선을 이용하여 통신한다.
컴퓨팅 시스템은 하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합에 의해 로직회로 내에서 구현될 수 있고, 범용 또는 특정 목적 컴퓨터를 이용하여 구현될 수도 있다. 장치는 고정배선형(Hardwired) 기기, 필드 프로그램 가능한 게이트 어레이(Field Programmable Gate Array, FPGA), 주문형 반도체(Application Specific Integrated Circuit, ASIC) 등을 이용하여 구현될 수 있다. 또한, 장치는 하나 이상의 프로세서 및 컨트롤러를 포함한 시스템온칩(System on Chip, SoC)으로 구현될 수 있다.
컴퓨팅 시스템은 하드웨어적 요소가 마련된 컴퓨팅 디바이스에 소프트웨어, 하드웨어, 또는 이들의 조합하는 형태로 탑재될 수 있다. 컴퓨팅 디바이스는 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신장치, 프로그램을 실행하기 위한 데이터를 저장하는 메모리, 프로그램을 실행하여 연산 및 명령하기 위한 마이크로프로세서 등을 전부 또는 일부 포함한 다양한 장치를 의미할 수 있다.
도 3은 본 발명의 다른 실시예에 따른 체크포인트 생성 방법을 예시한 흐름도이다. 체크포인트 생성 방법은 컴퓨팅 시스템에 의해 수행될 수 있다.
단계 S310에서, 고성능 컴퓨팅 시스템은 GPU 사용량을 비교 테이블에 저장한다. 단계 S310에서 중앙 프로세싱 유닛(CPU)이 중앙 프로세싱 유닛에 연결된 복수의 그래픽 프로세싱 유닛(GPU)으로 연산에 관한 명령어를 전송하면, (i) 연산에 관한 명령어, (ii) 연산을 수행하는 그래픽 프로세싱 유닛의 연산코어의 개수, 및 (iii) 연산을 수행하는 그래픽 프로세싱 유닛에 포함된 메모리의 사용량을 비교 테이블에 저장한다.
연산에 관한 명령어는 (i) 중앙 프로세싱 유닛이 그래픽 프로세싱 유닛에 포함된 메모리에 데이터를 복사하기 위한 명령어이거나 (ii) 데이터에 관한 연산을 실행하기 위한 명령어일 수 있다.
단계 S320에서, 고성능 컴퓨팅 시스템은 체크포인트 생성 임계값을 설정한다. 단계 S320에서 연산을 수행하는 그래픽 프로세싱 유닛의 연산코어의 개수 및 연산을 수행하는 그래픽 프로세싱 유닛에 포함된 메모리의 사용량을 기반으로 체크포인트 생성 임계값을 설정한다.
체크포인트 생성 임계값을 설정하는 단계(S320)는 연산을 수행하는 그래픽 프로세싱 유닛의 연산코어의 개수 및 연산을 수행하는 그래픽 프로세싱 유닛에 포함된 메모리의 사용량을 통계적으로 분석하여 체크포인트 생성 임계값을 산출하고 비교 테이블에 저장한다.
체크포인트 생성 임계값을 설정하는 단계(S320)는 체크포인트 생성 임계값이 미설정된 상태에서 연산을 수행하는 중간에 오류가 발생하면, 체크포인트 생성 임계값을 연산을 수행하는 그래픽 프로세싱 유닛의 연산코어의 개수 및 연산을 수행하는 그래픽 프로세싱 유닛에 포함된 메모리의 사용량의 평균값으로 설정할 수 있다.
체크포인트 생성 임계값을 설정하는 단계(S320)는 연산을 수행하는 그래픽 프로세싱 유닛의 연산코어의 개수 및 연산을 수행하는 그래픽 프로세싱 유닛에 포함된 메모리의 사용량이 체크포인트 생성 임계값을 초과한 상태에서 상기 연산을 수행하는 중간에 기설정된 시간 동안 오류가 발생하지 않으면, 비교 테이블에 저장된 체크포인트 생성 임계값을 삭제하고, 체크포인트 생성 임계값을 연산을 수행하는 그래픽 프로세싱 유닛의 연산코어의 개수 및 연산을 수행하는 그래픽 프로세싱 유닛에 포함된 메모리의 사용량의 평균값으로 갱신할 수 있다.
체크포인트 생성 임계값을 설정하는 단계(S320)는 연산을 수행하는 그래픽 프로세싱 유닛의 연산코어의 개수 및 연산을 수행하는 그래픽 프로세싱 유닛에 포함된 메모리의 사용량이 체크포인트 생성 임계값을 초과하지 않은 상태에서 연산을 수행하는 중간에 오류가 발생하면, 비교 테이블에 저장된 체크포인트 생성 임계값을 삭제하고, 체크포인트 생성 임계값을 연산을 수행하는 그래픽 프로세싱 유닛의 연산코어의 개수 및 연산을 수행하는 그래픽 프로세싱 유닛에 포함된 메모리의 사용량의 평균값으로 갱신할 수 있다.
체크포인트 생성 임계값을 설정하는 단계(S320)는 연산을 수행하는 그래픽 프로세싱 유닛의 연산코어의 개수 및 연산을 수행하는 그래픽 프로세싱 유닛에 포함된 메모리의 사용량이 체크포인트 생성 임계값을 초과한 상태에서 연산을 수행하는 중간에 오류가 발생하면, 그래픽 프로세싱 유닛의 연산을 중지하고 체크포인트를 생성하여 체크포인트 버퍼에 저장할 수 있다.
단계 S330에서, 고성능 컴퓨팅 시스템은 체크포인트 생성 임계값을 기준으로 체크포인트를 생성한다.
체크포인트 생성 방법은 연산을 수행하는 중간에 오류가 발생하면, 생성한 체크포인트로 복귀하여 다시 연산을 진행하는 단계를 추가로 포함할 수 있다.
도 3에서는 각각의 과정을 순차적으로 실행하는 것으로 기재하고 있으나 이는 예시적으로 설명한 것에 불과하고, 이 분야의 기술자라면 본 발명의 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 도 3에 기재된 순서를 변경하여 실행하거나 또는 하나 이상의 과정을 병렬적으로 실행하거나 다른 과정을 추가하는 것으로 다양하게 수정 및 변형하여 적용 가능할 것이다.
본 실시예들에 따른 동작은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능한 매체에 기록될 수 있다. 컴퓨터 판독 가능한 매체는 실행을 위해 프로세서에 명령어를 제공하는 데 참여한 임의의 매체를 나타낸다. 컴퓨터 판독 가능한 매체는 프로그램 명령, 데이터 파일, 데이터 구조 또는 이들의 조합을 포함할 수 있다. 예를 들면, 자기 매체, 광기록 매체, 메모리 등이 있을 수 있다. 컴퓨터 프로그램은 네트워크로 연결된 컴퓨터 시스템 상에 분산되어 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다. 본 실시예를 구현하기 위한 기능적인(Functional) 프로그램, 코드, 및 코드 세그먼트들은 본 실시예가 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있을 것이다.
본 실시예들은 본 실시예의 기술 사상을 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100: 컴퓨팅 시스템
110: 중앙 프로세싱 유닛
120: 그래픽 프로세싱 유닛
130: 저장부

Claims (16)

  1. 연산을 수행하는 컴퓨팅 시스템의 체크포인트 생성 방법에 있어서,
    중앙 프로세싱 유닛(Central Procesing Unit, CPU)이 상기 중앙 프로세싱 유닛에 연결된 복수의 그래픽 프로세싱 유닛(Graphics Processing Unit, GPU)으로 상기 연산에 관한 명령어를 전송하면, (i) 상기 연산에 관한 명령어, (ii) 상기 연산을 수행하는 그래픽 프로세싱 유닛의 연산코어의 개수, 및 (iii) 상기 연산을 수행하는 그래픽 프로세싱 유닛에 포함된 메모리의 사용량을 비교 테이블에 저장하는 단계;
    상기 연산을 수행하는 그래픽 프로세싱 유닛의 연산코어의 개수 및 상기 연산을 수행하는 그래픽 프로세싱 유닛에 포함된 메모리의 사용량을 기반으로 체크포인트 생성 임계값을 설정하는 단계; 및
    상기 체크포인트 생성 임계값을 기준으로 체크포인트를 생성하는 단계를 포함하며,
    상기 체크포인트 생성 임계값을 설정하는 단계는, 상기 연산을 수행하는 그래픽 프로세싱 유닛의 연산코어의 개수 및 상기 연산을 수행하는 그래픽 프로세싱 유닛에 포함된 메모리의 사용량을 통계적으로 분석하여 상기 체크포인트 생성 임계값을 산출하고 상기 비교 테이블에 저장하는 것을 특징으로 하는 체크포인트 생성 방법.
  2. 제1항에 있어서,
    상기 연산에 관한 명령어는 (i) 상기 중앙 프로세싱 유닛이 상기 그래픽 프로세싱 유닛에 포함된 메모리에 데이터를 복사하기 위한 명령어이거나 (ii) 상기 데이터에 관한 연산을 실행하기 위한 명령어인 것을 특징으로 하는 체크포인트 생성 방법.
  3. 삭제
  4. 제1항에 있어서,
    상기 체크포인트 생성 임계값을 설정하는 단계는,
    상기 체크포인트 생성 임계값이 미설정된 상태에서 상기 연산을 수행하는 중간에 오류가 발생하면, 상기 체크포인트 생성 임계값을 상기 연산을 수행하는 그래픽 프로세싱 유닛의 연산코어의 개수 및 상기 연산을 수행하는 그래픽 프로세싱 유닛에 포함된 메모리의 사용량의 평균값으로 설정하는 것을 특징으로 하는 체크포인트 생성 방법.
  5. 제1항에 있어서,
    상기 체크포인트 생성 임계값을 설정하는 단계는,
    상기 연산을 수행하는 그래픽 프로세싱 유닛의 연산코어의 개수 및 상기 연산을 수행하는 그래픽 프로세싱 유닛에 포함된 메모리의 사용량이 상기 체크포인트 생성 임계값을 초과한 상태에서 상기 연산을 수행하는 중간에 기설정된 시간 동안 오류가 발생하지 않으면,
    상기 비교 테이블에 저장된 체크포인트 생성 임계값을 삭제하고, 상기 체크포인트 생성 임계값을 상기 연산을 수행하는 그래픽 프로세싱 유닛의 연산코어의 개수 및 상기 연산을 수행하는 그래픽 프로세싱 유닛에 포함된 메모리의 사용량의 평균값으로 갱신하는 것을 특징으로 하는 체크포인트 생성 방법.
  6. 제1항에 있어서,
    상기 체크포인트 생성 임계값을 설정하는 단계는,
    상기 연산을 수행하는 그래픽 프로세싱 유닛의 연산코어의 개수 및 상기 연산을 수행하는 그래픽 프로세싱 유닛에 포함된 메모리의 사용량이 상기 체크포인트 생성 임계값을 초과하지 않은 상태에서 상기 연산을 수행하는 중간에 오류가 발생하면,
    상기 비교 테이블에 저장된 체크포인트 생성 임계값을 삭제하고, 상기 체크포인트 생성 임계값을 상기 연산을 수행하는 그래픽 프로세싱 유닛의 연산코어의 개수 및 상기 연산을 수행하는 그래픽 프로세싱 유닛에 포함된 메모리의 사용량의 평균값으로 갱신하는 것을 특징으로 하는 체크포인트 생성 방법.
  7. 제1항에 있어서,
    상기 체크포인트를 생성하는 단계는,
    상기 연산을 수행하는 그래픽 프로세싱 유닛의 연산코어의 개수 및 상기 연산을 수행하는 그래픽 프로세싱 유닛에 포함된 메모리의 사용량이 상기 체크포인트 생성 임계값을 초과한 상태에서 상기 연산을 수행하는 중간에 오류가 발생하면,
    상기 그래픽 프로세싱 유닛의 연산을 중지하고 상기 체크포인트를 생성하여 체크포인트 버퍼에 저장하는 것을 특징으로 하는 체크포인트 생성 방법.
  8. 제1항에 있어서,
    상기 연산을 수행하는 중간에 오류가 발생하면, 상기 생성한 체크포인트로 복귀하여 다시 연산을 진행하는 단계를 추가로 포함하는 체크포인트 생성 방법.
  9. 연산을 수행하는 컴퓨팅 시스템에 있어서,
    중앙 프로세싱 유닛;
    상기 중앙 프로세싱 유닛에 연결된 복수의 그래픽 프로세싱 유닛; 및
    상기 중앙 프로세싱 유닛 및 상기 복수의 그래픽 프로세싱 유닛에 연결되며, 비교 테이블, 체크포인트 생성 임계값, 및 체크포인트 버퍼를 저장하는 저장부를 포함하며,
    상기 중앙 프로세싱 유닛이 복수의 그래픽 프로세싱 유닛으로 상기 연산에 관한 명령어를 전송하면, 상기 저장부는 (i) 상기 연산에 관한 명령어, (ii) 상기 연산을 수행하는 그래픽 프로세싱 유닛의 연산코어의 개수, 및 (iii) 상기 연산을 수행하는 그래픽 프로세싱 유닛에 포함된 메모리의 사용량을 상기 비교 테이블에 저장하고,
    상기 저장부는 상기 연산을 수행하는 그래픽 프로세싱 유닛의 연산코어의 개수 및 상기 연산을 수행하는 그래픽 프로세싱 유닛에 포함된 메모리의 사용량을 기반으로 체크포인트 생성 임계값을 저장하고,
    상기 저장부는 상기 체크포인트 생성 임계값을 기준으로 생성된 체크포인트를 체크포인트 버퍼에 저장하며,
    상기 중앙 프로세싱 유닛은 상기 연산을 수행하는 그래픽 프로세싱 유닛의 연산코어의 개수 및 상기 연산을 수행하는 그래픽 프로세싱 유닛에 포함된 메모리의 사용량을 통계적으로 분석하여 상기 체크포인트 생성 임계값을 산출하는 것을 특징으로 하는 컴퓨팅 시스템.
  10. 제9항에 있어서,
    상기 연산에 관한 명령어는 (i) 상기 중앙 프로세싱 유닛이 상기 그래픽 프로세싱 유닛에 포함된 메모리에 데이터를 복사하기 위한 명령어이거나 (ii) 상기 데이터에 관한 연산을 실행하기 위한 명령어인 것을 특징으로 하는 컴퓨팅 시스템.
  11. 삭제
  12. 제9항에 있어서,
    상기 중앙 프로세싱 유닛은 상기 체크포인트 생성 임계값이 미설정된 상태에서 상기 연산을 수행하는 중간에 오류가 발생하면, 상기 체크포인트 생성 임계값을 상기 연산을 수행하는 그래픽 프로세싱 유닛의 연산코어의 개수 및 상기 연산을 수행하는 그래픽 프로세싱 유닛에 포함된 메모리의 사용량의 평균값으로 설정하는 것을 특징으로 하는 컴퓨팅 시스템.
  13. 제9항에 있어서,
    상기 중앙 프로세싱 유닛은 상기 연산을 수행하는 그래픽 프로세싱 유닛의 연산코어의 개수 및 상기 연산을 수행하는 그래픽 프로세싱 유닛에 포함된 메모리의 사용량이 상기 체크포인트 생성 임계값을 초과한 상태에서 상기 연산을 수행하는 중간에 기설정된 시간 동안 오류가 발생하지 않으면,
    상기 비교 테이블에 저장된 체크포인트 생성 임계값을 삭제하고, 상기 체크포인트 생성 임계값을 상기 연산을 수행하는 그래픽 프로세싱 유닛의 연산코어의 개수 및 상기 연산을 수행하는 그래픽 프로세싱 유닛에 포함된 메모리의 사용량의 평균값으로 갱신하는 것을 특징으로 하는 컴퓨팅 시스템.
  14. 제9항에 있어서,
    상기 중앙 프로세싱 유닛은 상기 연산을 수행하는 그래픽 프로세싱 유닛의 연산코어의 개수 및 상기 연산을 수행하는 그래픽 프로세싱 유닛에 포함된 메모리의 사용량이 상기 체크포인트 생성 임계값을 초과하지 않은 상태에서 상기 연산을 수행하는 중간에 오류가 발생하면,
    상기 비교 테이블에 저장된 체크포인트 생성 임계값을 삭제하고, 상기 체크포인트 생성 임계값을 상기 연산을 수행하는 그래픽 프로세싱 유닛의 연산코어의 개수 및 상기 연산을 수행하는 그래픽 프로세싱 유닛에 포함된 메모리의 사용량의 평균값으로 갱신하는 것을 특징으로 하는 컴퓨팅 시스템.
  15. 제9항에 있어서,
    상기 중앙 프로세싱 유닛은 상기 연산을 수행하는 그래픽 프로세싱 유닛의 연산코어의 개수 및 상기 연산을 수행하는 그래픽 프로세싱 유닛에 포함된 메모리의 사용량이 상기 체크포인트 생성 임계값을 초과한 상태에서 상기 연산을 수행하는 중간에 오류가 발생하면,
    상기 그래픽 프로세싱 유닛의 연산을 중지하고 상기 체크포인트를 생성하는 것을 특징으로 하는 컴퓨팅 시스템.
  16. 제9항에 있어서,
    상기 그래픽 프로세싱 유닛은 상기 연산을 수행하는 중간에 오류가 발생하면, 상기 생성한 체크포인트로 복귀하여 다시 연산을 진행하는 것을 특징으로 하는 컴퓨팅 시스템.
KR1020170166404A 2017-12-06 2017-12-06 Gpu 사용량을 이용한 고성능 컴퓨팅 시스템의 체크포인트 생성 방법 KR102022481B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170166404A KR102022481B1 (ko) 2017-12-06 2017-12-06 Gpu 사용량을 이용한 고성능 컴퓨팅 시스템의 체크포인트 생성 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170166404A KR102022481B1 (ko) 2017-12-06 2017-12-06 Gpu 사용량을 이용한 고성능 컴퓨팅 시스템의 체크포인트 생성 방법

Publications (2)

Publication Number Publication Date
KR20190066712A KR20190066712A (ko) 2019-06-14
KR102022481B1 true KR102022481B1 (ko) 2019-09-18

Family

ID=66846614

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170166404A KR102022481B1 (ko) 2017-12-06 2017-12-06 Gpu 사용량을 이용한 고성능 컴퓨팅 시스템의 체크포인트 생성 방법

Country Status (1)

Country Link
KR (1) KR102022481B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102625338B1 (ko) * 2023-03-06 2024-01-15 주식회사 모레 인공지능 연산과 연관된 호출 목록 병렬 처리 방법및 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5966389B2 (ja) * 2012-01-31 2016-08-10 日本電気株式会社 計算装置、演算処理システム、チェックポイント設定方法及びプログラム
KR101667508B1 (ko) 2012-12-21 2016-10-18 퀄컴 인코포레이티드 그래픽 프로세싱 유닛 기반 메모리 전송 동작들을 수행하는 다중모드 메모리 액세스 기법들

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7409570B2 (en) * 2005-05-10 2008-08-05 Sony Computer Entertainment Inc. Multiprocessor system for decrypting and resuming execution of an executing program after transferring the program code between two processors via a shared main memory upon occurrence of predetermined condition
KR20080093206A (ko) * 2007-04-16 2008-10-21 아주대학교산학협력단 이벤트 모델 기반 고속 오토노믹 결합 관리 방법
US8224780B2 (en) * 2010-06-15 2012-07-17 Microsoft Corporation Checkpoints for a file system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5966389B2 (ja) * 2012-01-31 2016-08-10 日本電気株式会社 計算装置、演算処理システム、チェックポイント設定方法及びプログラム
KR101667508B1 (ko) 2012-12-21 2016-10-18 퀄컴 인코포레이티드 그래픽 프로세싱 유닛 기반 메모리 전송 동작들을 수행하는 다중모드 메모리 액세스 기법들

Also Published As

Publication number Publication date
KR20190066712A (ko) 2019-06-14

Similar Documents

Publication Publication Date Title
Dongarra et al. Fault tolerance techniques for high-performance computing
Iturbe et al. A triple core lock-step (tcls) arm® cortex®-r5 processor for safety-critical and ultra-reliable applications
Benoit et al. Assessing general-purpose algorithms to cope with fail-stop and silent errors
Li et al. Software implemented transient fault detection in space computer
Cao et al. Design for a soft error resilient dynamic task-based runtime
Borodin et al. Protective redundancy overhead reduction using instruction vulnerability factor
Huber et al. Resilience for massively parallel multigrid solvers
Wu et al. On-line soft error correction in matrix–matrix multiplication
KR102022481B1 (ko) Gpu 사용량을 이용한 고성능 컴퓨팅 시스템의 체크포인트 생성 방법
Tang et al. Self-checkpoint: An in-memory checkpoint method using less space and its practice on fault-tolerant HPL
Tang et al. An efficient in-memory checkpoint method and its practice on fault-tolerant HPL
Vargas et al. Evaluating SEU fault-injection on parallel applications implemented on multicore processors
Guan et al. Towards building resilient scientific applications: Resilience analysis on the impact of soft error and transient error tolerance with the clamr hydrodynamics mini-app
US9262271B2 (en) Method of improving fault tolerance in a computing system arranged to find a computational solution
Kang et al. Optimal checkpoint selection with dual-modular redundancy hardening
Ferreira Keeping checkpoint/restart viable for exascale systems
Agullo et al. Hard faults and soft-errors: possible numerical remedies in linear algebra solvers
Bucciero et al. Software fault tolerance methodology and testing for the embedded PowerPC
KR102022480B1 (ko) 실시간 시스템 정보를 이용한 고성능 컴퓨팅 시스템의 체크포인트 빈도 조절 방법 및 장치
Aupy et al. Coping with silent errors in HPC applications
Agarwal et al. Application health monitoring for extreme‐scale resiliency using cooperative fault management
Cavelan et al. When amdahl meets young/daly
Amin et al. A Self‐Checking Hardware Journal for a Fault‐Tolerant Processor Architecture
Fang et al. ABFR: convenient management of latent error resilience using application knowledge
Benoit et al. Checkpointing à la Young/Daly: an overview

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