KR20090084897A - 병렬 컴퓨터 시스템과 병렬 컴퓨터 시스템 구동 방법과 컴퓨터 판독가능한 기록 매체 - Google Patents

병렬 컴퓨터 시스템과 병렬 컴퓨터 시스템 구동 방법과 컴퓨터 판독가능한 기록 매체 Download PDF

Info

Publication number
KR20090084897A
KR20090084897A KR1020097010832A KR20097010832A KR20090084897A KR 20090084897 A KR20090084897 A KR 20090084897A KR 1020097010832 A KR1020097010832 A KR 1020097010832A KR 20097010832 A KR20097010832 A KR 20097010832A KR 20090084897 A KR20090084897 A KR 20090084897A
Authority
KR
South Korea
Prior art keywords
node
computer system
compute node
compute
heartbeat
Prior art date
Application number
KR1020097010832A
Other languages
English (en)
Other versions
KR101081092B1 (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 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20090084897A publication Critical patent/KR20090084897A/ko
Application granted granted Critical
Publication of KR101081092B1 publication Critical patent/KR101081092B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/267Reconfiguring circuits for testing, e.g. LSSD, partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • 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/0721Error 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 within a central processing unit [CPU]
    • G06F11/0724Error 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 within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • 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/0793Remedial or corrective actions
    • 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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)

Abstract

노드들의 파티션 상에서 실행되는 작업을 종료시키지 않고도 병렬 컴퓨터 시스템 상에서 소프트 결함으로부터의 결함 복구를 위한 방법 및 장치가 개시된다. 바람직한 실시예에서, 서비스 노드 상의 결함 하드웨어 복구 메카니즘은 하트 비트 모니터를 사용하여 노드 결함이 발생할 때를 결정한다. 가능한 경우, 결함 노드는 리셋되고 그리고 결함 노드를 포함하는 파티션에 의해 실행되는 소프트웨어 작업을 종료시키지 않고도 소프트웨어가 재로딩된다.

Description

병렬 컴퓨터 시스템과 병렬 컴퓨터 시스템 구동 방법과 컴퓨터 판독가능한 프로그램 제품{FAULT RECOVERY ON A MASSIVELY PARALLEL COMPUTER SYSTEM TO HANDLE NODE FAILURES WITHOUT ENDING AN EXECUTING JOB}
본 발명은 일반적으로 병렬 컴퓨팅 시스템에서의 결함 복구에 관한 것으로, 특히 실행 작업을 종료하지 않고도 노드 결함을 처리하기 위한 대용량 병렬 슈퍼 컴퓨터 상에서의 결함 복구에 관한 것이다.
슈퍼컴퓨터는 지능형 컴퓨팅 작업을 처리하기 위해 지속적으로 개발되고 있다. 이러한 컴퓨터는 특히 생명 과학, 금융 모델링, 유체 역학, 양자 화학, 분자 역학, 천문 및 우주 연구 및 기후 모델링을 포함한 고성능 컴퓨팅(HPC) 애플리케이션을 위한 과학자에게는 유용하다. 슈퍼컴퓨터 개발자는 증가하는 복잡한 컴퓨팅 수요에 대한 요구를 해결하기 위해 대용량 병렬 컴퓨터 구조에 집중해 왔다.
IBM사에 의해 개발되고 있는 그러한 하나의 대용량 병렬 컴퓨터는 블루진 시스템(Blue Gene system)이다. 이 블루진 시스템은 컴퓨터 노드의 최대수가 65,536인 스케일러블한 시스템(scalable system)이다. 각각의 노드는 단일의 ASIC 및 메 모리로 구성된다. 각각의 노드는 전형적으로 512메가바이트 또는 1기가바이트의 로컬 메모리를 갖는다. 풀 컴퓨터(full computer)가 공통 위치 내에서 고밀도로 배열되며 수개의 네트워크와 더불어 상호접속된 64개의 랙(rack) 또는 캐비넷(cabinet) 내에 하우징될 것이다. 각각의 랙은 32개의 노드 보드를 가지며, 각각의 노드 보드는 32개의 노드를 가지며, 각각의 노드에는 2개의 프로세서가 존재한다.
블루진 슈퍼컴퓨터의 65,536개 계산 노드 및 1024개 I/O 프로세서는 논리 트리 네트워크와 논리 3차원 토러스 네트워크 내에 배열된다. 논리 트리 네트워크는 집합적인 네트워크 토폴로지의 상부 상의 논리 네트워크이다. 블루진은 I/O 노드 표면을 갖는 컴퓨터 노드 코어로서 기술될 수 있다. 각각의 I/O 노드는 64개 계산 노드의 입력 및 출력 기능을 처리한다. I/O 노드는 논리적 저장장치를 갖지 않는다. IO 노드는 논리적 트리 네트워크를 통해 계산 노드에 접속되며 또한 기능적으로 내장 기가비트 이더넷 네트워크를 통한 광역 네트워크 기능을 갖는다. 이 노드들은 다수의 노드 파티션(node partitions) 내로 할당될 수 있으며, 그에 따라 개개의 애플리케이션 또는 작업이 노드 파티션 내의 블루진 노드의 세트 상에서 실행될 수 있다.
컴퓨터 시스템에서의 소프트 결함은 되풀이하여 발생하는 하드웨어 결함이나 하드 결함으로 인한 것이 아닌 에러 또는 결함이다. 소프트 결함은 알파 입자 및 노이즈와 같은 랜덤 이벤트에 의해 야기될 수 있다. 대부분의 컴퓨터 시스템에서, 그러한 소프트 결함은 매우 빈번하며 전통적인 방식으로 처리될 수 있다. 블루진 과 같은 대용량 병렬 컴퓨터 시스템에서, 소프트 및 하드 결함의 문제는 시스템의 복잡성과 그 시스템 내의 계산 노드들의 수로 인해 크게 증가된다. 또한, 종래 기술에서 하나의 노드 내의 결함은 컴퓨터 시스템의 전체 파티션이 사용불가능하게 할 수 있거나 파티션 상에서 실행되는 작업이 종료되어 재시작되도록 요구할 수도 있다.
컴퓨터 시스템 고장 시간과 작업 재시작은 귀중한 시스템 리소스를 낭비하기 때문에, 소프트 결함에 의해 야기되는 시스템 결함으로부터 보다 효율적으로 복구하기 위한 방식이 없다면, 병렬 컴퓨터 시스템은 하드웨어의 비효율적인 사용과 불필요한 컴퓨터 고장 시간으로 지속적으로 어려움을 겪게 될 것이다.
본 실시예에 의하면, 노드들의 파티션 상에서 실행되는 작업을 종료시키지 않고도 병렬 컴퓨터 시스템 상에서 소프트 결함으로부터의 단일 노드 결함으로부터 결함 복구를 위한 방법 및 장치가 기술된다. 바람직한 실시예에서, 서비스 노드 상의 결함 하드웨어 복구 메카니즘은 하트 비트 모니터를 사용하여 노드 결함이 발생할 때를 결정한다. 가능한 경우, 결함 노드는 리셋되고 그리고 결함 노드를 포함하는 노드들의 파티션에 의해 실행되는 소프트웨어 작업을 종료시키지 않고도 소프트웨어가 재로딩된다.
개시된 본 실시예는 블루진 아키텍처에 관한 것이지만 네트워크 구조로 배열된 다수의 프로세서를 갖는 임의의 병렬 컴퓨터 시스템 상에서 구현될 수 있다. 바람직한 실시예는 특히 대용량 병렬 컴퓨터 시스템에 대해 이점이 있다.
본 발명의 전술한 것 및 다른 특징 및 이점은 첨부되는 도면에 예시되는 바와 같이 본 발명의 바람직한 실시예의 특정 설명으로부터 명백할 것이다.
본 발명의 바람직한 실시예는 아래에서 첨부되는 도면을 참조하여 기술될 것이며 유사 표시는 유사 요소를 나타낸다.
도 1은 바람직한 실시예에 따른 대용량 병렬 컴퓨터 시스템의 블럭도이다.
도 2는 바람직한 실시예에 따른 대용량 병렬 컴퓨터 시스템 내의 계산 노드(compute node)의 블럭도이다.
도 3은 바람직한 실시예에 따른 노드 리셋 하드웨어의 블럭도이다.
도 4는 바람직한 실시예에 따른 대용량 병렬 컴퓨터 시스템의 계산 노드들 상의 하트 비트 타이머를 셋업하기 위한 방법의 플로우챠트이다.
도 5는 바람직한 실시예에 따른 대용량 병렬 컴퓨터 시스템 상의 결함 노드의 결함 복구를 위한 방법의 플로우챠트이다.
본 발명은 결함 노드를 포함하는 노드들의 파티션 상에서 실행중인 작업을 종료하지 않고도 병렬 컴퓨터 시스템의 노드 상에서 소프트 결함으로부터 결함 복구를 위한 장치 및 방법에 관한 것이다. 바람직한 실시예는 IBM사에 의해 개발된 블루진/L 대용량 병렬 컴퓨터와 관련하여 기술될 것이다.
도 1은 블루진/L 컴퓨터 시스템과 같은 대용량 병렬 컴퓨터 시스템(100)을 나타내는 블럭도를 도시한다. 블루진/L 시스템은 계산 노드들의 최대수가 65,536인 스케일러블 시스템(scalable system)이다. 각각의 노드(110)는 블루진/L 계산 칩(112)으로 지칭되는 ASIC(112)을 갖는다. 계산 칩은 두 개의 프로세서 또는 중앙 처리 유닛(CPU)를 포함하며, 노드 도터 카드(node daughter card)(114) 상에 탑재된다. 노드는 또한 전형적으로 512 메가바이트의 로컬 메모리를 갖는다. 노드 보드(120)는 32개의 노드 도터 카드(114)를 수용하고 있으며 각각의 카드는 노드(110)를 갖는다. 따라서, 각각의 노드 보드는 32 개의 노드를 가지며, 각각의 노드는 2 개의 프로세서를 가지며, 각각의 프로세서는 연관된 메모리를 갖는다. 랙(130)은 32 개의 노드 보드(120)를 포함하는 하우징이다. 각각의 노드 보드(120)는 미드플레인 인쇄 회로 기판(132) 내로 미드플레인 커넥터(134)를 접속한다. 미드플레인(132)은 랙 내부에 존재하며 도 1에는 도시되지 않는다. 풀 블루진/L 컴퓨터 시스템(full Blue Gene/L computer system)은 32 개의 노드 보드(120)를 각각 갖는 64개의 랙(130) 또는 캐비넷 내에 하우징될 것이다. 풀 시스템은 65,536 개의 노드와 131,072 개의 CPU(64개의 랙 × 32개의 노드 보드 × 2개의 CPU)를 가질 것이다.
블루진/L 컴퓨터 시스템 구조는 I/O 노드 표면을 갖는 계산 노드로서 기술될 수 있으며, 여기서 1024개의 계산 노드(110)에 대한 통신은 서비스 노드(140)에 접속된 I/O 프로세서(170)를 갖는 각각의 I/O 노드에 의해 처리된다. I/O 노드는 로 컬 저장장치를 갖지 않는다. I/O 노드는 논리적 트리 네트워크를 통해 계산 노드에 접속되며 또한 기능상 기가비트 이더넷 네트워크(도시안됨)를 통한 광역 네트워크 기능을 갖는다. 기가비트 이더넷 네트워크는 서비스 노드(160)로부터 다수의 노드로의 통신을 처리하는 노드 보드(120) 상에 위치한 I/O 프로세서(또는 블루진/L 링크 칩)(170)에 접속된다. 블루진/L 시스템은 노드 보드(120)에 접속된 I/O 보드(도시안됨) 상의 하나 이상의 I/O 프로세서(170)를 갖는다. I/O 프로세서는 8, 32 또는 64개의 노드와 통신하도록 구성될 수 있다. 서비스 노드는 계산 노드 상의 링크 카드에 통신함으로써 접속성을 제어하는 기가비트 네트워크를 사용한다. I/O 노드들에 대한 커넥션들은 I/O 노드들이 토러스 네트워크(torus network)에 접속되지 않는 점을 제외하고는 계산 노드에 대한 커넥션과 유사하다.
도 1을 참조하면, 컴퓨터 시스템(100)은, 소프트웨어를 사용하여 노드들의 로딩을 처리하며 전체 시스템의 동작을 제어하는 서비스 노드(140)를 포함한다. 서비스 노드(140)는 전형적으로 제어 콘솔(도시안됨)을 사용하여 리눅스를 실행시키는 IBM pSeries 서버와 같은 미니 컴퓨터 시스템이다. 서비스 노드(140)는 제어 시스템 네트워크(150)를 통해 계산 노드(110)의 랙(130)에 접속된다. 제어 시스템 네트워크는 블루진/L 시스템에 대해 제어, 테스트 및 브링업 기반구조(bring-up infrastructure)를 제공한다. 제어 시스템 네트워크(150)는 대용량 병렬 컴퓨터 시스템에 대해 필요한 통신을 제공하는 다양한 네트워크 인터페이스를 포함한다. 네트워크 인터페이스는 아래에서 기술된다.
서비스 노드(140)는 시스템 관리 전용의 제어 시스템 네트워크(150)를 관리 한다. 제어 시스템 네트워크(150)는 서비스 노드(160)로부터 다수의 노드로의 통신을 처리하는 노드 보드(120) 상에 위치한 Ido 칩(180)에 접속된 사설 100-Mb/s 이더넷이다. 이 네트워크는 때로는 JTAG 네트워크로 지칭되기도 하는데, 그 이유는 그것은 JTAG 프로토콜을 사용하여 통신하기 때문이다. 노드 보드(120) 상의 계산 노드(110)의 모든 제어, 테스트 및 브링업은 서비스 노드와 통신하는 JTAG 포트를 통해 관리된다. 이러한 네트워크는 도 2를 참조하여 아래에서 기술된다.
블루진/L 슈퍼컴퓨터는 수 개의 추가적인 통신 네트워크를 통해 통신한다. 65, 536개의 계산 노드는 논리적 트리 네트워크 및 물리적 3차원 토러스 네트워크 내로 배열된다. 논리적 트리 네트워크는 이진 트리 구조 내의 계산 노드들을 접속하며, 그에 따라 각각의 노드는 하나의 모체(parent)와 두 개의 자손(children)과 통신한다. 토러스 네트워크는 각각의 계산 노드가 컴퓨터의 한 섹션 내의 최근접 6개의 이웃과 통신할 수 있도록 하는 3차원 래티스형 구조 내의 계산 노드들을 논리적으로 접속한다. 상기 노드에 접속된 다른 통신 네트워크는 배리어(Barrier) 네트워크를 포함한다. 배리어 네트워크는 일부의 작업의 종료시 배리어 통신 시스템을 사용하여 상이한 처리 단계로 이동하는 계산 노드들 상에서의 유사한 처리의 동기화를 위한 소프트웨어 배리어를 구현한다. 또한, 각각의 노드에 대해 글로벌 인터럽트 커넥션이 존재한다.
또한, 도 1을 참조하면, 서비스 노드(140)는 결함 하드웨어 복구 메카니즘(142)을 포함한다. 결함 하드웨어 복구 메카니즘은 바람직한 실시예에 따른 노드 결함으로부터의 복구를 위해 동작하는 서비스 노드(140) 내의 소프트웨어를 포 함한다. 결함 하드웨어 복구 메카니즘은 하트 비트 모니터(144)를 사용하여 노드에 결함이 발생할 때를 결정한다. 하트 비트 모니터는 판독후에 아래에 기술되는 노드 상의 메모리 내에 위치한 하트 비트 플래그를 클리어한다. 하트 비트가 더이상 존재하지 않아, 하트 비트 플래그가 세트되지 않았음을 의미할 때, 상기 노드는 결함이 발생되며 결함 하드웨어 복구 메카니즘은 아래에 기술한 바와 같이 결함 노드를 포함하는 노드 파티션 상에서 임의의 실행중인 작업을 종료하지 않고도 그 노드를 복구하는 시도를 행한다.
도 2는 종래 기술에 따른 블루진/L 컴퓨터 시스템 내의 계산 노드(110)의 블럭도를 도시한 도면이다. 계산 노드(110)는 두 개의 처리 유닛(210A, 210B)을 갖는 노드 계산 칩(112)을 갖는다. 각각의 처리 유닛(210)은 레벨 1 메모리 캐시(L1 캐시)(214)를 갖는 프로세싱 코어(processing core)(212)를 갖는다. 처리 유닛(210)은 또한 레벨 2의 메모리 캐시(L2 캐시)(216)를 갖는다. 처리 유닛(210)은 레벨 3의 메모리 캐시(L3 캐시)(220) 및 SRAM 메모리 뱅크(230)에 접속된다. L3 캐시(220)로부터의 데이터는 DDR 제어기(250)에 의해 DDR SDRAM(240)의 뱅크에 로딩된다.
다시 도 2를 참조하면, SRAM 메모리(230)는 계산 칩(112)으로부터 벗어나 Ido 칩(180)으로 통신하는 JTAG 인터페이스(260)에 접속된다. 서비스 노드는 (도 1을 참조하여 전술된) 제어 시스템 네트워크(150)의 일부인 이더넷 링크를 통해 Ido 칩(180)을 거쳐 계산 노드와 통신한다. 블루진/L 시스템에서 노드 보드(120) 당 하나의 Ido 칩이 존재하며 각각의 미드플레인(132)(도 1) 내의 보드 상에는 다 른 것들이 존재한다. Ido 칩은 트러스트형 사설 100Mbit/s 이더넷 제어 네트워크를 통해 원시 UDP 패킷을 사용하여 서비스 노드로부터 커맨드를 수신한다. Ido 칩은 계산 노드들과의 통신을 위한 다양한 시리얼 프로토콜을 지원한다. JTAG 프로토콜은 서비스 노드(140)(도 1)로부터 계산 노드(110) 내의 SRAM(230)의 임의의 어드레스로의 판독 및 기록을 위해 사용되며, 시스템 동기화 및 부팅 과정(booting process)을 위해 사용된다. JTAG 인터페이스(260)는 또한 후술되는 바와 같이 노드 계산 칩(112)의 다양한 부분을 리셋하기 위한 리셋 비트를 유지하는 컨피그 레지스터(configuration register)(270)와 통신한다.
다시 도 2를 참조하면, 계산 노드(110)는 또한 소프트웨어 제어하에 설정될 수 있는 알람 타이머(285)를 갖는 타이머(280)를 포함한다. 바람직한 실시예에서, 이 타이머는 노드가 적절히 동작중이라는 것을 서비스 노드(140)(도 1) 내의 하트 비트 모니터(144)에 통지하는 하트 비트를 생성하는 데 사용된다. 이 노드는 서비스 노드로부터 알람 시간(285)을 수신한다. 타이머(280)는 알람 시간(285)과 동일한 기간으로 주기적으로 울리도록 설정된다. 타이머가 알람 시간(285)이 경과했음을 검출하고 그리고 노드가 적절히 동작중이라면, 하트 비트 플래그(236)가 SRAM(230)의 메일 박스(235) 내에 세트된다. 서비스 노드(140)의 하트 비트 모니터(144)는 모든 노드들의 하트 비트(236) 플래그의 존재를 정기적으로 체크하며 만약 하트 비트가 후술되는 바와 같이 존재하지 않는다면 결함 노드를 복구하도록 동작한다.
도 2에 도시한 바와 같은 노드 계산 칩(112)은 네트워크 하드웨어(290)를 더 포함한다. 네트워크 하드웨어(290)는 토러스(292), 트리(294) 및 글로벌 인터럽트(296) 네트워크에 대한 하드웨어를 포함한다. 블루진/L의 네트워크는 위에서 간략히 언급한 바와 같이 시스템 내의 다른 노드들과 통신하는 계산 노드용으로 사용된다.
도 3은 계산 칩(112)의 리셋 기능을 도시한 블럭도이다. 계산 칩(112)은 계산 칩(112)의 진단 기능을 향상시키기 위해 설계된 수 개의 개별 리셋을 포함한다. 바람직한 실시예에서, 이러한 리셋은 본 명세서에 기술되는 결함 복구를 위해 사용된다. 리셋의 목적을 위해, 계산 칩 상의 하드웨어는 일반적으로 ASIC 하드웨어(310), 네트워크 하드웨어(290), 및 DDR 제어기(250)로 분할될 수 있다. ASIC 하드웨어(310)는 네트워크 하드웨어(290) 또는 DDR 제어기(250)의 부분으로서 포함되지 않은 잔존하는 ASIC 하드웨어이다. 컨피그 레지스터(270)는 전술한 바와 같이 하드웨어를 리셋하기 위한 리셋 비트(도시안됨)를 유지한다. 컨피그 레지스터(270) 내의 리셋 비트는 도 3에 도시된 바와 같은 리셋 출력을 구동시킨다. ASIC 하드웨어(310)는 ASIC 하드웨어 리셋(312)에 의해 리셋되며, 상기 네트워크 하드웨어(720)는 네트워크 하드웨어 리셋(314)에 의해 리셋되며, DDR 제어기는 DDR 리셋(316)에 의해 리셋된다. 리셋은 관련된 하드웨어를 초기화를 위한 공지 상태로 설정하기 위해 전형적인 리셋 기능을 제공한다.
바람직한 실시예에서, 계산 칩(112) 상의 다수의 리셋은 병렬 컴퓨터 시스템의 파티션 내에서 실행중인 애프리케이션 또는 작업을 종료하지 않고도 약간의 소프트 결함으로부터 복구를 위해 사용된다. 결함 노드를 갖는 파티션 상에서 동작 하는 애플리케이션 소프트웨어는 노드의 복구 동안 대기될 필요가 있지만 만일 복구가 성공적이라면, 그 애플리케이션은 노드의 복구 후에 재시작 없이도 지속될 수 있다. 바람직한 실시예에서, 사전 결정된 간격에서 각각의 노드의 메일 박스 내에 하트 비트 플래그를 제공하기 위해 타이머가 셋업된다. 서비스 노드 내의 하트 비트 모니터는 노드 결함이 발생하는지를 결정하기 위해 각각의 노드 내의 하트 비트 플래그를 모니터링하여 리셋한다. 노드 상에 하트 비트가 존재하지 않는다면, 서비스 노드 상의 결함 하드웨어 복구 메카니즘은 결함 노드 상의 네트워크 하드웨어를 사용하는 시스템 내의 다른 노드들을 방해하지 않도록 네트워크 하드웨어를 리셋하지 않고도 노드를 복구할 시도를 행한다. 네트워크 하드웨어 리셋은 파티션 상에서 실행되는 애플리케이션의 재시작을 필요로 하는데, 그 이유는 토러스 및 논리적 트리 네트워크에서 인접 노드들 간의 노드를 통한 정보 흐름을 방해할 것이기 때문이다. 주목할 것은 결함 복구가 네트워크 하드웨어와 관련된 결함을 위한 것이 아니라는 것이다. 네트워크 하드웨어 결함은 상호접속된 노드들에 의해 표시되는 다수의 결함을 야기할 것이며 기술되지 않은 다른 수단을 필요로 할 것이다.
하트 비트의 부족을 검출한 후, 결함 하드웨어 복구 메카니즘이 SRAM 내로 진단 코드를 성공적으로 로딩할 수 있고 DDR 제어기 및 메모리가 동작가능하다면, DDR 제어기는 리셋되고 동작 소프트웨어 커널은 그 노드 내로 재로딩된다. 다음, 그 노드는 전체 ASIC을 리셋하지 않고도 지속할 수 있다. 만약 결함 하드웨어 복구 메카니즘이 SRAM 내로 진단 코드를 성공적으로 로딩할 수 없다면 ASIC 리셋은 네트워크 하드웨어를 제외한 ASIC을 리셋하는 데 사용되며, DDR은 리셋되고 동작 소프트웨어 커널은 그 노드 내로 재로딩된다. 이러한 과정은 결함으로부터 복구를 위해 최소량의 노드가 리셋되도록 할 수 있다. 계산 노드는 다음에 동작을 재개할 수 있으며, 파티션 내의 잔존 노드들은 개시중인 애플리케이션을 재시작하지 않고도 실행중인 애플리케이션의 동작을 재개할 수 있다.
도 4는 실시예에 따른 결함 복구를 위한 계산 노드 상의 하트 비트를 셋업하는 방법(400)을 도시하고 있다. 이 방법은 서비스 노드 내의 하트 비트 모니터에 하트 비트를 제공하기 위해 계산 노드 상에서 수행되는 동작과 관련되지만, 이 방법은 서비스 노드 또는 계산 노드의 부트업 과정의 다른 부분에 의해 개시될 수 있다. 계산 노드는 서비스 노드의 제어 시스템으로부터 하트 비트 시간을 수신하며(단계 410), 하트 비트 시간을 사용하여 타이머를 설정한다(단계 420). 계산 노드 내의 타이머가 하트 비트를 검출할 때마다 하트 비트 플래그는 계산 노드 하트 비트를 체크하기 위해 하트 비트 모니터에 대한 SRAM 메일 박스 내에서 세트된다(단계 430). 이 방법은 다음에 완료된다.
도 5는 실시예에 따른 병렬 컴퓨터 시스템 상에서 결함 복구를 위한 방법(500)을 도시하고 있다. 이 방법에서 기술되는 동작들은 도 1을 참조하여 기술되는 결함 하드웨어 복구 메카니즘(142) 및 하트 비트 모니터(144)에 의해 수행된다. 하트 비트 모니터는 전술한 바와 같은 하트 비트 플래그를 체킹함으로써 컴퓨터 시스템 내의 각각의 노드의 하트 비트를 모니터링한다(단계 510). 결함 노드가 존재하지 않는다면(단계 520=아니오), 단계 510으로 리턴하여 모니터링을 지속한다. 하트 비트 플래그의 부족에 의해 표시되는 바와 같이 결함 노드가 존재하지 않는다면(단계 520=예), 파티션 내의 다른 노드들 및 애플리케이션 소프트웨어에 이 노드가 사용불가능하다는 것을 통지한다(단계 530). 다음에 노드의 동작을 체크하기 위해 결함 노드의 SRAM 내로 진단 코드를 로딩하는 시도를 행한다(단계 540). 만약 로딩이 성공적이지 않다면(단계 550=아니오), 네트워크 하드웨어를 제외한 ASIC을 리셋하고(단계 555), SRAM에 DDR을 리셋하기 위한 코드를 로딩하고(단계 560), 처리를 지속하기 위해 노드에 대해 특정 시스템 커널을 재로딩한다(단계 565). 만약 로딩이 성공적이라면(단계 550=예), DDR을 체크하기 위해 진단을 실행한다(단계 570). 만약 DDR이 OK이라면(단계 575=예), 서비스 노드에 ASIC 에러를 출력하고(단계 580), 처리를 지속하기 위해 노드에 대해 특정 시스템 커널을 재로딩한다(단계 565). 만약 DDR이 OK가 아니라면(단계 575=아니오), SRAM에 DDR을 리셋하기 위한 코드를 로딩하며(단계 560) 처리를 지속하기 위해 노드에 대해 특정의 시스템 커널을 재로딩한다(단계 565). 이 방법은 다음에 종료된다.
전술한 바와 같이, 실시예는 대용량 병렬 슈퍼 컴퓨터 시스템 내의 노드들의 파티션 상에서 실행되는 작업을 종료하지 않고도 소프트 결함으로부터 병렬 컴퓨터 시스템의 노드 상의 결함 복구에 대한 방법 및 장치를 제공한다. 본 발명의 실시예는 서비스 노드가 결함 노드의 비 네트워크 부분을 리셋할 수 있게 하며, 그에 따라 파티션 내의 다른 노드들은 시스템 고장 시간을 감소시켜 컴퓨터 시스템의 효율을 증가시키기 위해 영향을 받지 않는다.
당업자는 본 발명의 영역 내에서 여러 변형이 가능하다는 것을 이해할 것이다. 따라서, 본 발명이 바람직한 실시예를 참조하여 도시되고 기술되지만, 당업자 라면 본 발명의 사상 및 범주 내에서 형태 및 세부적인 변경이 가능하다는 것을 이해할 것이다.

Claims (10)

  1. 병렬 컴퓨터 시스템으로서,
    컴퓨터 노드의 잔존 부분을 리셋하기 위한 리셋 하드웨어와는 별개로 컴퓨터 노드의 네트워크 하드웨어 부분을 리셋하기 위한 리셋 하드웨어를 갖는 복수의 계산 노드와,
    네트워크를 통해 상기 계산 노드의 동작을 제어하는 서비스 노드를 포함하며,
    상기 서비스 노드는 결함 계산 노드를 검출하는 결함 하드웨어 복구 메카니즘을 포함하며,
    상기 결함 하드웨어 복구 메카니즘은 상기 결함 계산 노드 상에서의 결함을 복구하기 위해 상기 네트워크 하드웨어 부분을 리셋하지 않고도 상기 결함 계산 노드의 상기 잔존 부분을 리셋하는
    병렬 컴퓨터 시스템.
  2. 제 1 항에 있어서,
    상기 복수의 계산 노드는 계산 노드가 적절히 동작하고 있다는 것을 나타내기 위해 계산 노드의 메모리에서 하트 비트 플래그를 사전결정된 간격으로 세트하기 위한 타이머를 더 포함하는
    병렬 컴퓨터 시스템.
  3. 제 2 항에 있어서,
    상기 결함 하드웨어 복구 메카니즘은 세트된 하트 비트 플래그의 부족에 의해 상기 복수의 계산 노드들 중의 결함 계산 노드를 검출하기 위해 상기 계산 노드들 내에서 상기 하트 비트 플래그를 모니터링하는 하트 비트 모니터를 더 포함하는
    병렬 컴퓨터 시스템.
  4. 제 3 항에 있어서,
    상기 결함 계산 노드 상에서의 결함은 상기 하트 비트 모니터에 의해 검출되는
    병렬 컴퓨터 시스템.
  5. 제 3 항에 있어서,
    상기 하트 비트 플래그는 상기 계산 노드 상의 정적 메모리 내에 저장되며, 상기 결함 하드웨어 복구 메카니즘은 상기 계산 노드 상의 JTAG 인터페이스를 통해 상기 정적 메모리에 액세스하는 이더넷 네트워크를 통해 상기 정적 메모리를 판독 하며, 상기 병렬 컴퓨터 시스템은 다수의 인접 배열된 컴퓨터 랙 내에 하우징된 대량의 계산 노드를 갖는 대용량 병렬 컴퓨터 시스템인
    병렬 컴퓨터 시스템.
  6. 제 1 항에 있어서,
    상기 계산 노드의 상기 잔존부는 ASIC 프로세서의 DDR 메모리 제어기이며 상기 병렬 컴퓨터 시스템은 다수의 인접 배열된 컴퓨터 랙 내에 하우징된 대량의 계산 노드를 갖는 대용량 병렬 컴퓨터 시스템인
    병렬 컴퓨터 시스템.
  7. 제어 시스템 네트워크에 의해 서비스 노드에 접속된 복수의 계산 노드를 갖는 병렬 컴퓨터 시스템을 동작시키는 컴퓨터 구현 방법으로서,
    (a) 각각의 노드가 하트 비트를 제공하는 단계와,
    (b) 상기 컴퓨터 시스템의 서비스 노드에서 각각의 계산 노드의 하트 비트를 모니터링하는 단계와,
    (c) 결함이 있는 계산 노드를 포함하는 노드들의 파티션 상에서 실행되는 애플리케이션을 종료시키지 않고도 상기 계산 노드에서 하트 비트의 부족에 의해 표시되는 계산 노드 내의 결함으로부터 복구를 시도하는 단계를 포함하는
    컴퓨터 구현 방법.
  8. 제 7 항에 있어서,
    상기 계산 노드의 하트 비트를 모니터링하는 단계는
    (d) 상기 계산 노드가 상기 서비스 노드로부터 하트 비트 시간을 수신하는 단계와,
    (e) 상기 하트 비트 시간으로 타이머를 설정하는 단계와,
    (f) 상기 타이머의 경과된 하트 비트 시간을 검출하고 상기 계산 노드의 메모리 내에서 하트 비트 플래그를 세팅하는 단계를 포함하는
    컴퓨터 구현 방법.
  9. 제 7 항에 있어서,
    상기 계산 노드 내의 결함으로부터 복구를 시도하는 단계는
    (g) 상기 계산 노드 내로 진단 코드를 로딩하도록 시도하는 단계와,
    (h) 상기 로딩이 성공적이지 않다면, 네트워크 하드웨어 섹션은 제외하되 계산 노드의 모든 섹션을 포함한 계산 노드의 일부분을 리세팅하고, 상기 계산 노드 내의 메모리 제어기를 리세팅하고, 상기 계산 노드 내에 시스템 커널을 로딩하는 단계와,
    (i) 상기 로딩이 성공적이라면, 적절한 동작을 위한 메모리 제어기를 체크하기 위해 상기 진단 코드를 실행하는 단계와,
    (j) 상기 메모리 제어기가 적절히 동작한다면, 메모리 제어기를 리셋하기 위해 상기 계산 노드 내에 코드를 로딩하고 상기 메모리 제어기를 리셋하고 상기 계산 노드에 시스템 커널을 로딩하는 단계를 포함하는
    컴퓨터 구현 방법.
  10. 컴퓨터 판독가능한 프로그램 제품으로서,
    계산 노드에 결함이 발생하는지를 결정하기 위해 병렬 컴퓨터 시스템 내의 복수의 계산 노드를 모니터링하는 결함 하드웨어 복구 메카니즘과,
    상기 결함 하드웨어 복구 메카니즘을 함유한 기록가능한 매체를 포함하며,
    상기 결함 하드웨어 복구 메카니즘은 결함 계산 노드 상의 결함으로부터 복구를 위해 상기 계산 노드의 네트워크 하드웨어 부분을 리셋하지 않고도 결함 계산 노드의 잔존 부분을 리셋하는
    컴퓨터 판독가능한 프로그램 제품.
KR1020097010832A 2007-02-02 2008-02-01 병렬 컴퓨터 시스템과 병렬 컴퓨터 시스템 구동 방법과 컴퓨터 판독가능한 기록 매체 KR101081092B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/670,803 2007-02-02
US11/670,803 US7631169B2 (en) 2007-02-02 2007-02-02 Fault recovery on a massively parallel computer system to handle node failures without ending an executing job

Publications (2)

Publication Number Publication Date
KR20090084897A true KR20090084897A (ko) 2009-08-05
KR101081092B1 KR101081092B1 (ko) 2011-11-07

Family

ID=39671965

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097010832A KR101081092B1 (ko) 2007-02-02 2008-02-01 병렬 컴퓨터 시스템과 병렬 컴퓨터 시스템 구동 방법과 컴퓨터 판독가능한 기록 매체

Country Status (5)

Country Link
US (1) US7631169B2 (ko)
EP (1) EP2115588B1 (ko)
KR (1) KR101081092B1 (ko)
CN (1) CN101589370B (ko)
WO (1) WO2008092952A2 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7644254B2 (en) 2007-04-18 2010-01-05 International Business Machines Corporation Routing data packets with hint bit for each six orthogonal directions in three dimensional torus computer system set to avoid nodes in problem list
US9880970B2 (en) * 2007-10-03 2018-01-30 William L. Bain Method for implementing highly available data parallel operations on a computational grid
JP5213142B2 (ja) * 2009-09-15 2013-06-19 国立大学法人大阪大学 芳香族化合物の酸化反応生成物の製造方法
JP2012230597A (ja) * 2011-04-27 2012-11-22 Fujitsu Ltd 処理装置,制御装置および処理方法
CN103034507A (zh) * 2011-10-09 2013-04-10 上海共联通信信息发展有限公司 一种电话程控交换机的芯片程序修复方法
US8903893B2 (en) * 2011-11-15 2014-12-02 International Business Machines Corporation Diagnostic heartbeating in a distributed data processing environment
US9723063B2 (en) * 2011-11-28 2017-08-01 Vuclip (Singapore) Pte. Ltd. Method of determining transport parameters for efficient data transport across a network
US9389657B2 (en) * 2011-12-29 2016-07-12 Intel Corporation Reset of multi-core processing system
CN102902615B (zh) * 2012-09-18 2016-12-21 曙光信息产业(北京)有限公司 一种Lustre并行文件系统错误报警方法及其系统
CN103136086A (zh) * 2013-03-06 2013-06-05 中国人民解放军国防科学技术大学 超级并行计算机的插框级紧耦合监控管理系统
US10102032B2 (en) 2014-05-29 2018-10-16 Raytheon Company Fast transitions for massively parallel computing applications
US10007586B2 (en) 2016-01-08 2018-06-26 Microsoft Technology Licensing, Llc Deferred server recovery in computing systems
US10078559B2 (en) * 2016-05-27 2018-09-18 Raytheon Company System and method for input data fault recovery in a massively parallel real time computing system
JP6885193B2 (ja) * 2017-05-12 2021-06-09 富士通株式会社 並列処理装置、ジョブ管理方法、およびジョブ管理プログラム
CN109067567B (zh) * 2018-07-12 2021-11-05 中铁磁浮科技(成都)有限公司 一种网络通信中断诊断方法
CN112527710B (zh) * 2020-12-17 2023-07-25 西安邮电大学 一种jtag数据捕获分析系统
CN113726553A (zh) * 2021-07-29 2021-11-30 浪潮电子信息产业股份有限公司 一种节点故障恢复方法、装置、电子设备及可读存储介质
CN113760592B (zh) * 2021-07-30 2024-02-27 郑州云海信息技术有限公司 一种节点内核检测方法和相关装置
CN113917999A (zh) * 2021-08-31 2022-01-11 湖南同有飞骥科技有限公司 一种控制板冗余切换和恢复的方法及装置
CN115658368B (zh) * 2022-11-11 2023-03-28 北京奥星贝斯科技有限公司 一种故障处理方法、装置、存储介质及电子设备

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6134655A (en) * 1992-05-13 2000-10-17 Comverge Technologies, Inc. Method and apparatus for initializing a microprocessor to insure fault-free operation
US5513319A (en) * 1993-07-02 1996-04-30 Dell Usa, L.P. Watchdog timer for computer system reset
US6530047B1 (en) * 1999-10-01 2003-03-04 Stmicroelectronics Limited System and method for communicating with an integrated circuit
US6678840B1 (en) * 2000-08-31 2004-01-13 Hewlett-Packard Development Company, Lp. Fault containment and error recovery in a scalable multiprocessor
US6629257B1 (en) * 2000-08-31 2003-09-30 Hewlett-Packard Development Company, L.P. System and method to automatically reset and initialize a clocking subsystem with reset signaling technique
US20020065646A1 (en) * 2000-09-11 2002-05-30 Waldie Arthur H. Embedded debug system using an auxiliary instruction queue
US7555566B2 (en) * 2001-02-24 2009-06-30 International Business Machines Corporation Massively parallel supercomputer
US6711700B2 (en) * 2001-04-23 2004-03-23 International Business Machines Corporation Method and apparatus to monitor the run state of a multi-partitioned computer system
US7421478B1 (en) * 2002-03-07 2008-09-02 Cisco Technology, Inc. Method and apparatus for exchanging heartbeat messages and configuration information between nodes operating in a master-slave configuration
EP1351145A1 (en) * 2002-04-04 2003-10-08 Hewlett-Packard Company Computer failure recovery and notification system
JP3640187B2 (ja) 2002-07-29 2005-04-20 日本電気株式会社 マルチプロセッサシステムの障害処理方法、マルチプロセッサシステム及びノード
US7191372B1 (en) * 2004-08-27 2007-03-13 Xilinx, Inc. Integrated data download
US7360253B2 (en) * 2004-12-23 2008-04-15 Microsoft Corporation System and method to lock TPM always ‘on’ using a monitor
KR100687739B1 (ko) * 2005-03-29 2007-02-27 한국전자통신연구원 이더넷 수동 광 통신망을 위한 링크 성능 감시 및 활성화상태 진단 방법
US7523350B2 (en) * 2005-04-01 2009-04-21 Dot Hill Systems Corporation Timer-based apparatus and method for fault-tolerant booting of a storage controller

Also Published As

Publication number Publication date
WO2008092952A3 (en) 2008-11-20
EP2115588B1 (en) 2015-06-10
KR101081092B1 (ko) 2011-11-07
EP2115588A2 (en) 2009-11-11
CN101589370A (zh) 2009-11-25
CN101589370B (zh) 2012-05-02
US20080189573A1 (en) 2008-08-07
US7631169B2 (en) 2009-12-08
WO2008092952A2 (en) 2008-08-07

Similar Documents

Publication Publication Date Title
KR101081092B1 (ko) 병렬 컴퓨터 시스템과 병렬 컴퓨터 시스템 구동 방법과 컴퓨터 판독가능한 기록 매체
US9477564B2 (en) Method and apparatus for dynamic node healing in a multi-node environment
US7620841B2 (en) Re-utilizing partially failed resources as network resources
JP4641546B2 (ja) 入出力(i/o)エラーをハンドリングするための方法及びシステム
US8713350B2 (en) Handling errors in a data processing system
TWI446161B (zh) 處理一多處理器資訊處理系統之一故障處理器的裝置及方法
US7644254B2 (en) Routing data packets with hint bit for each six orthogonal directions in three dimensional torus computer system set to avoid nodes in problem list
CN105700907A (zh) 利用针对本地检查点的卸载程序模型
US20150019900A1 (en) Tolerating failures using concurrency in a cluster
WO1991020035A1 (en) Control and maintenance architecture for a highly parallel multiprocessor system
US7434102B2 (en) High density compute center resilient booting
US10896087B2 (en) System for configurable error handling
JP5376058B2 (ja) システム制御装置、情報処理システム及び情報処理システムのデータ退避及び復元方法
US20100085871A1 (en) Resource leak recovery in a multi-node computer system
US8537662B2 (en) Global detection of resource leaks in a multi-node computer system
JP2004302731A (ja) 情報処理装置および障害診断方法
CN107291653B (zh) 一种多处理器系统及配置多处理器系统的方法
US11971789B2 (en) Systems, methods, and apparatus for crash recovery in storage devices
US10983879B1 (en) System and method for managing recovery of multi-controller NVMe drives
US20240103971A1 (en) Systems and methods for error recovery in rebootless firmware updates
US20240095020A1 (en) Systems and methods for use of a firmware update proxy
US20240103846A1 (en) Systems and methods for coordinated firmware update using multiple remote access controllers
CN117742932A (zh) 数据处理系统

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
LAPS Lapse due to unpaid annual fee