KR100537582B1 - 신규의 초병렬 수퍼컴퓨터 - Google Patents

신규의 초병렬 수퍼컴퓨터 Download PDF

Info

Publication number
KR100537582B1
KR100537582B1 KR10-2003-7010920A KR20037010920A KR100537582B1 KR 100537582 B1 KR100537582 B1 KR 100537582B1 KR 20037010920 A KR20037010920 A KR 20037010920A KR 100537582 B1 KR100537582 B1 KR 100537582B1
Authority
KR
South Korea
Prior art keywords
network
nodes
node
processing
global
Prior art date
Application number
KR10-2003-7010920A
Other languages
English (en)
Other versions
KR20030077033A (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 KR20030077033A publication Critical patent/KR20030077033A/ko
Application granted granted Critical
Publication of KR100537582B1 publication Critical patent/KR100537582B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05KPRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
    • H05K7/00Constructional details common to different types of electric apparatus
    • H05K7/20Modifications to facilitate cooling, ventilating, or heating
    • H05K7/20709Modifications to facilitate cooling, ventilating, or heating for server racks or cabinets; for data centers, e.g. 19-inch computer racks
    • H05K7/20836Thermal management, e.g. server temperature control
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F04POSITIVE - DISPLACEMENT MACHINES FOR LIQUIDS; PUMPS FOR LIQUIDS OR ELASTIC FLUIDS
    • F04DNON-POSITIVE-DISPLACEMENT PUMPS
    • F04D25/00Pumping installations or systems
    • F04D25/16Combinations of two or more pumps ; Producing two or more separate gas flows
    • F04D25/166Combinations of two or more pumps ; Producing two or more separate gas flows using fans
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F04POSITIVE - DISPLACEMENT MACHINES FOR LIQUIDS; PUMPS FOR LIQUIDS OR ELASTIC FLUIDS
    • F04DNON-POSITIVE-DISPLACEMENT PUMPS
    • F04D27/00Control, e.g. regulation, of pumps, pumping installations or pumping systems specially adapted for elastic fluids
    • F04D27/004Control, e.g. regulation, of pumps, pumping installations or pumping systems specially adapted for elastic fluids by varying driving speed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17381Two dimensional, e.g. mesh, torus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • G06F17/142Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • G09G5/006Details of the interface to the display terminal
    • G09G5/008Clock recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/02Speed or phase control by the received code signals, the signals containing no special synchronisation information
    • H04L7/033Speed or phase control by the received code signals, the signals containing no special synchronisation information using the transitions of the received signal to control the phase of the synchronising-signal-generating means, e.g. using a phase-locked loop
    • H04L7/0337Selecting between two or more discretely delayed clocks or selecting between two or more discretely delayed received code signals
    • H04L7/0338Selecting between two or more discretely delayed clocks or selecting between two or more discretely delayed received code signals the correction of the phase error being performed by a feed forward loop
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F24HEATING; RANGES; VENTILATING
    • F24FAIR-CONDITIONING; AIR-HUMIDIFICATION; VENTILATION; USE OF AIR CURRENTS FOR SCREENING
    • F24F11/00Control or safety arrangements
    • F24F11/70Control systems characterised by their outputs; Constructional details thereof
    • F24F11/72Control systems characterised by their outputs; Constructional details thereof for controlling the supply of treated air, e.g. its pressure
    • F24F11/74Control systems characterised by their outputs; Constructional details thereof for controlling the supply of treated air, e.g. its pressure for controlling air flow rate or air velocity
    • F24F11/77Control systems characterised by their outputs; Constructional details thereof for controlling the supply of treated air, e.g. its pressure for controlling air flow rate or air velocity by controlling the speed of ventilators
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02BCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
    • Y02B30/00Energy efficient heating, ventilation or air conditioning [HVAC]
    • Y02B30/70Efficient control or regulation technologies, e.g. for control of refrigerant flow, motor or heating

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mechanical Engineering (AREA)
  • Mathematical Analysis (AREA)
  • Discrete Mathematics (AREA)
  • Thermal Sciences (AREA)
  • Algebra (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multi Processors (AREA)
  • Error Detection And Correction (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)

Abstract

본 발명에 따른 신규의 수백 테라 OPS급 초병렬 수퍼컴퓨터는 시스템-온-칩 기술에 기반한 노드 아키텍처를 포함하는 것으로서, 각각의 처리 노드는 단 하나의 ASIC(Application Specific Integrated Circuit)을 포함한다. ASIC 노드(20)는 최적의 방식으로 패킷 통신 처리 능력은 극대화시키면서 지연은 최소화시키는 다수의 독립적인 네트워크(26)에 의해 상호 연결되어 있다. 이 다수의 네트워크는 병렬 알고리즘 메시지 패싱(parallel algorithm message passing)을 위한 3개의 고속 네트워크를 포함할 수 있는 데, 이에는 토러스 네트워크, 글로벌 트리 네트워크, 및 글로벌 배리어 및 통지 기능을 제공하는 글로벌 비동기 네트워크가 포함된다. 이들 다수의 독립적인 네트워크는 알고리즘 처리 성능을 최적화하기 위해 알고리즘의 요구 사항이나 단계에 따라 협동적으로 또는 독립적으로 이용될 수 있다.

Description

신규의 초병렬 수퍼컴퓨터{A NOVEL MASSIVELY PARALLEL SUPERCOMPUTER}
관련 출원의 상호 참조
본 발명은 공동 소유의 동시 계류 중에 있는, 2001년 2월 24일자로 출원된 발명의 명칭이 초병렬 수퍼컴퓨터(MASSIVELY PARALLEL SUPERCOMPUTER)인 미국 가특허 출원 제60/271,124호의 우선권을 향유하는 것으로서, 그의 전체 내용 및 개시 사항은 여기에 인용함으로써 그 전부가 본 명세서에 기재되어 있는 것처럼 포함된다는 것은 분명하다. 본 특허 출원은 그 밖에 이와 동일자로 출원된 이하의 공동 소유의 동시 계류 중에 있는 미국 특허 출원들과도 관련된 것으로서, 그 각각의 전체 내용 및 개시 사항은 여기에 인용함으로써 그 전부가 본 명세서에 기재되어 있는 것처럼 분명히 포함된다. 즉, 발명의 명칭이 "Class Networking Routing(클래스 네트워킹 라우팅)"인 미국 특허 출원 제 호(YOR920020027US1, YOR920020044US1(15270)), 발명의 명칭이 "A Golbal Tree Network for Computing Structures(계산 구조용의 글로벌 트리 네트워크)"인 미국 특허 출원 제 호(YOR920020028US1(15271)), 발명의 명칭이 "Global Interrupt and Barrier Networks(글로벌 인터럽트 및 배리어 네트워크)"인 미국 특허 출원 제 호(YOR920020029US1(15272)), 발명의 명칭이 "Optimized Scalable Network Switch(최적화된 확장가능한 네트워크 스위치)"인 미국 특허 출원 제 호(YOR920020030US1(15273)), 발명의 명칭이 "Arithmetic Functions in Torus and Tree Networks(토러스 및 트리 네트워크에서의 산술 함수)"인 미국 특허 출원 제 호(YOR920020031US1, YOR920020032US1(15258)), 발명의 명칭이 "Data Capture Technique for High Speed Signaling(고속 시그널링을 위한 데이터 캡처 기술)"인 미국 특허 출원 제 호(YOR920020033US1, YOR920020034US1(15259)), 발명의 명칭이 "Managing Coherence Via Put/Get Windows(보내기/가져오기 윈도우를 통한 코히런스 관리)"인 미국 특허 출원 제 호(YOR920020035US1(15260)), 발명의 명칭이 "Low Latency Memory Acess And Synchronization(저지연의 메모리 접근 및 동기화)"인 미국 특허 출원 제 호(YOR920020036US1, YOR920020037US1(15261)), 발명의 명칭이 "Twin-Tailed Fail-Over for Fileservers Maintaining Full Performance in the Presence of Failure(장애의 존재 시에 전체 성능을 유지하는 파일 서버의 트윈-테일 방식의 페일-오버)"인 미국 특허 출원 제 호(YOR920020038US1(15276)), 발명의 명칭이 "Fault Isolation Through No-Overhead Link Level Checksums(오버헤드없는 링크 레벨의 체크섬을 통한 고장 격리)"인 미국 특허 출원 제 호(YOR920020039US1(15277)), 발명의 명칭이 "Ethernet Addressing Via Physical Location for Massively Parallel Systems(초병렬 시스템을 위한 물리적 위치를 통한 이더넷 어드레싱)"인 미국 특허 출원 제 호(YOR920020040US1(15278)), 발명의 명칭이 "Fault Tolerance in a Supercomputer Through Dynamic Repartitioning(동적 재분할을 통한 수퍼컴퓨터에서의 고장 허용)"인 미국 특허 출원 제 호(YOR920020041US1(15274)), 발명의 명칭이 "Checkpointing Filesystem(체크포인팅 파일 시스템)"인 미국 특허 출원 제 호(YOR920020042US1(15279)), 발명의 명칭이 "Efficient Implementation of Multidimensional Fast Fourier Transform on a Diustributed-Memory Parallel Multi-Node Computer(분산 메모리 병렬 멀티노드 컴퓨터상에서의 다차원 고속 푸리에 변환의 효율적인 구현)"인 미국 특허 출원 제 호(YOR920020043US1(15262)), 발명의 명칭이 "A Novel Massively Parallel Supercomputer(신규의 초병렬 수퍼컴퓨터)"인 미국 특허 출원 제 호(YOR9-200102111US2(15275)), 및 발명의 명칭이 "Smart Fan Modules and System(스마트 팬 모듈 및 시스템)"인 미국 특허 출원 제 호(YOR920020045US1(15263))가 있다.
본 발명은 일반적으로 수퍼컴퓨터 시스템 및 아키텍처의 분야에 관한 것으로서, 보다 상세하게는 신규의 초병렬 수퍼컴퓨터(massively parallel supercomputer)에 관한 것이다.
초병렬 컴퓨팅 구조("초대규모 컴퓨터" 또는 "수퍼컴퓨터"라고도 함)는 수많은 계산 노드(compute node)를 그리드(grid) 구성, 격자(lattice) 구성 또는 토러스(torus) 구성과 같이 일반적으로 아주 규칙적인 구조의 형태로 상호 연결시킨다. 가장 비용 효율적인 초대규모 컴퓨터의 종래의 구현 방법은 유니프로세서(uni-processor) 구성 또는 대칭형 멀티프로세서(symmetric multiprocessor; SMP) 구성으로 구성된 표준 프로세서들을 사용하는 것이었으며, 여기서 SMP는 메시지 패싱 통신(message passing communications)을 지원하기 위해 네트워크와 상호 연결되어 있다. 오늘날, 이러한 수퍼컴퓨팅 머신(supercomputing machine)은 기가 OPS급(gigaOPS-scale)을 달성하는 컴퓨팅 성능을 나타낸다. 그렇지만, 컴퓨터 산업에서 초대규모 컴퓨터를 구축하는 현재의 SMP 클러스터 방식에 있어서 2가지 오래된 문제점, 즉 (1) 클록 사이클 단위로 측정한 프로세서와 메모리 사이의 거리가 점점 증가하는 문제점, 및 (2) 주류인 유니-프로세서 또는 대칭형 멀티-프로세서(SMP)로 구축된 병렬 컴퓨터의 높은 전력 밀도의 문제점이 있다.
첫번째 문제점에서, [지연 시간 메트릭(latency metric) 및 대역폭 메트릭(bandwidth metric) 모두에 의해 측정되는] 메모리까지의 거리(distance to memory) 문제가 컴퓨터 설계자가 직면하고 있는 중대한 문제인 데, 그 이유는 그것이 메모리 속도 및 통신 대역폭의 매년 증가율을 훨씬 넘는 증가율로 마이크로프로세서의 성능이 증가한다는 문제를 해소시켜주기 때문이다. 메모리 계층 구조(memory hierarchy)(캐시) 및 지연 시간 은닉(latency hiding) 기술이 대표적인 해결책을 제공하지만, 이들 방법에서는 양호한 효율성을 달성하기 위해 [즉, 명령어 파이프라인 버블(instruction pipeline bubble) 및 메모리 국지성(memory locality)을 최소화하기 위해] 애플리케이션 프로그래머가 아주 규칙적인 프로그램 및 메모리 참조 패턴(memory reference pattern)을 이용해야만 한다. 따라서, 이 기술은 최신의 응용 기술[예를 들면, 비구조화된 메쉬(unstructured mesh) 및 객체 지향 프로그래밍의 복잡한 데이터 구조]에는 적합하지 않다. 두번째 문제점에서, 높은 전력 밀도는 이러한 기가 OPS급 컴퓨터의 고비용 및 그의 시설 요건(전력, 냉각 및 설치 공간(floor space))과 관계가 있다.
프로세서 사이클 단위로 측정되는 메모리 지연 시간(latency to memory)을 적어도 10배 만큼 감소시키고 또 테라 OPS급의 초병렬 컴퓨팅을 저비용, 저전력 및 적은 풋프린트(footprint)로 최적화하는 초대규모 수퍼컴퓨팅 아키텍처를 제공한다면 아주 바람직할 것이다.
많은 프로세서가 단일 ASIC 내에 집적될 수 있는 컴퓨팅 모델을 가능하게 해주는 VLSI 기술의 진보를 활용하는 초대규모 수퍼컴퓨팅 아키텍처를 제공한다면 아주 바람직할 것이다.
여러가지 레벨의 확장성을 최적의 방식으로 달성하기 위한 처리 노드들의 독자적인 상호 연결을 포함하는 초대규모 수퍼컴퓨팅 아키텍처를 제공한다면 아주 바람직할 것이다.
글로벌 리덕션(global reduction)의 계산, 데이터의 분산, 동기화, 및 제한된 자원의 공유를 효율적이면서 신뢰성있게 행하도록 최적화된 처리 노드들의 독자적인 상호 연결을 포함하는 초대규모 수퍼컴퓨팅 아키텍처를 제공한다면 아주 바람직할 것이다.
도 1은 8개의 계산 노드(computing node)를 상호 연결시키는 3차원 토러스의 작은 일부분(10)을 나타낸 도면이다.
도 2는 본 발명의 원리들에 따른 계산 노드 ASIC을 나타낸 상세 블록도이다.
도 3은 도 2의 링크 버퍼 및 버추얼 컷-쓰루(virtual cut-through) 라우팅 제어 블록(26)을 나타낸 상세 블록도이다.
도 4는 단일 노드의 메모리 시스템을 나타낸 상세 블록도이다.
도 5는 본 발명에 따른 글로벌 신호 및 외부 네트워크 연결부를 포함한 글로벌 결합 트리 네트워크(global combining tree network)를 나타낸 도면이다.
도 6은 본 발명의 원리들에 따른 글로벌 결합 트리 및 배리어 네트워크(Barrier Network)를 나타낸 도면이다.
도 7은 단일 토러스 라우터(70)의 기본적인 아키텍처를 나타낸 도면이다.
도 8a는 도 7의 링크 입력 회로부(72)의 전형적인 실시예의 상세도이고, 도 8b는 도 7의 링크 출력 회로부(74)의 전형적인 실시예의 상세도이며, 도 8c는 도 7의 로컬 네트워크 주입 회로(local network injection circuit)(73)의 전형적인 실시예를 나타낸 상세도이고, 도 8d는 도 7의 로컬 네트워크 수신 회로(76)의 전형적인 실시예를 나타낸 상세도이다.
도 9는 본 발명의 양호한 실시예에 따른 전송 패킷(100)의 포맷을 나타낸 도면이다.
도 10은 본 발명의 초대규모의 확장가능한 수퍼컴퓨팅 머신을 나타낸 상위 개념도이다.
도 11은 본 발명에 따른 글로벌 클록 분배 시스템을 나타낸 도면이다.
도 12a는 계산 카드의 프로세서 노드 및 트리 연결부를 나타낸 개략도이고, 도 12b는 I/O 카드의 트리 링크 연결부를 나타낸 도면이다.
도 13은 본 발명에 따른 랙(rack) 내부에서의 기본적인 공기 흐름을 나타낸 도면이다.
도 14는 본 발명에 따른 토러스 및 트리의 한가지 가능한 물리적 라우팅을 나타낸 도면이다.
도 15는 본 발명에 따른 시스템 재분할을 제어하는 시스템 링크 칩 및 동작을 나타낸 도면이다.
도 16은 본 발명에 따른 정규 분할(regular partitioning) 및 분리 분할(split partitioning) 모두의 일례를 나타낸 것으로서, 미드플레인이 어떻게 격리될 수 있는지를 나타내고 있다.
도 17은 2개의 노드를 상호 연결시키는 케이블의 양단부를 구동하는 한 쌍의 차동형 동시 양방향 구동기/수신기 회로(450)의 블록도이다.
도 18a 및 도 18b는 각각 저전력으로 신뢰성있는 고속 직렬 데이터 캡처를 위한 수신 매크로 블록 및 송신 매크로 블록을 나타낸 것이다.
도 19는 페일-오버(Fail-Over)를 갖는 트윈-테일(Twin-Tail) SCSI RAID의 개념상의 반복 구조(550)를 나타낸 도면이다.
도 20은 도 6의 글로벌 인터럽트 및 배리어 네트워크(60)에 구현되는 비동기 글로벌 신호 발생에 이용되는 로직을 나타낸 도면이다.
본 발명의 목적은 저비용, 저전력 및 적은 풋프린트로 테라 OPS급 컴퓨팅 및 그 이상을 달성하는 새로운 부류의 분산 메모리의 확장가능한 초병렬 컴퓨터 아키텍처(massively-parallel, distributed-memory scalable computer architecture)를 제공하는 데 있다.
본 발명의 다른 목적은 상호 연결 관점에서 볼 때, 처리 노드의 패킹 밀도를 최대로 할 수 있는 테라 OPS급 컴퓨팅 및 그 이상을 달성하는 새로운 부류의 분산 메모리의 확장가능한 초병렬 컴퓨터 아키텍처를 제공하는 데 있다.
본 발명의 또다른 목적은 많은 프로세서가 하나의 ASIC 내에 집적될 수 있는 컴퓨팅 모델을 가능하게 해주는 VLSI의 기술적 진보를 이용한 초대규모 수퍼컴퓨팅 아키텍처를 제공하는 데 있다. 양호하게는, 대형 서버에서 기대되는 신뢰성(reliability), 가용성(availability) 및 보수성(serviceability)의 시스템 속성을 가지면서, 전력 소모를 최소화하도록 최적화되어 있고 또 현재의 아키텍처에서 달성할 수 있는 것보다 우수한 가격/성능비를 달성할 수 있는 간단한 처리 코어(processing core)가 이용된다. 특히, 각각의 컴퓨팅 노드는 하나의 다이(die) 내에 집적된 2개 이상의 프로세서를 이용하는 시스템-온-칩 ASIC을 포함하며, 그 각각은 모든 시스템 자원에 완벽한 접근(full access)을 한다. 단 하나의 다이에 많은 프로세서가 있음으로써 그 프로세서들을 애플리케이션마다 계산 또는 메시징 I/O 등의 기능들에 적응적으로 분할하는 것이 가능하게 되고 또 양호하게는 한 애플리케이션 내에서의 여러가지 알고리즘 단계에 따라 기능들을 적응적으로 분할하는 것이 가능하게 되며, I/O 또는 다른 프로세서들이 그 이용도가 낮은 경우에는, 계산이나 통신에 참가할 수 있다.
본 발명의 또다른 목적은 복수의 네트워크 상호 연결 패러다임을 포함하는 초대규모 수퍼컴퓨팅 아키텍처를 제공하는 데 있다. 양호하게는, 이들 패러다임에는 3차원 토러스(torus) 네트워크, 글로벌 트리(global tree) 네트워크, 및 글로벌 비동기(global asynchronous) 신호 네트워크가 있다. 이 아키텍처에 의하면 병렬 처리 메시지 패싱 알고리즘이 이들 상호 연결을 개별적으로 또는 동시적으로 이용할 수 있으며, 그 결과 단 하나의 상호 연결 패러다임으로는 달성할 수 없는 성능 레벨(performance level)이 얻어지게 된다. 각 노드 내의 다수의 처리 요소를 동시에 사용함으로써 부가적인 시너지 효과가 얻어지는 데, 이 다수의 처리 요소는 이들 상호 연결들 중 임의의 것 또는 그 모두에 동시적으로 접근할 수 있게 되어 그들 각각을 최고 용량(peak capacity)으로 이용하게 된다.
본 발명의 또다른 목적은 어떤 노드라도 모든 여타 노드로 고대역폭 및 저지연으로 브로드캐스트하여 글로벌 리덕션 연산(global reduction operation)을 수행할 수 있는 기능을 포함한 저지연의 글로벌 통신 기능을 갖는 새로운 부류의 분산 메모리의 확장가능한 초병렬 컴퓨터 아키텍처를 제공하는 데 있다. 이러한 글로벌 통신 기능은 글로벌 덧셈 연산이나 최대값 연산 및 집단 연산(collective operation) 등의 간단한 산술 함수 이외에, 글로벌 "OR" 연산 또는 글로벌 "AND" 연산을 수반하는 여러 부류의 애플리케이션에 유익하다.
본 발명의 부가적인 목적은 초대규모의 확장가능한 컴퓨터 아키텍처에서, 새로운 신규의 기술 및 알고리즘을 초병렬 처리 기술 방식으로 실행가능하게 해주는 중요한 시너지 효과를 제공하는 데 있다.
본 발명의 또다른 목적은 글로벌 집단 연산 및 파일 시스템 I/O 모두를 행하기 위해 트리 상호 연결로 배열된 단일의 물리 네트워크를 제공하는 데 있으며, 이 경우 네트워크의 비용을 분담하기 위해 그 2가지 유형의 통신 모두가 실행된다. 양호하게는, 트리 네트워크는 그 밖에도 I/O 동작과 집단 트래픽을 토러스로부터 분리시키고, 또 임의의 개수의 I/O 서비스 노드를 애플리케이션에 연결하기 위한 수단을 제공한다. 이들 I/O 노드가 물리적으로나 논리적으로 토러스 영역 밖에 있기 때문에, 애플리케이션은 토러스 노드들의 성능의 균형을 깨뜨리지 않고 I/O 및 외부와의 상호 작용을 수행할 수 있다. 이것이 확장성을 크게 향상시키게 되는 데, 왜냐하면 I/O 노드가 모든 비동기적이고 예측불가능한 외부와의 상호 작용을 떠맡고 있는 반면에, 토러스 노드 모두는 예측가능하고 반복가능한 성능을 제공하기 때문이다.
게다가, 이들 기술은 또한 초병렬 수퍼컴퓨터를, 그 개수의 구성을 유연하게 할 수 있는 보다 소규모의 독립적인 병렬 컴퓨터들로 분할하는 것에도 대비하고 있으며, 이 때 각 컴퓨터는 보다 대규모인 머신의 기능들 모두를 보유하고 있다. 엄청난 규모의 이러한 수퍼컴퓨터를 생각해 볼 때, 이들 분할 기술은 또한 본 명세서에서 임의의 고장난 랙(rack) 또는 "미드플레인(midplane)" 칭하는 일부의 랙을 투명한 방식으로 제거, 즉 그를 우회하게 매핑(map around)하는 능력도 제공함으로써, 이들 랙은 그 시스템의 나머지 구성 요소들을 방해함이 없이 보수될 수 있다.
본 발명의 또다른 목적은 물리적 위치를 통한 이더넷 어드레싱 및 이더넷으로의 JTAG 인터페이싱 등의 보수성(serviceability)을 향상시키는 데 있다.
본 발명의 일 태양에 따르면, 다수의 독립적인 네트워크에 의해 n-차원으로 상호 연결된 복수의 처리 노드를 포함하며, 각 노드가 병렬 알고리즘 연산을 수행하는 때 필요에 따라 계산이나 통신 동작을 수행하는 하나 이상의 처리 요소를 포함하는 것인 확장가능한 초병렬 수퍼컴퓨터로서, 다수의 독립적인 네트워크가 노드들 사이에서나 또는 독립적인 분할된 노드의 부분집합들 사이에서 점대점(point-to-point) 및 글로벌 트리 통신을 가능하게 해주는 네트워크들을 포함하며, 병렬 알고리즘 처리 성능을 최적화하기 위해 병렬 알고리즘의 대역폭 및 지연 요건에 따라 상기 노드들을 상호 연결시키는 상기 다수의 독립적인 네트워크의 조합들이 협동적으로 또는 독립적으로 이용되는 것인 초병렬 수퍼컴퓨터가 제공된다.
양호한 실시예에서, 노드 아키텍처는 시스템-온-칩(SOC) 기술에 기반하고 있으며, 여기서 기본적인 구성 요소는 단 하나의 ASIC(Application Specific Integrated Circuit; 주문형 반도체)을 포함하는 완전한 처리 "노드"이다. 이들 처리 노드가 집단을 이루고 있을 때 그 각 노드는 "셀"이라고 하며, 따라서 복수의 동일한 셀로 구성된 이러한 새로운 부류의 초병렬 머신을 "셀룰러" 컴퓨터라고 정의할 수 있다. 각 노드는 양호하게는 복수의(예를 들면, 2개 이상의) 처리 요소를 포함하며, 그 각각은 중앙 처리 장치(CPU), 복수의 부동 소수점 프로세서, 및 복수의 네트워크 인터페이스를 포함하고 있다. 양호하게는, 이러한 다수의 처리 요소들 사이에서의 고속ㆍ저오버헤드의 조정(rapid low overhead coordination)을 위해, 신규의 "로크박스(Lockbox)"가 제공된다.
노드의 SOC ASIC 설계이 계산 성능, 패키징 밀도, 저비용, 그리고 전력 및 냉각 요건의 최적 균형을 가능하게 해준다. 또한, 이러한 설계가 신규의 패키징 기술과 연계하여 전례 없던 레벨까지의 확장성을 가능하게 해준다. 시스템-온-칩 레벨의 집적에 의해 각 노드와 관련된 로컬 메인 스토어(local main store)를 포함하는 모든 레벨의 메모리에 대해 저지연을 가능하게 해줌으로써, 전통적인 수퍼컴퓨터 시스템에 점점 더 영향을 미치는 성능 병목 현상을 극복하게 된다. 각 노드 내에서, 다수의 처리 요소 각각은 임의의 시점에서 해가 구해지고 있거나 실행되고 있는 특정의 알고리즘에 의해 필요에 따라 계산이나 통신의 임의의 조합에 작용하도록 개별적으로 또는 동시적으로 사용될 수 있다.
동작 모드의 한 예에서, 처리 요소들 중 어느 하나는, 다른 하나가 통신 동작을 수행하는 중에, 알고리즘에서 필요로 하는 계산을 수행한다. 이것에 의해 처리 요소들 중 어느 하나의 계산 능력이 복잡한 메시지 정합 프로토콜(message matching protocol)의 부담을 덜어주는 데(off-load) 사용될 수 있는 반면, 다른 처리 요소는 독립적으로 계속하여 계산을 행하게 된다. 복잡한 형태의 메시징 프로토콜에 있어서는, 메시지 데이터가 도달할 때 그 메시지 데이터에 대해 종종 "리덕션 함수(reduction function)"라고 불리우는 특정의 산술 함수가 호출되도록 요구되는 경우가 많다. 어느 한 프로세서, 즉 I/O 프로세서는 제2의 계산 프로세서의 주의를 분산시키지 않고 이들 함수를 수행하도록 구현될 수 있다. 게다가, I/O 프로세서의 계산 능력 때문에, 애플리케이션은 복잡한 리덕션 함수를 임의로 정의할 수 있으며, 증가된 계산 능력을 통신 동작과 관련시키는 새로운 알고리즘 개발을 지원한다. 특정 부류의 병렬 알고리즘, 또는 병렬 계산의 일부에 있어서, 이러한 아키텍처는 2개의 처리 요소 모두의 역량을 통신 동작에 협동적으로 작용하도록 적용할 수 있다. 예를 들어, 대량의 데이터 교환이 요구되는 기간 동안에는, 처리 요소들 중 어느 하나는, 다른 하나가 데이터를 수신하는 중에, 데이터를 전송할 수 있다. 특정 부류의 병렬 알고리즘, 또는 병렬 계산의 일부에 있어서, 이러한 아키텍처는 예상된 계산 성능의 거의 2배를 실현할 수 있다. 이러한 아키텍처는 다수의 네트워크가 동시적으로, 독립적으로 또는 협동하여 이용될 수 있게 해준다. 시스템-온-칩 레벨의 집적으로 인해, 이러한 아키텍처를 활용하도록 설계된 운영 체제 소프트웨어와 협동하여, 이러한 동작 모드들을 교대로 행하는 것이 최소한의 오버헤드로 행해질 수 있다. 계산이 메시지의 도착을 기다리고 있는 경우, 이러한 일은 자동적으로 일어날 수 있다.
다수의 네트워크 패러다임이 개별적으로 또는 동시적으로 사용하기 위한 노드들을 상호 연결하도록 구현되며, 이들 패러다임에는 병렬 알고리즘 메시지 패싱을 위한 3개의 고속 네트워크가 있다. 부가의 네트워크가 입/출력, 시스템 관리 및 구성, 그리고 수퍼컴퓨터 노드에 대한 디버깅 및 모니터링 서비스에 사용되는 외부와의 연결을 위해 제공되어 있다. 이 고속 네트워크는 양호하게는 n차원의 토러스 구성, 글로벌 트리 구성 및 글로벌 신호 구성을 포함한다. 이들 네트워크 각각의 사용은 알고리즘의 요구 사항 또는 알고리즘의 단계에 기초하여 이리저리로 스위칭될 수 있다. 예를 들어, 계산의 일부가 토러스 상에서 수행되거나 일부는 글로벌 트리 상에서 수행될 수 있으며, 이것이 다수의 네트워크를 신규의 방법으로 동시에 이용하는 새로운 병렬 알고리즘의 개발을 용이하게 해준다.
토러스 네트워크에 관해서는, 토러스 네트워크는 양호하게는 입방형 또는 장방형의 통신 및 분할(cuboidal or rectangular communication and partitioning)을 지원하는 3차원 설계로 이루어져 있다. 3차원 설계는 많은 물리적 현상의 계산 시뮬레이션을 토러스 네트워크로 직접 매핑(direct mapping)하는 것을 가능하게 해준다. 그렇지만, 보다 고차원, 즉 4, 5 또는 6 차원의 토로이드(Toroid)는 칩간 연결이 더 많고 또 상당히 더 많은 케이블링 비용을 들인 것에 대한 대가로 더 짧고 또 보다 적은 지연의 경로를 가능하게 한다. 차원이 보다 낮으면 지연이 보다 길어지고 칩간 통신이 보다 적어진다. 부가적으로 구현된, VCT(Virtual Cut-Through; 버츄얼 컷-쓰루) 패킷 기반 스위칭 네트워크를 사용하는 최소 경로 적응적 라우팅(Minimal-Path Adaptive-Routed)은 어떤 네트워크 혼잡 지점도 우회하게 자동적으로 라우팅함으로써 지속적인 고대역폭을 제공한다. 최소 경로 적응적 라우팅은 이것의 도움을 받는 병렬 계산, 또는 고우선순위의 메시지를 위한 확정적 최단 경로 라우팅(deterministic shortest-path routing)에도 대비하고 있다.
그 밖에, 토러스는 네트워크 내로 주입되는 단 하나의 패킷이 다수의 목적지에 보관될 수 있는 것인 "클래스 라우팅(Class Routing)" 기술을 사용하는 자동적 멀티캐스트에도 대비하고 있다. 양호하게는, 교착 상태 회피(deadlock avoidance)를 위해 2개의 동적 가상 회로(dynamic Virtual Circuit)와 함께 2개의 "버블" 탈출 회로(escape Bubble circuit)를 사용함으로써, 이 네트워크에서는 교착 상태가 일어나지 않는다. 본 명세서에 포함되어 있는 것으로서 공동 소유의 동시 계류 중에 있는, 발명의 명칭이 "Optimized Scalable Network Switch(최적화된 확장가능한 네트워크 스위치)"인 미국 특허 출원 제 호에 기재되어 있는 바와 같이, 이전에는 토러스 네트워크가 사용되었지만, 대규모로 확장가능한 시스템에서 저지연 및 높은 처리능력을 달성하기 위해 신규의 중재 방식이 사용된다. 점대점 토큰 기반의 흐름 제어는 네트워크 버퍼링을 아주 효과적으로 이용하면서 핫 스폿(hot spot)으로부터 먼 쪽으로 트래픽을 분산시킨다. 또한, 손상된 네트워크 패킷의 자동 재전송을 위해, 헤더에 별도의 CRC 에러 검출을 이용하고 또 전체 패킷의 CRC 에러 검출을 이용함으로써 신뢰성이 보장된 패킷 전달도 토러스에서 가능하게 된다.
글로벌 트리 네트워크에 관해서, 하나의 주된 기능은 글로벌 브로드캐스트 동작(다운-트리) 및 글로벌 리덕션 동작(업-트리)을 지원하는 것이다. 입/출력, 프로그램 로드, 시스템 관리, 병렬 작업 모니터링 및 디버깅을 위해 사용되는 프로그램가능한 점대점 또는 서브-트리 메시징(sub-tree messaging)을 지원하기 위해 부가의 기능이 제공된다. 이 기능은 "서비스" 노드, 즉 입/출력 노드가 병렬 계산을 방해하지 않도록 토러스로부터 분리되는 것을 가능하게 해준다. 즉, 토러스 내의 모든 노드는 서비스 노드가 비동기적인 외부와의 상호 작용의 부담을 덜어주는 동안 최대 계산 속도로 동작할 수 있다. 이것이 병렬 계산의 확장성 및 반복성을 보장해 주는 데, 그 이유는 그 계산을 수행하는 모든 노드들이 최대의 일정한 속도로 동작하기 때문이다. 양호하게는, 글로벌 트리는 리덕션 메시징 동작을 구현하는 그 수학 함수들의 실행을 지원한다. 양호하게는, 글로벌 트리 네트워크는 그 밖에도 다수의 독립적인 가상 채널을 지원하여, 다수의 독립적인 글로벌 연산들이 동시적으로 진행될 수 있도록 해준다. 병렬 계산의 요건들에 따라 설계를 적합하게 할 수 있고 서비스 노드에 대한 계산 노드의 비율이 유동적이다. 다른 대안의 패키징 전략은 극도로 데이터-집중적인(data-intensive) 계산에 이상적일 것인, 모든 서비스 노드, 즉 입/출력 노드로 이루어진 머신을 포함하는 어떤 비율이라도 가능하게 해준다.
제3 네트워크는 글로벌 논리 "AND" 또는 "OR" 기능을 제공하기 위해 다수의 비동기적인 "신호"의 통신을 지원하는 글로벌 신호 네트워크(Global Signal Network)를 포함한다. 이 기능은 모든 노드들에 대해 예를 들면 파티션(partition) 내의 모든 노드들이 계산에 있어서의 특정 지점 또는 병렬 알고리즘의 특정 단계에 도달하였음을 알려주기 위한 글로벌 배리어 연산("AND"), 및 모든 노드들에 대해 예를 들면 파티션 내의 어느 하나 또는 임의의 노드가 특정의 상태 또는 조건에 도달했음을 알려주기 위한 글로벌 통지("OR") 기능을 지원하기 위해 특별히 제공된 것이다. 이러한 네트워크 유형을 사용하게 되면 신규의 병렬 알고리즘, 조정 및 시스템 관리를 위한 기술을 실시할 수 있다.
추가의 독립적인 네트워크에는 외부의 서버 및 호스트 컴퓨터에 서비스 노드, 즉 입/출력 노드를 연결시켜주는 외부 I/O 네트워크(예를 들면 기가비트 이더넷), 및 전체 머신 내의 모든 노드들에 대해 완전한 하위 레벨의 디버깅, 진단 및 설정 기능을 제공하고 또 독립적인 호스트 머신으로부터 원격으로 실행될 수 있는 IEEE 1149.1 , 즉 JTAG(Joint Test Access Group) 네트워크가 있다. 양호하게는, JTAG 네트워크의 사용은 병렬 머신의 노드들 상에서 실행되는 임의의 소프트웨어와 협력하여 또는 그 협력 없이 동작한다. 네트워크가 그 머신 내의 노드들을 동시에 어드레싱하거나 또는 노드들의 임의의 부분집합을 어드레싱하는 기능을 제공하므로, 노드는 자신이 실행하고 있을 수 있는 어떤 소프트웨어에 대해서도 투명하게 디버깅 또는 검사될 수 있다. 이 레벨의 진단 및 디버깅은 하드웨어 및 소프트웨어 모두에 대해 엄청난 레벨의 확장성을 가능하게 해주는 기술이다.
신규의 패키징 기술들이 다수의 네트워크 및 다중 프로세서 구성을 가능하게 하는 전례없는 레벨의 확장성을 가능하게 해주는 수퍼컴퓨팅 시스템에 이용된다. 일 실시예에서, 외부 I/O 네트워크가 가능하게 되는 곳인 선택적인 I/O 노드와 함께 복수의 계산 노드를 포함하는 멀티-노드 "노드 카드"가 제공된다. 이와 같이 하여, 외부 입/출력에 대한 계산의 비율은 "미드플레인" 유닛에 원하는 개수의 I/O 노드를 설치함으로써 유연성있게 선택될 수 있다. 신규의 적응적인 저전력 데이터 캡처 기술을 사용하여 고속의 직렬 시그널링이 행해진다. 패키징 기술은 다수의 서브네트워크 분할을 가능하게 해주어, 다수의 독립적인 문제점들에 대한 동시적인 작용이 가능하게 된다. 따라서, 다른 파티션에 방해가 되지 않는 보다 소규모의 개발, 테스트 및 디버깅 파티션이 생성될 수 있다.
미드플레인과 랙 간의 연결은 분할에 기초하여 동작가능하게 선택된다. 세그먼트화는 또한 격리된 파티션을 생성하며, 그 각각은 모든 상호 연결의 전체 기능을 보유하여 예측가능하고 반복가능한 성능을 제공한다. 이것은 동일한 크기 및 형상의 임의의 파티션 상에서 여전히 유효한 채로 있는 미세한 애플리케이션 성능 튜닝(fine-grained application performance tuning) 및 부하 분산(load balancing)을 가능하게 해준다. 극도로 미묘한 에러 또는 문제점에 부딪치게 되는 경우, 이러한 분할 아키텍처는 대규모 병렬 애플리케이션의 정밀한 반복성을 가능하게 해준다. 본 발명에 의해 가능하게 되는 분할성(partitionability)은 네트워크 구성이 수퍼컴퓨팅 머신 내의 동작하지 않는(non-working) 랙 또는 미드플레인을 피하도록, 즉 우회하여 매핑하도록 설계될 수 있게 세그먼트화하는 기능을 제공함으로써 나머지 구성 요소들이 계속 동작하는 동안 그 랙 또는 미드플레인이 서비스될 수 있게 된다.
유리하게는, 본 발명의 신규의 패키징 및 시스템 관리 방법 및 장치는 계산 노드들을 전례없는 확장성 레벨에까지 통합시키는 것을 지원하며, 병렬 컴퓨팅에서의 "대도전"(Grand Challenge) 문제의 계산을 지원하고 또 고성능의 계산 커널이 유한 차분 방정식(finite difference equation), 밀한 또는 소한 선형 방정식 해(dense or sparse linear equation solution) 또는 푸리에 변환을 수반하는 문제를 포함하여 다차원 그리드로 자연스럽게 매핑될 수 있는 대부류의 문제들을 해소한다. 본 발명이 특히 적합한 부류의 문제들은 생명 과학의 분야에서 만나게 된다.
본 발명의 장치 및 방법의 다른 여러 특징, 태양 및 이점은 이하의 설명, 첨부된 청구항들 및 첨부 도면들을 참조하면 보다 잘 이해될 것이다.
본 발명의 초병렬 수퍼컴퓨터 아키텍처는 광범위한 애플리케이션에 대해 수백 테라 OPS(초당 1조 번의 부동소수점 연산) 정도의 처리 능력을 제공하도록 상호 연결되고 설계된 3차원 토러스 형태로 되어 있다. 본 명세서에 기술된 전형적인 실시예에서, 초병렬 수퍼컴퓨터 아키텍처는 64x32x32 토러스로 구성된 64k개의 처리 노드를 포함하며, 각 계산 노드(12)는 도 1에 도시한 3차원 토러스 서브큐브 부분(10)에 도시한 바와 같이, 6개의 양방향 토러스 링크(13)를 거쳐 6개의 이웃 노드(12)에 연결되어 있다. 그렇지만, 다른 토러스 구성으로 더 많은 처리 노드를 포함하는 다른 아키텍처들도 생각될 수 있다는 것을 이해할 것이다.
본 명세서에 보다 상세하게 기술되는 바와 같이, 각 노드(12)는 단 하나의 ASIC 및 복수의 SDRAM-DDR 메모리 칩을 포함한다. 노드들은 적어도 6개의 네트워크를 통해 상호 연결되고, 그의 최대 총합 대역폭은 노드들을 물리적인 3차원 토러스로 매핑하는 최근접 이웃 링크이다. 기술된 실시예에서, 상호 연결 구조는 토러스를 포함하며, 이 토러스는 양호하게는 노드들이 동일한 대역폭으로 또 거의 동일한 지연으로 이웃하는 랙 상에 물리적으로 위치하는 노드에 물리적으로 가까운 노드로 통신할 때 비대칭성을 전혀 갖지 않는다. 이것은 더 간단한 프로그래밍 모델을 촉진시킨다. 노드에 전원을 공급하는 ASIC은 시스템-온-칩(SOC) 기술에 기반하고 있으며 시스템에서 필요로 하는 모든 기능을 포함하고 있다. 이 ASIC은 그 밖에 4Mb 이상의 초고대역의 임베디드 DRAM도 포함하고 있다. 노드 자체는 물리적으로 작으며, 초고밀도의 처리를 가능하게 하여 비용/성능비를 최적화한다.
기술된 실시예에서, 시스템 패키징은 양면 보드, 즉 미드플레인 상에 512개의 처리 노드를 포함한다. 각 노드는 메시지 패싱 동작을 처리하기 위한 제2 프로세서를 포함한다. 게다가, 계산 노드와의 I/O 통신을 처리하기 위한, 확장된 외부 메모리를 갖는 듀얼-프로세서를 구비한 전용 I/O 노드가 소정의 복수의 처리 노드와 연관되어 있다. 각 I/O 노드는 기본적인 I/O 태스크 및 고성능의 실시간 코드에 필요한 모든 함수들을 처리할 수 있는 소규모 운영 체제를 갖는다. 컴파일링, 진단 및 분석을 위해서는, 호스트 머신이 요구된다. I/O 노드는 호스트 통신을 처리하기 위한 계산 노드상의 계층 상부에 소프트웨어 계층을 포함한다. 호스트의 선택은 애플리케이션의 클래스와 그의 대역폭 및 성능 요건에 의존한다.
노드 개요
도 2는 본 발명의 원리들에 따른 단 하나의 계산 노드 ASIC(20)을 나타낸 블록도이다. 각 노드(12)는 컴퓨터의 모든 기능들을 단 하나의 계산 ASIC(20) 내에 집적시키는 시스템-온-칩 공정에 기반하고 있으며, 이에 따라 노드 크기 및 전력 소모를 극적으로 감소시킬 수 있다. 노드 밀도를 증가시켜 머신의 전체적인 비용/성능비를 감소시키기 위해 수퍼컴퓨터에 이것이 추가로 투입될 수 있다. 도 2에 도시한 바와 같이, 시스템에서 계산 노드와 I/O 노드 모두로서 기능할 수 있는 이러한 설계의 ASIC은 2개의 처리 코어(22a, 22b)를 포함하며, 그 각각은 프로세서 사이클 당 4개의 부동 소수점 연산의 피크 성능을 나타내는 2개의 결합된 표준 부동 소수점 유닛을 포함하는 "배정도(倍精度)"(double) 부동 소수점 유닛(floating point unit)(24a, 24b)을 각각 구비한다. 일 실시예에서, 노드의 임베디드 처리 코어는 IBM 마이크로일렉트로닉스로부터 입수가능한 PowerPC440 이지만, 기술이 진보함에 따라 이러한 코어의 차세대 버전이 사용될 수 있다. PowerPC440 코어의 기능에 대한 설명은 http://www.ibm.com/chips/products/powerpc에서 찾아볼 수 있다. "배정도" FPU 유닛(24a, 24b)은 쿼드워드(quadword) 부동 소수점의 로드(load) 및 저장(store)(즉, 데이터 이동)이 가능하도록 데이터 경로를 64 비트에서 128 비트로 증가시킴으로써 데이터 대역폭을 증가시킨다. 게다가, 이 유닛은 이들 실행 유닛을 실수 및 허수의 복소쌍으로 분리함으로써 2개의 부동 소수점 곱셈-덧셈 명령어가 1 사이클 내에 디스패치되어 실행될 수 있는 아키텍처를 가지고 있다. 새로운 아키텍처의 SIMD(single instruction, multiple data)형 명령어는 사이클당 2개의 부동 소수점 곱셈-덧셈을 실행할 수 있게 이 복소쌍을 피드(feed)시키지만 통상의 스칼라 명령어는 실수측, 즉 1차측(primary side)만을 이용한다. 표 1에 도시한 일례와 같이, 3개의 복소수, A, B 및 C에 대해 연산 A * B + C을 수행하는 코드 단편(code fragment)을 생각해보자. 계산하기 전에, 레지스터(ar) 및 레지스터(ai)는 A의 실수부 및 허수부를 가지고 있으며, 이와 마찬가지로 레지스터쌍(br, bi) 및 레지스터쌍(cr, ci)은 B와 C의 값을 보유하고 있다. 컴파일러는 그 결과를 레지스터쌍(dr, di)에 넣어두는, 단지 2개의 명령어만을 필요로 하는 다음의 코드를 자동적으로 생성할 수 있게 된다.
SIMD 모드에서의 Double-FMA에 대한 복소수 A * B + C
ar*br+cr --> tr ; ar*bi+ci --> ti-ai*bi+tr --> dr ; ai*br+ti --> di 제1 FMA SIMD 명령어제2 FMA SIMD 명령어
노드(12)는 다른 기능들을 ASIC(20) 내에 추가로 포함시킨다. 시스템은 임베디드 처리 코어 및 부동 소수점 코어 이외에, 임의의 2개의 노드가 저지연으로 통신할 수 있게 해주는 네트워크 링크 컷-쓰루 버퍼(network link cut-through buffer) 및 라우팅 제어 블록(26)은 물론 임베디드 DRAM(35), 집적된 외부 DDR 메모리 콘트롤러(43), 메시지 프로세서, 이더넷 어댑터(45, 48)를 포함하고 있다. 계산 노드(12)는 특히 IBM PowerPC 440과 같은 2개의 임베디드 코어를 포함하며, 그 각각은 메시지 처리 및 계산 동작에 이용될 수 있다. 이 아키텍처는 또한 버추얼 컷-쓰루 라우팅(virtual cut-through routing)도 지원한다.
도 2에 추가적으로 도시되어 있는 바와 같이, 버추얼 컷-쓰루 라우팅이 ASIC 내부에 집적되어 있는 하드웨어 블록(26)에서 지원되어, 네트워크 어댑터를 생략할 수 있다. 양호하게는, 2개의 동적 채널(dynamic channel) 및 2개의 확정적 채널(deterministic channel)을 갖는 가상 채널 라우팅 네트워크가 지원된다.
도 3은 패킷 라우팅을 위한 링크 버퍼 및 가상 라우팅 블록(26)을 설명하는 상세도이다. 데이터 흐름은 좌측에서 우측으로 행해지며, 단지 하나의 입력(17)과 출력 채널(19)만이 도시되어 있다. 하드웨어에서 2 단계 프로세스(two stage process)를 통해 수행되는 출력 채널 중재를 위해 중재 로직 요소(37a, 37b)가 제공되어 있다. 제1 단계(37a)는 입력 가상 채널에 로컬(local)이고, 제2 단계(37b)는 출력 채널에 로컬이다. 도시된 바와 같이, 블록(26)은 네트워크로 패킷을 주입하거나 네트워크로부터 패킷을 수신하기 위한 다수의 출력/입력 FIFO를 포함하며, 이들 FIFO는 6개의 양방향 링크 포트 모두를 동시에 완전히 이용할 수 있게 해준다. 링크 버퍼 및 가상 라우팅 블록(26)의 동작에 관한 추가의 상세 내용에 대해서는, 본 명세서에 포함된 것으로서 공동 소유의 동시 계류 중에 있는, 발명의 명칭이 "Optimized Scalable Network Switch(최적화된 확장가능한 네트워크 스위치)" 인 미국 특허 출원 제 호(YOR920020030US1(15273))에서 찾아볼 수 있다.
다시 도 2를 참조하면, 고성능의 프로세서간 통신 메카니즘으로서 기능하는 스크래치 SRAM(Scratch SRAM; 39)이 부가적으로 제공되어 있다. 프로세서(22a, 22b) 모두는 "계산" 프로세서와 "메시지" 프로세서 사이에서의 네트워크 통신 기술자(network communication descriptor)의 효율적인 교환을 위해 아주 중요한 SRAM에 똑같이 접속하고 있다. 스크래치 SRAM의 크기는 32 내지 128 킬로바이트 정도의 범위일 수 있다. 프로세서간 통신에 대한 통상의 병목 현상이 소프트웨어 로크(software lock)의 교환이기 때문에, 노드 메모리 시스템은 로크 교환을 처리하도록 특별히 구성된 공유 자원을 포함한다. 즉, "로크박스"(40)는 이들 다수의 처리 요소들 사이에서 고속의 저오버헤드 조정을 가능하게 하기 위해 제공되어 있다. 멀티프로세서 내의 다수의 프로세서들 간의 동기화 및 자원의 질서있는 공유에 대한 지원을 제공하는 하드웨어 로킹 장치(hardware locking device)에 관한 추가의 상세에 대해서는, 본 명세서에 포함된 것으로서 공동 소유의 동시 계류 중에 있는, 발명의 명칭이 "Low Latency Memory Access and Synchronization(저지연 메모리 접근 및 동기화)" 인 미국 특허 출원 제 호(YOR920020036US1, YOR920020037US1(15261))에서 찾아볼 수 있다. 또한, 본 명세서에 포함된 것으로서 공동 소유의 동시 계류 중에 있는, 발명의 명칭이 "Managing Coherence Via Put/Get Windows(보내기/가져오기 윈도우를 통한 코히런스 관리)" 인 미국 특허 출원 제 호(YOR920020035US1(15260))에 기술되어 있는 바와 같이, 적당한 프리페칭 또는 코히런스 하드웨어가 노드의 메모리 시스템 내에 제공될 수 있다는 것도 이해할 것이다.
다시 도 2를 참조하면, 그 밖에 저가품인 DDR 외부 메모리의 사용을 가능하게 해주는 DDR 콘트롤러(43)도 제공되어 있다. 전술한 바와 같이, 이 외부 메모리까지의 지연은 중요한 설계 파라미터 중 하나이며, 내부 DDR 콘트롤러로 여러가지 메모리 구성이 지원될 수 있으며, 따라서 많은 시스템 메모리 구성이 가능할 수 있다. 목표 메모리 시스템의 하나는 프로세서 주파수의 1/2, 1/3로 동작하는 128 비트의 데이터 인터페이스를 갖는 256 MB의 DDR 메모리에 기반하고 있다. 부가의 메모리가 ECC 및 잠재적으로는 프리페칭 포인터(prefetching pointer)를 지원하기 위해 제공되어 있다. ASIC은 I/O 노드로서 기능할 때는 DDR 콘트롤러의 유연성을 이용하여 보다 대용량의 외부 DDR 메모리, 예를 들면 512 MB를 지원한다.
양호한 실시예에서, 동일한 계산 노드 ASIC(20)은 파일서버 통신 및 I/O 동작을 처리하기 위한 계산 노드의 한 부분집합, 예를 들면 64개의 노드와 관련되어 있는 I/O 노드로서 사용될 수 있다. 즉, I/O 노드는 계산 노드와 아주 유사하지만, 외부 메모리 구성의 점에서와 예를 들면 기가비트 이더넷과 같은 외부 네트워크 인터페이스가 부가되어 있다는 것에서만 서로 다를 수 있다. 계산 노드가 집적된 기가비트 이더넷을 가질 수 있는 반면(계산 노드는 공통 ASIC을 공유함), 설명의 목적상, 기가비트 이더넷 인터페이스(48)는 서비스 및 I/O 기능을 제공하는 노드에 제공되어 있다. 모든 노드는 100 Mb 이더넷 네트워크(45)에 직접 연결되어 있다.
노드 ASIC은 그 밖에 외부 파일 시스템에 연결하고 또 부팅, 디버깅 및 RAS의 지원에 필요한 I/O도 포함하고 있다. 도 2에 도시한 바와 같이, 2개의 네트워크가 이러한 목적을 위해 집적될 수 있다. 즉, 1) 논리적 이더넷 기능을 갖는 100 Mb/s 이더넷(45)이 ASIC 내부에 집적될 수 있다. 이와 같이, 각 노드 ASIC은 독립적으로 어드레싱될 수 있어, 호스트 컴퓨터는 시스템 내의 임의의 노드에 직접 접속할 수 있다. 이것은 부팅 및 진단에 유용한 아주 강력한 툴이다. 다른 실시예에서는, 외부 구성 요소의 개수, 비용을 줄이고 또 신뢰성을 향상시키기 위해, 다수의 노드가 8-웨이 계산 카드(8-way compute card) 상에서 직접 MII(Media Independent Interface; 미디어 독립형 인터페이스) 계층에서 연결될 수 있다. 2) 노드 ASIC 내에 집적된 기가비트 이더넷 논리 계층을 갖는 기기비트 이더넷(48). 양호하게는, 이 네트워크는 I/O 노드 상에서 이용되며, 기가비트 이더넷은 ASIC 내부의 PLB(processor local bus; 프로세서 로컬 버스) 상에 존재한다. 이것에 의해, I/O 노드 내의 I/O 프로세서는 DMA 전송을 설정하고, 아주 적은 오버헤드로 메시지 처리로 복귀할 수 있다. 게다가, 도 2에 도시한 바와 같이, 고속의 파일 및 호스트 I/O는 인피니밴드 링크(Infiniband link; 48)로 대응할 수 있다.
전술한 바와 같이, 컴퓨터는 I/O, 디버깅 및 여러가지 유형의 프로세서내 통신(intra-processor communication)을 위해 6개까지의 상호 연결 네트워크를 이용한다. 적절한 저가의 스위치 및 RAID 시스템의 가용성에 따라, 기가비트 이더넷 또는 인피니밴드가 지역적으로 설치된 디스크 스토리지(locally attached disk storage)를 지원하는 데 사용된다. 고속 또는 100 Mb/s의 이더넷이 진단, 디버깅 및 어떤 초기화 단계들에 사용된다. 2가지 유형의 고대역폭, 저지연의 네트워크가 시스템 "패브릭"(system fabric)을 형성하며, JTAG은 내부 프로세서 요소로의 접근을 위해 사용된다. 따라서, 노드에는 임베디드 영역에서의 디버깅을 용이하게 하기 위해 이더넷 MII 계층(ASIC 핀 바로 위)과 내부 JTAG 콘트롤러(도시생략) 사이의 인터페이스가 추가로 집적되어 있다.
노드 메모리
계산 노드 메모리 시스템은 온-칩 캐시 계층 구조(on-chip cache hierarchy), 오프-칩 메인 스토어(off-chip main store), 및 2개의 ASIC 프로세서(22a, 22b) 사이의 통신 및 로킹에 대한 최적화된 온-칩 지원(optimized on-chip support)을 포함한다. 메모리 시스템은 이하에 기술하는 바와 같이, 대상 애플리케이션의 범위에 걸쳐 피크 성능을 내도록 구성되어 있다. 머신의 전체 메모리(aggregate memory)는 멀티컴퓨터의 형태로 완전히 분산되어 있으며, 노드들 간에 하드웨어 공유가 전혀 없다. 각 노드는 예를 들면 256 메가바이트의 물리 메모리를 가질 수 있으며, 그 결과 64K-노드 시스템에서는 총 16 테라바이트가 된다. 도 2에 도시한 바와 같이, 노드(12)의 물리 메모리는 ASIC 내의 2개의 프로세서에 의해 공유되며, 하드웨어는 선택적인 코히런스 지원을 제공한다.
도 4는 단일 노드의 메모리 시스템(25)의 기본적인 구성 요소를 나타낸 것이다. 도 2 및 도 4에 도시한 바와 같이, 1차(L1) 캐시(28a, 28b)는 코어 매크로(core macro)(22a, 22b) 내에 각각 제공되어 있다. 각각의 2차 L2R 및 L2W 캐시(30a, 30b)는 상대적으로 더 작으며, 기본적으로 L1 데이터에 대한 프리페치 및 라이트-백 버퍼(prefetch and write-back buffer)로서 기능한다. 3차(L3) 캐시(35)는 대용량이고, 명령어 및 데이터에 의해 공유되며, 대부분의 애플리케이션의 작업 세트(working set)에 대한 고대역폭의 저전력 접속을 제공한다. 마지막으로, 노드 메모리 시스템(nodal memory system)은 오프-칩의 더블 데이터 레이트(DDR) DRAM으로 이루어진 메인 스토어(38)를 포함한다. 보다 상세하게는, L1 명령어 캐시(I-캐시, 27a, 27b)는 각각의 440 코어 매크로의 일부로서, 데이터 캐시(29a, 29b)와 분리되어 있다. 예시적인 실시예에서, I-캐시는 그 크기가 32 킬로바이트이고, 라인 크기(line size)는 32 바이트이다. 또, I-캐시는 64-웨이 세트 연관 캐시(64-way set-associative cache)로서, 16개의 세트를 포함하고 있다. 라인은 가상 어드레스 태그(virtual address tag)와 함께 저장되며, 라운드-로빈 순서로 교체된다. 가능하게 되어 있는 경우, I-캐시는 캐시 미스(cache miss)에 후속하는 그 다음 3개 라인을 투기적으로 프리페치할 수 있다. 도 2에 도시한 바와 같이, I-캐시 라인 채움(I-cache line fill)은 그 각각의 440 코어(22a, 22b)로부터 나오는 전용의 128-비트 버스를 통해 수행된다. 양호하게는, 이들 채움은 L2 캐시를 우회하여 지나가며, L3 캐시로부터 서비스되며, 따라서 이들 채움은 L2 캐시로의 데이터 접근을 방해하지 않는다. L1 데이터 캐시(D-캐시, 29a, 29b)는 440 코어 매크로의 일부로서, 명령어 캐시와 분리되어 있다. L1 데이터 캐시는 I-캐시와 동일한 구성을 갖지만, 물리적으로는 태그가 붙어 있다(physically tagged). 일 실시예에서, L1 데이터 캐시는 그 크기가 32 킬로바이트이고 라인 크기는 32 바이트이며, 64-웨이의 세트를 16개 갖는 세트 연관형이다. L1 데이터 캐시는 I-캐시와 같이, 라운드-로빈 교체 방식을 사용한다. 데이터 캐시에서는 2개의 별개의 128-비트 데이터 버스가 나오며, 하나는 판독을 위한 것이고 하나는 기록을 위한 것이며, 각각 프로세서 주파수로 동작한다. 도 2에 도시한 바와 같이, L1 D-캐시 버스는 L2 히트 접근의 지연이 아주 낮도록 하기 위해 L2 캐시에 직접 연결되어 있다. 그러면, L1 캐시와 L2 캐시 사이의 라인 전송은 2번의 연속한 16-바이트 전송을 필요로 할 것이며, 최적으로는 중요한 워드를 먼저 반환한다. 440 메모리 시스템은 여러 페이지의 메모리가 라이트-백 캐싱가능(write-back cacheable), 라이트-쓰루 캐싱가능(write-through cacheable) 또는 캐싱 금지(cache inhibited)로서 매핑될 수 있게 해준다. D-캐시는 스누핑(snooping) 또는 스나핑(snarfing)을 지원하지 않으며, 따라서 라이트-백으로서 캐싱되는 페이지들은 외부에서 무효화되거나 또는 갱신시킬 수 없다. D-캐시는 단일 사이클의 히트 지연(single-cycle hit latency)을 제공하며, 예를 들면 700 MHz의 공칭 설계 주파수에서 피크 채움 속도(peak fill rate)는 약 11.2 기가바이트/초이다.
도 4에 도시한 바와 같이, 각각의 L2 캐시(30a, 30b)는 판독 전용 라인 스토어(read-only line store)(L2R) 및 기록 버퍼(L2W)를 포함한다. 440 코어의 각각은 그 자신의 L2 구조를 가지지만, 하드웨어가 이 2개 사이의 코히런스를 유지시킬 수 있다. 따라서, L1에 라이트-백 캐싱되어 있는 데이터는 2개의 코어 사이에서 코히런트하게 공유될 수 있다. L2R은 아주 소용량이며, 기본적으로 L1 라인 채움을 위한 프리페치 버퍼로서 기능한다. L2R은 양호하게는 완전 연관형(fully associative)으로서, 8개의 라인을 포함하며, 그 각각은 크기가 64 바이트이다(즉, L1 라인의 크기의 2배이다). L2R 히트는 3 사이클의 지연을 갖는 것으로 예상되며, 피크 L1 채움 속도와 일치한다. L2 기록 버퍼(L2W)가 존재하면 코어는 라이트-백을 아주 신속하게 마칠 수 있게 되며, 더 큰 L2/L3 라인 크기가 저장이 행해지기 이전에 통합될 수 있다. L2 캐시(30a, 30b) 모두는 어떤 형태의 프리페칭을 구현한다.
L3 캐시(35)는 IMB CU-11 임베디드 DRAM(EDRAM)으로 구성되며, 일 실시예에서는 그 크기가 4 메가바이트 또는 그 이상이다. 캐시의 구성을 위한 몇가지 옵션이 가능하다. 예를 들어, 일 실시예에서는, 2개의 프로세서에 의해 공유되는 간단한 세트 연관형 캐시가 구현된다. 다른 실시예에서는, 각각이 공유되는 2개의 캐시가 구현된다. 2개의 캐시로 된 구성은 최상의 경우에 양쪽 프로세서 모두가 L3에 동시적으로 접속할 수 있게 해준다. 게다가, 직접 접근(direct access)을 위해 L3 캐시의 일부분을 따로 분할해두는 기능도 가능하다.
예를 들어, 700 MHz의 공칭 설계 코어 주파수에서, L1 캐시는 1.4 nsec 사이클마다 16 바이트의 피크 채움 속도를 지속할 수 있다. EDRAM 매크로는 페이지 모드에서 5 nsec 마다 32 바이트의 데이터를 제공할 수 있다. 따라서, 피크 L1 채움 속도와 정합하도록 하기 위해서는 병렬로 있는 2개의 EDRAM 매크로가 필요하고, 그 결과 L3 캐시의 경우 최소 라인 크기가 64 바이트로 된다. L3 캐시와 L2 캐시 사이의 데이터 경로는 코어 주파수의 1/2로 동작하여 사이클마다 32 바이트(256 비트)를 반환할 수 있다. 다시 말하면, L3 캐시는 동시적인 프로세서 접속을 위해 분할될 수 있으며, 그 결과 4개의 EDRAM 매크로 뱅크를 필요로 하는 구현으로 된다. 직접 매핑된 4 메가바이트 캐시가 예상된 256 메가바이트 메인 스토어의 1/64를 저장할 수 있기 때문에, 이 결과 태그 크기는 6 비트가 된다. 라인 크기가 64 바이트인 것으로 가정하면, 디렉토리(33)는 각각 6 비트인 64K개의 엔트리를 가질 것이며, 384 킬로비트의 SRAM이 필요하게 된다. 캐시가 4-웨이 세트 연관형인 경우, 라인의 개수는 동일하지만, 태그 크기는 8 비트로 증가한다. 노드 메모리 시스템(25)은 그 밖에 병목 현상을 피하기 위한 프로세서간 통신 및 교환용의 로크(lock)를 구비하는 공유 자원(41)을 포함하고 있다.
메인 스토어는 노드 ASIC의 외부에 있으며, 예시적인 실시예에서는 그 크기가 256 메가바이트이다. 메인 스토어는 더블 데이터 레이트 동기식 DRAM(SDRAM-DDR) 장치로 구성되어 있다. 노드 메모리 시스템에 관한 추가의 상세에 대해서는, 본 명세서에 포함된 것으로서 공동 소유의 동시 계류 중에 있는, 발명의 명칭이 "Low Latency Memory Access and Synchronization(저지연의 메모리 접근 및 동기화)" 인 미국 특허 출원 제 호(YOR920020036US1, YOR920020037US1(15261))에서 찾아볼 수 있다.
시스템 상호 연결(유형 및 토폴로지)
이더넷 및 IEEE 1149.1(JTAG)
일 실시예에서, 수퍼컴퓨터는 호스트 컴퓨팅 시스템(50) 또는 외부 서버에게는 2개의 표준 네트워크를 통해 접근되는 많은 수(예를 들면 64k개)의 노드로 보일 것이다. 하나의 네트워크는 모든 노드에 대한 초기의 프로그램 로드 및 디버깅 접속을 위해 사용되는 "고속", 즉 100Mb 이더넷(98)으로서, 이는 ASIC 노드의 호스트 제어를 아주 단순하고 간단하게 만든다. 게다가, 예를 들면 IBM RiscWatch 소프트웨어 계층을 통해 프로세서의 레지스터에 접속할 수 있게 해주는 JTAG은 ASIC 내부의 100 MHz 이더넷 포트(45)에 연결되어 있고, 표준의 이더넷 I/P를 사용하여 접근할 수 있다.
글로벌 결합 트리
도 5는 글로벌 결합 트리 네트워크(59)라고 하는 제2 네트워크로서, 계산 노드(12)를 트리 구조로 상호 연결시키고 본 발명에 따른 글로벌 신호 및 외부 네트워크 연결을 포함하는 네트워크를 나타낸 것이다. 이 트리에는 글로벌 결합 트리를 통해 소정의 개수의 계산 노드(12)에 연결되는 관련 I/O 처리 노드(12')가 포함되어 있다. 도 5에 도시되어 있는 바와 같은 양호한 실시예에서, 하나의 I/O 노드(12')는 64개의 계산 노드(12)에 서비스 및 I/O 동작을 제공하는 데 전용되어 있다. 계산 노드에 대한 I/O 노드의 이 비율은 수퍼컴퓨터의 물리적 패키징을 최적화하도록 구성될 수 있다는 것을 이해할 것이다. 즉, 패키징 설계는 서비스 노드에 대한 계산 노드의 비율이 병렬 계산의 요구 조건에 따라 변할 수 있도록 다른 대안 구성을 가능하게 해준다. 양호한 실시예에서, 패키징 기술은 256 : 1 에서 8 : 1 까지의 비율을 지원한다. 다른 대안적인 패키징 전략은 모든 서비스 노드나 입/출력 노드로 이루어진 머신을 포함(극도로 데이터 집중적인 계산에 이상적임)한 임의의 비율을 가능하게 해준다.
도 5에 도시한 바와 같이, 100 Mb/s 이더넷 네트워크(98)는 예를 들면 네트워크 스위치(18)를 거쳐 계산 노드(12) 및 관련 I/O 노드(12')를 대규모 네트워크내에 연결시킨다. 본 명세서에 포함된 것으로서 공동 소유의 동시 계류 중에 있는, 발명의 명칭이 "Ethernet Addressing Via Physical Location for Massively Parallel Systems(초병렬 시스템의 물리적 위치를 통한 이더넷 어드레싱)" 인 미국 특허 출원 제 호(YOR920020040US1(15278))에 보다 상세하게 기술되어 있는 바와 같이, 각각의 노드 ASIC은 호스트 시스템(50)이 모든 노드에 통신할 수 있게 해주는 고유의 MAC 어드레스를 갖는다. 이 MAC 어드레스와 관련된 TCP/IP 어드레스는 수퍼컴퓨팅 머신 내에서의 노드의 인코딩된 기하학적 위치를 포함하고 있다. 따라서, 예를 들면 고장난 노드로부터의 진단 보고는 그의 TCP/IP 어드레스를 통해 그의 랙의 행과 열 및 수퍼컴퓨터의 랙 내에서의 그의 위치까지 직접 추적될 수 있다. 고속 네트워크와 함께, 머신 내의 모든 노드들의 상태를 동시에 고정(freeze)시키는 기능이 제공된다. 수퍼컴퓨터의 일 실시예가 81,920개의 계산 노드와 함께 1,280개의 입/출력 노드를 포함하고 있기 때문에, 이것은 전례없는 레벨의 진단, 디버깅 및 검사를 제공한다.
ASIC(20)은 I/O 노드(12')로서 기능할 때, 노드에 대해 로컬 디스크로서 기능하는 대규모 RAID 디스크 시스템(55)에 접근하는 데 사용될 수 있는 기가비트 이더넷(99) 또는 인피니밴드와 같은 유사 인터페이스를 포함한다. RAID 시스템(55)은 리던던시(redundancy)를 위해 이중화(duplex)되어 있으며, 스위치(도시생략)를 거쳐 1024 채널의 기가비트 이더넷(99) 또는 인피니밴드를 통해 시스템에 연결되어 있다. 스위치는 또한 호스트와 인터페이스하여, 그 호스트가 간단한 이더넷 I/P 트랜잭션을 통해 시스템 노드나 RAID 디스크 시스템 중 어느 하나에 접근할 수 있게 해준다. 머신 내부에서, 부가의 외부 메모리를 갖는 ASIC인 전용의 I/O 프로세서가 기가비트 이더넷/인피니밴드 연결을 종단시킨다. 임의의 I/O 노드는 완전 기가비트 속도(full gigabit speed)로 RAID 디스크를 판독 또는 기록할 수 있다. 전술한 예시적인 실시예에서, 시스템의 64k개의 노드는 초당 1 테라비트 이상인 디스크 또는 호스트로의 전체 I/O 피크 대역폭을 갖도록 구성되어 있다.
양호하게는, 이러한 이진형 결합 트리(binary-like combining tree)(59)는 수퍼컴퓨터 머신 전부에 걸쳐 퍼져 있을 수 있으며, 임의의 노드(12)로부터 다른 모든 노드로(브로드캐스트) 또는 노드(12)의 부분집합으로 데이터가 저지연으로 전송되도록 할 수 있다. 트리는 3개 이상의 포트를 가질 수 있다는 것을 이해할 것이다(3개의 포트는 이진(2 입력, 1 출력)을 의미함). 토러스에서와 같이, 보다 고차의 트리, 즉 4, 5 또는 6 차원은 더 많은 칩간 연결 및 상당히 더 높은 케이블링 비용의 대가로 보다 짧고 보다 저지연의 경로를 가능하게 한다. 차원이 더 낮아지면 지연은 더 길어지고 칩간 통신 횟수도 더 적어진다. 메시지 패싱(message passing)은 글로벌 결합 트리(59) 상으로 지원되며, 각 ASIC 내의 상기 프로세서들 중 어느 하나에 의해 제어됨으로서, 전대전(全對全) 통신(all-to-all communication)과 같은 집중적인 동작이 계산 노드와 독립적으로 진행될 수 있게 해준다. 이 트리의 모든 분기는 전송 방향 및 수신 방향 모두에서 1.4 GB/s, 즉 프로세서 사이클당 2 바이트의 양호한 목표 대역폭을 갖는다.
트리(59) 내에 구축된 하드웨어 기능은 정수 덧셈, 뺄셈, 최대값, 최소값, 비트 단위의 AND, OR, XOR, 및 브로드캐스트가 있다. 이 기능들은 가능한 한 지연이 가장 적은 방식으로 구현된다. 예를 들면, 덧셈 기능의 결과, 워드의 최하위 바이트가 먼저 글로벌 네트워크 상으로 전송된다. 이 하위 바이트는 다른 소스로부터의 다른 바이트와 즉각 가산되고, 그 결과는 트리의 그 다음 레벨로 시프트되어 나간다. 이와 같이, 64 비트 워드는 상위 바이트가 시프트되어 나오기 이전에 이미 그 트리의 위쪽으로 몇개의 계층을 진행한 것이다. 이 결과, 전체 머신에 걸쳐 아주 저지연의 덧셈이 가능하게 된다. 이러한 저지연의 덧셈은 글로벌 내적(global inner product)을 필요로 하는 반복적인 소한 선형 방정식(iterative sparse linear equation)의 해를 구하는 기술에 중요하다.
데이터를 링을 따라 실어보내기보다는 데이터의 글로벌 브로드캐스트를 위해 동일한 트리가 이용될 수 있다. 일대전(一對全) 통신(one-to-all communication)에 있어서, 이것은 소프트웨어의 관점에서 최근접 이웃 3D 링크 네트워크에 비해 엄청난 개선이다. 브로드캐스트 기능은 또한 일대전(一對全) 전송(one-to-all transfer)이 3D 링크 네트워크를 통한 통신과 동시에 행해질 필요가 있는 경우에 아주 유용하다. 브로드캐스트도 또한 3D 링크 네트워크를 통해서 처리될 수 있다.
마지막으로, 전체 머신에 걸친 글로벌 부동 소수점 합산은 이진 트리를 2번 이용함으로써 몇 마이크로초 내에 수행될 수 있다. 첫번째에는 모든 지수(exponent)의 최대값이 얻어지고, 두번째에는 모든 시프트된 정수가 글로벌 연산에서 가산된다. 토러스를 통한 산술 함수의 구현에 관한 추가의 상세에 관해서는, 본 명세서에 포함된 것으로서 공동 소유의 동시 계류 중에 있는, 발명의 명칭이 "Arithmetic Functions in Torus and Tree Networks(토러스 및 트리 네트워크에서의 산술 함수)" 인 미국 특허 출원 제 호(YOR920020031US1, YOR920020032US1(15258))에서 찾아볼 수 있다. 글로벌 결합 트리 네트워크의 동작, 특히 입/출력, 프로그램 로드, 시스템 관리, 병렬 작업 모니터링, 및 디버깅에 사용되는 프로그램가능한 점대점 또는 서브-트리 메시징을 지원하는 기능에 관한 추가의 상세에 대해서는, 본 명세서에 포함된 것으로서 공동 소유의 동시 계류 중에 있는, 발명의 명칭이 "A Global Tree Network for Computing Structures(계산 구조용의 글로벌 트리 네트워크)" 인 미국 특허 출원 제 호(YOR8-2001-1005, YOR920020028US1(15271))에서 찾아볼 수 있다.
글로벌 결합 트리 및 배리어 네트워크
도 6은 본 발명의 원리들에 따른 글로벌 결합 트리 및 배리어 네트워크(60)를 나타낸 것이다. 글로벌 인터럽트 및 배리어 네트워크(60)(도 6)의 기능은 글로벌 결합 트리 네트워크(59)(도 5)와 밀접하게 관련되어 있으며, 그와 병렬로 "부대역(sideband)" 네트워크로서 기능할 수 있다. 예를 들어, 글로벌 "OR" 기능은 인터럽트이고, 글로벌 "AND"는 "전부 대기(all wait)"이다. 이들 기능은 글로벌 비동기 신호를 발생 및 전달함으로써 글로벌 인터럽트 및 배리어 네트워크(60)에서 이용되며, (1) 논리적 파티션(예를 들면, 서브-트리 네트워크) 내의 각 노드가 설정 및 검출할 수 있는 신호, (2) 모든 입력 신호에 대해 글로벌 AND 또는 OR를 수행하는 하드웨어 로직 기능, 및 (3) 그 결과를 수집하여 각 노드로 분배하는 글로벌 네트워크를 포함한다. 몇개의 상이한 신호들이 대규모 시스템에서는 공존할 수 있으며, 그 사상은 여러가지 방식으로 구현될 수 있다. 양호하게는, 단일 비트 폭의 차동쌍(single bit wide differential pair)은 저지연 글로벌 인터럽트 및 배리어를 용이하게 하기 위해 결합 트리(59)(도 5)와 병렬로 동작된다.
다시 도 6을 참조하면, 글로벌 인터럽트 및 배리어 네트워크(60)의 각 루트 노드(65)는 글로벌 결합 트리의 경로를 따라 컴퓨팅 구조의 소정의 개수의 계산 노드(12)에 연결되고, 그와 연계하여 특정의 병렬 알고리즘에 필요한 것인 계산 구조, 예를 들어 초병렬 수퍼컴퓨터에서 글로벌 비동기 연산을 개시하기 위한 동작을 한다. 양호하게는, 이러한 이진형 결합 트리와 배리어 및 인터럽트 네트워크는 수퍼컴퓨터 머신 전체에 걸쳐 퍼져 있을 수 있어, 데이터를 임의의 노드(12)로부터 다른 모든 노드로(브로드캐스트) 또는 노드(12)의 부분집합으로 저지연으로 전송할 수 있게 된다. 다른 트리 실시예, 예를 들면 3원 트리(tertiary-tree), 4원 트리(quaternary-tree) 등도 구현될 수 있지만, 저지연에 대한 트레이드 오프로서 상호 접속이 더 많게 된다.
도 20은 글로벌 인터럽트 및 배리어 네트워크(60)에서 구현되는 비동기적인 글로벌 신호 발생에 이용되는 로직을 나타낸 것이다. 특히, 도 20을 보면, 글로벌 인터럽트 및 배리어 네트워크(60)는 도 5의 글로벌 결합 트리 네트워크에 대한 부대역 네트워크로서 구현되는 경우 노드마다 하나씩, 상호 연결된 라우터 장치의 네트워크를 포함한다. 각 라우터 장치는 다른 라우터에 연결되거나 또는 연결되지 않은 경우 디스에이블되어 있을 수 있는 다수의 포트를 포함한다. 그렇지만, 설명의 목적상, 도 20에 도시되어 있는 바와 같이, 라우터는 데이터 경로를 제공하는 4개의 포트(121-124)를 가짐으로써 3원-트리를 구축할 수 있다. 4개의 포트 중 단 하나, 예를 들면 포트(121)만이 부모 노드로의 연결부로서 지정되어 있고, 나머지 포트들 중 3개까지는 자식 노드에 연결될 수 있다. 트리의 하단에 있는 말단 노드(leaf node)는 인에이블된 그의 부모 노드에 연결된 단지 하나의 포트만을 가지고 있지만, 트리의 루트는 인에이블된 어떤 부모도 가지고 있지 않으나 적어도 하나의 인에이블된 자식을 갖는다.
도 20은 도 6의 글로벌 신호 트리 및 배리어 네트워크의 각 ASIC 노드(12)에 포함된 라우터 장치에 구현되어 있는 비동기 로직(125)의 개략도이다. 글로벌 신호 비동기 네트워크에서, 각각의 부대역 신호에 대해, 4개의 논리적 양방향 포트, 1개의 업트리 포트(up tree port)(121, 도 20 참조) 및 3개의 다운트리 포트(down tree port)(122, 123, 124, 도 20 참조)가 있다. 이들 4개의 논리적 양방향 포트는 4개의 물리적 양방향 포트 상으로 매핑된다. 소프트웨어 구성에서, 물리적 포트 중 임의의 어느 하나는 업 트리 논리적 포트로서 매핑될 수 있다. 이것에 의해 다수의 이들 노드가 조립되어 있는 그 보드의 레이아웃에 유연성을 줄 수 있다. 업트리 포트 및 다운트리 포트 이외에, 모든 노드에 있는 ASIC 프로세서 코어로부터 발생된 부가의 입력 신호(125)와 프로세서의 인터럽트 유닛에 입력될 결과 신호(126)가 있다. 업트리 경로(130) 상에서는, 다운트리 포트(122, 123, 124)로부터의 모든 입력과 함께 중앙 처리 장치(CPU)로부터의 입력(135)이 논리 게이트(127)에 입력된 후에 업트리 경로 상으로 전송되어 나간다. 이 논리 게이트(127)는 글로벌 배리어 동작(논리 '0' 에서 '1'로의 입력 천이)을 수행하도록 구현되어 있을 때는 논리 AND 함수를 수행할 것이며, 글로벌 인터럽트 동작(논리 '1' 에서 '0'으로의 입력 천이)을 수행하도록 구현되어 있을 때는 논리 OR 함수 네트워크로서 구현될 수도 있다. 다운트리 경로(140) 상에서, 업트리로부터의 입력 신호는 버퍼 장치(128)에 의해 버퍼링되며, 그 다음에 모든 다운트리 포트(122, 123, 124)로, 또 프로세서로 신호(136)로서 브로드캐스트된다. 그 트리의 바로 상단에는, 업트리 포트(121, 도 20 참조)용의 2개의 신호가 초기 소프트웨어 구성을 통해 상단 노드에서 또는 본 명세서에 보다 상세하게 기술되어 있는 바와 같은 토러스 및 트리 서브네트워크 분할을 가능하게 해주는 링크 칩 디바이스에서 간단히 서로 연결되어 있다. 글로벌 결합 트리 네트워크의 동작에 관한, 특히 글로벌 배리어 및 인터럽트의 발생 및 처리를 지원하는 기능에 관한 추가의 상세에 대해서는, 본 명세서에 포함된 것으로서 공동 소유의 동시 계류 중에 있는, 발명의 명칭이 "Global Interrupt and Barrier Networks(글로벌 인터럽트 및 배리어 네트워크)" 인 미국 특허 출원 제 호(YOR920020029US1(15272))에서 찾아볼 수 있다.
3차원 토러스
도 1에 관해 전술한 바와 같이, 물리적인 머신 아키텍처는 예시적인 실시예에서는 경계 부분에서 "래핑"(wrap)되는 간단한 3차원의 최근접 이웃 상호 연결인 n차원 토러스(10)와 관련되어 있다. 모든 이웃들은 ASIC의 서로 다른 랙 사이에 존재하는 비행 시간(time-of-flight)의 차이를 제외하고는 동일 거리에 있어, 코드의 작성 및 최적화가 용이하게 된다. 최근접 이웃 링크는 예시적인 실시예에서 프로세서 속도의 4배(예를 들어, 각 방향으로 2.8 Gb/s)일 수 있다. 따라서, 각 노드는 예를 들면 4.2 GB/s의 전체 대역폭으로 6개의 독립적인 양방향 최근접 이웃 링크를 지원한다. 더 상세하게 기술하게 되는 바와 같이, 시스템 회로 카드는 2x2x2 서브큐브 형태로 배선되며, 랙마다 2개씩인 미드플레인은 8x8x8 서브큐브로서 배선된다. 전체 64k의 머신은 64x32x32 토러스이지만, 다른 파티션도 가능하다.
메시지 패싱
토러스
도 1의 토러스 네트워크(10)는 선택된 "클래스"의 노드에 대한 범용의 점대점 메시지 패싱 및 멀티케스트 동작을 위해 사용된다. 토폴로지는 ASIC 내에 내장된 라우터 사이에서 양방향의 점대점 직렬 링크로 구축된 3차원 토러스이다. 따라서, 각 ASIC은 6개의 최근접 이웃 연결부를 가지며, 그중 일부는 비교적 긴 케이블을 따라 갈 수 있다. 토러스 네트워크는 적응적이면서 확정적인 최소 경로 라우팅을 제공하며, 교착 상태가 없다. 처리 능력(throughput) 및 지연은 본 명세서에서 또한 P. Kermani와 L. Kleinrock의 "Virtual Cut-Through: A New Computer Communication Switching Technique," Computer Network, Vol. 3, pp. 267-286, 1979를 참조하여 기술된 바와 같이 버추얼 컷-쓰루(VCT) 라우팅의 사용을 통해 최적화되며, 위 문헌은 여기에 인용함으로써 그 내용이 본 명세서에 포함된다. 메시지는 라우팅의 최소 단위(atomic unit)인 다수의 패킷으로 구성될 수 있다. 따라서, 적응적으로 라우팅되는 동일한 메시지로부터의 패킷들은 무순서로 도착할 수 있다. 패킷들은 그 크기가 가변적이며, 32 바이트 내지 256 바이트의 범위에 있으며, 32 바이트의 입도(즉, 패킷당 1개 내지 8개의 32 바이트 청크)를 갖는다.
가상 채널(VC)은 교착 상태가 없는 적응적 라우팅을 제공하고 처리능력을 향상시키기 위해 사용되며, 수퍼컴퓨터 내의 토러스 네트워크는 4개 이상의 VC를 갖는 구성일 수 있으며, 이에 따라 2개의 VC는 적응적 라우팅을 이용하고 2개는 확정적 라우팅을 이용한다. 확정적 VC 중 하나는 교착 상태가 없도록 하기 위해 적응적 서브네트워크의 "탈출 채널(escape channel)"로서 사용되고, 다른 하나는 고우선순위 패킷용으로 예비된 것이다. 대부분의 트래픽이 적응적으로 라우팅될 것으로 예상되기 때문에, 2개의 적응적 VC는 HOL 차단 현상(head-of-line blocking)을 감소시키기 위해 제공되며, 라우터 내에서 간단한 FIFO 버퍼들을 사용할 수 있게 된다.
케이블 양단 간의 지연은 다수의 패킷들이 동시에 비행 중(in flight)에 있을 수 있도록 해주기 때문에, 라우터들 사이에서의 흐름 제어는 토큰의 사용을 통해 제공된다. 경합이 없을 경우에 전체 링크 대역폭을 유지하는 데 충분한 VCT 버퍼 공간이 있다.
네트워크는 주입된 모든 패킷의 단일 카피를 신뢰성있게 전달하게 된다. 라우터는 다운스트림 라우터가 수신 성공의 확인 통지를 보낼 때까지 모든 패킷의 양호한 카피를 유지함으로써 신뢰성있는 포워딩을 보장한다. 라우터는 링크 레벨의 패리티 또는 CRC(또는 양쪽 모두)를 사용하여, 전송 중에 손상된 패킷을 검출할 수 있다. 이것이 발생한 경우, "에러" 지시자(Error indicator)가 패킷에 첨부되어, 그 패킷을 수신기가 폐기해야만 함을 알려준다. 따라서, 각 패킷의 단 하나의 양호한 카피만이 그 네트워크를 떠나게 된다.
따라서, Proceedings of HOT Interconnects II의 1994년 8월, 122-133 페이지에 있는 William J. Dally, Larry R. Dennison, David Harris, Kinhong Kan, 그리고 Thucydides Xanthoppulos의 문헌인 "Architecture and Implementation of the Reliable Router(신뢰성있는 라우터의 아키텍처 및 구현)"을 참조하여 기술된 신뢰성있는 라우터의 독자적인 토큰 프로토콜 방식과 유사한 것으로서, 모든 패킷의 적어도 2개의 카피를 네트워크 내에 항상 유지하는 방식이 사용될 수 있으며, 이 문헌은 여기 인용함으로써 본 명세서에 포함된다. 그렇지만, 예시적인 실시예에 따르면, 본 발명은 패킷이 링크 상에서 위험에 처해 있는 동안에는 백업 카피만을 유지하며, 패킷 손상의 거의 모두는 이 링크 상에서 일어난다. 라우터 하드웨어가 패킷을 손상시키는 드문 경우에 있어서, 메시지 레벨에서의 에러 검출은 발신자에 재발신 요청을 전송할 수 있다.
도 7은 링크 입력 회로(72)와 링크 출력 회로(74)를 포함하는 단 하나의 토러스 라우터(70)의 기본적인 아키텍처를 나타낸 것이다. 로컬 입력은 7개의 네트워크 주입 큐(network injection queue)(73)를 포함하고, 그 중 6개는 임의의 방향으로 향하는 통상의 패킷에 사용되고, 7번째 것은 임의의 방향으로 향하는 고우선순위 패킷에 사용된다. 로컬 출력은 12개의 수신 큐(76)를 포함하며, 6개의 큐는 각 방향으로부터의 통상의 패킷에 사용되고, 6개의 큐는 각 방향으로부터의 고우선순위 패킷에 사용된다.
각각의 링크 입력(72)은 적어도 4개의 VCT 큐(각각의 가상 채널마다 하나씩)및, HOL 차단 현상을 감소시키기 위한 크로스바 스위치(crossbar switch)(78)로의 2개의 입력 경로를 포함한다. VCT FIFO 중 어느 것(즉 아마도 도착하는 패킷임)이 크로스바 입력을 사용하게 되는지를 결정하는 관련 입력 중재자가 있다. 각각의 링크 출력(74)은 신뢰성을 위한 재전송 FIFO, 및 입력 또는 주입 큐로부터의 패킷들을 관련 링크 상으로 스케쥴링하는 출력 중재자를 포함한다. 입력 회로부와 출력 회로부 사이의 통신은 흐름 제어 토큰의 전송을 조정하기 위해 각각의 링크 포트에 제공되어 있다는 것을 이해해야 한다. 본 발명의 수퍼컴퓨터에서의 VCT 라우팅의 구현에 관한 추가의 상세에 대해서는, 본 명세서에 포함된 것으로서 공동 소유의 동시 계류 중에 있는, 미국 특허 출원 제 호 (YOR920020030US1(15273))에서 찾아볼 수 있다.
라우터 입력
도 8a는 도 7의 링크 입력 회로부(72)의 전형적인 실시예의 상세도이다. 각각의 입력 회로(72)의 기본적인 임무는 착신 패킷의 수신, 이들 패킷의 무결성 확인, 필요한 경우 이들의 버퍼링, 및 궁극적으로 이들 패킷을 출력 링크 또는 CPU 수신 큐로 포워딩하는 것이다. 도 8a에 도시한 바와 같이, 4개의 가상 채널(VC) FIFO(82)가 있으며, 이들은 2개의 적응적 VC(82a, 82b), 하나의 확정적 VC(82c) 및 하나의 고우선순위의 확정적 VC(82d)에 대응한다. 구현된 VC FIFO의 실제 개수는 대체로 라우팅 알고리즘에 의해 결정된다.
전술한 바와 같이, 흐름 제어는 토큰의 사용을 통해 관리되며, 각각의 토큰은 32 바이트의 VC FIFO 버퍼 공간과 관련되어 있다. 따라서, 단 하나의 패킷이 다수의 토큰을 소모할 수 있다. VC FIFO 각각에 대한 토큰은 개별적으로 관리되고 다운스트림 라우터에 의해 업스트림 라우터로 한 묶음씩 부여된다. 업스트림 라우터는 전체 패킷 크기를 커버하기에 충분한 수의 토큰을 가질 때까지 패킷을 결코 전송하지 않는다. 환언하면, 패킷은 필요한 경우 다운스트림 라우터에 그 패킷을 저장하기에 충분한 버퍼 공간이 있게 될 때까지 결코 전송되지 않는다. 이것은 교착 상태가 없도록 보장하기 위한 중요한 특성이다.
패킷은 다운스트림에 이를 버퍼링하기에 충분한 공간이 없는 경우에는 전송될 수 없기 때문에, VC FIFO의 크기는 링크 대역폭 및 인접한 라우터 사이의 지연에 의해 결정된다. 이들의 크기는 경합이 없는 경우에 링크 대역폭을 전부 이용할 수 있다. 최악의 경우, 머신이 분할될 때 2개의 인접한 라우터가 5개의 케이블 홉(cable hop)만큼 떨어져 있을 수 있으며, 각 케이블 홉은 약 30ns의 지연을 갖는다. 기술하게 되는 바와 같이, 인접한 케이블 홉은 약 10ns의 지연을 가질 것으로 예상되는 링크 칩(link chip)을 가로질러야만 한다. 따라서, 인접한 라우터 사이에서의 최악의 경우의 링크 지연은 약 200 ns이다.
이하의 시나리오는 VC FIFO 크기를 계산하는 데 사용될 수 있다. 즉, 업스트림 라우터는 256-바이트 패킷을 전송한다. 다운스트림 라우터는 패킷을 그 전체로서 수신하여 그의 무결성을 확인한다. 패킷이 포워딩되고 저장되어 있지 않기 때문에, 다운스트림 라우터는 8개의 토큰을 즉각적으로 반환하고자 할 것이다. 그렇지만, 전송을 막 시작한 업스트림 링크는 256-바이트 패킷에 의해 차단(block)된다. 업스트림 링크가 일단 사용가능 상태(free)가 되면, 토큰들이 반환된다. VC FIFO는 이 시나리오의 지연 동안에 전송될 수 있는 모든 데이터를 저장할 만큼 충분히 커야만 한다. 2.8 기가비트/초의 링크 대역폭을 가정하면, 계산은 다음과 같이 진행한다.
이벤트 시각 설명
256 바이트 패킷의 전송 시작패킷의 헤더가 다운스트림에 도착함패킷의 테일이 다운스트림에 도착함패킷이 처리됨256 바이트 "차단" 패킷이 완성됨토큰이 업스트림 라우터에 도착함토큰이 처리됨 0200928938166618661876 (2048비트/2.8기가비트/초=728ns)
(1876 ns) X (2.8 비트/ns) / (8 비트/바이트) = 657 바이트
따라서, 대략 657 바이트인 VC FIFO 크기는 충분하다. 그렇지만, FIFO가 더 크면 얼마간의 여유(slack)가 가능하게 됨으로써 토큰들은 한 묶음씩(in batches) 반환될 수 있으며, 또 어느 정도의 네트워크 혼잡이 용인될 수 있게 해준다. 본 발명에서 사용되는 ASIC 기술을 이용하면, 2K 바이트 또는 그 이상의 VC FIFO 크기의 구현을 용이하게 실행할 수 있다. 입력 회로는 HOL 차단 현상을 감소시키기 위하여 글로벌 크로스바에 2개의 연결부(경로)(83)를 갖는다. 따라서, 입력 회로(72)는 VC FIFO 중 2개나, 또는 하나의 VC FIFO와 하나의 도착 패킷이 출력 링크쪽으로 진행할 수 있게 해주는 5x2 크로스바(87)를 포함한다. 로컬 입력 회로(72)는 6개의 입력 방향 각각에 대해 2개씩(2개의 프로세서 각각에 대해 하나씩)의 수신 전용 FIFO와, 고우선순위 패킷용의 2개의 수신 FIFO(각각의 프로세서마다 하나씩)를 포함한다. 하나의 프로세서는 통신에 전용되어 있을 때는 양쪽 FIFO 세트 모두에 접근할 수 있다. 따라서, 라우터에서 종단되는 패킷들은 글로벌 크로스바를 통과하지 않고 그의 관련 수신 FIFO로 직접 포워딩될 수 있다. 그렇지만, 통상 우선순위의 패킷들(normal priority packets)은 어떤 VC 상으로도 수신될 수 있으며, 따라서 그 패킷들은 입력 크로스바를 통해 수신 FIFO로 포워딩된다.
패킷이 도착할 때, 경로 선택 기능(86)은 패킷이 사용할 수 있는 잠재적인 출력 VC의 세트를 결정하는 데 사용된다. 일반적으로, 이 세트는 이익이 되는 방향으로, 즉 최소가 되는 방향으로 적응적 및 확정적 VC 양쪽 모두를 포함하게 된다. 도착 패킷이 VC FIFO에 저장되는 경우, 잠재적인 경로가 그와 함께 저장될 것이다. 초병렬 수퍼컴퓨터에서의 패킷들의 라우팅에 관한 추가의 상세에 대해서는, 본 명세서에 포함된 것으로서 공동 소유의 동시 계류 중에 있는, 미국 특허 출원 제 호(YOR920020030US1(15273))에서 찾아볼 수 있다.
글로벌 크로스바 연결이 사용가능할 때마다(또는 곧 사용가능하게 되는 때마다), 입력 중재자(88)는 출력에 대한 중재를 하기 위해 대기중인 패킷들 중 어느 하나 또는 도착중인 패킷을 선택한다. 선택된 패킷은 어떤 횟수의 시도에 대해 한번에 그의 잠재적인 출력들 중 하나에 대한 중재를 하게 된다. 유한 횟수의 시도에서 출력을 얻지 못한 경우, 입력 중재자는 그의 출력들 중 어느 하나를 얻기 위해 그의 우선순위 규칙에 따라 동일한 패킷 또는 상이한 패킷 중 어느 하나를 선택한다. 따라서, 매 중재 사이클마다, 각각의 입력 회로는 성공할 때까지는 단지 하나의 출력 VC만을 요청하게 된다. 고우선순위 패킷들은 자연적으로 입력 중재자(88)에 의해 선순위를 부여받는다. 통상 우선순위의 패킷들은 가장 많이 채워진 FIFO 내의 패킷들에 선순위를 부여하는 우선순위 규칙에 따라 서비스되지만, 또한 랜덤한 순서 또는 라운드 로빈 순서로 주기적으로 서비스함으로써 스타베이션(starvation)을 방지하기도 한다.
수신 패킷 파이프라인(81)은 깊이가 제한되어 있으며, 따라서 도착중에 있는 패킷이 중재를 위해 선택되지 않거나 또는 적시에 출력 VC를 획득하지 못한 경우, 그 패킷은 적절한 VC FIFO로 라우팅된다. 패킷이 그 FIFO의 선두(head)에 도달할 때, 그 패킷은 출력을 위해 다시 중재를 할 수 있다. FIFO가 비어 있는 경우, 패킷은 거의 즉각적으로 다시 중재를 시작할 수 있다. 따라서, 패킷은 기본적으로 FIFO를 "통과(flow through)"할 수 있고, 즉 들어가는 것과 동시에 나갈 수 있으며, 이것이 중요한 최적화이다. 패킷의 헤더에 대한 별도의 CRC는 헤더가 정확하게 수신되는 경우에 패킷이 중재를 얻기만 하도록 보장하는 데 사용된다.
성공율을 향상시키기 위해, 입력 중재자는 어느 링크가 사용중에 있는지, 어느 VC가 부가의 패킷을 수신할 수 없는지 그리고 VC에서 이용가능한 버퍼 공간의 레벨을 나타내는 상태 지시자를 출력 VC로부터 수신한다. 물리적 링크가 이용가능하고 또 VC가 패킷을 수신할 수 있는 때만 출력 VC에 대한 중재가 행해진다. 적응적 패킷은 양호한 방향 및 VC를 가지며, 이 VC는 링크가 미사용 상태인 방향으로 가장 이용가능성이 있는 버퍼 공간을 갖는 VC이다. 중재 하드웨어는 파이프라인 방식으로 되어 있어, 어느 한 패킷의 테일과 입력 링크를 떠나는 그 다음 패킷의 헤드 사이에 어떤 갭도 없다.
입력 회로(72)는 메시지 트래픽 이외에 다운스트림 라우터로부터 흐름 제어 패킷도 수신하여, 토큰을 부여하거나 신뢰성을 위해 저장되어 있는 패킷들의 카피를 내보낸다. 이들 패킷은 흐름 제어 회로(90)에 의해 검출되고, 그 결과 동일한 물리적 링크를 공유하는 출력의 흐름 제어 회로 내의 다운스트림 토큰 스토어(downstream token store)를 다시 채운다. 이와 반대로, 흐름 제어 회로는 도착하는 패킷을 정확히 검출하여, 동일한 물리적 링크를 공유하는 출력의 흐름 제어 회로로 하여금 토큰 부여 패킷을 발생하도록 한다.
라우터 출력
도 8b는 도 7의 링크 출력 회로부(74)의 전형적인 실시예를 나타낸 상세도이다. 이 출력 회로(74)의 기본적인 임무는 높은 처리 능력 및 공정성을 달성하기 위해 출력 링크 상의 패킷들을 스케쥴링하고, 신뢰성을 위해 전송된 모든 패킷들의 카피를 보유하며 또 링크 레벨의 흐름 제어 및 재전송을 관리하는 것이다.
도 8b를 보면, 출력 중재자 회로(98)는 6개의 입력들 각각 및 7개의 주입 FIFO들 각각으로부터 중재 사이클당 13개까지의 요청을 수신한다(도 8c와 관련하여 후술함). 출력 중재자 회로는 단지 하나의 승인(grant)만을 반환하고 그 다음에 확인 응답(acknowledgement)을 기다린다. 확인 응답이 그 다음 중재 사이클까지 오지 않은 경우, 중재자는 다시 중재를 행한다. 확인 응답이 온 경우, 출력 제어는 승리한 입력(winning input)이 출력에 연결되도록 글로벌 크로스바를 설정하게 된다.
물리적 출력 링크는 패킷에 대한 다운스트림 연결부 및 대응하는 입력 링크를 통해 다운스트림으로 오는 트래픽과 관련한 흐름 제어에 대한 업스트림 연결부 양쪽 모두로서 볼 수 있다. 흐름 제어 회로(92)는 이들 임무 모두를 처리한다. 또, 흐름 제어 회로(92)는 다운스트림 방향으로 향하는 패킷을 위해 각 VC의 토큰 스토어를 관리하고, 토큰을 포함하는 흐름 제어 패킷을 생성하거나 업스트림 패킷을 위해 저장된 패킷이 방출된다. 다운스트림 토큰은 패킷이 전송될 때마다 소모되고, 동일한 물리적 링크를 공유하는 입력의 흐름 제어 회로(92)에 의해 재충전된다. 이와 반대로, 흐름 제어 회로는 또한 대응하는 입력의 흐름 제어 회로에 의해 요청될 때 흐름 제어 패킷을 생성하는 일도 맡고 있다. 재전송 FIFO(95)는 네트워크 신뢰성 방식(network reliability scheme)의 중요한 구성 요소이다. 동작을 설명하면, 물리적 링크를 지나가는 모든 패킷은 다운스트림 라우터로부터 확인 응답이 반송될 때까지 저장된다. 아주 적시에 긍정 확인 응답(positive acknowledgement)으로 응답하는 것은 다운스트림 라우터의 임무이다. 패킷이 링크를 성공적으로 지나간 경우, 긍정 확인 응답이 반송되고, 이에 따라 패킷이 재전송 FIFO로부터 삭제된다. 전송 에러가 검출된 경우, 패킷의 테일에는 에러 플래그가 덧붙여지고, 긍정 확인 응답은 업스트림 라우터로 반송되지 않으며, 그 결과 타임아웃이 되어 재전송이 행해진다. 재전송의 경우, 손상된 패킷이 항상 재전송 FIFO(95)의 선두에 있게 되는 데, 그 이유는 확인 응답이 순서대로 반송되기 때문이다. 게다가, 패킷들은 다른 장애가 있는 경우 재전송되기 때문에 FIFO의 테일로 되돌아간다. 이 방식은 라우터간의 전송 에러에만 해당된다는 것을 이해할 것이다. 이 방식은 라우터 내부에서 일어나는 손상은 방지하지도 검출하지도 못한다.
재전송 FIFO의 크기는 VC FIFO의 크기와 아주 유사한 방법으로 계산될 수 있으며, 657 바이트 정도의 크기를 나타낸다. 그렇지만, 확인 응답으로 응답하기 위한 부가의 시간을 다운스트림 라우터에 주기 위해 그 크기는 더 크다. 부가의 VC FIFO 공간을 사용하는 것보다 출력 상에 재전송 FIFO(95)를 사용하는 것의 이점은 단 하나의 FIFO가 모든 VC에 대해 충분하다는 것이다. VC FIFO가 포워딩된 패킷들의 카피를 보관하는 데 사용된 경우, 각각의 VC FIFO는 재전송 FIFO 크기와 동일한 양만큼 확장되어야만 할 것이다. 따라서, 메모리 절감은 VC의 개수와 선형 관계에 있다. 게다가, 재전송이 간단하게 되는 이유는 그 전부가 출력에서 처리되기 때문이다.
로컬 주입(Local Injection)에 대한 상세
도 8c는 도 7의 로컬 네트워크 주입 회로(73)의 전형적인 실시예를 나타낸 상세도이다. 로컬 주입 회로(73)의 기본적인 임무는 프로세서(보통은 메시지 프로세서임)가 전송을 위해 패킷을 네트워크에 주입할 수 있게 해주는 것이다. 도 8c에 도시한 바와 같이, 예시적인 실시예에서, 7개의 주입 FIFO(94), 즉 통상 우선순위의 패킷용으로 6개와 고우선순위 패킷용으로 1개가 있다. 모든 FIFO는 임의의 출력 VC로 라우팅될 수 있으며, 이들 모두는 동시에 중재를 행할 수 있다. 이러한 구성은 최근접 이웃 통신의 성능을 극대화시킨다. 즉, CPU는 기본적으로 6개의 통상 우선순위 FIFO 각각을 단일 방향에 전용시킬 수 있다. 고우선순위 FIFO는 대규모 메시지 전송에 선행하는 정찰 패킷(scout packet) 및 네트워크 혼잡의 소프트웨어 해결 모두에 유용할 것으로 예견된다. 고우선순위 패킷은 고우선순위 VC 상의 통상 우선순위의 패킷들을 우회하여, 고우선순위 수신 FIFO에 도착하게 되며, 이에 대해서는 도 8d와 관련하여 후술한다.
로컬 수신의 상세
도 8d는 도 7의 로컬 네트워크 수신 회로(76)의 전형적인 실시예를 나타낸 상세도이다. 이 회로의 기본적인 임무는 라우터에서 종단하는 패킷들을 버퍼링하는 것이다. 도 8d에 도시한 바와 같이, 6 방향 각각에 대해 하나의 고우선순위와 하나의 통상 우선순위, 즉 12개의 수신 FIFO(95)가 있다. FIFO를 각 방향에 전용시켜둠으로써 종단 패킷(terminal packet)은 글로벌 크로스바를 피할 수 있게 된다. 별도의 고우선순위 FIFO에 의해 시스템 소프트웨어는 아주 혼잡한 상태로부터 회복할 수 있고 또 대규모 메시지 정찰 패킷의 지연을 감소시킬 수 있다.
토러스 라우팅 알고리즘
토러스 라우팅 알고리즘은 가능할 때마다 개개의 패킷을 적응적으로 라우팅함으로써 네트워크 처리 능력을 최대화하려고 한다. 이 라우팅 알고리즘은 교착 상태가 없다는 것은 증명할 수 있으며, 최소 경로(minimal path)만을 사용한다. 패킷 지연은 적당한 부하 하에서 웜홀 라우팅(wormhole routing)과 같이 거동하는 버추얼 컷-쓰루(VCT) 라우팅의 사용을 통해 최소화된다. 패킷은 그 크기가 가변이므로, 소프트웨어는 지연 시간 또는 대역폭에 적합하게 할 수 있다. 토러스 라우팅 알고리즘의 기본적인 개념은 2개의 가상 네트워크, 즉 적응적 네트워크 및 확정적 네트워크를 물리적 네트워크에 내포시키는 것이다. 적응적 네트워크는 교착 상태가 없는 것은 아니지만, 확정적 네트워크는 교착 상태가 없다. 패킷이 항상 확정적 네트워크를 선택할 수 있기 때문에, 이는 적응적 네트워크에서의 교착 상태에 대한 탈출 경로(escape route)로서 기능한다. 이 방법에 관한 추가의 상세에 대해서는, IEEE Transactions of Parallel and Distributed Systemsdml 1993년 12월판인 Vol. 4, No. 12의 1320-1331 페이지에 있는 Jose Duato의 "A New Theory of Deadlock-Free Adaptive Routing in Wormhole Networks", 및 In Proceedings of HOT Interconnects IV의 1996년 8월판에 있는 Steven L. Scott와 Gregory M. Thorson의 "The Cray T3E Network: Adaptive Routing in a High Performance 3D Torus"를 참조하면 찾아볼 수 있을 것이며, 이 각각의 내용 및 개시 사항은 여기에 인용함으로써 그 전체 내용이 본 명세서에 기재되어 있는 것처럼 포함된다. 이러한 알고리즘은 비교적 구현하기 용이한 데, 그 이유는 네트워크가 VCT 라우팅을 사용하기 때문이다. 게다가, 패킷은 다운스트림 라우터에 그 전체 패킷을 보유하기에 충분한 버퍼 공간이 있을 때까지 결코 전송되지 않는다. 따라서, 패킷이 링크를 점유하는 시간은 항상 유한이며, 그 결과 버퍼 공간 의존성으로서 교착 상태가 발생할 뿐이다. 확정적 네트워크 라우팅 알고리즘은 어떤 순환적 버퍼 의존성도 갖지 않도록 보장되어 있으며, 적응적 네트워크 라우팅 알고리즘은 각각의 라우터에서 확정적 네트워크로 스위칭될 가능성을 포함하고 있다.
일 실시예에서, 적응적 네트워크는 2개의 등가적인 VC를 이용한다. 즉, 적응적 네트워크를 사용하는 패킷은 각각의 홉에서 어느 하나의 VC를 자유롭게 사용하게 된다. 2개의 적응적 VC의 이점은 단지 버퍼링된 패킷 사이의 HOL 차단 현상을 감소시켜주는 것뿐이다. 결과적으로, 글로벌 크로스바 내부로 들어가는 2개의 경로가 필요하다.
1997년 12월의 Proceedings of the Fourth International Conference on High Performance Computing의 322-329 페이지에 있는 C. Carrion, R. Beivide, J.A. Gregorio, 그리고 F. Vallejo의 문헌, "A Flow Control Mechanism to Avoid Message Deadlock in k-ary n-cube Networks"에 기술되어 있는 것과 같은 방식으로 버블 흐름 제어가 사용되는 경우 확정적 네트워크에 단지 하나의 VC만이 필요하며, 이 문헌은 여기에 인용함으로써 그의 내용 및 개시 사항은 본 명세서에 그 전부를 기재한 것처럼 포함된다. 이 알고리즘은 순환적 버퍼 의존성에 기초한 교착 상태가 불가능하도록 네트워크 사이클마다 적어도 하나의 사용가능한 패킷 버퍼가 있도록 보장해준다. 하나 이상의 VC를 사용하는, 다른 공지의 확정적이며 교착 상태가 없는 라우팅 알고리즘이 있다. 예를 들어, IEEE Transactions on Computers의 1987년 5월판의 547-553 페이지에 있는 W.J. Dally와 C. Seitz의 문헌, "Deadlock-Free Message Routing in Multiprocessor Interconnection Networks"에 기술되어 있는 전통적인 차원 순서 알고리즘(dimension-ordered algorithm)에서는 구현하는 데 단지 2개의 VC만을 필요로 하며, 여기에 인용함으로써 그의 내용 및 개시 사항은 본 명세서에 포함된다. 따라서, 확정적 네트워크는 양호하게는 단지 2개의 VC를 이용한다.
양호하게는, 적응적 네트워크와 확정적 네트워크 양쪽 모두는 최소 경로 라우팅을 사용한다. 즉, 패킷은 단지 유리한 방향으로만 자유롭게 이동할 수 있으며, 여기서 유리한 방향이란 패킷을 그의 목적지에 더 가깝게 이동시키는 방향을 말한다. 게다가, 라우팅 알고리즘은 어떤 노드 장애도 허용하지 않으므로, 노드 장애는 그 머신을 재분할함으로써 처리되며, 이에 대해서는 본 명세서에서 보다 상세하게 설명될 것이다.
패킷이 네트워크 내로 주입될 때, 소프트웨어는 그 패킷이 적응적 네트워크를 사용할 수 있는지 여부를 지정한다. 대부분의 트래픽이 적응적 네트워크를 사용할 것으로 예상된다. 주입 큐(injection queue)의 선두에 있는 패킷은 라우터에 의해 착신 패킷과 유사하게 취급된다.
라우터에서 종단하지 않는 모든 착신 패킷은 경로 선택 기능(86)을 트리거하며(도 8a 참조), 이 기능은 한 세트의 잠재적인 출력 VC를 발생한다. 이 세트는 출력이 허용될 때까지 그 패킷과 같이 있는다. 부하가 적은 네트워크(lightly loaded network)에서는, 그 패킷은 중재를 하여 출력을 신속하게 획득함으로써 VC FIFO에 버퍼링하지 않아도 될 것으로 기대된다. 이에 관계없이, 패킷은 VC FIFO의 선두에 도달할 때 중재를 행할 수 있다.
교착 상태를 확실히 없애기 위해, 모든 패킷은 그의 잠재적인 출력 VC 세트 내에 확정적 알고리즘에 적합한 VC를 포함할 필요가 있다. 각 홉에는, 이러한 VC가 단지 하나밖에 없다. 게다가, 적응적 네트워크를 이용할 수 있는 패킷들은 모든 유리한 방향에서 적응적 VC 양쪽 모두를 포함하게 된다. 따라서, 적응적 네트워크에서의 교착 상태는 교착 상태에 빠진 패킷들 중 어느 하나(또는 그 이상)가 확정적 VC를 선택할 때 항상 해소될 것이다. 종국에는, 이러한 일이 항상 일어날 것인 데, 그 이유는 확정적 네트워크가 유한 시간 내에 확실히 비어지게 (이용가능하게) 되기 때문이다.
적응적 라우팅이 가능한 패킷은 적응적이든 확정적이든 관계없이 항상 첫번째 이용가능한 VC를 선택할 것이다. 따라서, 패킷은 2개의 내장된 네트워크 사이를 점프할 수 있다. VCT 라우팅이기 때문에, 이것은 여전히 교착 상태가 없다는 것을 증명할 수 있다. 요약하면, 적응적 네트워크로부터 확정적 네트워크로의 이동은 확정적 네트워크의 관점에서 보면 주입으로 보인다. 역으로, 확정적 네트워크에서 적응적 네트워크로의 이동은 확정적 네트워크의 관점에서 보면 수신으로 보인다. 따라서, 결합된 네트워크는 교착 상태가 없는 상태에 있다.
토러스에서의 클래스 연산
선형 솔버(linear solver) 및 FFT와 같은 어떤 알고리즘은 3차원 토러스의 1차원 또는 2차원 표면 상에 물리적으로 매핑되어 있는 한 그룹의 노드 내에서 정보의 브로드캐스트를 필요로 한다. 이러한 멀티캐스트 요건을 효율적으로 지원하기 위해, 본 명세서에서 "클래스 라우팅"(class routing)이라고 하는 토러스 네트워크 내에서의 제2 유형의 라우팅이 이용된다. 클래스 라우팅은 양호하게는 모든 토러스 링크의 수신단에 있는 적은 개수(예를 들면, 4개 내지 16개)의 로컬 레지스터(local register)의 사용을 통해 구현된다. "클래스" 패킷으로서 구분된 메시지의 경우, 그 패킷의 라우팅은 목적지에 의해 결정되는 것이 아니라 오히려 아마도 계속하는 것 이외에 그 패킷이 로컬적으로 저장되어야만 하는지를 나타내는 한 비트 뿐만 아니라 가능한 출력들 각각에 대한 한 비트를 가지고 있는 이 로컬 레지스터에 의해 결정된다. 이 라우팅은 광범위한 기하학적 형상으로의 효율적인 멀티캐스팅을 가능하게 한다. 토러스에서의 클래스 네트워크 라우팅 동작에 관한 추가의 상세에 대해서는, 본 명세서에 포함되어 있는 것으로서 공동 소유의 동시 계류 중에 있는, 발명의 명칭이 "Class Networking Routing(클래스 네트워킹 라우팅)"인 미국 특허 출원 제 호(YOR920020027US1, YOR920020044US1(15270))에서 찾아볼 수 있다.
패킷 포맷
패킷화(packetizing), 재조립(re-assembly) 및 확인(verification)을 포함하여, 전체 메시지를 신뢰성있게 전달하는 것은 통신 서브시스템의 책임이다. 게다가, 통신 서브시스템은 메시지 패싱 인터페이스(Message Passing Interface; MPI)의 성능을 향상시키는 기능을 포함하고 있다. 패킷은 라우팅의 최소 단위이지만, 더 큰 메시지의 일부분인 경우가 많다. 적응적 라우팅이기 때문에, 패킷은 무순서로 도달할 수 있다. 따라서, 각 패킷은 자신이 어느 메시지에 속하는지 또 그 메시지 중의 어디에 속하는지를 규정하는 데 충분한 정보를 포함하고 있어야만 한다. 네트워크 하드웨어가 관련되어 있는 한, 그의 유일한 책무는 각 패킷을 신뢰성있게 소스 라우터의 주입 FIFO로부터 목적지 라우터의 수신 FIFO로 전송해주는 것이다.
도 9는 본 발명의 양호한 실시예에 따른 전송 패킷(100)의 포맷을 도시한 것이다. 도 9에 도시한 바와 같이, 첫번째 바이트(102)는 유형(TYPE) 필드와 몇개의 플래그(FLAG) 비트를 포함한다. 유형 필드는 라우터에 의해 서로 다른 방법으로 처리될 필요가 있는 흐름 제어, 애플리케이션 메시지, 및 에러 복구 등의 몇가지 기본적인 패킷 유형을 구분시켜 준다. 이와 유사하게, 플래그 비트는 그 패킷을 추가로 구분시켜 주며, 디코딩을 필요로 하지 않고 직접 하드웨어를 활성화시킬 수 있다. 하드웨어 설계는 유형 필드에 어떤 특징들이 인코딩되어 있는지와 플래그에 의해서는 어느 것이 지정되어 있는지를 결정짓는다. 유형 비트는 기본적으로 어느 수신 FIFO 세트가 그 패킷을 보유하게 될지를 선택하는 데 사용되는 비트를 포함한다.
전송 패킷의 두번째 바이트(104)는 라우팅 힌트(HINT) 비트(104) 및 VC 번호(106)를 가지고 있다. 직렬 상호 연결이기 때문에, 힌트 비트를 사용하여 가능한 한 조속히 출력 중재를 시작하는 것이 유리하며, 그 비트 중에는 6개의 가능한 출력 방향 각각에 대해 한 비트씩 있다. 세팅된 힌트 비트는 그 패킷이 그 목적지에 도달하기 위해 대응하는 방향으로 여전히 진행할 필요가 있음을 나타낸다. 힌트 비트는 목적지 좌표가 도착하여 로컬 라우터 좌표와 비교된 후에 갱신된다. VC 필드는 4개의 가상 채널 중 어느 것을 통해 패킷이 라우터로 들어가는지를 규정하며, 사용된 출력 가상 채널에 기초하여 각 홉에서 갱신된다. 세번째, 네번째 및 다섯번째 바이트(110, 112, 114)는 각각 목적지 노드의 절대 좌표를 나타내며, 이 목적지 노드는 3-D 메쉬처럼 번호가 매겨져 있다. 모든 노드는 그 자신의 좌표를 가지고서 구성되며, 따라서 노드는 이들 필드를 선택된 출력 방향과 함께 사용하여 다운스트림 라우터에 대한 힌트 비트를 갱신한다. 이들 필드는 또한 패킷이 일단 도착하면 그 패킷의 목적지를 확인하는 데도 사용된다.
전송 패킷은 그 크기가 32 바이트부터 256 바이트까지 가변적이며, 그 증분은 예를 들면 32 바이트씩이다. 크기(SIZE) 필드(115)는 그 패킷에 들어있는 32 바이트의 "청크(chunk)"의 개수를 나타낸다. 순서 번호(SEQUENCE NO.) 필드(118)는 누락된 패킷(dropped packet)을 검출할 수 있도록 링크-레벨의 순서 번호를 보유하는 데 사용된다. 이 필드는 점대점 프로토콜 등의 다른 메카니즘이 필요한 검출을 제공하는 경우에는 필요하지 않을 수 있다. 패킷 헤더 에러를 검출하기 위한 헤더 CRC 바이트(119)도 제공된다. 패킷의 끝부분(120)은 본 명세서에 보다 상세히 기술하게 되는 링크-레벨의 점대점 에러 검출 및 복구 방식을 지원하기 위해 에러 검출 및 표시 비트(error detection and indication bit)를 포함한다. 간략히 말하면, 점대점 에러 검출은 로컬 주입 회로(도 8c 참조)에 의해 생성되고 로컬 수신 회로(도 8d 참조)에 의해 검사된 CRC 코드에 의해 제공될 수도 있다. 링크-레벨의 에러 검출은 각 라우터의 출력 회로(도 8b 참조)에 의해 생성되고 각 라우터의 입력 회로(도 8a 참조)에 의해 검사된 패리티 비트에 의해 제공된다. 손상된 패킷이 검출되면, 링크-레벨의 패리티 코드는 에러 지시자(error indicator)로 오버라이트(overwrite; 덮어쓰기)되며, 따라서 그 패킷은 어느 장소에 도착할 때 폐기된다. 라우터 출력 회로에 관해 본 명세서에 기술하는 바와 같이, 에러가 검출되면 그 결과 링크-레벨의 재전송이 있게 된다는 것도 이해할 것이다.
전술한 바와 같이 네트워크 아키텍처에서는 아직 해소되지 못하여 고려되고 있는 여러가지 문제점이 있다. 양호한 실시예에서는 분실된 패킷을 처리하기 위한 타임아웃 메카니즘이 불량 링크 또는 라우터를 검출하여 이를 회피하기 위한 관련 메카니즘과 함께 구현되어 있다는 것을 이해해야 할 것이다.
메시지 패싱
글로벌 결합 트리
글로벌 결합 트리 상에서의 메시지 패싱은 토러스 네트워크의 구조와 유사한 패킷 구조의 사용을 통하여 수행된다. 트리 네트워크 상에서의 적은 수의 클래스 브로드캐스트 동작에 대한 부가적인 지원이 있다. 트리 네트워크는 토큰 기반 네트워크로서, 이는 시스템 인터럽트를 위해 이용될 수도 있다. 메시지들은 VC를 논-블로킹(non-blocking)으로 통과한다. 인터럽트는 동일한 데이터 스트림 내에 넣어 전달되며, 패킷 전송 도중을 포함하여 언제든지 특별한 "인터럽트" 대역외 비트(out-of-band bit)의 사용을 통해 데이터 내에 인터리빙될 수 있다. 글로벌 비동기 네트워크에서의 인터럽트 및 배리어의 발생에 관한 추가의 상세에 대해서는, 본 명세서에 포함된 것으로서 공동 소유의 동시 계류 중인, 미국 특허 출원 제 호(YOR8-2001-1009, YOR9-2002-0029(15272))에서 찾아볼 수 있다. 메시지들은 시스템 내의 어떤 노드에서라도 트리 네트워크에 주입되며, 이 메시지들은 전송의 유형에 따라 그 트리를 따라 트리 정점(tree vertex)이나 최종 목적지 중 어느 하나에 도달할 때까지 올라간다.
트리와 관련된 하드웨어는 계산 및 I/O 노드 ASIC 내에 포함되어 있다. 계산 및 I/O 프로세서에 대한 인터페이스는 메모리 매핑 FIFO(memory-mapped FIFO)이다. 각각의 VC는 독립적인 FIFO를 가지며, 이것이 VC를 논-블로킹으로 통과하는 것을 보장해준다. 트리의 산술 기능 및 브로드캐스트 기능도 또한 계산 ASIC 내에 집적되어 있다. 이 로컬 정점(local vertex)에서, 브로드캐스트 및 산술 동작은 하드웨어로 실행되며, 이에 따라 지연 시간이 아주 적어진다. 트리 구조는 물리적 512 노드 미드플레인 경계에서 자연스럽게 "넥-다운"(neck-down)으로 되기 때문에, 트리의 대역폭은 케이블의 관점에서 볼 때 최근접 이웃 링크만큼 고비용인 것은 아니다. 따라서, 각각의 방향마다 2 바이트/프로세서 클록을 동시에 지원할 수 있는 고대역폭의 트리 인터페이스가 제공될 수 있다. 입력단은 또한 VC 레벨에서 세그먼트화되는 FIFO 인터페이스도 포함한다.
패킷들은 패킷 내의 목적지가 노드 ID와 일치하는지에 따라 단순히 트리를 따라 위쪽으로 라우팅되거나 드롭(drop)된다. 도 1 및 도 5에 도시한 바와 같이, 기가비트 이더넷 트래픽은 이러한 네트워크를 이용하여 파일 및 호스트 데이터를 I/O 노드로 전송한다.
시스템 패키징
도 10은 본 발명의 초대규모의 확장가능한 수퍼컴퓨팅 머신을 나타낸 상위 개념도이다. 도 10에 도시한 전형적인 실시예에서, 본 발명의 수퍼컴퓨팅 머신(200)은 총합하여 81,920개의 프로세서 및 80개의 랙(202)을 포함하며, 80개 중에 72개의 랙은 단 하나의 73,728 프로세서 시스템(65,536 시스템과 함께 예비품인 8개의 랙을 포함하고 있음)으로서 케이블링되고 8개의 랙(204)은 2개의 개별적인 4,096 프로세서 시스템으로서 케이블링되어 있다. 73,728 프로세서 시스템은 72개의 계산 랙의 전자 회로(compute racks of electronics)을 포함하며, 그 각각은 예를 들면 8개의 랙(202)으로 이루어진 9 행(205)으로 배열되어 있다. (x-y-z) 64x32x32 머신에 최적화된 어떤 배선 구성이 예비의 행(a spare row)을 갖는 것으로 가정한다. 계산 랙은 예를 들면 엔터프라이즈 서버(enterprise server)에 사용되는 것과 같은 스펙트라-스트립의 트위스티드 페어(Spectra-strip twisted pairs)에 기반한 케이블을 사용하여 서로 연결되어 있다. 각각의 랙(202) 쌍은 z 방향의 토러스를 형성한다. 따라서, 각각의 랙 쌍은 (x-y-x) 8x32x32로 구성된 2048개의 계산 ASIC을 갖는다. 한개의 행 또는 아일(aisle)은 이러한 쌍을 4개 포함하며, (x-y-z) 8x32x32로서 구성되고, "y" 방향을 형성한다. 열들은 "x" 방향을 형성한다. 총 73,728개의 프로세서로 된 머신은 물리적으로는 (x-y-z) 72x32x32로서 케이블링되지만, 논리적으로는 64x32x32로서 사용된다. 9개의 아일 중 하나는 예비품로서 예비될 수 있으며 64k 계산 노드 시스템의 일부분이 아니다.
양호하게는, 각각의 계산 랙(compute rack)은 2개의 "미드플레인"으로 구성되어 있으며, 각각의 미드플레인은 512개의 계산 프로세서를 포함한다. 미드플레인은 수직으로, 즉 어느 하나가 다른 것의 위쪽에 배치되어 있으며, 랙의 전면 및 후면으로부터 접근된다. 각각의 패시브 미드플레인(passive midplane)은 케이블을 받아들이는 12개의 링크 카드(link card), 8개의 프로세서 ASIC를 각각 갖는 64개의 계산 카드, 기가비트 이더넷 및/또는 인피니밴드 연결을 받아들이는 2개 또는 4개의 I/O 카드, 시스템 클록을 분배하는 클록 카드, 및 계산 카드 각각으로부터의 100 Mb/s 이더넷 링크를 통합하는 고속 이더넷 스위치 카드를 포함한다. 미드플레인의 좌우측 단부에 있는 전원 커넥터는 전원 공급장치로부터의 48V DC를 분배한다.
양호하게는, 이후에 기술하게 되는 바와 같이, 수퍼컴퓨팅 머신은 공냉식이다. 각각의 계산 랙 내부에서, 뜨거운 공기의 흐름은 수평 방향, 즉 좌에서 우로 흐른다. 실내 공기는 랙의 좌측에서 들어와 랙의 우상단에 있는 수직 출구 플레넘(vertical exit plenum)을 빠져나간다. 모듈을 이루어 배치된 냉각팬의 뱅크들은 머신이 동작하고 있는 중에 개별적으로 접근되어 서비스될 수 있다. 수퍼컴퓨터 시스템의 냉각 모듈에 관한 추가의 상세에 대해서는, 본 명세서에 포함되어 있는 것으로서 공동 소유의 동시 계류 중에 있는, 발명의 명칭이 "Smart Fan Module(스마트 팬 모듈)"인 미국 특허 출원 제 호(YOR920020045US1(15263))에서 찾아볼 수 있다.
각각의 계산 및 I/O 카드는 고유의 어드레스를 갖는다. 18 비트 어드레스는 백플레인(backplane)의 어드레스(9 비트) 뿐만 아니라 백플레인 상에서의 카드 위치(9 비트)에 의해 정해진다. 각각의 프로세서가 고유의 어드레스를 갖도록 카드 자체에 대해 부가의 비트들이 인코딩되어 있다. 이 어드레스는 예를 들어 카드의 이더넷 어드레스를 형성하기 위해서나 또는 호스트 진단 코드를 통해 장애를 보고할 목적으로 사용된다.
클록 분배
양호한 실시예에서, 시스템(200) 내의 72개의 랙(202)에는 공통의 전속도 클록(full speed clock)이 제공된다. 다른 대안에서는, 클록은 프로세서 속도의 4배인 직렬 데이터 통신을 용이하게 하기 위해 프로세서 속도의 2배(2x)로 제공될 수 있다. 본 발명은 특히 장기 위상 지터(long term phase jitter)를 회피하기 위해 각각의 프로세서 상의 PLL을 사용하여 클록을 재생성할 것을 요건으로 하지 않는다. 공통 클록을 사용하게 된 다른 동기는 각각의 프로세서의 로컬 클록을 공통 주파수로 유지시킴으로써 소프트웨어 컨텍스트 스위칭 시간(software context switching time)이 길어질 가능성을 없애기 위해서이다. 글로벌 브로드캐스트 기능을 통한 초기 클록 동기화도 또한 제공된다.
이러한 클록을 분배하는 한가지 전형적인 수단이 도 11에 도시되어 있으며, 차원으로 볼 때 정확한(dimensionally accurate) 대규모 수퍼컴퓨팅 머신 어레이(210)의 평면도 상에 중첩하여 도시되어 있다. 어레이의 중앙 근방에 케이블(215)로 도시되어 있는 고주파 소스는 양호하게는 클록 분할기(clock splitter)를 사용하여 9개의 출력으로 분할되어, 길이가 약 4.5미터인 차동 케이블(differential cable)을 따라 아래쪽의 제2 팬아웃 박스(fanout box)(218)로 분배되며, 이 박스에서 케이블(220)이 시작된다. 이들 제2 박스(218)는 케이블 입력이 클록 소스를 대체하는 것을 제외하고는 제1 박스와 동일하며, 이에 따라 클록을 제3 클록 분할기(223)로 분배하고, 또 이어서 케이블(224)로 도시된 하나의 클록을 각각의 미드플레인으로 전송한다. 미드플레인 상에서, 클록 분배 카드는 미드플레인 상의 모든 카드에 대한 클록을 생성한다. 계산 및 링크 카드는 이어서 동일한 클록 분할기를 사용하여 그 카드 상의 모든 ASIC에 대한 클록을 생성한다. 클록 트리의 깊이는 6 단(stage)이다.
양호한 실시예에서, ASIC에 대한 모든 클록은 거의 동일한 지연을 가지며, 동일한 개수의 케이블, 커넥터, 버퍼 등을 통과한다. 바이폴라 기술에 기반한 저전압의 정극성 이미터 결합 로직(Low Voltage Positive Emitter Coupled Logic; LVPECL) 클록 칩을 사용하여, 클록 버퍼를 통과하는 지연은 전압에 거의 무관하여, 이에 따라 상이한 클록 칩의 온도 변동으로 인한 클록 지터를 대부분 제거한다. 지터의 주된 원인은 온도 차이인 것으로 예상되며, 이 온도차는 본 명세서에 기술하는 바와 같은 신규의 데이터 캡처 방식에 의해 느려지고 추적되는 것으로 기대된다. 2개의 다른 독립적인 4096 노드 시스템은 그 자신의 독립적인 클록 분배를 갖는다.
토러스 케이블링
전술한 바와 같이, 시스템의 각각의 계산 ASIC은 6개의 고속 직렬 링크를 갖는 단 하나의 시스템 이미지(system image)의 모든 계산 노드를 연결시키는 3차원 토러스의 일부분이다. 각각의 링크는 양방향성이고, 2개의 차동 신호쌍(differential signal pair)(예를 들면, 링크당 총 4개의 배선)을 사용하며, 각 방향에서 프로세서 주파수의 4배의 비트 레이트(bit rate)로 동작한다. 일례의 프로세서 주파수가 700 MHz인 경우, 최대 데이터 레이트(data rate)는 2.8 기가비트/초/방향이고, 3개의 직교 좌표 방향 X, Y, Z 각각에서 인접한 이웃과의 통신을 할 수 있으며, 따라서 총 토러스 대역폭은 ASIC당 16.8 기가비트/초(2.1 기가바이트/초)이다. 표 2에 나타낸 바와 같이, 계산 카드 토러스 연결부는 논리적 (x-y-z) 2x2x2 구성으로 배치되어 있다. 각각의 논리적 차원에서의 연결부는 미드플레인으로부터 커넥터를 통해 그 카드로 들어가서, 직렬로 되어 있는 2개의 계산 ASIC을 통과하고 동일 커넥터를 통해 그 카드를 떠난다. 이와 마찬가지로, 미드플레인의 512개의 계산 ASIC은 논리적 8x8x8 토러스 구성으로 연결되어 있다. 각각의 논리적 차원에서의 연결부는 링크 상의 링크 ASIC로부터 미드플레인에 들어가서, 4개의 계산 카드와 8개의 계산 ASIC을 통과하여, 그 동일 링크 ASIC으로 되돌아간다. 이들 링크 칩은 그 미드플레인을 떠나는 신호용의 직렬 링크를 리파워링(repower)한다.
블록 노드 개수 X-Y-Z
노드 카드 8 2-2-2
미드플레인 512 8-8-8
듀얼 랙 2048 8-8-32
아일 16,384 64-8-32
시스템 65,536 64-32-32
글로벌 결합 트리 케이블링
전술한 바와 같이, 각각의 계산 ASIC은 단일 시스템 이미지의 모든 계산 노드(12)를 연결시키는 글로벌 결합 트리의 일부분이다. 각각의 ASIC(20)은 4개의 재구성가능한 트리 링크 연결을 갖는다. 트리 내의 각각의 링크는 양방향성이고, 8개의 차동 신호쌍(링크 당 총 16개의 배선)을 사용하며, 각 방향에서 프로세서 주파수의 16배의 비트 레이트(bit rate), 즉 각 방향에서 프로세서 주파수의 2배의 바이트 레이트(byte rate)로 동작한다. 프로세서 주파수가 700 MHz인 경우, 트리의 상방 또는 하방으로의 최대 데이터 레이트는 11.2 기가비트/초/방향, 즉 1.4 기가바이트/초/방향이다. 이것은 임의의 방향에서의 토러스 링크의 데이터 레이트의 4배이다. 계산 카드의 트리 링크 연결(250)은 도 12a에 도시한 바와 같이 배열되어 있다. 각각의 카드는 하나의 업스트림 링크(252)를 가지며, 이 링크는 카드를 벗어나 커넥터(255)를 지나 트리의 상단을 향해 간다. 각각의 카드는 또한 2개의 다운스트림 링크(258)를 가지며, 이 링크는 카드를 벗어나 트리의 논리적 하단(logical bottom)을 향해 간다. 각 계산 카드 상에서의 로컬 트리의 헤드 노드(head node)(121)는 커넥터에 또 트리 상에서 논리적으로 그 아래쪽에 있는 다른 카드들에 2개의 저지연 다운스트림 링크를 제공하기 위해, 4개의 그의 트리 링크 연결 모두를 사용한다.
도 12b는 I/O 카드 트리 링크 연결을 나타낸 것이다. 도 12b에 도시한 바와 같이, 미드플레인 상의 트리는 논리적으로 각각의 I/O 카드(260a, 260b)가 로컬 트리의 헤드에 있도록 배열되어 있으며, 미드플레인의 프로세서의 절반은 논리적으로 그 아래쪽에 있다. 2개의 I/O 카드(260a, 260b)는 I/O ASIC 중의 4개가 미드플레인의 트리의 헤드에 있도록 배선되어 있다. 이들 4개의 I/O ASIC 중 어느 하나가 논리적으로 그 트리의 헤드에 있는지는 소프트웨어로 구성가능하다. 이들 상단 4개의 I/O ASIC은 그 다음에 계산 카드 상의 상단 계산 ASIC이 계산 카드의 업스트림 및 다운스트림 신호를 송출했던 방법과 유사한 방법으로 미드플레인의 업스트림 및 다운스트림 신호들을 송출한다.
랙 설계
본 발명의 수퍼컴퓨팅 머신의 패키징 시스템(310)은 랙(312)마다 공기로 냉각될 수 있을 개수만큼의 프로세서를 설치하고 있다. ASIC, 복수의 DRAM 모듈, 및 로컬 DC-DC 컨버터의 비효율성을 포함하고 있는 계산 카드에 요구되는 목표 전력은 예를 들면 10W이다. 완성된 랙은 계산 카드 이외에도 송풍기(air mover), AC-DC 전원장치, 링크 칩, 이더넷 스위치, I/O 카드, 클록 등을 가지므로, 이것이 부가적인 열 부하(heat load)를 증가시킨다. 따라서, 기술된 예시적인 실시예에서, 최적의 설계 선택은 랙(312)마다 1024개의 계산 노드를 배치하는 것이며, 예상되는 총 열 부하는 랙(312)당 대략 15 KW가 된다. 이후에 기술하는 바와 같이, 이들 1024개의 계산 카드는 회로 카드 마다 많은 부품을 배치하여 단 하나의 부품이 고장남으로써 교체 비용이 아주 높아지는 것을 피하면서, 케이블 및 커넥터의 개수를 최소화하도록 구성된다.
냉각
시스템(310)의 랙(312)은 강제 공기 대류(forced air convection)에 의해 냉각된다. 도 13은 랙(312) 내부에서의 기본적인 공기 흐름을 나타낸 것이다. 공기는 랙의 한쪽에 탑재된 팬(fan)(315)의 어레이에 의해 랙의 그 반대쪽에서 그 내부로 유입된다. 냉각 공기(cool air)는 미드플레인에 꽂혀 있는 프로세서 카드(계산 카드 및 I/O 카드)의 옆을 지나 흐른다. 다수의 평행한 공기 흐름은 랙 상의 플레넘(plenum)(320)에 의해 모아져서, 카드의 균일하고 효율적인 냉각을 제공한다. 어레이 내의 팬들은 패키징되어 그룹을 이루고 있다. 각각의 팬 그룹은 핫 스왑가능 모듈(hot-swappable module) 내부에 탑재되어 있으며, 이 모듈에는 예비품(redundancy)이 내장되어 있다. 팬 모듈은 랙의 동작에 영향을 미치지 않고 교체될 수 있다. 팬 속도 및 공기 온도는 운전 중에 모니터링되어 제어될 수 있다. 수퍼컴퓨터 시스템용 냉각 모듈에 관한 추가의 상세에 관해서는, 본 명세서에 포함되어 있는 것으로서 공동 소유의 동시 계류 중에 있는, 미국 특허 출원 제 호(YOR8-2001-1058, YOR9-2002-0045US1(15263))에서 찾아볼 수 있다.
전력 분배
시스템 랙에는 분산 급전 시스템(distributed power supply system)에 의해 전원이 공급된다. 양호하게는, 적어도 보다 소형의 전력 모듈의 경우 DC-DC 변환의 효율성이 높기 때문에, 48.0 볼트의 배전(distribution)이 이러한 급전 방식으로서 사용된다.
양호하게는 이러한 분산 급전 시스템의 중간(intermediate)은 3개의 AC/DC 컨버터로부터 유도되어 랙에 있는 미드플레인들로 분배된다. 컨버터는 2+1 토폴로지로 연결되어, 필요한 리던던시를 분산 전원 버스(distributed power bus)에 제공한다. 컨버터는 핫 스왑가능으로서, 랙을 정지(shut down)시키지 않고도 언제든지 교체될 수 있다. 컨버터의 상태는 원격지 호스트에 의해 접근가능한 마이크로콘트롤러에 의해 모니터링된다.
분배 전력의 일부는 지속되고, 다른 것은 스위칭된다. 비절환식(non-switched) 전원 버스는 연속적인 전원을 팬 모듈, 클록 및 링크 칩에 제공한다. 본 명세서에서 시스템 분할에 관해 더 상세히 설명하게 되는 바와 같이, 랙이 서비스되고 있는 중에도 이웃하는 랙으로의 신호가 메시지 네트워크를 통해 전달될 수 있도록 보장하기 위해, 링크 칩에 대한 전원은 유지된다. 링크 칩은 클록과 팬을 필요로 한다. 절환식(switched) 전원 버스는 프로세서 카드에 대한 전원을 제어한다. 전압 제어가 정밀하고 피드백에 고대역폭을 사용하며 대전류가 국소화되어 있으므로, 전원 공급 장치의 DC/DC 변환부는 프로세서 카드 상에 배치되어 있다. 양호하게는, 2가지 전원 전압이 이용된다. 즉, DRAM 시스템에는 2.5V를 이용하고 ASIC에는 약 1.2V-1.5V가 이용된다. 신뢰성 문제는 여분의 전원 공급 장치를 병행하여 사용함으로써 해소된다.
미드플레인
토러스 및 글로벌 결합 트리 네트워크의 한가지 가능한 물리적 라우팅이 도 14에 도시되어 있다. 개념적으로는, 미드플레인(300)은 64개의 계산 카드(302)의 카드 연결부, 12개의 링크(케이블) 카드, 2개의 I/O 카드, 클록, 이더넷 및 (링크 카드용) 전원 공급 장치를 포함한다. 미드플레인은 클록과 토러스, 트리 및 이더넷 네트워크용의 고속 차동 배선을 제공한다.
시스템 분할
본 발명의 수퍼컴퓨터는 소프트웨어 제어에 의해 논리적으로 재분할될 수 있으며, 이에 따라 물리적으로 하나의 시스템으로서 서로 케이블링되어 있는 대규모의 랙 그룹이 다수의 시스템으로 논리적으로 분할되는 것을 가능하게 해준다. 그러면, 이들 논리적으로 분리된 시스템 각각은 상이한 코드를 동시에 실행시킬 수 있거나 또는 어떤 분리된 시스템은 다른 시스템이 계산을 하는 중에 서비스될 수 있다. 따라서, 논리적 재분할은 코드 개발 및 시스템 보수를 용이하게 해준다. 재분할을 제어하는 시스템 링크 칩의 동작에 대해서는 지금부터 도 15를 참조하여 설명한다.
링크 칩
도 15에 도시한 바와 같이, 토러스, 글로벌 결합 트리 및 글로벌 인터럽트 신호 네트워크는 링크 장치(400)를 통과한다. 링크 칩이라고 하는 이러한 링크 장치는 2가지 기능을 제공한다. 첫째, 링크 칩은 미드플레인들 사이의 케이블 상의 신호를 리드라이브(redrive)하여, 서로 다른 미드플레인 상의 계산 ASIC들 사이에 있는 길고 손실이 많은 트레이스-케이블-트레이스 연결(trace-cable-trace connection)의 중간에서의 고속 신호의 형상 및 진폭을 개선시킨다. 둘째, 링크 칩은 그의 서로 다른 포트 사이에서 신호들을 리디렉션(redirection)시킨다. 이러한 리디렉션 기능은 수퍼컴퓨팅 시스템이 다수의 논리적으로 별개인 시스템으로 분할되는 것을 가능하게 해주는 것이다.
정규 리디렉션
링크 칩(400)은 정규 리디렉션(regular redirection) 및 분리 리디렉션(split redirection)이라고 하는 2가지 유형의 신호 리디렉션을 수행한다. 정규 리디렉션은 대형 컴퓨터 시스템의 하나의 논리적 방향으로부터 하나의 미드플레인을 제거한다. 정규 리디렉션은 도 15의 모드 1 및 모드 2로 표시된 모드로 도시되어 있다. 정규 리디렉션에는 링크 칩(400)의 포트(401, 404, 405, 406)가 관여한다. 포트(401, 404)는 특정의 토러스 논리적 방향인 x, y, 또는 z 방향에서 현재의 미드플레인과 이보다 상위 또는 하위 미드플레인 사이의 플러스 방향 및 마이너스 방향 케이블에 연결된다. 이들 케이블 연결은 도 16에서는 화살표로 도시되어 있다. 포트(405, 406)는 미드플레인 내부에서 직렬로 되어 있는 8개의 계산 프로세서를 통해 순환하는 토러스 루프에 연결된다. 이들 미드플레인 토러스 루프의 라우팅에 대해서는 본 명세서에서는 도 10과 관련하여 기술되어 있다. 모드 1에서 동작하고 있을 때, 링크 칩(400)은 이전의 미드플레인으로부터 현재의 미드플레인을 지나 그 다음 미드플레인으로 신호들을 라우팅한다. 이에 따라 현재의 미드플레인은 더 큰 계산 시스템의 일부분이 된다. 모드 2에서 동작하고 있을 때는, 이전의 미드플레인으로부터 포트(404)를 거쳐 오는 케이블 신호는 포트(406)를 거쳐 직접 그 다음 미드플레인으로 전달되어, 현재의 미드플레인을 더 큰 계산 시스템으로부터 제거한다. 또한, 모드 2에서는, 현재의 미드플레인의 신호는 포트(405, 406)를 거쳐 미드플레인 내에서 루프를 형성하여, 더 작은 계산 시스템을 생성한다.
분리 리디렉션
분리 리디렉션은 대형의 64x32x32 시스템을 2개의 똑같은 32x32x32 시스템으로 분할하는 것을 가능하게 한다. 링크 칩(400)에 구현되어 있는 바와 같이, 분리 리디렉션은 아주 다양한 시스템 분할을 가능하게 한다. 그렇지만, 긴 케이블에 관한 비용 및 신호 무결성 문제로 인해, 분리 리디렉션은 논리적 X 방향으로는 물리적으로만 케이블링되고 또 대형 시스템을 2개의 똑같은 절반으로 분할하는 것을 가능하게 하는 데 필요한 개수의 랙 아일 상에서만 있게 된다. 분리 리디렉션은 도 15의 모드 3 및 모드 4로 도시되어 있다. 8개의 모드, 즉 모드 3 내지 모드 10은 분리 리디렉션을 달성하는 데 필요하지만, 단지 2개만, 즉 모드 3 및 모드 4가 도 15에 도시되어 있다. 분리 리디렉션에서, 링크 칩(400)은 이웃하는 미드플레인에 대해 플러스(+) 또는 마이너스(-) 케이블 방향인 것으로 생각하는 케이블 포트를 재정의한다. 링크 칩은 정규 포트(401)로부터 분리 포트(402, 403)로의 플러스 방향 포트를 재정의하거나 또는 정규 포트(404)로부터 분리 포트(402, 403)로의 마이너스 방향 포트를 재정의한다. 정규 케이블은 도 16에서 화살표가 붙은 가는 선으로 도시되어 있고, 분리 케이블은 예를 들면 도 16에서 425b로 표기한 랙의 행에 도시한 바와 같은 "논리적 Y 케이블"로서 도시되어 있다.
분할(Partitioning)
논리적 분할은 본 발명의 수퍼컴퓨팅 시스템이 세분될 수 있는 방법에 대한 옵션의 범위를 가능하게 한다. 도 16은 정규 분할(regular partitioning) 및 분리 분할(split partitioning) 양쪽 모두의 일례를 제공하며, 미드플레인이 서비스를 위해 시스템으로부터 격리될 수 있는 방법을 나타낸 것이다.
분리 분할을 하면 대형의 72x32x32 케이블링된 시스템을 거의 똑같은 절반인 2개의 시스템, 즉 40x32x32 시스템과 32x32x32 시스템으로 분할할 수 있게 된다. 이것은 미드플레인이 제작되고 있을 때 그 미드플레인이 물리적으로 어디에 위치하는지에 관계없이 2개의 32x32x32 시스템이 항상 생성될 수 있도록 보장하기 위하여 2가지 방법 중 어느 하나로 달성될 수 있다. 40x32x32 시스템이 상단의 5개 아일이고, 32x32x32 시스템이 하단의 4개의 아일이 되거나, 그 반대로 되거나 한다. 예를 들어, 도 16에서 랙(410)으로 표시된 랙 내의 미드플레인이 서비스를 필요로 하는 경우, 상단의 4개의 아일과 하단의 5개의 아일 사이의 시스템을 분할하기 위해, 분리 분할이 사용될 수 있다. 이 경우, 도 16의 하단의 5개의 아일을 포함하는 랙(415)은 40x32x32 시스템을 형성하고, 상단의 4개의 아일로 된 랙(420)은 별도의 32x32x32 시스템을 형성한다. 이 2개의 시스템 모두는 이들 크기로 운영될 수 있거나, 또는 정규 분할을 사용하여 더 세분될 수도 있다.
정규 분할은 임의의 논리적 방향으로부터 하나의 8 노드 슬라이스(8 node slice)를 격리하는 데 사용된다. 랙(410) 내의 미드플레인이 오동작 중인 경우, 40x32x32 하단 시스템의 나머지를 위해 논리적 x 방향의 하단의 아일로부터 두번째 것을 격리시켜, 아일(425a, 425b, 425c, 425d)에 제공되어 있는 랙에 의해 도시된 32x32x32 시스템(첨부된 범례에서 시스템 #1로서 표시됨)과 아일(430)에 도시된 랙을 포함하는 8x32x32 시스템을 생성하기 위해 정규 분할이 사용될 수 있다. 논리적 y 방향에서의 이 8x32x32 섹션의 정규 분할은 랙(410, 411)을 아일(430) 내의 나머지 랙으로부터 격리시켜, 8x32x32 섹션(첨부된 범례에서 시스템 #2로 표시됨) 및 8x8x32 섹션[랙(410,411)을 포함함]을 제공한다. 논리적 z 방향에서의 8x8x32 섹션의 2번의 정규 분할은 랙(410)과 랙(432a, ..., 432f)을 격리시켜, 그 결과 하나의 8x8x32 섹션(첨부된 범례에서 시스템 #3으로 표시됨)과 2개의 8x8x8 섹션(첨부된 범례에서 시스템 #4/5로 표시됨)이 얻어지며, 이들 중 어느 하나는 다른 모든 하위 부분(subdivision)이 계산하고 있는 중에 서비스될 수 있다. 논리적 y 방향을 따라 상부의 4개의 아일을 이와 유사하게 분할하면 32x16x32 하위 부분(435)(첨부된 범례에서 시스템 #6으로 표시됨), 32x8x32 하위 부분(440)(첨부된 범례에서 시스템 #7로 표시됨), 및 32x8x32 하위 부분(445)(시스템 #8로 표시됨)이 얻어진다.
정규 분할은 그 외에도 도 10의 하단부에 도시된 2개의 작은 8x16x32(4096, 즉 4개의 랙) 시스템(204)을 세분하는 데 사용될 수 있다. 이들 2개의 시스템은 대형의 72x32x32 시스템과 분리되어 물리적으로 케이블링되어 있기 때문에, 대형 시스템과 결합되어 80x32x32 시스템을 이룰 수도 없고 또한 서로 결합될 수도 없다. 분리 분할은 그 밖에도 2개의 작은 8x16x32 시스템 상에서는 제공될 수 없다.
글로벌 결합 트리 및 글로벌 제어 신호는 토러스 신호와 동일한 링크 칩 및 케이블을 통해 라우팅된다. 따라서, 정규 및 분리 재분할(regular and split repartitioning)은 토러스와 정확히 똑같게 트리를 논리적 서브파티션(subpartition)으로 분해한다. 그 다음에 논리적 서브파티션 내에서는, 도 12a를 참조하여 전술한 바와 같이,각각의 미드플레인 상의 I/O 프로세서가 파티션 내의 트리를 연결시키도록 소프트웨어 재구성된다. 본 발명의 수퍼컴퓨터 구조의 분할에 관한 추가의 상세에 대해서는, 본 명세서에 포함된 것으로서 공동 소유의 동시 계류 중에 있는, 발명의 명칭이 "Fault Tolerance in a Supercomputer Through Dynamic Repartitioning(동적 재분할을 통한 수퍼컴퓨터에서의 장애 허용)"인 미국 특허 출원 제 호(YOR920020041US1(15274))에서 찾아볼 수 있다.
시그널링
전술한 바와 같이, 수퍼컴퓨터는 2개의 별도의 고속 통신 네트워크, 즉 3D 토러스 및 글로벌 결합 트리를 포함한다. 이제부터는 도 17을 참조하여 이들 네트워크 상에서의 시그널링에 대한 양호한 전기 설계 및 구현의 상세에 대해 기술할 것이다.
단방향 및 동시 양방향 시그널링(Uni-directional and Simultaneous Bi-directional signaling)
양호하게는, 토러스 네트워크의 대역폭은 프로세서 클록 사이클 마다 각 방향으로 4 비트의 데이터를 전송할 수 있을 정도이다. 이러한 고속 데이터 레이트를 달성하기 위한 한 구현은 각 방향에서 하나씩, 2개의 단일 비트 단방향 링크(single-bit unidirectional link)를 이용하는 것이다. 이와 같이, 각 링크는 프로세서 클록 주파수의 4배인 데이터 레이트로 동작해야만 한다. 양호하게는, 이들 연결은 직렬 링크이고, (별도의 클록 없이) 데이터만을 전송한다. 이들 링크의 데이터 캡처 및 클록킹에 대해서는, 본 명세서에 포함되어 있는 것으로서 공동 소유의 동시 계류 중에 있는, 발명의 명칭이 "Data Capture Technique for High Speed Signaling(고속 시그널링의 데이터 캡처 기술)"인 미국 특허 출원 제 호(YOR920020033US1, YOR920020034US1(15259))에 보다 상세히 기술되어 있다. 다른 대체 구현은 1990년 10월의 Proceedings ICCd Conference의 430-433 페이지에 있는, Kevin Lamb, Larry R. Dennison, 그리고 William J. Dally의 "Simultaneous Bidirectional Signaling for IC Systems"와 1997년 8월의 Hot Interconnects V Proceedings의 149-156 페이지에 있는, Matthew Haycock와 Randy Mooney의 "A 2.5 Bb/s Bidirectional Signaling Technology"에 기술되어 있는 것과 같은 동시 양방향(BiDi) 시그널링을 사용하며, 이들 문헌 각각의 전체 내용 및 그 개시 사항은 여기에 인용함으로써 그 전부가 본 명세서에 기재되어 있는 것처럼 포함된다. 즉, 각 노드 사이의 링크는 신호를 양쪽 방향으로 동시에 전달한다. 따라서, 링크 상의 각 방향의 데이터 레이트는 동시 양방향(BiDi)을 사용함으로써 클록 주파수의 2배로 감소될 수 있다. 동시 양방향에 의해 가능한 데이터 레이터가 더 낮을 경우 필요한 상호 연결 대역폭이 감소되며, 구동기/수신기 회로가 보다 복잡해진 대가로서 데이터 캡처 회로에서 보다 완화된 타이밍 버젯(timing budget)이 가능하게 된다. 이러한 이유들로 인해, 동시 양방향은 또한 더욱 확장가능하게 될 수 있다. 그렇지만, "역방향 채널" 크로스토크(reverse channel crosstalk)로 인한 부가적인 노이즈가 노이즈 버젯(noise budget) 및 타이밍 버젯 내에 포함되어야만 한다. 도 17은 2개의 노드를 상호 연결시키는 케이블(455)의 양단부를 구동시키는 한쌍의 차동의 동시 양방향 구동기/수신기 회로(differential simultaneous bi-directional driver/receiver circuit)(450)의 블록도이다.
도 17에 도시한 바와 같이, 동시 양방향 설계(450)는 회선의 각 단부(460a, 460b)에서의 피구동 신호의 복사본을 차동 수신기(470a, 470b)의 어느 한 입력에 인가함으로써 동작한다. 이것은 다른쪽 단부로부터의 신호의 검출을 위한 임계값을 효과적으로 세팅함으로써, 수신된 파형에 대한 근단 구동기(near-end driver)의 기여분을 소거하게 된다. 본 발명의 수퍼컴퓨터에서의 양방향 링크의 구현에 관한 추가의 상세에 대해서는, 여기에 포함된 것으로서 공동 소유의 공동 계류 중에 있는, 미국 특허 출원 제 호(YOR920020033US1, YOR920020034US1(15259))에서 찾아볼 수 있다.
글로벌 트리 네트워크는 양호하게는 3D 토러스와 동일한 회로 및 상호 연결 기술을 사용한다. 따라서, 연결마다의 미처리 데이터 레이트(raw data rate)는 동일하다. 그렇지만, 글로벌 트리는 각 방향마다 4개씩 개별적인 데이터 링크를 포함하고 있다. 따라서, 글로벌 트리는 프로세서 사이클마다 16 비트를 전송할 수 있다. 이들 상호 연결 네트워크 상에서는 높은 데이터 레이트가 요구되기 때문에, 차동 시그널링(differential signaling)이 모든 연결에 사용된다. 주지하는 바와 같이, 차동 시그널링은 노이즈 마진 향상, 공통 모드 제거, 및 보다 적은 전원 노이즈 발생을 포함한 각종의 이점을 제공한다. 본 발명의 패키징 아키텍처는 이들 고속 차동 상호 연결이 기본적으로 2가지 유형을 가져야만 한다는 것을 말해준다. 가장 통상적인 연결은 인쇄 회로 카드를 통한 노드간 연결이거나 또는 카드와 백플레인 배선의 조합이다.
클록 분배
본 발명의 수퍼컴퓨터에서의 직렬 데이터 캡처는 아주 저전력이 되도록 설계되어 있다. 이 목적을 위해, 데이터는 로컬 클록으로 송출되고 또 데이터는 로컬 클록으로 캡처되며, 이 2개의 로컬 클록은 동일한 주파수이지만 임의의 위상을 갖는다. 이에 따라, 직렬 링크가 구현된 경우에 ASIC에서 나가는 배선 및 구동 회로의 개수를 증가시키는, 송출 클록의 카피를 데이터와 함께 전송해야 하는 요건이 필요없게 된다.
이러한 조건을 달성하는 가장 간단한 방법은 프로세서의 속도의 클록(전속도 클록)을 시스템 내의 모든 프로세서에 분배하는 것이다. 다른 대안으로는, 저속 클록이 분배되어 ASIC 내에서 원하는 프로세서 주파수로 변경될 수 있지만, 이에 필요한 PLL이 데이터 캡처에 해가 되는 것으로 주장되고 있다. 다른 대안은 프로세서 속도의 2배의 클록을 분배하는 것이며, 이 때는 ASIC에서 프로세서 클록을 추출해야만 한다. 이것은 PLL없이 달성될 수 있으며, 원하는 바에 따라 프로세서 속도의 2배 또는 4배로 오프-칩으로 데이터를 구동하기 위한 정확한 클록 엣지가 가능하게 된다.
원하는 다중성(multiplicity)의 클록 팬아웃 보드 및 필요 길이의 케이블을 포함하는 클록 분배는 원하는 깊이(depth)를 달성하기 위해 서로 연결될 수 있다. 예를 들어, 클록 팬아웃이 10인 경우, 5 레벨의 리드라이브(redrive)가 100,000개의 클록을 생성하게 된다. 예를 들어, 도 11과 관련하여 전술한 바와 같이, 수퍼컴퓨터의 경우 전자 회로부를 카드, 보드 등으로 세그먼트화하려면 6 레벨의 리드라이브를 필요로 한다. 이와 같이, 적어도 700 MHz, 바람직하게는 1.4GHz의 주파수에서 최대 스큐가 100 ps 이하인 안정된 분배 클록이 실현된다.
직렬 데이터 캡처
ASIC 노드의 2.8Gb/s(각 방향에서)의 직렬 링크에 대한 것으로서 최소한 각 방향에서 1.4Gb/x의 데이터 레이트인 대역폭으로서, 그 대역폭은 전술한 바와 같이 양방향이다. 양방향 요건은 전술한 바와 같이 저전력 및 저비용의 운영 제약 요인에 맞도록 여러가지 방법으로 처리된다. 이 방법과 관련된 특별한 문제는 저전력 제약 조건이다. 이것은 링크 전송을 위한 상대 위상 정보의 부족과 함께 표준적인 PLL 클록 및 데이터 복구 설계를 하지 못하게 한다. PLL을 사용하지 않고 데이터와 함께 전달되는 소스 동기 클록을 사용하여 데이터 전송을 달성하는 일은 기술분야에 공지되어 있다. 양호하게는, 본 발명에서는, I/O 및 신호 카운트를 효과적으로 배가시킴으로 인해 이 클록이 데이터와 함께 전송되지 않기 때문에, 위상 추출 및 데이터 복구는 여전히 수행된다. 위상 정보가 복원될 수 있는 가능한 방법은 많이 있다.
이제부터는 도 18a 및 도 18b와 관련하여 양호하게는 이들 목적에 사용되는 디지털 데이터 캡처 방식에 대해 기술한다. 도 18a 및 도 18b는 각각, 신뢰성있게 저전력으로 또 적은 수의 셀을 사용하여, 클록 속도의 2배 내지 4배의 레이트로 데이터를 캡처하려는 목적을 달성하고 또 그 데이터를 로컬 클록 영역내로 가져오는 직렬 데이터 캡처를 위한 수신 매크로 블록(500) 및 전송 매크로 블록(520)을 나타낸 것이다. 도 18a 및 도 18b에 도시한 바와 같이, 내부 클록 주파수는 비트 시간(bit time)의 주파수의 1/2이다. 즉, 더블 데이터 레이트(double data rate; DDR)이다. 이 방법은 또한 SDR 모드에서 이용되거나 원하는 경우 쿼드 데이터 레이트 방식(quad data rate scheme)으로 확장될 수도 있다. 이 방법은 예를 들면 양방향 시그널링 대안에 관해서는 700 MHz 클록 및 1.4 기가비트/초/쌍/방향 (Gb/s/pair/direction)의 동시 양방향 통신으로 동작한다.
수신 매크로 블록(500)에서의 지연은 데이터의 바이트 위상(byte phase)에 따라 7 내지 12 비트 시간이다. 그렇지만, 이 지연은 바이트 출력(byte output)을 건너뜀으로써 3 내지 4 비트 시간으로 단축될 수 있다. 이것은 데이터 내용을 무시해도 되는 경우에 신호 리드라이브를 위한 합리적인 방법이다.
도 18a에 도시한 데이터 캡처 블록에 관해서는, 비트를 고속의 탭 지연선(fast tapped delay line)을 따라 아래쪽으로 전송하고 모든 탭을 로컬 클록으로 샘플링함으로써 데이터를 캡처하는 한 방법이 구현된다. 각 탭은 동일한지를 알아보기 위해 그의 이웃과 비교된다. 이들 비교의 집합체가 클럭드 문자열(clocked string)을 형성하고, 이 문자열은 이전의 클럭드 문자열과 결합되어 최적의 샘플링 포인트를 결정하는 데 사용될 수 있는 히스토리(history)를 생성한다. 최적의 샘플링 포인트는 데이터가 지연 탭 사이에서 결코 변하지 않는 영역을 탐색함으로써 히스토리 문자열로부터 찾아낼 수 있다. 이 히스토리는 매 로컬 클록마다 갱신된다. 격리된 비트 에러(isolated bit error)에 영향을 받지 않을 뿐만 아니라 프로그램가능한 지속 기간(persistence period)을 갖는 캡처 방식이 개발될 수 있도록 드물게 갱신되는 부가의 "아이(eye)" 파이프라인 방식 레지스터(eye pipelined register)가 있다. 지속 시간은 임의적으로 길게 설정될 수 있지만 데이터 엣지를 신뢰성있게 샘플링하는 데 필요한 최대 시간보다 더 짧아서는 안된다. 로컬 클록 기간보다 빠른 비트 시간에 대처하기 위해, 클록의 양쪽 엣지는 DDR 데이터를 캡처하는 데 사용된다. 클록의 각 엣지는 그 자신의 관련 캡처 레지스터 및 최적의 아이(eye)를 찾기 위한 독립적인 로직을 가지고 있다. 따라서, 이 기술은 로컬의 발신측 클록의 듀티 사이클의 비대칭성에 대체로 영향을 받지 않는다. 본 발명의 수퍼컴퓨터에서의 고속 시그널링을 위한 캡처 기술의 구현에 관한 추가의 상세에 대해서는, 본 명세서에 포함된 것으로서 공동 소유의 동시 계류 중에 있는, 미국 특허 출원 제 호(YOR920020033US1, YOR920020034US1(15259))에서 찾아볼 수 있다. 히스토리 레지스터가 변함에 따라, 최적의 샘플링 포인트도 이동한다. 이러한 갱신은 지속 시간보다 더 짧은 시간 스케일(time scale)로 수행된다. 이 기능은 동시 계류 중인 미국 특허 출원 제 호(YOR920020033US1, YOR920020034US1(15259))에 기술되어 있는 바와 같이, 히스토그램 및 샘플링 포인트 결정 유닛에서 수행된다.
시스템 소프트웨어
소프트웨어가 임의의 컴퓨터에서 중요한 구성 요소이고 또 새로운 아키텍처를 갖는 컴퓨터에서는 특히 중요하기 때문에, 최하위 레벨에서 아주 간단하고 효율적이지만 대부분의 병렬 애플리케이션을 실행시키기에 충분한, 계층 구조의 안전한 소프트웨어 시스템이 구현되어 있다. 전형적인 실시예에서의 시스템 소프트웨어는 7개의 통합된 서브시스템을 포함하며, 이들 모두를 "운영 환경"(operating environment)이라고 한다. 이들 서브시스템 각각은 분산된 구성 요소들과, 호스트 컴플렉스(Host Complex), 계산 노드 및 I/O 노드에 걸쳐 있는 이들의 인터페이스로 이루어져 있다. 서브시스템은 1) 머신 관리, 구성 및 진단, 2) 신뢰성, 가용성 및 보수성(Reliability, Availability, and Serviceability; RAS), 3) 파티션 및 작업 관리, 4) 과학/기술 계산 커널 및 런-타임(run-time) 환경, 5) 파일 시스템 및 I/O, 6) 애플리케이션 개발 및 디버깅 툴, 및 7) 성능 추적 및 시각화 툴(Performance Trace and Visualization Tool)을 포함한다.
호스트 컴플렉스
호스트 컴플렉스는 애플리케이션 개발 및 시스템 관리를 위한 머신 내부로의 인터페이스를 제공하며, 애플리케이션 프로그래머에게 제공되는 시스템 커널 동작 및 소프트웨어 인터페이스, 메시지 패싱 소프트웨어를 포함하는 계산 노드 소프트웨어와, 애플리케이션과 호스트 컴플렉스를 인터페이스시켜주는 I/O 노드 소프트웨어를 포함한다. 호스트 컴플렉스는 이제부터 기술하는 바와 같이 소프트웨어를 실행시키기 위해 요구되는 바에 따라 소형이거나 대형일 수 있다.
시스템 콘솔 및 파티션 관리
시스템 콘솔은 RAS 데이터베이스와 연계하여 파티션들에 노드를 할당하는 일을 맡고 있다. 하드웨어 분할 전략은 도 15 및 도 16을 참조하여 전술한 바와 같이, 독립적이고 전기적으로 격리된 파티션을 생성하는 공간 분할 모델(Space Partitioning Model)을 이용한다. 본 발명의 시스템에서, 머신 상에서 동시에 이용가능한 파티션의 개수는 1개 내지 128개의 범위에 있을 수 있다. 최소의 파티션은 8x8x8 토러스와 8개의 I/O 노드로 이루어져 있으며, 파티션은 어떤 차원에서도 8개의 노드의 배수로 증가할 수 있다. 호스트 컴플렉스 소프트웨어는 이들 파티션이 대화형 인터페이스를 거치거나 또는 무인 동작(unattended operation)을 위한 배치 관리 시스템(batch management system)을 거쳐 접근될 수 있게 해준다. 사용될 수 있는 배치 관리 시스템으로는 LoadLeveler이 있다.
파일 시스템
호스트 컴플렉스의 가장 중요한 임무들 중의 하나는 시스템 상에서 실행되는 병렬 애플리케이션의 파일 입/출력 요구에 서비스하는 것이다. 일 실시예에서, 하드웨어 및 소프트웨어는 머신에 의해 제공되는 컴퓨팅 자원에 관계없이 파일 시스템이 절대 용량(absolute capacity) 및 총 대역폭(aggregate bandwidth) 양쪽 모두의 관점에서 초당 1 테라비트 이상의 지속가능한 피크 대역폭(peak sustainable bandwidth)에까지 확장가능하도록 설계되어 있다. 많은 수의 애플리케이션이 아주 적절한 파일 I/O를 필요로 하는 데 반해, 다른 것들은 끊임없이 필요로 한다. 파일 시스템의 용량을 결정하는 다른 요인은 운영 환경이 전체 애플리케이션 성능에 과도한 영향을 주지 않고 투명한 방식이면서도 애플리케이션의 지원을 받아(both transparent and application assisted) 체크포인트 및 재기동 기능(Checkpoint and Restart capability)을 지원해 주기를 원하는지이다.
도 19는 페일-오버(Fail-Over)를 갖는 트윈-테일(Twin-Tail) SCSI RAID의 개념상의 반복 구조(550)를 나타낸 것이다. 도 19의 파일 시스템은 핫 스왑 SCSI 디스크 케이지(hot-swap SCSI disk cage)(553a, 553b) 등으로 구성되며, 각 케이지는 표준의 랙-마운트 프레임(rack-mount frame) 내에 다수의 디스크 드라이브를 포함한다. 이들 디스크 케이지는 양호하게는 다채널 하드웨어 RAID(Reliable Array of Inexpensive Disks) 콘트롤러, 예비 전원 장치, 및 2개의 외부 SCSI 버스 연결부를 포함한다. 하드웨어 RAID 콘트롤러는 다수의 디스크 드라이브를 RAID "스트라이프 세트"(stripe set)로 그룹지어, RAID-0[보호없는 단순 스트라이핑(simple striping)] 내지 RAID-5[패리티 보호(parity protection)가 있는 블록 회전 스트라이핑(block-rotational striping)]의 범위에 있는 몇가지 스트라이프-세트 구성을 지원한다. 상위 레벨의 RAID는 또한 다수의 RAID 스트라이프 세트가 더 큰 디스크 드라이브 어레이에 걸쳐 서로 스트라이핑되는 것인 "스패닝"(spanning)이라고 하는 이러한 하드웨어 구성에 의해 지원된다. 이것의 일례는 2개 이상의 RAID-5 스트라이프-세트 그 자체가 더 큰 디스크 드라이브 클러스터에 걸쳐 스트라이핑되어 있는 것인 RAID-50이다. 본 발명의 목적상, RAID-5는 요구되는 신뢰성을 제공한다. 이 구성에서, 다중-디스크 RAID-5 스트라이프-세트는 케이지마다 적어도 하나의 디스크가 온-라인 예비품으로서 이용가능하게 구성되어 있다. 작동 중인 디스크 드라이브 중 어느 하나가 고장나면, 하드웨어 RAID 콘트롤러는 고장난 디스크 드라이브의 핫-스왑 베이(hot-swap bay) 상의 LED를 반짝거리면서 투명한 방식으로 고장난 드라이브로부터 예비품 상으로 데이터를 재구축하고, 또한 시스템 관리 소프트웨어에 그 문제를 통지한다.
파일 시스템(550)은 디스크 케이지 이외에도 랙-마운트 제품(rack-mount commodity) PC도 이용한다. 이들 PC 각각은 2-채널 SCSI 콘트롤러를 포함한다. 양호한 구성에서, SCSI 채널 중 하나는 RAID 디스크 케이지에 대한 "1차" 인터페이스(Primary interface)(예를 들면, 533a)로 지정되고, 다른 하나는 제2 RAID 디스크 케이지(예를 들면, 553b)에 대해 핫 스탠바이(hot stand-by), 즉 "페일-오버" 모드에 있으며, 그 RAID 케이지의 1차 PC가 고장나는 경우 파일 시스템 인터페이스를 떠맡을 준비가 되어 있다. 이 구조에서, RAID 디스크 케이지는 "트윈-테일 방식"(Twin-Tailed)으로서, 이는 케이지의 내부 SCSI 버스가 각 단부에서 서버(555, 556 등)로 도시된 서로 다른 호스트와 인터페이스한다는 것을 의미한다. 본 발명에 유용한 트윈-테일 방식의 페일오버 시스템에 관한 추가의 상세에 대해서는, 본 명세서에 포함된 것으로서 공동 소유의 동시 계류 중에 있는, 발명의 명칭이 "Twin-Tailed Fail-Over for Fileserves Maintaining Full Performance in the Presence of Failures(장애의 존재시에 최대 성능을 유지하는 파일서버의 트윈-테입 방식의 페일-오버)"인 미국 특허 출원 제 호(YOR920020038US1(15276))에 기술되어 있다.
서버 PC에는 2개의 부가적인 구성 요소가 있다. 첫번째 구성 요소는 각각의 PC로의 이더넷 또는 직렬 연결을 거쳐 PC를 원격으로 구성, 부팅, 전원 투입/차단, 및 모니터링하는 기능을 제공하는 "베이스 관리 콘트롤러"(Base Management Controller; BMC)와 같은 "원격 관리" 인터페이스 구성 요소이다. 두번째 구성 요소는 기가비트 이더넷 연결이다. 이 연결은 멀티포트 기가비트 이더넷 스위치를 통해 I/O 노드로의 인터페이스를 제공한다.
RAS 데이터베이스
본 발명의 수퍼컴퓨터에서 일시적인(소프트) 것이든 영구적인(하드) 것이든간에, 모든 가능한 장애 조건을 추적하여 분석할 수 있는 것이 아주 중요하다. 이 목적을 위해, 패키징 계획은 그 머신의 모든 주요 구성 요소의 건강 및 상태에 관한 완전한 정보를 시스템 소프트웨어에 제공한다. 모든 경우에, 이 정보는 그 머신 내에서의 정확한 위치를 가지고 있으며, 적절한 경우에 그 랙, 그 랙 내에서의 미드플레인, 미드플레인 상의 노드-카드, 및 노드-카드 상의 노드를 식별한다. 전체 시스템 내에 있는 각각의 이더넷 어댑터의 경우, 그 고유의 "MAC" 하드웨어 어드레스가 그 랙, 미드플레인, 및 노드-카드 위치에 의해 할당되고, 이에 따라 그 장치의 정확한 위치를 그의 이더넷 어드레스에 인코딩한다. 팬 및 전원 장치에 있는 것과 같은 어떤 센서 및 모니터는 계산 노드 및 I/O 노드와 독립적으로 동작하는 반면, ECC 장애와 같은 다른 것들은 이들 노드 상에서 실행되면서 정보를 수집해 이를 호스트 컴플렉스로 전송하는 시스템 소프트웨어에 정보를 제공한다.
공칭 범위를 벗어나는 어떤 조건도 "RAS 이벤트"(RAS란 reliability, availability, serviceability를 말함)를 발생하는 기능을 가지고 있다. 호스트 컴플렉스 상에서 실행되고 있는 시스템 소프트웨어는, 센서 및 모니터를 관리하는 이더넷 연결된 마이크로-콘트롤러로부터나 또는 계산 노드 및 I/O 노드 상의 노드 커널로부터 100Mb 이더넷 RAS 네트워크를 거쳐, 이들 RAS 이벤트를 수집한다. 이 정보는 호스트 컴플렉스 상에 유지되고 있는 멀티-인덱스 RAS 데이터베이스에 로깅된다. 이 데이터베이스에서 추적되어지는 RAS 이벤트에는 1) ECC 정정된 단일 비트 에러 및 물리적 어드레스에 의해 격리되어 있는 정정불가능한 다중 비트 에러를 포함한 메모리 고장, 2) 토러스나 글로벌 트리 고속 링크 상에서든지 또는 100Mb 또는 1Gb 이더넷 상에서든지, CRC 비교 오류(miscompare)로 인한 패킷 재전송(packet retry)을 포함한 네트워크 장애, 3) 랙 전원 장치 및 노드-카드 DC-DC 컨버터의 상태를 포함한, 공칭 범위를 벗어난 전압 및 전력 변동, 및 4) 팬 상태 및 RPM을 포함한, 랙 내부에서 또는 각각의 개별 노드에 의해 검출되는 온도 변동이 있다.
RAS 데이터베이스는 다음과 같이 이용된다. 첫째, 이는 시스템 관리자 및 파티션 관리 소프트웨어에 머신의 건강(health)에 관한 실시간 모습을 제공하는 온-라인 툴이다. 둘째, RAS 이벤트가 개별적인 구성 요소에 대해 머신 내에서의 그의 지리적 위치에 의해 격리되어 있기 때문에, 이는 패키징, 전원 및 냉각 설계를 확인하는 데 사용되며, 따라서 머신의 보수성을 향상시키게 된다. 셋째, 머신의 완전한 "진료 기록"을 유지함으로써, 시간에 따라 그 머신의 온라인 가용성을 예측하게 되는 데이터 마이닝 분석을 지원하여, 아마도 실제의 구성 요소의 고장에 앞서 시스템 보수의 스케쥴링 및 계획을 할 수 있게 된다. 겉보기에 무해한 이벤트의 예측적 특성의 일례는 메모리 칩에서 일어나며, 이 경우 메모리 뱅크에서의 반복된 소프트 에러, 즉 소프트 에러율의 계속적 증가는 하드 장애가 임박했음을 강하게 시사한다는 것을 보여주었다. 유사한 분석이 데이터 케이블 및 I/O 구동기, 그리고 하드디스크 드라이브에 성공적으로 적용되었다.
하위 레벨의 디버깅 환경
본 발명의 수퍼컴퓨터에서, 각각의 ASIC은 모든 기능을 갖춘 하위 레벨의 디버깅 클라이언트를 제공하며, 완벽한 IEEE 1149.1 JTAG 인터페이스를 지원한다. 하위 레벨의 디버깅 환경은 RAS 및 진단 환경과 밀접하게 연결되어 있다. 이 환경은 호스트 시스템(호스트 컴플렉스)이 그 칩 내의 모든 구조 상태 및 장치에 관해 ASIC 내부를 들여다볼 수 있게 해준다. 이 환경은 또한 각 프로세서의 내부를 들여다볼 수 있게 해주며, 모든 상태를 검사하거나 수정할 수 있게 해주고, 또 싱글 스텝 처리(single-stepping), 즉 브레이크-포인트 처리(break-pointing)를 지원한다. 이 환경에서는 투명한 방식으로, 약간 상위의 레벨에서 상태를 검사 또는 수정할 수 있는 명령어 스트림에 명령어가 삽입될 수 있도록 해준다. 이러한 디버깅 환경은 완벽한 IEEE 1149.1 JTAG 포트 온-칩과 인터페이스하는 100Mb RAS 네트워크를 통해 지원된다. JTAG 디버깅 포트에 대한 접근은 애플리케이션 동작에 투명한 방식으로 일어난다. 어떤 경우에는, 이 환경은 시스템 커널과 인터페이스한다. 호스트 컴플렉스 소프트웨어는 IMD 표준 임베디드 소프트웨어 개발 툴인 RiscWatch에 기반을 둘 수 있다. 다른 옵션은 하이엔드 서버 견본품에서 현재 사용되고 있는 향상된 BlackWidow 디버깅 환경이다.
상위 레벨의 병렬 디버깅 환경
전술한 하위 레벨의 디버깅 환경 이외에도, 운영 환경은 부가적으로 병렬 애플리케이션의 상위 레벨 디버깅을 지원한다. 멀티프로세서 애플리케이션 디버깅 인터페이스를 제공하는 하나의 인기있는 툴은 Etnus, LLC에 의해 개발된 TotalView가 있으며, 이는 2개의 주요 구성 요소를 포함하는 데, 그 첫번째 구성 요소는 호스트 컴퓨터 상에서 "디버깅 서버"로서 실행되는 그래픽 사용자 인터페이스(GUI)로서, 수백개의 노드 상에서 실행되는 병렬 애플리케이션을 디버깅하는 데 사용된다. 이는 서로 다른 노드 상에서 실행되는 애플리케이션 소스 코드에 대한 독립적인 견해 및 병렬 애플리케이션에서 데이터의 상태를 추적할 수 있는 변수 윈도우를 제공한다. TotalView는 또한 병렬 애플리케이션에서의 분산 데이터 구조의 내용의 시각화(visualization)를 제공한다. 그 두번째 구성 요소는 ptrace() 인터페이스를 제공하는 "디버깅 클라이언트"이다.
TotalView와 아주 유사한 클라이언트-서버 모델을 이미 지원하는 Gnu 디버거(gdb)와 같은 부가적인 분산 디버깅 환경이 구현될 수 있다는 것을 이해해야 한다.
병렬 애플리케이션에서의 정확성 버그(correctness bug), 경쟁 조건(race condition), 또는 어드레싱 장애(addressing fault)의 대부분은 프로그램이 수백개의 노드를 넘어 확장되기 훨씬 이전에 제거되기 때문에, 소스 코드 레벨 디버거는 이러한 유형의 에러를 찾는 데 최적이다. 수백개의 노드를 넘는 확장성을 위해, 병렬 프로그래밍에서의 대부분의 작업은 성능 튜닝(performance tuning) 및 부하 분산에 있으며, 이는 개별 UTE 간격 파일(individual UTE interval file) 및 병합 UTE 간격 파일(merged UTE interval file)을 시각화하는 툴인 UTE Gantt Chart와 같은 애플리케이션 시각화 및 추적 툴에 의해 최상으로 달성된다.
과학 및 기술 계산 커널
이제부터는, 계산 및 I/O 노드용으로 제안된 과학 및 기술 계산 커널에 대해 기술한다.
구조상으로 볼 때, 노드 ASIC 내부에서, 계산 프로세서 및 I/O 프로세서는 동일하며, 하드웨어 관점에서 볼 때 모든 온-칩 디바이스에 대해 대칭적 접근을 한다. 2개의 프로세서간의 유일한 차이점은 고유의 인스턴스 번호(instance-number)를 제공하는 칩 상의 각 코어의 "프로세서 식별 레지스터(processor identification register; PIR)"에서의 1 비트의 스트래핑(strapping)이다. 관례에 따르면, 하위 레벨의 JTAG 디버깅을 돕기 위해, 시스템 소프트웨어는 PIR이 0(zero)인 코어를 예를 들면 계산 프로세서라고 하고, PIR이 1인 코어를 예를 들면 I/O 프로세서라고 한다.
간단히 말하면, 계산 프로세서의 임무는 애플리케이션 코드의 실행에만 전념하는 것이다. I/O 프로세서의 임무는 계산 프로세서로부터 메시지 전송 및 수신 작업의 대부분을 포함한 병렬 운영 시스템에 요구되는 모든 활동의 부담을 덜어주는 것이다. 이러한 기능상의 분리는 2개의 프로세서 사이의 간단하고 효율적인 프로그래밍 인터페이스와 함께, 각각의 프로세서가 인터럽트, 타이머 틱(timer tick), 컨텍스트 스왑(context swap), 보호 영역 교차(protection domain crossing) 및 대부분의 관리자 호출을 포함한, 종래의 운영 체제에 내재하는 오버헤드 및 동시성 결여 없이 그의 임무를 수행할 수 있도록 해준다. 그렇지만, 이 구조는 응답성을 유지하고 또 치명적이지 않은 RAS 이벤트 뿐만 아니라 애플리케이션 에러, 장해(crash) 또는 교차 상태(deadlock)를 극복하는 특권있는 보호 커널 컨텍스트(privileged and protected kernel context)의 유지를 가능하게 해준다. 전체적으로 볼 때, 이 구조는 보다 종래의 방법들보다 훨씬 미세한 입도로 예측가능하고 또 반복가능한 성능을 제공함으로써, 병렬 애플리케이션의 확장성을 더욱 증대시킨다.
I/O 프로세서는 관리자 상태에서의 그의 대부분의 시간을, 도착하는 패킷을 위한 고속 통신 링크 버퍼 및 이더넷 콘트롤러를 모니터링하는 데 소비한다. 또한, I/O 프로세서는 메시지 전송 또는 파일 I/O 등의 서비스 요청에 대비해 애플리케이션도 모니터링하며, 또 RAS 이벤트에 대비해 노드 그 자체를 모니터링한다. I/O 프로세서는 MPI-2에 의해 제공되는 것을 포함하여, 일방 통신(one-sided communiction)의 경우 그런 것과 같이 메시지 수신 정합 오버헤드(message reception matching overhead)가 간단하고 효율적인 상태를 유지하는 경우에 전대역폭으로 통신 링크에 서비스하면서도 이들 작업 모두를 수행할 수 있다.
전반적으로 보면, 그 구성은 대부분의 애플리케이션에 대해 계산과 통신간에 최상의 비율을 제공하므로 "균형을 이루고"(Balanced) 있다. 그렇지만, "높은 계산 지향성"(Highly Compute Bound)이라고 하는 다른 대안적인 방법이, 계산과 통신이 균등하게 분배되지 않고 오히려 가끔 돌발적으로 교대로 행해지는 경우에 그 애플리케이션에 이용가능하다. 이 모드에서는, 통신이 정지 상태에 있는 시간 윈도우 동안 I/O 프로세서의 계산 능력을 이용하는 부가의 애플리케이션 쓰레드가 생성된다. 그렇지만, 이 동작 모드는 얼마간의 대가를 요하는 데, 그 이유는 계산 프로세서 쓰레드와 I/O 프로세서 쓰레드 사이의 데이터 공유는 애플리케이션에 의해 명시적으로 관리되어야만 하기 때문이다. 대부분의 경우, 이것에는 L1 캐시를 라이트-쓰루 모드, 또는 아마도 캐시 금지 모드로 설정한 시스템 호출만이 관여한다. 게다가, 예기치 못한 어떤 메시지라도 인터럽트를 발생할 가능성이 있으며, 이에 따라 기대했던 이익의 일부를 다시 가져간다. 이 모드에서 RAS 이벤트가 일어나면, 이는 또한 인터럽트를 발생시킬 것이다.
가상 메모리, 캐시 및 프리페치 관리
각 노드가 단일 애플리케이션 컨텍스트를 지원한다는 사실에도 불구하고, 커널은 여러가지 중요한 방법으로 PC-400에 의해 제공된 가상 메모리 관리, 보호 및 변환 기능을 모두 이용한다. 첫째, 커널은 그 자신이 손상되지 않도록 애플리케이션에 의한 잘못된(errant), 즉 "와일드" 로드(wild load) 및 저장으로부터 그 자신을 보호한다. 이것은 커널에 의해 제공된 상위 레벨의 디버깅 및 추적 기능이 영향받지 않도록 보장해주며, 또 비록 RAS 네트워크를 통해서이지만 호스트 컴플렉스가 항상 커널과 상호작용할 수 있도록 보장해준다. 둘째, 변환을 지원함으로써, 커널은 애플리케이션을 재컴파일 또는 재링크할 필요없이 또는 오프라인으로 그 노드를 선언할 필요없이, 물리적 메모리의 어떤 불량 페이지도 우회하여 매핑함으로써 시스템의 "가용성"을 증가시킬 수 있다. 이러한 가상적인 메모리 뷰(virtual view of memory)는 또한 정적으로 할당된 데이터 영역 및 함수 어드레스가 동일한 실행 가능한 이미지를 사용하는 상이한 노드 상에서 동일하도록 보장함으로써, 일방 통신 및 액티브 메시지 프로그래밍을 간단화시킨다. 셋째, 본 명세서에 보다 상세하게 기술하게 되는 바와 같이, 커널은 애플리케이션의 성능을 최적화하기 위해 애플리케이션 또는 런타임 라이브러리 디렉티브(run-time library directive)에 기반하여 캐시 및 프리페치 하드웨어의 행동을 제어할 수 있다. 넷째, 어드레스 공간을 여러 영역들로 구성함으로써, 과도하게 복잡한 가비지 컬렉션(garbage collection) 없이도 동적으로 할당된 데이터 영역 및 스택 영역이 증가하고 축소될 수 있다. 이것은 또한 투명한 체크포인트 지원을 위한 최적화도 제공하는 데, 그 이유는 커널이 어느 영역의 얼마만큼이 애플리케이션에 의해 수정된다는 것을 알게 되기 때문이다.
PPC-440 프로세서가 TLB(Translation Look-aside Buffer, 변환 참조 버퍼; 또는 이 경우에 '소프트-TLB')에서 소프트웨어 변환 관리를 사용하기 때문에, 커널은 큰 변환 테이블의 스토리지 오버헤드를 부담할 필요가 없다. 추가의 최적화는 PPC-440이 많은 수의 TLB 엔트리(64)를 갖는다는 사실에 연유하며, 각각의 엔트리는 가변적인 어드레스 공간(예를 들면, 1KB 내지 256MB의 범위)을 커버할 수 있다. 이것은 가장 복잡한 애플리케이션을 제외하고는 이들 변환이 일단 확정되었으면 갱신되거나 교체될 필요가 없을 것이라는 것을 의미한다. 이에 대한 예외는 런타임 힙 크기(run-time heap size), 애플리케이션 스택 크기(application stack size) 또는 캐시 관리 정책(cache management policy)이 이러한 변경을 요구하는 때이다.
커널은 그 밖에도 메모리 계층 구조의 캐시 및 프리페치 메카니즘의 거동을 제어하기 위해 가상 메모리 시스템을 사용한다. 이것은 계산 프로세서와 I/O 프로세서 사이에 명시적으로 공유되는 메모리 영역에 있어서 특히 중요하다. 이는 또한 메모리 계층 구조의 거동 및 성능을 최적화하고 미세하게 튜닝(fine-tune)하는 데 사용될 수도 있다. PPC-440에 있어서, 각각의 TLB 엔트리는 이 목적을 위해 사용되는 이하의 설정 비트(configuration bit)를 갖는다. 이들 속성은 메모리 버스 상에 놓이는 전송 속성(Transfer Attribute)으로부터 입수할 수 있게 되어 있으며, 따라서 TLB 엔트리마다 전체 메모리 서브시스템의 동작을 설정하는 데 사용될 수 있다.
U0 : 사용자 정의 스토리지 속성 0. 440 코어에 의해서는 무시됨.
U1 : 사용자 정의 스토리지 속성 1. 440 코어는 MMUCR[U1TE](U1 임시 인에이블)(U1 Transient Enable) 비트를 통해 스토리지 접근이 I/D 캐시의 "정규(normal)" 또는 "임시(transient)" 부분을 사용해야하는 지를 선택하는 데 이 비트를 사용하도록 프로그래밍될 수 있다.
U2 : 사용자 정의 스토리지 속성 2. 440 코어는 데이터 캐시를 미스(miss)한 저장이 캐시 내에 한 라인을 할당하는지를 제어하는 데 MMUCR[U2SWOAE](U2 할당없이 저장 인에이블)(U2 Store WithOut Allocate Enable) 비트를 사용한다. 세팅되어 있는 경우, L3도 이 정책을 존중해야만 한다.
U3 : 사용자 정의 스토리지 속성 3. 440 코어에 의해서는 무시됨.
이것은 프리페치 정책 또는 그 밖의 관심있는 어느 것이라도 제어하기 위해 메모리 버스 상에 표현된 2비트의 정보, 즉 U0 및 U3를 제공한다. 이들 비트의 가능한 인코딩으로는 이하의 것이 있다.
0b00 : 이 페이지에 대한 모든 레벨에서 프리페치 디스에이블. 이하의 'G' 를 참조할 것.
0b01 : 명시적으로 사전프로그래밍된 L3에서의 프리페칭. 학습 모드(learning mode) 디스에이블.
■ 0b10 : 프리페치 '학습' 모드 인에이블
■ 0b11 : 이용가능함, 아마도 다른 대체 프리페치 정책을 인에이블함.
관심있는 것으로 버스 상에 표현되는 TLB 내의 다른 비트들에는 이하의 것이 있다.
■ 라이트-쓰루(write-through)(W) : 커널은 명시적으로 공유되는 데이터 영역 상에 대해서만 이 비트를 세팅하는 데, 그 이유는 성능 저하(performance penalty)를 가져오기 때문이다.
캐싱-금지(Caching-Inhibited)(I) : 세팅되어 있을 때는 L1 및 L2에서의 캐싱을 금지시킨다. L3는 약하게 순서화되어(weakly ordered) 있을지라도 코히런트(coherent)하다. 캐싱은 또한 I/O 공간 및 SRAM에 대해서도 금지된다.
메모리-코히런스-요구됨(Memory-Coherence-Required)(M) : L2 상에서의 스누프가 메모리 지연 시간을 한 사이클 증가시키는 경우, 커널은 명시적으로 공유된 영역에 대해서만 이 비트를 세팅하게 된다. L1은 M이 세팅되어 있을 때 라이트-쓰루로 세팅된다.
보호됨(Guarded)(G) : 이 비트는 프리페치 및 투기적 디스에이블(prefetch and speculative disable)로서 기능하여, 순서적 접근(in-order access)을 강요한다. 일반적으로는 I/O 공간에 대해 세팅되지만, 어떤 공유 SRAM 영역에 대해 필요하기도 함.
커널 RAS 관리
커널은 자신이 발견하는 모든 RAS 이벤트를 호스트 컴플렉스 내의 RAS 데이터베이스 서버에 보고할 책임을 지고 있다. 악성이 아닌 이벤트인 경우, 그 에러는 누적해두었다가 나중에 보고할 수 있다. 발생된 이벤트의 유형과 함께, 커널은 또한 에러 조건을 격리시키거나 이해하는 데 도움이 되도록 가능한 한 많은 관련 정보를 수집한다. 예를 들면, 메모리 에러의 경우에, 이 정보는 에러가 발생한 곳의 물리적 어드레스 및 가상 어드레스와, 이 어드레스가 참조하였던 세그먼트의 유형을 포함한다. 게다가, 이 메모리 에러가 비ECC 보호 디바이스(non-ECC protected device) 또는 어드레스 상에 있는 경우, 그 정보도 또한 포착되어 보고되며, 그 결과 아마도 애플리케이션 실행이 정지 또는 중단된다. 일반적으로는, 하위 레벨의 디버깅 및 진단 툴이 노드를 검사할 기회를 부여받게 된 이후가 될 때까지는 어떤 상태도 폐기되지 않는다.
RAS 이벤트를 보고하는 기본 방법은 100Mb 이더넷을 통해 호스트 컴플렉스에 메시지를 전송하는 것이 될 것이다. RAS 이벤트가 이더넷 자체의 문제를 표시하는 경우, 그 메시지는 보고를 위해 I/O 노드로 보내질 수 있다.
애플리케이션 체크포인트 및 재기동 지원
커널은 호스트 컴플렉스에 의해 제공되는 파일 시스템 인터페이스와 연계하여, 애플리케이션-지원 체크포인트 및 재기동(application-assisted checkpoint and restart)에 대한 지원을 제공한다. 애플리케이션의 모든 상태를 포착 및 복구하는 커널의 기능을 지원하고 그 성능을 향상시키는 하드웨어 아키텍처를 포함한 투명 방식의 체크포인트 메카니즘이 추가로 제공된다.
수많은 애플리케이션은 체크포인트에 대한 어떤 특별한 지원을 요구하지 않는다. 이러한 애플리케이션은 간단한 파일 I/O 호출을 통해 그의 분산된 상태의 저장 및 복원을 관리할 수 있다. 다른 애플리케이션들은 안정 상태(quiescent state)를 쉽게 달성할 수 없게 되는 경우도 있지만, 글로벌 배리어는 시스템 기동된 투명 방식의 체크포인팅(system-initiated transparent checkpointing)을 위한 좋은 기회를 제공한다. 이러한 체크포인트는 시간 또는 그 다음 글로벌 배리어에 대해 체크포인트를 실시해야 한다고 통지하는 호스트 컴플렉스로부터의 통지에 기초하여 기동될 수 있다.
체크포인트 및 재기동 지원은 RAS 관리 소프트웨어와 인터페이스한다. 신뢰성 및 가용성 계획이 진단 또는 확인 소프트웨어가 일정한 간격으로 실행될 것을 필요로 하는 경우, 이러한 보수를 수행하는 데 자연스러운 지점은 체크포인트 경계이다. 본 발명에 유용한 독자적인 체크포인팅 방법에 관한 추가의 상세에 관해서는, 본 명세서에 포함된 것으로서 공동 소유의 동시 계류 중에 있는, 발명의 명칭이 "Checkpointing FileSystem(체크포인팅 파일시스템)"인 미국 특허 출원 제 호(YOR920020042US1(15279)) 및 발명의 명칭이 "Fault Isolation Through No-Overhead Link Level Checksums(오버헤드없는 링크 레벨의 체크섬을 통한 장애 격리)"인 미국 특허 출원 제 호(YOR920020042US1(15277))에 기술되어 있다.
메시지 패싱 지원
이제부터는 커널에 의해 제공되는 메시지 패싱 소프트웨어 지원에 대해 기술한다. 최하위 레벨에서, 커널은 시스템의 내부의 고속 네트워크를 효율적으로 지원하도록 설계된 시스템 프로그래밍 인터페이스(System Programming Interface; SPI)를 엑스포트(export)한다. 토러스 네트워크 및 글로벌 트리 네트워크 모두에 있어서, SPI는 점대점 통신 및 집단적 통신(Collective communication), 즉 클래스 기반 통신에 대한 지원을 제공한다. SPI는 MPI와 같은 상위 레벨의 애플리케이션 프로그래밍 인터페이스(Application Programming Interface; API)에 포팅 베이스(porting base)를 제공하고 또 MPI-1, MPI-2 및 MPI-IO의 하위 세트(subset)를 효율적으로 지원한다.
일방 메시징(One-Sided Messaging)
전술한 바와 같이, 간단하고 효율적인 메시지 패싱 프로토콜을 사용함으로써, 짧은 메시지에 대해서조차 모든 링크들의 전대역폭이 지속된다. 일방 메시징에 있어서, 메시지는 데이터의 목적지 메모리 어드레스 또는 "get(가져오기)"의 경우에는 소스 메모리 어드레스를 가지고 있다. 이것에 의해 하드웨어는 전치 행렬(matrix transpose)과 같은 한 블록의 데이터를 많은 작은 패킷들으로부터 직접 메모리 내에 정리할 수 있으며,이들 패킷을 처리하는 데 과도한 소프트웨어 오버헤드를 유발시키지 않는다. 지원되는 일방 통신 프로토콜의 일례는 MPI-2에 포함되어 있다. 이 프로토콜은 이미 설정되어 있는 또는 "열려 있는(opened)" 통신 윈도우와 데이터를 주고받기 위해 "put"(보내기) 및 "get"(가져오기) 모델을 사용한다. 이 모델은 통신 윈도우의 사용이 계산 프로세서와 I/O 프로세서 사이에서의 메모리 코히런시(memory coherency)를 관리할 기회를 제공하기 때문에, 이 시스템에 특히 잘 작용한다. 메모리 코히런시가 윈도우에 걸쳐 관리되기 때문에, 이 오버헤드는 다수의 메시지에 걸쳐 분할될 수 있다. 본 발명의 수퍼컴퓨팅 시스템에서, "get"이 부가의 프로토콜 메시지를 필요로 하기 때문에, "put"이 "get"보다 더 효율적일 수 있으며, 따라서 기본적으로 "get"을 원격 노드로부터 구동되는 "put"으로 변환한다. 본 발명에서 유용한 put/get 윈도우를 이용하는 코히런스 관리에 관한 추가의 상세에 대해서는, 본 명세서에 포함된 것으로서 공동 소유의 동시 계류 중에 있는, 미국 특허 출원 제 호(YOR920020035US1(15260))에 기술되어 있다.
구현될 수 있는 보다 강력한 형태의 일방 메시징은 "put"과 유사하지만, 목적지 노드에서 호출될 함수 어드레스를 부가한다. 메시지 도착이 동작을 트리거하는 것인 이러한 형태의 메시징은 "액티브"(Active)라고 한다. 액티브 메시지는 데이터가 도착시에 어떤 방법으로 변환 또는 계산되어야만 하는 때에 특히 강력하다. MPI-1은 사용자가 집단적 통신을 통해 동작하는 리덕션 함수(reduction function)를 정의할 수 있도록 함으로써 간단하고 제한적인 형태의 액티브 메시징을 제공한다. 본 발명의 시스템에서, 이것은 어느 프로세서, 즉 계산 프로세서 또는 I/O 프로세서가 그 함수를 실행할지를 선택하는 기능을 제공하도록 일반화되어 있다. 이들 함수는 애플리케이션 컨텍스트 내에서 사용자 모드로 실행된다. 이것은 애플리케이션이 I/O 프로세서의 계산 능력을 이용할 수 있는 또하나의 방법이다. 액티브 메시지는 그 밖에도 커널간 메시징(kernel-to-kernel messaging)을 위해 시스템 운영 환경에 의해 내부적으로 사용될 수 있다. 이것의 일례는 계산 노드가 I/O 노드에 대해 파일 I/O 요청에 대해 서비스하도록 요청할 때 일어난다.
집단적 통신(Collective Communication)
집단적 통신을 시스템 네트워크 상으로 매핑할 때, 먼저 특정의 통신이 토러스 네트워크에 더 적합한지 트리 네트워크에 더 적합한지를 결정해야만 한다. 고려해야할 인자들에는 통신 그룹의 토폴로지, 예상되는 통신 대역폭 요건, 통신이 트리에 의해 지원되는 "글로벌 함수들"을 이용할 수 있는지 여부, 및 그 당시 네트워크들 중 어느 하나 상에서의 활동이 트래픽을 분산시키기 위해 다른 것을 사용하는 것에 호의적일 수 있는지 여부가 포함된다. 임의의 노드의 그룹은 어느 네트워크에서도 생성될 수 있다. 가장 간단한 경우는 통신이 모든 노드들에 걸쳐 전적으로 브로드캐스트일 때로서, 이는 글로벌 트리에 적합할 것이라는 것은 명백하다. 그렇지만, 한 열의 노드들에 대한 멀티캐스트인 경우에는, 전술한 바와 같이 토러스 상에서의 클래스 라우팅이 양호할 것이다.
런타임 라이브러리
양호하게는, 계산 노드 소프트웨어는 애플리케이션 프로그래머에게는 친숙한 유닉스와 같은 개발 환경처럼 보인다. 이를 달성하기 위해, 예를 들면, C, C++ 및 Fortan95의 표준적인 런타임 라이브러리 집합의 부분집합이 제공된다. 가능한 범위까지, 지원되는 함수들은 공개 표준 POSIX 호환 인터페이스를 보유할 것이다. 그렇지만, 이들 라이브러리에 의해 제공된 기능 전부가 시스템 애플리케이션에 의해 사용되지는 않는다는 것은 명백하다, 즉 병렬 컴퓨팅 환경에서는 더욱 그럴 것이다.
하드웨어 아키텍처의 기능을 캡처하는 하위 레벨의 시스템 프로그래밍 인터페이스(SPI)를 시스템에 전달하는 부가의 인터페이스가 제공된다. 따라서, SPI는 MPI(MPI-1, MPI-2 및 MPI-IO의 하위 세트)를 포함한 보다 상위 레벨의 애플리케이션 프로그래밍 인터페이스(API) 및 C, C++ 및 Fortran95의 런타임에 대한 효율적인 포팅 베이스(porting base)로서 기능한다. SPI는 또한 병렬 애플리케이션을 튜닝하는 데 필요한 애플리케이션 추적 및 프로파일링 지원을 제공하는 데 사용된다. 많은 경우에 있어서, 이 지원은 UTE(Unified Trace Environment; 단일 트레이스 환경) 시각화 툴과 같은 호스트 컴플렉스 상에서의 환경과 인터페이스하게 된다.
전술한 바와 같이, 시스템 내의 모든 노드는 ASIC 내에 집적된 이더넷 포트(또는 다른 대안으로는 인피니밴드 포트)를 포함한다. 그 포트는 TCP/IP를 통해 애플리케이션 프로그램에 노출될 수 있다. I/O 노드의 경우, 이더넷 포트는 애플리케이션 또는 다른 대안에서는 커스텀 런타임 환경(custom run-time environment)이 직접 이용가능하게 될 수 있다. 일반적으로, 100Mb 이더넷 포트(도 2 참조)는 머신 관리 및 에러 보고를 위해 RAS 네트워크로서 사용될 수 있다. 스위칭 및 분할을 포함하여 이 RAS 네트워크에 대한 외부 네트워크 아키텍처는 호스트 컴플렉스에 의해 요구되는 트래픽의 예상된 흐름 및 유형에 대해 부가적으로 최적화될 수 있다. I/O 노드의 기가비트 이더넷은 IP에 의해서나 또는 외부 통신을 위한 유연성있는 고대역폭 링크를 제공하는 원하는 기능을 달성하면서도 네트워킹의 세부를 표준 MPI 호출의 배후에 감추는 MPI "인터커뮤니케이터(Inter-Communicator)"를 통해서 이용가능하게 된다.
BLAS 및 BLACS 병렬 수학 라이브러리를 포함한 "scaLAPACK" 등의 표준의 병렬 수학 라이브러리는 점점 인기를 얻어가고 있으며, 이들은 본 발명의 수퍼컴퓨팅 시스템에서 지원되고 있다. 이들 라이브러리에 의해 수행되는 통신은 MPI의 아주 작은 하위 세트를 사용한다. 이들 MPI 호출을 지원함으로써, 포팅 노력은 수학 루틴 및 튜닝 문제에 집중되고 있다. ESSL 또는 이것의 병렬 버전인 PESSL 등의 단일-노드 수학 라이브러리도 또한 널리 사용되고 있으며, 이들 라이브러리는 본 시스템에서 이용가능하며 포팅될 수 있다.
I/O 노드 소프트웨어
커널 및 런타임 운영 환경은 호스트 컴플렉스의 기가비트 이더넷을 통해 디스크 및 호스트 I/O를 처리한다. 계산 노드 상의 런타임 라이브러리는 함수에 의해, 예를 들어 I/O 요청을 고속의 글로벌 트리 네트워크를 통해 I/O 노드로 송출하고, 이 I/O 노드는 그 요청 및 데이터를 기가비트 이더넷을 통해 호스트 컴플렉스 파일 시스템 서버로 전송함으로써 파일 I/O 동작을 달성한다. 호스트 컴플렉스가 신뢰성있는 파일 시스템 I/O를 보장하기 위해 "페일-오버" 전략을 이용하기 때문에, I/O 노드는 애플리케이션에 투명한 방식으로 요청을 고장난 호스트 서버로부터 대기 서버(standby server)로 리디렉션할 기회를 갖는다. 게다가, 호스트 컴플렉스 파일 시스템의 구현 상세를 I/O 노드에 고립시킴으로써, 이것은 파일 시스템 서버의 여러가지 구현 및 전략의 지원을 간단하게 만들어주며, 파일 시스템 서버의 확장성에 유연성을 제공한다.
I/O 노드가 글로벌 트리 상에 위치하기 때문에(도 5 참조), MPI-IO에 정의되어 있는 것과 같은 집단적 I/O 동작이 특히 본 시스템에 의해 지원된다. 집단적 I/O의 일례는 애플리케이션 내의 모든 노드 또는 많은 노드가 어떤 파일의 동일한 부분을 판독할 것을 요청하는 때에 일어난다. 이 경우에, 파일 판독은 단지 한번 행해지며, 그 결과는 글로벌 트리를 거쳐 요청한 노드로 브로드캐스트된다.
양호하게는, I/O 노드는 호스트 컴플렉스 내의 디스크 드라이브에 대해 디바이스-레벨의 제어를 수행하지 않는다. 게다가, 함수 레벨에서는 I/O 노드 소프트웨어와 인터페이스하고 파일 시스템 레벨에서는 호스트 관리 파일 시스템과 인터페이스하는 데몬(daemon)이 호스트 컴플렉스에서 이용될 수 있다. 이것은 또한 호스트 파일 시스템의 다른 대안적 구현을 지원하는 능력을 향상시키는 데, 그 이유는 호스트 운영 체제가 그의 본래의 인터페이스를 거쳐 하위 레벨의 파일 시스템을 수행하기 때문이다. 마지막으로, 그것은 파일 시스템 소프트웨어를 구현하기 위한 점증적인 개발 경로를 제공한다.
부팅(Boot)
이제부터는 부트-업 알고리즘에 대해서, 전원 투입으로부터 시작하여 각 노드에서의 실행 커널로 끝나는 4-단계 프로세스로서 기술한다. 1) 첫번째 단계는 노드에 전원이 인가될 때 자동적으로 행해진다. 이 단계에서, 각 노드는 로직 및 메모리 어레이를 확인하는 POST(Power-On Self Test)를 수행한 다음에, 호스트 컴플렉스로부터 JTAG 커맨드를 수신하기 위해 100Mb 이더넷을 자동적으로 설정 및 인에이블시킨다. 2) 호스트 컴퓨터에 의해 시작되어 병렬로 수행되는 두번째 단계는 POST의 결과를 체크하기 위해 JTAG 인터페이스를 구현하고, 각 노드에 대한 추가의 진단 및 설정을 수행한다. 이 단계에서, 각 랙에 있는 모든 센서 및 모니터의 상태도 확인된다. 이 단계는 부트스트랩 프로그램 및 노드별 맞춤 정보(per-node personalization information)가 100Mb 이더넷 JTAG 인터페이스를 통해 각 노드 내로 로드되어 실행을 시작할 수 있게 될 때 완료된다. 부트스트랩 프로그램은 칩 상의 계산 프로세서 및 I/O 프로세서를 완전히 초기화하고, 임베디드 DDR 메모리를 체크하며, 토러스 및/또는 글로벌 트리 네트워크와 100Mb 및/또는 1Gb 이더넷을 테스트 및 설정하고, 마지막으로 상태 메시지를 가지고 호스트에 접촉한다. 실제로는, 이 단계 중에 요구되는 부트스트랩 프로그램의 로딩을 포함한 JTAG 상호 작용의 대부분이 이더넷 브로드캐스트 패킷을 통해 처리되어, 호스트 컴플렉스에 요구된 작업 부하를 상당히 감소시키고 또 부팅 프로세스의 병렬성을 증가시켜준다. 3) 세번째 단계는 각 노드가 어떻게 그 다음으로 진행할지를 결정하기 위해 그의 노드 맞춤 정보를 사용하는 부트스트랩 프로그램의 소프트웨어 제어 하에서 완전히 기능하게 되는 것으로 시작한다. 부팅은 호스트 컴플렉스 내의 지시된 서버와 접촉하여 이더넷을 통해 전체 커널을 로드함으로써 진행한다. 개념상으로, 이 단계는 친숙한 "bootp" 네트워크 부팅 동작과 유사하지만, 시스템 머신 및 호스트 아키텍처에 따라 설계된다. 4) 네번째 단계는 각각의 계산 노드 및 I/O 노드가 전체 시스템 노드 커널을 실행시키고 있을 때 시작한다. 이 시점에서, I/O 노드는 전술한 바와 같이, 파일 시스템 인터페이스 및 다른 I/O 서비스를 제공하는 I/O 노드-관련 소프트웨어를 로드하기 위해 호스트 컴플렉스에 접촉한다. 이 소프트웨어는 커널에게는 특별히 구축된, 즉 특별한 "애플리케이션" 프로그램으로 보인다. 한편, 계산 노드는 애플리케이션이 로드될 때까지 호스트 컴플렉스로부터의 접촉을 기다린다. 시스템의 재분할이 그 파티션 내의 모든 노드의 완전한 재부팅을 필요로 하지 않을 수 있지만, 모든 노드가 내부의 고속 링크의 사용을 완전히 정지하고 있을 것을 필요로 함을 이해해야 한다. 재분할에 뒤이어서, 커널은 여전히 모든 라우팅 및 클래스 용도 구성을 리셋할 필요가 있다.
전원 투입 리셋 상태(Power-On Reset State)
전원 투입시에, 각 노드는 기동되어, 그의 이더넷 포트는 활성으로 되고, 유니캐스트 또는 브로드캐스트된 패킷들을 수신하도록 설정된다. 이더넷 포트는 프로세서를 디버깅하는 데 통상 사용되는 JTAG 스캔 스트링(scan string)에 직접 인터페이스되고 있다. 이것은 시스템 상의 유니프로세서용으로 설계된 아주 성숙한 디버깅 환경의 이용을 가능하게 해준다. 이 아주 강력한 기술을 사용하여 어떤 노드도 호스트로부터 어드레싱되어 완전히 디버깅될 수 있다. 이 인터페이스는 노드가 여전히 리셋 상태에 있는 중에 동작하도록 매핑될 수 있으며, 이에 따라 ASIC 내의 모든 스캔-레지스터의 업로드 및 디버깅을 할 수 있다.
노드에 전원이 투입되면 그 노드는 초기 시스템 검사를 위해 모든 이용가능한 LBIST 및 모든 이용가능한 ABIST를 실행시킨다. 하드웨어 시퀀서(hardware sequencer)는 전원 투입 시에 이 테스트를 자동적으로 제어하고, 이들 진단으로부터 얻은 합격/불합격 표시(pass/fail signature)를 부트 코드(Boot Code)에 이용가능한 레지스터에 넣어둔다. 일례로는 440 코어에서의 MISR 표시 레지스터(signature register)가 있다.
상기 LBIST/ABIST에 의해 커버되는 로직의 분량이 시스템의 소프트웨어 검사에 얼마나 많은 부가의 진단이 필요한지를 결정한다. 전원 투입 리셋 상태는 하드웨어를 100Mb 이더넷 버스를 통해 JTAG 커맨드를 수신하도록 구성된 채로 두어, 다른 I/O 콘트롤러가 100Mb 이더넷과 충돌하지 않도록 보장한다. 게다가, LBIST/ABIST가 실행된 후에도, ASIC의 모든 클록은 여전히 동작한다.
10/100 이더넷 콘트롤러의 이더넷 MAC 어드레스는 각 노드를 일의적으로 어드레싱할 수 있도록 ASIC에 대한 I/O 종단을 통해 설정된다. 이것은 노드 장애의 검출을 가능하게 해주며 병렬 노드 부팅에 대비한 것이다.
신뢰성, 가용성 및 보수성(RAS)
가동 시간이 최대로 되도록 수퍼컴퓨터 시스템을 최적화하기 위해, 가장 빈번하게 고장나는 개별 구성 요소들의 대용품이 제공된다. 이것은 알고있는 고장난 섹터를 격리시키기 위해 시스템을 재분할하는 기능에 부가적인 것이다. 시스템의 신뢰성은 "하드" 및 "소프트" 또는 일시적 고장에 대한 구성 요소의 본질적인 고장율, 구성 요소의 개수, 및 이들 고장이 발생할 때 시스템이 그에 대응하는 방식에 의존하고 있다. 잠재적인 구성 요소 고장[ASIC 및 그의 구성 요소, DDR, 커넥터( 카드 연결 접점 및 케이블 커넥터), 전원 장치(DC-DC 및 AC-DC), 송풍 장치 등]에 대한 고장 보호 방법(failure protection method)이 제공된다.
고장 보호 방법
노드 ASIC은 소프트 에러 및 하드 에러로 인한 고장율이 높은 구성 요소에 대한 에러 검출 및 정정 회로를 포함한다. 이들 구성 요소에는, 외부 DDR 메모리, 내부 EDRAM L3, 내부 L2 및 설계자 제어 하의 모든 SRAM 어레이가 포함된다. 외부 DDR 메모리 및 내부 EDRAM은 또한 여분의 비트 스티어링(redundant bit steering)을 포함한다. 외부 DDR 메모리 및 내부 EDRAM으로부터 누적된 소프트 에러를 제거하기 위해 하드웨어 제어 스크러빙(hardware controlled scrubbing)이 구현될 수 있다. 내부 레지스터 어레이 및 중요한 데이터 흐름 버스(critical dataflow bus)는 에러 검출을 위한 패리티를 갖는다.
게다가, 전술한 바와 같이, 본 시스템에서 이용되는 모든 전원 장치는 이중으로 되어 있다. 즉, N+1 리던던시가 구현되어 있다. 서비스 기간 내에 2개가 고장날 확률은 극히 적다. 게다가, 본 발명에서의 모든 송풍 장치는 N+1 리던던시를 갖는다. 예를 들어, 2개의 팬이 밀폐된 노드 카드를 냉각시키기 위해 사용되고, 제3 팬을 리던던시용으로 갖는다. 3개의 팬 모두가 동작하고 있을 때, 팬 속도는 신뢰성을 향상시키기 위해 감소된다. 하나가 고장나면, 다른 2개의 속도는 고장난 팬이 교체될 때까지 높아진다. 동일한 팬 장치 내의 2개의 팬이 서비스 기간 내에 고장날 확률은 아주 적다.
전반적으로 보아, 본 발명에 구현된 노드 ASIC 내에 광범위한 에러 검출 및 정정 기능이 구축되어 있다. 고장이 있는 경우, 시스템은 전술한 바와 같이 그 고장이 머신의 단지 1개의 행(9개의 랙)에만 제한되어 있다고 가정할 때, 그 고장을 제거하기 위해 재분할될 수 있다. 시스템 재분할 후에, 시스템은 마지막 체크포인트로부터 재기동될 수 있다.
토러스 네트워크 신뢰성
토러스 네트워크는 그 내부로 주입된 모든 패킷의 단 하나의 카피를 신뢰성있게 전달하거나, 복구불가능한 에러 조건을 나타내거나 한다. 따라서, 발신측 소프트웨어는 주입된 메시지의 카피를 보유할 필요가 없으며, 수신측 소프트웨어는 순서 번호(sequence number)를 유지할 필요가 없다. 따라서, 네트워크 신뢰성은 점대점 에러 검출과 링크 레벨의 에러 검출의 조합에 의해 제공된다. 대부분의 경우에, 링크 레벨의 에러 검출 특성은 에러를 발견하여 종종은 그 에러로부터 복구된다. 점대점 에러 검출은 주로 라우터 그 자체에 의해 야기된 것으로 링크 레벨의 프로토콜이 놓쳐버린 에러를 발견하는 데 사용된다.
링크 레벨 에러
링크 레벨의 에러 검출 방식은 패킷마다 첨부된 다수의 패리티 비트의 사용에 기반한다. 다중 비트 에러가 순서 버스트로(in sequential bursts) 발생할 수 있기 때문에, 데이터 비트가 라운드-로빈 순서로 체크 비트에 할당된다. 따라서, 각각의 체크 비트는 중복되지 않는 세트에서 매 4번째 데이터 비트를 커버한다. 이러한 할당의 경우, 다중 비트 에러를 검출할 확률은 순차적 할당 방식보다 훨씬 높다.
버추얼 컷-쓰루 라우팅이기 때문에, 손상된 것으로 검출된 패킷이 이미 다수의 다운스트림 라우터를 통해 포워딩되었을 가능성이 있다. 따라서, 그 패킷은 간단히 누락(drop)되어 재전송될 수 없다. 그 대신에, 그 에러를 검출하는 라우터는 에러 조건을 표시하기 위해 그 패킷의 마지막 바이트를 변경하여, 종국적으로 그 패킷을 수신하는 어떤 라우터에 의해서라도 그 패킷이 누락되도록 한다. 손상된 패킷이 버추얼 컷-쓰루 FIFO에 완전히 저장되어 있는 경우는, 그 패킷을 즉각 누락시킬 수 있다.
손상된 패킷에 표시를 하는 것 외에도, 그 에러를 검출하는 라우터는 그 밖에도 도 7 및 도 8a를 참조하여 전술한 메카니즘을 사용하여 링크-레벨의 재전송을 행한다. 이러한 복구 메카니즘은 모든 패킷의 단지 하나의 "양호한" 카피가 목적한 수신기에 도달하도록 보장한다. 손상된 것으로 표시된 패킷은 라우터의 로컬 수신 회로에 의해 자동적으로 폐기되고, 수신 FIFO에 삽입되지 않게 된다.
링크 레벨 에러의 다른 가능한 소스로는 "분실" 비트(lost bit)가 있으며, 이는 경로 오류가 있고 형태가 손상된 패킷(misrouted, malformed packet)을 유발시킨다. 네트워크는 이 상황을 단지 보고하여 시스템 소프트웨어가 복구할 수 있도록 한다.
점대점 에러
점대점 에러 검출 메카니즘은 패킷이 제대로 처리되고 또 라우터에 의해 손상되지 않도록 보장하기 위해 사용된다. 링크 레벨의 에러 검출 메카니즘은 이러한 에러를 발견할 수 없는 데, 그 이유는 패리티 비트가 변경된 헤더 비트를 커버하기 위해 각 라우터에서 스트립(strip)되고 재생성되기 때문이다. 점대점 에러 검출을 위한 메카니즘은 양호하게는 패킷 유형, 목적지 및 페이로드(payload) 등의 전송 중에 변경되지 않은 패킷 필드에 대한 CRC(cyclic redundancy check; 순환 중복 검사)이다. 점대점 CRC 에러의 검출은 하드웨어에 의해 보고되고 체크포인트 롤백(checkpoint rollback)을 일으킨다.
가용성
본 발명의 시스템 내에서의 가용성은 단일 랙의 입도에 따라 정의되고 관리된다. 즉, 1024개 노드를 포함하는 "랙"은 그에 기초하여 양호 또는 불량으로 결정되고 관리된다. 초기 프로그램 로드시에, 이러한 결정은 진단에 의해 처리된다. 런타임 시에, 이것은 에러 검출 및 보고 방식을 통해 처리된다. 결함있는 랙은 기능상의 파티션에 포함시키기 위해 이용할 수 없기 때문에, 모든 랙의 상태를 식별하기 위해 설정 매트릭스(Configuration Matrix)가 구성되어 있다.
애플리케이션
이전에 어려웠던 알고리즘에 관계하도록 많은 새로운 시너지 효과를 가져올 수 있기 때문에, 본 발명의 확장가능한 초대규모 컴퓨터의 독자적인 특성의 도움을 받는 많은 애플리케이션이 있다. 이들 애플리케이션을 볼 때, 본 시스템에 포함되어 있는 아키텍처 개선으로서 가장 중요한 것으로는 트렁크 링크 대역폭이 4비트/pclk/방향으로 2배가 된 것, 글로벌 트리 네트워크, 베이스라인 메모리 크기가 256MB/노드로 증가한 것, 및 제2 프로세서 코어가 메시지 패싱을 지원하기 위해 각 노드에 부가된 것이 있다.
과학 애플리케이션 요약
(기초 원리에 기반한) 초창기 양자 분자 동역학(MD)은 극미세 레벨에서의 물질의 행동을 시뮬레이션하기 위한 독보적인 위치를 점하고 있으며, 몇몇 과학 분야에서 그 응용이 있어 왔다. 이는 초대규모 컴퓨터의 "킬러 애플리케이션(the Killer App)"이라고 불려왔다. JEEP 코드는 초창기 분자 동역학의 최신 구현예이다. 고전적인 MD 코드에서 행해진 것과는 달리, JEEP는 물질 내에서의 전자 구조 및 원자간 상호 작용의 거동에 관한 어떠한 경험적 가정도 하지 않는다. 전자들은 자유롭게 결합을 형성하거나 끊으며, 원자들은 양자 역학 및 운동 방정식의 법칙에만 기반하여 자유롭게 이동하고 또 분자를 형성한다.
JEEP와 같은 제1 법칙 MD 코드는 광범위한 관심의 주제 영역에서 그 응용이 있다. 일례는 온도 또는 압력의 극한 조건 하에서의 물질의 이해이다. 다른 일례는 복잡한 생물계 및 물질 특성의 보다 양호한 이해를 형성하는 것이다. 106 내지 107 개의 체적 요소 내에 103 내지 104개의 원자를 갖는 문제, 인자를 갖는 문제, 또는 현재의 계산에 대해서 시간 단계별 약 102 내지 104의 계산 증가를 갖는 문제를 시뮬레이션하는 것이 요망된다. 게다가, 103 내지 104 더 긴 시뮬레이션 시간이 요구된다.
물질 응용 분야
JEEP와 같은 코드는 고온 물질(warm matter) 물리학, 즉 응축 물질(condensed matter) 물리학(예를 들면, 고체 밀도의 저온 물질(cold material at solid density))과 플라즈마 물리학(예를 들면, 이온화된 물질) 사이의 간격에 대한 통찰을 제공하며, 그 영역은 이론적 및 경험적 관점으로부터는 접근하기가 어려운 것이었다. JEEP는 실리콘 카바이드(비정질 반도체)의 극미세 덩어리가 파열점까지 인장되어 갈 때 그의 응답을 모델링하는 데 사용되어 왔다. 이 시뮬레이션은 경도를 무질서 합금(disordered alloy)의 제1 법칙으로부터 계산한 최초였다. 이 연구에 의해 물질의 화학적 특성에 장애의 시발을 관련시킬 수 있으며, 이는 과거에는 이론적으로도 또 실험적으로도 그 특성을 알아내는 것이 어려웠다.
충격 응축된 액체 중수소(shock-compressed liquid deuterium). 이상 조건(unusual condition)(압력 및 온도)에서의 수소 EOS 계산. 고체와 플라즈마 - 응축되지 않은 물질, 저온 고밀도 물질 - 사이의 이들 프로브 고온 물질은 과학적 관점에서 아주 어려운 1/2 eV와 10eV 사이에 속한다. 상태 방정식(Equation of State; EOS) 및 불투명도 데이터는 이 영역에서 가장 약하다.
이 부류의 초대규모 컴퓨터 상에서만 달성할 수 있는 JEEP의 물질 과학에서의 다른 응용 분야에는, 가압수(Water under pressure)(실험 프로그램과 연결), 고압에서의 이산화탄소의 결정 구조, "수퍼-하드(super-hard)" 폴리머 이산화탄소가 포함된다.
생물학 응용 분야
JEEP은 현재는 물 속에서 DNA 백본(backbone)의 작은 격리된 단편에 무슨 일이 일어나는지를 검사하고 있다. 이들 개척적인 시뮬레이션은 실제의 생물학적 환경(수용액)에서의 최초의 DNA 단편(fragment)이기 때문에 중요하다. 예를 들어, 시뮬레이션은 그 단편으로부터의 디메틸 인산염의 분자가 물 분자와 어떻게 상호 작용하는지를 조사한다. 이들 초창기 시뮬레이션은 널리 사용되는 경험적인 상호 작용 모델과 비교되고 있다. 이들 시뮬레이션이 표준적인 DNA 상호 작용 모델에서 설정한 가정을 유효화 또는 무효화시킬 것으로 예상된다. 그렇지만, 현재의 시뮬레이션은 소수의 염기쌍과 최소량의 물 분자를 갖는 백본의 작은 세그먼트에 한정되어 있다. 게다가, 시뮬레이션은 피코초 시간 스케일로 한정되어 있다. 생물학적으로 관심있는 시간스케일은 수백 마이크로초이다. 본 발명의 시스템에 있어서, 생물학적으로 중요한 DNA 세그먼트가 생물학적으로 관련된 시간스케일에 걸쳐 완전 수용액 중에서 모델링될 수 있다. 본 발명의 기능에 있어서, 생물학적으로 정확한 상황에서 DNA의 상당한 이해는 시뮬레이션을 통해 얻어질 수 있다. 이것은 생물화학에 대한 잠재적인 상당한 진보를 예고한다.
JEEP의 다른 생물학적 응용 분야에서, 상보적인 염기들이 어떻게 상호 작용을 하는지를 알아보기 위해 단 하나의 DNA 염기쌍이 추출된다. 이 연구의 목적은 무엇이 DNA로 하여금 결합하게 만들고 또 어떤 분자 상호 작용이 결합에 중요한 것인지를 이해하는 데 있다. 원하는 바는 결합 메카니즘이 DNA의 복제에 어떻게 영향을 미치는지를 발견해내는 것이다. 이것은 손상 또는 돌연변이의 관점에서 DNA 복제의 충실도에 대한 이해를 뒷받침한다. 본 발명의 특별한 계산 능력으로, 이들 상세한 검사가 처음으로 달성될 수 있다. 이것으로 인해 DNA 결합 및 생물학적으로 중요한 컨텍스트에서 상호 작용에 대한 보다 양호한 모델에 이르게 될 것이다.
JEEP 알고리즘
JEEP은 MPI 및 OpenMP를 사용하여 현재 C++로 작성되어 있는 독점적 알고리즘이다. 밀도 범함수 이론(Density functional theory; DFT)은 보다 느리게 움직이는 원자 핵 주변에서의 전자 운동(전자와 전자간 상호 작용 및 전자와 핵간의 상호 작용), 및 공간에서의 원자 핵의 운동을 계산하기 위한 고전 동역학을 기술하는 데 사용된다. 시뮬레이션 중 가장 중요하고 시간 소모적인 부분은 각각의 분자 동역학 단계에서의 전자 구조의 계산이다. 이것에는 각 전자 상태에 대한 비선형 미적분 결합 방정식(coupled non-linear integro-differential equation)인 Kohn-Sham 방정식의 해법이 필요하다.
JEEP에서 사용되는 알고리즘은 그 해의 푸리에 전개(Fourier expansiion)에 기반하고 있다. 이 알고리즘의 중요한 부분은 3차원 복소 푸리에 변환, 즉 수천개의 긴(long)(106-107) 복소 벡터의 정규 직교화(orthonormalization)이다.
본 발명의 수퍼컴퓨터는 이 응용 분야에서 필요로 하는 FFT, 선형 방정식, 및 행렬 전치 연산을 효율적으로 구현한다. 3차원 (고속 푸리에 변환) FFT의 수행에 관한 추가의 상세에 관해서는, 본 명세서에 포함된 것으로서 공동 소유의 동시 계류 중에 있는, 발명의 명칭이 "Efficient Implementation of Multidimensional Fast Fourier Transform on a Distributed-Memory Parallel Multi-Node Computer(분산 메모리 병렬 멀티노드 컴퓨터 상에서의 다차원 고속 푸리에 변환의 효율적인 구현)"인 미국 특허 출원 제 호(YOR920020043US1(15262))에 보다 상세히 기술되어 있다.
과학 응용 분야 요약
Fermion Monte Carlo에서의 최근의 연구는 전자 및 원자 구조, 응축 물체, 핵 물리 및 생물학에서의 양자 다체 문제(quantum many-body problem)를 푸는 능력에서 상당한 진보를 나타내었다. 다체계(many-body system)에 대한 Schrodinger(시뢰딩거) 방정식의 수치 해법은 60년 이상 동안 연구의 주제가 되어 왔지만, 지금까지 무제한 근사(uncontrolled approximation)를 전혀 수반하지 않는 정확한 해법을 구할 수 있는 방법이 전혀 등장하지 않았다. 사실상, 그 문제는 너무 엄청난 것이어서, 주된 연구 관심인 주제가 다체 방정식의 해가 기본적으로 불가능하다는 전제를 갖는 밀도 범함수 이론이다. 주된 어려움은 차원의 어려움으로서, (2개의 물 분자와 같은) 20개의 전자계의 상태를 기술하는 방정식은 60 차원의 편미분 방정식이다. 이것을 정확하게 3차원으로 매핑하는 알려진 방법이 없으며, 편미분 방정식의 수치 해법의 전통적인 방법은 이러한 고차원 공간에서는 소용이 없다.
Monte Carlo 방법이 고차원에서의 수학적 문제의 수치 해석(numerical treatment)을 위한 실용적인 방법을 제공한다는 것은 일반적으로 잘 알려져 있다. 그 방법은 (7 차원까지의) 방사선 수송(radiation transport) 및 (수백만 차원까지의) 통계 물리에서 일상적으로 사용된다. [어디에서나 +인 해를 갖는 최저 상태(lowest state)에 대한] 어떤 Schrodinger 방정식의 해를 구하는 방법도 또한 수십년 동안 이용되어 왔다. 이 분야에서 잘 알려진 "Fermion Sign Problem"(페르미온 부호 문제)라고 하는 문제에 의해, 물리적 관심의 대부분의 문제에 대한 명백한 적용이 방해되어 왔다. 그의 전체 기술은 이와 같은 짧은 보고서에서는 너무 기술적이지만, 본질적으로 그것은 다전자계(many-electron system)가 파동 함수는 동일 입자의 교환에서 반대칭이어야만 한다는 파울리 원리(Pauli Principle)를 만족시켜야 한다는 사실로부터 유도된다. 표준적인 Monte Carlo 방법은 허수 시간(imaginary time)에서의 Schrodinger 방정식이 로컬 확산 방정식이라는 사실에 기초하여 구축된다. 파울리 원리는 Monte Carlo 방법에 심각한 방해가 되는 비로컬 경계 방정식(non-local boundary equation)을 강요한다.
이러한 심오한 어려움을 극복할 수 있는 하나의 새로운 유형의 방법이 본 발명의 시스템에서 실행되는 애플리케이션으로서 제안되어 왔다. 새로운 방법의 중심 요소는 대수 부호를 갖는 객체에 대해 상관 랜덤 워크(correlated random walk)를 사용하는 것이다. 아주 최근의 진보는 프로그램의 성능을 10의 몇제곱 만큼 향상시킬 수 있는 알고리즘 변화를 보여주었다.
이들 양자 Monte Carlo 계산이 어떤 물리적, 수학적 또는 수치적 근사없이 다페르미온(many-fermion) Schroedinger 방정식에 대한 정확한 수치 해법을 (처음으로) 제시할 것이다. 이들 계산은 과학계의 관심을 끄는 각종의 물리계, 원자 및 분자 구조, (고압에서의 수소와 같은)응축 물질 및 핵 구조에 적용될 것이다.
과학 응용 분야 요약
전위 시뮬레이션(dislocation simulation)이 10% 이상의 변형에서의 가공 경화(work hardening), 소성 불안정(plastic instability) 및 유동 국소화(flow localization)의 100%까지의 전위 패턴화 및 개발, 폴리-미소결정(poly-crystallite)에서의 전위 모델링, 및 취성-연성 전이(brittle-ductile transition) 모델링 등의 "대도전" 문제를 해소하는 위치에 서게 될 것이다.
본 발명의 아키텍처는 전위 동역학(dislocation dynamics)의 알고리즘을 분석함으로써 이들 문제를 해소하는 데 아주 효과적이다. 전위 동역학은 메소스케일 범위(mesoscale range), 원자 범위와 거시 범위 사이의 중간의 문제를 해결한다. 실제 물질의 거동의 대부분은 이 스케일에서의 전위의 거동에 의해 결정된다.
본 발명이 그의 예시적이고 또한 이미 실시해 본 실시예에 관하여 상세하게 도시되고 설명되었지만, 당업자라면 형태 및 상세에 있어서의 전술한 및 다른 변경이 본 발명의 정신 및 범위를 벗어나지 않고 본 발명 내에서 이루어질 수 있으며, 본 발명은 첨부된 청구항들의 범위에 의해서만 제한되어야 한다는 것을 이해할 것이다.

Claims (52)

  1. 다수의 독립적인 네트워크에 의해 상호 연결되어 있으며, 병렬 알고리즘 연산을 수행할 때 필요에 따라 계산 또는 통신 동작을 수행하는 하나 이상의 처리 요소를 각각 포함하는 복수의 처리 노드를 포함하고,
    상기 다수의 독립적인 네트워크는 상기 노드들 사이에서나 또는 상기 노드들의 독립적인 분할된 부분집합들 사이에서 점대점 글로벌 트리 통신과 글로벌 배리어 및 통지 동작을 가능하게 해주는 네트워크를 포함하며,
    알고리즘 처리 성능을 최적화하기 위해 알고리즘의 대역폭 및 지연 요건에 따라 상기 노드들을 상호 연결시키는 상기 다수의 독립적인 네트워크의 조합들이 협동적으로 또는 독립적으로 이용되는 것인 초병렬 컴퓨팅 구조.
  2. 제1항에 있어서, 상기 다수의 독립적인 네트워크 중 제1 네트워크는 상기 노드들 사이에서나 또는 상기 노드들의 독립적인 분할된 부분집합들 사이에서 고속ㆍ저지연의 점대점 및 멀티캐스트 패킷 통신을 제공하기 위해 최적화된 방식으로 상기 노드들을 상호 연결시키는 통신 링크를 포함하는 n차원 토러스 네트워크를 포함하는 것인 초병렬 컴퓨팅 구조.
  3. 제2항에 있어서, 상기 다수의 독립적인 네트워크는 수행되고 있는 알고리즘의 대역폭 및 지연 요건에 따라 개개의 노드들 사이에서와 노드들의 분할된 부분집합들 사이에서 동시적인 계산 및 메시지 통신 동작이 가능하도록 협동적으로 이용되는 것인 초병렬 컴퓨팅 구조.
  4. 제2항에 있어서, 상기 다수의 독립적인 네트워크는 병렬 알고리즘의 요구 사항에 따라 상기 복수의 노드의 하나 이상의 분할된 부분집합들 사이에서 동시적이고 독립적인 병렬 처리가 가능하도록 협동적으로 이용되는 것인 초병렬 컴퓨팅 구조.
  5. 제3항에 있어서, 상기 다수의 독립적인 네트워크는 알고리즘의 요구 사항에 따라 개개의 노드들 사이에서 계산 및 메시지 통신 동작 사이의 동적 스위칭이 가능하도록 협동적으로 이용되는 것인 초병렬 컴퓨팅 구조.
  6. 제2항에 있어서, 상기 제1 독립적인 네트워크는 처리 능력(throughput) 및 지연(latency)을 최적화하기 위해, 상호 연결된 링크들을 따라 소스 노드(source node)로부터 목적지 노드(destination node)로 패킷들의 버추얼 컷-쓰루(virtual cut-through; VCT) 라우팅을 가능하게 해주는 수단을 포함하며,
    상기 VCT 수단은 네트워크 링크들을 따라 패킷 라우팅을 용이하게 해주는 개개의 버퍼드 가상 채널(buffered virtual channel)을 제공하는 것인 초병렬 컴퓨팅 구조.
  7. 제6항에 있어서, 메시지 패킷들의 버추얼 컷-쓰루를 가능하게 해주는 상기 수단은 네트워크 경합을 피하기 위해 적응적 라우팅 알고리즘(adative-routing algorithm)을 이용하는 것인 초병렬 컴퓨팅 구조.
  8. 제2항에 있어서, 상기 제1 독립적인 네트워크는 병렬 계산을 위해 확정적 최단 경로 라우팅(deterministic shortest-path routing)을 가능하게 해주는 수단을 포함하는 것인 초병렬 컴퓨팅 구조.
  9. 제2항에 있어서, 상기 제1 독립적인 네트워크는 패킷들의 자동적인 멀티캐스팅을 위한 수단을 포함하며, 이에 따라 패킷들은 노드 또는 패킷 클래스에 따라 다수의 목적지로 보관되는 것인 초병렬 컴퓨팅 구조.
  10. 제2항에 있어서, 상기 제1 독립적인 네트워크는 패킷들의 적응적이면서 교착 상태 없는 확정적 최소 경로 라우팅(adaptive and deadlock free deterministic minimal-path routing)을 가능하게 해주는 임베디드 가상 네트워크(embedded virtual network)를 포함하는 것인 초병렬 컴퓨팅 구조.
  11. 제10항에 있어서, 상기 복수의 노드 각각은 라우팅 장치를 포함하며, 상기 제1 네트워크는 라우터들 사이에서 패킷들의 라우팅을 제어하기 위한 토큰-기반의 흐름 제어 수단(token-based flow-control means)을 구현하는 것인 초병렬 컴퓨팅 구조.
  12. 제2항에 있어서, 상기 다수의 독립적인 네트워크 중 제2 네트워크는 상기 네트워크의 노드들 사이에서나 또는 그 노드들의 부분집합들 사이에서 동시적인 글로벌 동작을 용이하게 해주는 노드 상호 연결부(nodal interconnection)를 구비하는 확장가능한 글로벌 트리 네트워크(scalable global tree network)를 포함하는 것인 초병렬 컴퓨팅 구조.
  13. 제12항에 있어서, 상기 글로벌 동작은, 상기 트리 네트워크 또는 상기 트리 네트워크의 서브트리 네트워크(sub-tree network)의 루트 노드(root node)로부터 말단 노드들(leaf nodes)로의 다운스트림 브로드캐스트(downstream broadcast)를 위해 상기 트리의 임의의 노드에서 개시되는 글로벌 브로드캐스트 동작, 및
    각각의 트리 또는 서브트리 네트워크에서 노드들로부터 상기 루트 노드쪽으로의 업스트림 글로벌 리덕션 동작(global reduction operation)을 포함하는 것인 초병렬 컴퓨팅 구조.
  14. 제12항에 있어서, 복수의 트리 또는 서브트리 네트워크의 상기 루트 노드는 그 트리 네트워크에 대한 고속의 I/O 동작을, 다른 네트워크에서 수행되는 처리와 무관하게 수행하는 I/O 노드와 연결되는 것인 초병렬 컴퓨팅 구조.
  15. 제14항에 있어서, 각각의 상기 글로벌 트리 네트워크의 노드들 사이에서 점대점 및 서브트리 메시징을 가능하게 해주는 프로그램가능 수단을 더 포함하며,
    각각의 노드는 호스트 컴퓨터가 모든 노드에 대해 직접 통신을 할 수 있게 해주는 그와 관련된 고유의 어드레스를 갖는 것인 초병렬 컴퓨팅 구조.
  16. 제15항에 있어서, 상기 관련된 고유의 어드레스는 상기 컴퓨팅 구조 내에서의 그 노드의 인코딩된 기하학적 위치(encoded geometric location)를 포함하는 것인 초병렬 컴퓨팅 구조.
  17. 제12항에 있어서, 상기 컴퓨팅 구조의 최적화된 패키징 및 이용이 가능하도록, 노드들의 부분집합에 대한 서비스 노드의 비율이 설정될 수 있는 것인 초병렬 컴퓨팅 구조.
  18. 제2항에 있어서, 상기 다수의 독립적인 네트워크 중 제3 네트워크는 비동기적인 글로벌 동작이 가능하도록 글로벌 신호 네트워크(global signal network)를 포함하는 것인 초병렬 컴퓨팅 구조.
  19. 제18항에 있어서, 상기 비동기적인 글로벌 동작은 글로벌 배리어 동작이 가능하도록 글로벌 논리 AND 기능의 구현을 포함하는 것인 초병렬 컴퓨팅 구조.
  20. 제2항에 있어서, 상기 비동기적인 글로벌 신호 동작은 글로벌 통지 동작이 가능하도록 글로벌 논리 OR 기능의 구현을 포함하는 것인 초병렬 컴퓨팅 구조.
  21. 제14항에 있어서, 상기 다수의 독립적인 네트워크 중 제4 네트워크는 각각의 I/O 노드를 외부 호스트 시스템에 연결시키는 외부 고속 네트워크를 포함하는 것인 초병렬 컴퓨팅 구조.
  22. 제21항에 있어서, 상기 외부 고속 네트워크는 기가비트 이더넷인 것인 초병렬 컴퓨팅 구조.
  23. 제2항에 있어서, 상기 다수의 독립적인 네트워크 중 제5 네트워크는 상기 컴퓨팅 구조 내의 모든 노드들 또는 노드들의 부분집합들에 대한 하위 레벨의 디버깅, 진단 및 설정 기능을 제공하는 독립적인 네트워크를 포함하는 것인 초병렬 컴퓨팅 구조.
  24. 제23항에 있어서, 한 노드의 내부 처리 요소들의 상기 하위 레벨의 디버깅 및 검사는 상기 제5 네트워크를 통해 그 노드 상에서 실행되는 어떤 소프트웨어에 대해서도 투명한 방식으로 행해질 수 있는 것인 초병렬 컴퓨팅 구조.
  25. 제23항에 있어서, 상기 제5 네트워크는 IEEE 1149(JTAG) 네트워크를 포함하는 것인 초병렬 컴퓨팅 구조.
  26. 제15항에 있어서, 상기 다수의 독립적인 네트워크 중 제6 네트워크는 개개의 노드들에 진단 및 제어 기능을 제공하는 독립적인 제어 네트워크를 포함하는 것인 초병렬 컴퓨팅 구조.
  27. 제1항에 있어서, 각각의 노드는 2개 이상의 처리 요소를 포함하며, 그 각각의 처리 요소는 특정 클래스의 병렬 알고리즘을 수행할 때 필요에 따라 계산 또는 통신 동작의 임의의 조합에 대해 개별적으로 또는 동시적으로 작용할 수 있는 것인 초병렬 컴퓨팅 구조.
  28. 제27항에 있어서, 상기 처리 요소들 각각 사이에서 계산 또는 통신 동작의 신속한 전환을 가능하게 해주는 수단을 더 포함하는 초병렬 컴퓨팅 구조.
  29. 제28항에 있어서, 각각의 처리 요소는 중앙 처리 장치(CPU) 및 하나 이상의 부동 소수점 처리 유닛을 포함하며,
    상기 노드는 로컬 임베디드 다중 레벨 캐시 메모리(local embedded multi-level cache memory)와, 보다 하위 레벨의 캐시 내에 포함되어 있는, 보다 상위 레벨의 캐시용의 데이터를 프리페치하기 위한 프로그램가능 프리페치 엔진(programmable prefetch engine)을 더 포함하는 것인 초병렬 컴퓨팅 구조.
  30. 제1항에 있어서, 각각의 노드는 높은 패키징 밀도를 가능하게 해주고 또 전력 이용 및 냉각 요건을 완화시켜주는 하나의 시스템-온-칩 ASIC(Application Specific Integrated Circuit)을 포함하는 것인 초병렬 컴퓨팅 구조.
  31. 제1항에 있어서, 상기 컴퓨팅 구조는 회로 카드 상에 패키징되어 있는 미리 결정된 복수의 ASIC 노드를 포함하며, 복수의 회로 카드는 상기 컴퓨팅 구조 내에 패키징되어 있는 분할불가능한 미드플레인 유닛 상에 구성되어 있는 것인 초병렬 컴퓨팅 구조.
  32. 제31항에 있어서, 회로 카드는 서브큐브(sub-cube) 또는 직사각형으로서 논리적으로 연결되어 있는 노드들을 포함하도록 구성되어 있는 것인 초병렬 컴퓨팅 구조.
  33. 제31항에 있어서, 처리되고 있는 병렬 알고리즘의 대역폭 및 지연 요건에 따라 상기 노드들 사이에서 독립적인 처리가 가능하도록, 여러가지 논리적 네트워크 구성에 따라 노드들의 부분집합을 분할(partitioning)하는 수단을 더 포함하는 초병렬 컴퓨팅 구조.
  34. 제33항에 있어서, 상기 분할 수단은 서로 다른 미드플레인을 상호 연결시키는 도체 상으로 신호를 리드라이브(redrive)하고 또 수퍼컴퓨팅 시스템이 다수의 논리적으로 분리된 시스템으로 분할되는 것을 가능하도록 서로 다른 포트 사이에서 신호를 리디렉트(redirect)하는 링크 장치를 포함하는 것인 초병렬 컴퓨팅 구조.
  35. 제34항에 있어서, 나머지 시스템 동작을 방해하지 않고 고장난 미드플레인을 보수하기 위해 고장난 것으로 결정된 어떤 미드플레인도 우회하게 통신 및 계산 동작을 매핑하도록 상기 링크 장치를 프로그래밍하는 수단을 더 포함하는 초병렬 컴퓨팅 구조.
  36. 제34항에 있어서, 상기 다수의 독립적인 네트워크 중 어느 한 네트워크는 상기 분할을 프로그램하도록 상기 링크 칩을 제어하는 독립적인 제어 네트워크를 포함하는 것인 초병렬 컴퓨팅 구조.
  37. 제31항에 있어서, 클록 신호를 미드플레인 유닛의 모든 회로 카드에 최소의 지터로 제공하는 클록 분배 시스템을 더 포함하는 초병렬 컴퓨팅 구조.
  38. 제37항에 있어서, 상기 클록 분배 시스템은 상기 컴퓨팅 구조의 모든 노드들 및 그의 네트워킹된 파티션에 대한 동상의 클록 분배(in phase clock distribution)가 가능하도록 튜닝가능한 리드라이브 신호(tunable redrive signal)를 이용하는 것인 초병렬 컴퓨팅 구조.
  39. 제1항에 있어서, 동시에 양방향으로 신호를 전달하도록 상기 처리 노드를 상호 연결시키는 고속의 양방향 직렬 링크를 더 포함하는 초병렬 컴퓨팅 구조.
  40. 제30항에 있어서, 각각의 노드 ASIC은 상기 처리 유닛에 의해 접근가능하며 또 로크 교환(lock exchange)이 상기 처리 유닛에서의 병목 현상을 방지하도록 구성된, 메모리 내의 공유 자원을 더 포함하는 것인 초병렬 컴퓨팅 구조.
  41. 제6항에 있어서, 통신되는 각각의 패킷은 정보를 전달하는 하나 이상의 필드를 포함하는 헤더를 포함하며, 하나의 상기 필드는 개선된 비트-직렬 네트워크 통신을 위한 에러 정정 기능을 포함하는 것인 초병렬 컴퓨팅 구조.
  42. 제41항에 있어서, 상기 패킷 헤더의 하나의 상기 필드는 상기 네트워크 내의 한 노드에서 패킷을 라우팅하는 데 가능한 출력 방향을 나타내는 정의된 수의 비트를 포함하며, 상기 비트는 네트워크 경합을 감소시키기 위해 패킷이 노드 목적지에 도달하는 해당 방향으로 진행할 필요가 있음을 나타내도록 설정되어 있는 것인 초병렬 컴퓨팅 구조.
  43. 제39항에 있어서, 상기 링크 상으로 전송되는 데이터를 캡처하는 수단으로서, 비동기 데이터 스트림의 최적의 샘플링 및 캡처를, 상기 데이터 스트림과 함께 클록 신호를 전송하지 않고도 행할 수 있는 데이터 캡처 수단을 더 구현하고 있는 초병렬 컴퓨팅 구조.
  44. 독립적인 네트워크들에 의해 상호 연결되어 있으며, 병렬 알고리즘 연산을 수행할 때 필요에 따라 계산 또는 통신 동작을 수행하는 하나 이상의 처리 요소를 각각 포함하는 복수의 처리 노드,
    상기 네트워크의 상기 노드들 사이에서나 또는 노드들의 부분집합들 사이에서 고속 저지연의 점대점 및 멀티캐스트 패킷 통신을 제공하기 위해 최적화된 방식으로 상기 노드들을 상호 연결시키는 통신 링크를 포함하는 n차원 토러스 네트워크를 포함하는 제1 독립적인 네트워크,
    상기 네트워크의 노드들 사이에서나 또는 노드들의 부분집합들 사이에서 동시적인 글로벌 연산을 용이하게 해주는 노드 상호 연결을 포함하는 확장가능한 글로벌 트리 네트워크를 포함하는, 상기 다수의 독립적인 네트워크 중 제2 네트워크, 및
    하나 이상의 알고리즘의 요구 사항에 따라 독립적인 처리 네트워크들의 하나 이상의 조합들을 동적으로 구성하는 분할 수단 - 각각의 독립적인 네트워크는 상기 제1 및 제2 네트워크의 분할가능한 부분들에 의해 상호 연결되는 처리 노드들의 구성가능한 부분집합을 포함함 - 을 포함하며,
    상기 구성된 독립적인 처리 네트워크 각각은 알고리즘 처리 성능을 최적화하기 위해 동시적이고 협동적인 처리가 가능하도록 이용되는 것인 확장가능한 초병렬 컴퓨팅 구조.
  45. 제44항에 있어서, 상기 다수의 독립적인 네트워크 중 제3 네트워크는 상기 네트워크의 노드들 사이에서나 또는 노드들의 부분집합 사이에서 비동기적인 글로벌 연산을 가능하게 하기 위한 노드 상호 연결을 구비하는 확장가능한 글로벌 신호 네트워크를 포함하는 것인 확장가능한 초병렬 컴퓨팅 구조.
  46. 제44항에 있어서, 각각의 노드는 특정 클래스의 알고리즘을 수행할 때 필요에 따라 계산 또는 통신 동작이나 또는 그 양쪽 모두의 임의의 조합에 대해 각각 개별적으로 또는 동시적으로 작용할 수 있는 2개의 처리 요소를 구비하는 시스템-온-칩 ASIC을 포함하는 것인 확장가능한 초병렬 컴퓨팅 구조.
  47. 제44항에 있어서, 특정 클래스의 알고리즘을 수행할 때 하나 이상의 구성된 독립적인 처리 네트워크들 사이에서 처리의 스위칭을 가능하게 하는 수단을 더 포함하는 확장가능한 초병렬 컴퓨팅 구조.
  48. 다수의 독립적인 네트워크에 의해 상호 연결되는 복수의 처리 노드를 포함하는 초병렬 컴퓨팅 구조로서,
    각각의 처리 노드는,
    각각이 계산 또는 메시지 패싱(message passing) 동작을 수행할 수 있는 2개 이상의 처리 요소를 포함하는 시스템-온-칩 ASIC, 및
    각각의 상기 처리 요소에서 처리 및 메시지 패싱 동작의 신속한 조정을 가능하게 해주는 수단을 포함하며,
    특정 클래스의 알고리즘을 수행할 때 필요에 따라, 상기 처리 요소 중 어느 한쪽 또는 양쪽 모두는 알고리즘에서 필요로 하는 계산을 수행하는 반면, 상기 처리 요소 중 다른 한쪽 또는 양쪽 모두는 상기 네트워크의 다른 노드와 통신하기 위해 메시지 패싱 동작을 수행하는 것인 초병렬 컴퓨팅 구조.
  49. 확장가능한 초병렬 컴퓨팅 시스템으로서,
    토러스 네트워크를 형성하기 위해 링크들에 의해 상호 연결되는 복수의 처리 노드 - 각각의 처리 노드는 모든 인접한 처리 노드로의 링크를 포함한 복수의 링크에 의해 연결되어 있음 -,
    글로벌 결합 트리 네트워크와, 인터럽트 신호를 포함한 글로벌 신호를 통신하기 위한 유사한 결합 트리를 형성하기 위해 상기 처리 노드들을 상호 연결시키는 통신 링크, 및
    상기 토러스 및 글로벌 트리 네트워크로부터의 신호 및 상기 글로벌 인터럽트 신호를 수신하고, 상기 컴퓨팅 시스템이 다수의 논리적으로 분리된 컴퓨팅 시스템으로 분할될 수 있도록 상기 신호들을 링크 수단의 서로 다른 포트 사이에서 리디렉션하는 링크 수단을 포함하는 확장가능한 초병렬 컴퓨팅 시스템.
  50. 제49항에 있어서, 상기 링크 수단은 복수의 처리 노드를 포함하는 미드플레인 장치들 사이의 케이블 상으로 신호들을 리드라이브하여 그 신호들의 고속의 형상 및 진폭을 개선시키는 기능을 제공하는 것인 확장가능한 초병렬 컴퓨팅 시스템.
  51. 제49항에 있어서, 상기 링크 수단은 상기 컴퓨팅 시스템의 정의된 축을 따라 하나의 논리적 방향으로부터 하나의 미드플레인을 제거하기 위한 제1 유형의 신호 리디렉션과, 상기 컴퓨팅 시스템을 2개의 이분 영역(half)으로 또는 4개의 사분 영역(quarter)으로 분할할 수 있게 해주는 제2 유형의 리디렉션을 수행하는 것인 확장가능한 초병렬 컴퓨팅 시스템.
  52. 독립적인 네트워크들에 의해 상호 연결되어 있으며, 각각이 계산 또는 메시지 패싱 동작을 수행할 수 있는 2개 이상의 처리 요소를 포함하는 시스템-온-칩 ASIC을 각각 포함하는 복수의 처리 노드,
    상기 네트워크의 상기 노드들 사이에서나 또는 노드들의 부분집합들 사이에서 고속 저지연의 점대점 및 멀티캐스트 패킷 통신을 제공하기 위해 최적화된 방식으로 상기 노드들을 상호 연결시키는 통신 링크를 구비하는 n차원 토러스 네트워크를 포함하는 제1 독립적인 네트워크,
    상기 네트워크의 노드들 사이에서나 또는 노드들의 부분집합들 사이에서 동시적인 글로벌 동작을 용이하게 해주는 노드 상호 연결을 포함하는 확장가능한 글로벌 트리 네트워크를 포함하는, 상기 다수의 독립적인 네트워크 중 제2 네트워크,
    하나 이상의 알고리즘의 요구 사항에 따라 독립적인 처리 네트워크들의 하나 이상의 조합들을 동적으로 구성하는 분할 수단 - 각각의 독립적인 네트워크는 상기 제1 및 제2 네트워크의 분할가능한 부분들에 의해 상호 연결되게 구성된 처리 노드들의 부분집합을 포함함 - , 및
    각각의 독립적인 처리 네트워크 내의 각각의 상기 처리 요소에서 처리 및 메시지 패싱 동작의 신속한 조정을 가능하게 해주는 수단을 포함하며,
    특정 클래스의 알고리즘을 수행할 때 필요에 따라, 상기 처리 요소 중 어느 한쪽 또는 양쪽 모두는 알고리즘에서 필요로 하는 계산을 수행하는 반면, 상기 처리 요소 중 다른 한쪽 또는 양쪽 모두는 상기 네트워크의 다른 노드들과 통신하기 위해 메시지 패싱 동작을 수행하고,
    상기 구성된 독립적인 처리 네트워크 및 그의 노드 처리 요소 각각은 알고리즘 처리 성능을 최적화하기 위해 협동적인 처리가 가능하도록 동적으로 이용되는 것인 초병렬 컴퓨팅 구조.
KR10-2003-7010920A 2001-02-24 2002-02-25 신규의 초병렬 수퍼컴퓨터 KR100537582B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US27112401P 2001-02-24 2001-02-24
US60/271,124 2001-02-24
PCT/US2002/005571 WO2002084509A1 (en) 2001-02-24 2002-02-25 A novel massively parrallel supercomputer

Publications (2)

Publication Number Publication Date
KR20030077033A KR20030077033A (ko) 2003-09-29
KR100537582B1 true KR100537582B1 (ko) 2005-12-20

Family

ID=68463258

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-7010920A KR100537582B1 (ko) 2001-02-24 2002-02-25 신규의 초병렬 수퍼컴퓨터

Country Status (10)

Country Link
US (3) US7555566B2 (ko)
EP (1) EP1370966B1 (ko)
JP (1) JP3980488B2 (ko)
KR (1) KR100537582B1 (ko)
CN (1) CN1311376C (ko)
AT (1) ATE479147T1 (ko)
CA (1) CA2437039A1 (ko)
DE (1) DE60237433D1 (ko)
IL (1) IL157505A (ko)
WO (1) WO2002084509A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180085188A (ko) * 2017-01-18 2018-07-26 한국전자통신연구원 토러스 네트워크 기반의 분산 파일 시스템을 위한 파일 접근 경로 설정 방법 및 이를 위한 장치

Families Citing this family (395)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10839321B2 (en) * 1997-01-06 2020-11-17 Jeffrey Eder Automated data storage system
KR100620835B1 (ko) 2001-02-24 2006-09-13 인터내셔널 비지네스 머신즈 코포레이션 최적화된 가변 네트워크 스위치
JP4524073B2 (ja) 2001-02-24 2010-08-11 インターナショナル・ビジネス・マシーンズ・コーポレーション 動的再分割を介するスーパーコンピュータでのフォールト・トレランス
US7464180B1 (en) * 2001-10-16 2008-12-09 Cisco Technology, Inc. Prioritization and preemption of data frames over a switching fabric
US6745299B2 (en) * 2001-11-19 2004-06-01 Hewlett-Packard Development Company, L.P. Method for evaluation of scalable symmetric multiple processor cache coherency protocols and algorithms
WO2006020298A2 (en) * 2004-07-19 2006-02-23 Blumrich Matthias A Collective network for computer structures
US8626957B2 (en) 2003-08-22 2014-01-07 International Business Machines Corporation Collective network for computer structures
US20040107381A1 (en) * 2002-07-12 2004-06-03 American Management Systems, Incorporated High performance transaction storage and retrieval system for commodity computing environments
GB0221464D0 (en) * 2002-09-16 2002-10-23 Cambridge Internetworking Ltd Network interface and protocol
US7334086B2 (en) * 2002-10-08 2008-02-19 Rmi Corporation Advanced processor with system on a chip interconnect technology
US7627721B2 (en) * 2002-10-08 2009-12-01 Rmi Corporation Advanced processor with cache coherency
US7552192B2 (en) * 2002-12-18 2009-06-23 Ronnie Gerome Carmichael Massively parallel computer network-utilizing MPACT and multipoint parallel server (MPAS) technologies
JP4040045B2 (ja) * 2003-01-24 2008-01-30 富士通株式会社 データ転送装置
US7437593B2 (en) * 2003-07-14 2008-10-14 International Business Machines Corporation Apparatus, system, and method for managing errors in prefetched data
US8352724B2 (en) * 2003-07-23 2013-01-08 Semiconductor Energy Laboratory Co., Ltd. Microprocessor and grid computing system
US7730501B2 (en) * 2003-11-19 2010-06-01 Intel Corporation Method for parallel processing of events within multiple event contexts maintaining ordered mutual exclusion
US7852836B2 (en) * 2003-11-19 2010-12-14 Cray Inc. Reduced arbitration routing system and method
US8892821B2 (en) * 2003-12-10 2014-11-18 International Business Machines Corporation Method and system for thread-based memory speculation in a memory subsystem of a data processing system
US7130967B2 (en) * 2003-12-10 2006-10-31 International Business Machines Corporation Method and system for supplier-based memory speculation in a memory subsystem of a data processing system
US20050132089A1 (en) * 2003-12-12 2005-06-16 Octigabay Systems Corporation Directly connected low latency network and interface
KR100605745B1 (ko) * 2004-01-06 2006-07-31 삼성전자주식회사 노드들로 구성된 이동통신 시스템에서 데이터 전송 경로결정 장치 및 방법
US7757033B1 (en) 2004-02-13 2010-07-13 Habanero Holdings, Inc. Data exchanges among SMP physical partitions and I/O interfaces enterprise servers
US7633955B1 (en) 2004-02-13 2009-12-15 Habanero Holdings, Inc. SCSI transport for fabric-backplane enterprise servers
US7860097B1 (en) 2004-02-13 2010-12-28 Habanero Holdings, Inc. Fabric-backplane enterprise servers with VNICs and VLANs
US7873693B1 (en) 2004-02-13 2011-01-18 Habanero Holdings, Inc. Multi-chassis fabric-backplane enterprise servers
US7860961B1 (en) 2004-02-13 2010-12-28 Habanero Holdings, Inc. Real time notice of new resources for provisioning and management of fabric-backplane enterprise servers
US7953903B1 (en) 2004-02-13 2011-05-31 Habanero Holdings, Inc. Real time detection of changed resources for provisioning and management of fabric-backplane enterprise servers
US7990994B1 (en) 2004-02-13 2011-08-02 Habanero Holdings, Inc. Storage gateway provisioning and configuring
US7843906B1 (en) 2004-02-13 2010-11-30 Habanero Holdings, Inc. Storage gateway initiator for fabric-backplane enterprise servers
US7685281B1 (en) 2004-02-13 2010-03-23 Habanero Holdings, Inc. Programmatic instantiation, provisioning and management of fabric-backplane enterprise servers
US8868790B2 (en) 2004-02-13 2014-10-21 Oracle International Corporation Processor-memory module performance acceleration in fabric-backplane enterprise servers
US7843907B1 (en) 2004-02-13 2010-11-30 Habanero Holdings, Inc. Storage gateway target for fabric-backplane enterprise servers
US8145785B1 (en) 2004-02-13 2012-03-27 Habanero Holdings, Inc. Unused resource recognition in real time for provisioning and management of fabric-backplane enterprise servers
EP1728171A2 (en) * 2004-03-26 2006-12-06 Atmel Corporation Dual-processor complex domain floating-point dsp system on chip
ITMI20040600A1 (it) * 2004-03-26 2004-06-26 Atmel Corp Sistema dsp su chip a doppio processore a virgola mobile nel dominio complesso
US7711977B2 (en) 2004-04-15 2010-05-04 Raytheon Company System and method for detecting and managing HPC node failure
US8190714B2 (en) * 2004-04-15 2012-05-29 Raytheon Company System and method for computer cluster virtualization using dynamic boot images and virtual disk
US9178784B2 (en) * 2004-04-15 2015-11-03 Raytheon Company System and method for cluster management based on HPC architecture
US20050235055A1 (en) * 2004-04-15 2005-10-20 Raytheon Company Graphical user interface for managing HPC clusters
US8336040B2 (en) 2004-04-15 2012-12-18 Raytheon Company System and method for topology-aware job scheduling and backfilling in an HPC environment
US8335909B2 (en) 2004-04-15 2012-12-18 Raytheon Company Coupling processors to each other for high performance computing (HPC)
US7623028B2 (en) 2004-05-27 2009-11-24 Lawrence Kates System and method for high-sensitivity sensor
US8713295B2 (en) 2004-07-12 2014-04-29 Oracle International Corporation Fabric-backplane enterprise servers with pluggable I/O sub-system
DE102004035843B4 (de) * 2004-07-23 2010-04-15 Infineon Technologies Ag Router-Netzwerkprozessor
US8033479B2 (en) 2004-10-06 2011-10-11 Lawrence Kates Electronically-controlled register vent for zone heating and cooling
US8117288B2 (en) * 2004-10-12 2012-02-14 International Business Machines Corporation Optimizing layout of an application on a massively parallel supercomputer
US7433931B2 (en) 2004-11-17 2008-10-07 Raytheon Company Scheduling in a high-performance computing (HPC) system
US8244882B2 (en) * 2004-11-17 2012-08-14 Raytheon Company On-demand instantiation in a high-performance computing (HPC) system
US7475274B2 (en) * 2004-11-17 2009-01-06 Raytheon Company Fault tolerance and recovery in a high-performance computing (HPC) system
US7318126B2 (en) * 2005-04-11 2008-01-08 International Business Machines Corporation Asynchronous symmetric multiprocessing
US7478278B2 (en) * 2005-04-14 2009-01-13 International Business Machines Corporation Template based parallel checkpointing in a massively parallel computer system
US7335976B2 (en) * 2005-05-25 2008-02-26 International Business Machines Corporation Crosstalk reduction in electrical interconnects using differential signaling
US7716250B1 (en) * 2005-05-27 2010-05-11 Microsoft Corporation Erasure coding and group computations using rooted binary and ternary trees
EP1894107B1 (en) * 2005-06-09 2011-12-21 Nxp B.V. Memory controller and method for coupling a network and a memory
US7633940B1 (en) * 2005-06-27 2009-12-15 The Board Of Trustees Of The Leland Stanford Junior University Load-balanced routing
JP4653837B2 (ja) * 2006-02-13 2011-03-16 富士通株式会社 情報処理装置、転送装置および情報処理装置の制御方法
US8924590B2 (en) * 2006-02-14 2014-12-30 Hewlett-Packard Development Company, L.P. System and method for communicating in a networked system
US7904887B2 (en) * 2006-02-16 2011-03-08 International Business Machines Corporation Learning and cache management in software defined contexts
US8516444B2 (en) * 2006-02-23 2013-08-20 International Business Machines Corporation Debugging a high performance computing program
JP4413198B2 (ja) * 2006-03-23 2010-02-10 富士通株式会社 浮動小数点データの総和演算処理方法及びコンピュータシステム
CN103530187B (zh) 2006-03-27 2017-01-18 相干逻辑公司 为多处理器系统设计程序
US7796527B2 (en) * 2006-04-13 2010-09-14 International Business Machines Corporation Computer hardware fault administration
US7697443B2 (en) * 2006-04-13 2010-04-13 International Business Machines Corporation Locating hardware faults in a parallel computer
US20070242611A1 (en) * 2006-04-13 2007-10-18 Archer Charles J Computer Hardware Fault Diagnosis
EP1868114B1 (de) * 2006-06-12 2015-11-18 Konrad-Zuse-Zentrum für Informationstechnik Berlin Vorrichtung und Verfahren zum Speichern und Abrufen von Objekten mit mehrdimensional adressierten, elektronischen Daten
US20080022079A1 (en) * 2006-07-24 2008-01-24 Archer Charles J Executing an allgather operation with an alltoallv operation in a parallel computer
CN100451972C (zh) * 2006-09-26 2009-01-14 杭州华三通信技术有限公司 提高多核系统访问临界资源速度的方法和装置
US8751866B2 (en) * 2006-09-28 2014-06-10 International Business Machines Corporation Autonomic fault isolation in a highly interconnected system
US7954095B2 (en) * 2006-11-01 2011-05-31 International Business Machines Corporation Analysis and selection of optimal function implementations in massively parallel computer
US7512836B2 (en) * 2006-12-11 2009-03-31 International Business Machines Corporation Fast backup of compute nodes in failing midplane by copying to nodes in backup midplane via link chips operating in pass through and normal modes in massively parallel computing system
US7949130B2 (en) 2006-12-28 2011-05-24 Intel Corporation Architecture and instruction set for implementing advanced encryption standard (AES)
US7953684B2 (en) * 2007-01-31 2011-05-31 International Business Machines Corporation Method and system for optimal parallel computing performance
US7631169B2 (en) * 2007-02-02 2009-12-08 International Business Machines Corporation Fault recovery on a massively parallel computer system to handle node failures without ending an executing job
US7784704B2 (en) 2007-02-09 2010-08-31 Harter Robert J Self-programmable thermostat
US7852337B2 (en) * 2007-02-20 2010-12-14 International Business Machines Corporation Scalable property viewer for a massively parallel computer system
US7688737B2 (en) * 2007-03-05 2010-03-30 International Business Machines Corporation Latency hiding message passing protocol
US9330230B2 (en) * 2007-04-19 2016-05-03 International Business Machines Corporation Validating a cabling topology in a distributed computing system
US7944842B2 (en) * 2007-04-20 2011-05-17 International Business Machines Corporation Opportunistic queueing injection strategy for network load balancing
CN101311917B (zh) * 2007-05-24 2011-04-06 中国科学院过程工程研究所 一种面向粒子模型的多层直连集群并行计算系统
US8161480B2 (en) 2007-05-29 2012-04-17 International Business Machines Corporation Performing an allreduce operation using shared memory
US7850260B2 (en) * 2007-06-22 2010-12-14 Oracle America, Inc. Injection/ejection mechanism
US8458282B2 (en) 2007-06-26 2013-06-04 International Business Machines Corporation Extended write combining using a write continuation hint flag
US8032892B2 (en) * 2007-06-26 2011-10-04 International Business Machines Corporation Message passing with a limited number of DMA byte counters
US8756350B2 (en) 2007-06-26 2014-06-17 International Business Machines Corporation Method and apparatus for efficiently tracking queue entries relative to a timestamp
US7802025B2 (en) 2007-06-26 2010-09-21 International Business Machines Corporation DMA engine for repeating communication patterns
US8108738B2 (en) 2007-06-26 2012-01-31 International Business Machines Corporation Data eye monitor method and apparatus
US7886084B2 (en) 2007-06-26 2011-02-08 International Business Machines Corporation Optimized collectives using a DMA on a parallel computer
US7761687B2 (en) * 2007-06-26 2010-07-20 International Business Machines Corporation Ultrascalable petaflop parallel supercomputer
US7877551B2 (en) * 2007-06-26 2011-01-25 International Business Machines Corporation Programmable partitioning for high-performance coherence domains in a multiprocessor system
US8509255B2 (en) 2007-06-26 2013-08-13 International Business Machines Corporation Hardware packet pacing using a DMA in a parallel computer
US8230433B2 (en) 2007-06-26 2012-07-24 International Business Machines Corporation Shared performance monitor in a multiprocessor system
US7827391B2 (en) 2007-06-26 2010-11-02 International Business Machines Corporation Method and apparatus for single-stepping coherence events in a multiprocessor system under software control
US8468416B2 (en) 2007-06-26 2013-06-18 International Business Machines Corporation Combined group ECC protection and subgroup parity protection
US7793038B2 (en) 2007-06-26 2010-09-07 International Business Machines Corporation System and method for programmable bank selection for banked memory subsystems
US8010875B2 (en) 2007-06-26 2011-08-30 International Business Machines Corporation Error correcting code with chip kill capability and power saving enhancement
US7984448B2 (en) * 2007-06-26 2011-07-19 International Business Machines Corporation Mechanism to support generic collective communication across a variety of programming models
US8140925B2 (en) 2007-06-26 2012-03-20 International Business Machines Corporation Method and apparatus to debug an integrated circuit chip via synchronous clock stop and scan
US8103832B2 (en) * 2007-06-26 2012-01-24 International Business Machines Corporation Method and apparatus of prefetching streams of varying prefetch depth
US20090006663A1 (en) * 2007-06-27 2009-01-01 Archer Charles J Direct Memory Access ('DMA') Engine Assisted Local Reduction
JP4676463B2 (ja) * 2007-07-13 2011-04-27 株式会社日立製作所 並列計算機システム
CN101354694B (zh) * 2007-07-26 2010-10-13 上海红神信息技术有限公司 基于mpu架构的超高扩展超级计算系统
US7831866B2 (en) * 2007-08-02 2010-11-09 International Business Machines Corporation Link failure detection in a parallel computer
US20090055632A1 (en) * 2007-08-22 2009-02-26 Chao-Wu Chen Emulation Scheme for Programmable Pipeline Fabric
US7958183B2 (en) * 2007-08-27 2011-06-07 International Business Machines Corporation Performing collective operations using software setup and partial software execution at leaf nodes in a multi-tiered full-graph interconnect architecture
US7958182B2 (en) * 2007-08-27 2011-06-07 International Business Machines Corporation Providing full hardware support of collective operations in a multi-tiered full-graph interconnect architecture
US20090064166A1 (en) * 2007-08-28 2009-03-05 Arimilli Lakshminarayana B System and Method for Hardware Based Dynamic Load Balancing of Message Passing Interface Tasks
US8127300B2 (en) * 2007-08-28 2012-02-28 International Business Machines Corporation Hardware based dynamic load balancing of message passing interface tasks
US8234652B2 (en) 2007-08-28 2012-07-31 International Business Machines Corporation Performing setup operations for receiving different amounts of data while processors are performing message passing interface tasks
US8312464B2 (en) * 2007-08-28 2012-11-13 International Business Machines Corporation Hardware based dynamic load balancing of message passing interface tasks by modifying tasks
US8108876B2 (en) * 2007-08-28 2012-01-31 International Business Machines Corporation Modifying an operation of one or more processors executing message passing interface tasks
US8407660B2 (en) * 2007-09-12 2013-03-26 Neal Solomon Interconnect architecture in three dimensional network on a chip
US7885969B2 (en) * 2007-09-17 2011-02-08 International Business Machines Corporation System and method for executing compute-intensive database user-defined programs on an attached high-performance parallel computer
US8160752B2 (en) 2008-09-30 2012-04-17 Zome Networks, Inc. Managing energy usage
US8381212B2 (en) * 2007-10-09 2013-02-19 International Business Machines Corporation Dynamic allocation and partitioning of compute nodes in hierarchical job scheduling
JP2009104300A (ja) * 2007-10-22 2009-05-14 Denso Corp データ処理装置及びプログラム
US8381220B2 (en) * 2007-10-31 2013-02-19 International Business Machines Corporation Job scheduling and distribution on a partitioned compute tree based on job priority and network utilization
US20090125611A1 (en) * 2007-11-08 2009-05-14 Barsness Eric L Sharing loaded java classes among a plurality of nodes
US8127273B2 (en) * 2007-11-09 2012-02-28 International Business Machines Corporation Node selection for executing a Java application among a plurality of nodes
US7974278B1 (en) 2007-12-12 2011-07-05 Integrated Device Technology, Inc. Packet switch with configurable virtual channels
US20090158276A1 (en) * 2007-12-12 2009-06-18 Eric Lawrence Barsness Dynamic distribution of nodes on a multi-node computer system
US8522236B2 (en) * 2007-12-28 2013-08-27 Intel Corporation Method and system for establishing a robust virtualized environment
US8544065B2 (en) * 2008-01-23 2013-09-24 International Business Machines Corporation Dataspace protection utilizing virtual private networks on a multi-node computer system
US8270404B2 (en) * 2008-02-13 2012-09-18 International Business Machines Corporation System, method, and computer program product for improved distribution of data
US8042004B2 (en) * 2008-02-25 2011-10-18 International Business Machines Corporation Diagnosing communications between computer systems
US7831710B2 (en) * 2008-02-25 2010-11-09 International Business Machines Corporation Communication of offline status between computer systems
US7958184B2 (en) * 2008-03-04 2011-06-07 International Business Machines Corporation Network virtualization in a multi-node system with multiple networks
US7836198B2 (en) * 2008-03-20 2010-11-16 International Business Machines Corporation Ethernet virtualization using hardware control flow override
US7930372B2 (en) * 2008-04-01 2011-04-19 International Business Machines Corporation Staged integration of distributed system and publishing of remote services
US8422402B2 (en) * 2008-04-01 2013-04-16 International Business Machines Corporation Broadcasting a message in a parallel computer
US7962650B2 (en) * 2008-04-10 2011-06-14 International Business Machines Corporation Dynamic component placement in an event-driven component-oriented network data processing system
DE102008019478A1 (de) * 2008-04-17 2009-10-22 Wincor Nixdorf International Gmbh Verfahren und Vorrichtung zur Steuerung von Benutzerdialogen an einer technischen Einrichtung
US8397225B2 (en) 2008-04-24 2013-03-12 International Business Machines Corporation Optimizing just-in-time compiling for a java application executing on a compute node
US20090274157A1 (en) * 2008-05-01 2009-11-05 Vaidya Aniruddha S Method and apparatus for hierarchical routing in multiprocessor mesh-based systems
US8484440B2 (en) 2008-05-21 2013-07-09 International Business Machines Corporation Performing an allreduce operation on a plurality of compute nodes of a parallel computer
US9514023B2 (en) * 2008-06-24 2016-12-06 International Business Machines Corporation Message flow control in a multi-node computer system
US8281053B2 (en) 2008-07-21 2012-10-02 International Business Machines Corporation Performing an all-to-all data exchange on a plurality of data buffers by performing swap operations
US8190699B2 (en) * 2008-07-28 2012-05-29 Crossfield Technology LLC System and method of multi-path data communications
US7907625B1 (en) 2008-08-04 2011-03-15 Integrated Device Technology, Inc. Power reduction technique for buffered crossbar switch
KR101531268B1 (ko) * 2008-08-05 2015-06-26 삼성전자주식회사 경량진동체를 구비한 초음파 모터
US8181005B2 (en) * 2008-09-05 2012-05-15 Advanced Micro Devices, Inc. Hybrid branch prediction device with sparse and dense prediction caches
US20100106575A1 (en) * 2008-10-28 2010-04-29 Earth Aid Enterprises Llc Methods and systems for determining the environmental impact of a consumer's actual resource consumption
US8335238B2 (en) * 2008-12-23 2012-12-18 International Business Machines Corporation Reassembling streaming data across multiple packetized communication channels
US8754775B2 (en) 2009-03-20 2014-06-17 Nest Labs, Inc. Use of optical reflectance proximity detector for nuisance mitigation in smoke alarms
US8266504B2 (en) 2009-04-14 2012-09-11 International Business Machines Corporation Dynamic monitoring of ability to reassemble streaming data across multiple channels based on history
US8176026B2 (en) * 2009-04-14 2012-05-08 International Business Machines Corporation Consolidating file system backend operations with access of data
US8219776B2 (en) * 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks
US8452846B2 (en) * 2010-08-12 2013-05-28 Talari Networks Incorporated Adaptive private network asynchronous distributed shared memory services
US8549106B2 (en) 2009-06-15 2013-10-01 Microsoft Corporation Leveraging remote server pools for client applications
KR101349487B1 (ko) * 2009-06-24 2014-01-08 한국전자통신연구원 패킷의 길이가 가변적인 mpeg-2 트랜스포트 패킷 생성 장치 및 방법
US8321326B2 (en) * 2009-09-15 2012-11-27 Auerbach Group Llc Method and system for enhancing the efficiency of a digitally communicated data exchange
US8799914B1 (en) * 2009-09-21 2014-08-05 Tilera Corporation Managing shared resource in an operating system by distributing reference to object and setting protection levels
WO2011058640A1 (ja) * 2009-11-12 2011-05-19 富士通株式会社 並列計算用の通信方法、情報処理装置およびプログラム
WO2011058639A1 (ja) * 2009-11-12 2011-05-19 富士通株式会社 通信方法、情報処理装置及びプログラム
US8359404B2 (en) * 2010-01-08 2013-01-22 International Business Machines Corporation Zone routing in a torus network
KR101039782B1 (ko) * 2009-11-26 2011-06-09 한양대학교 산학협력단 능동 메모리 프로세서를 포함하는 네트워크-온-칩 시스템
US8417778B2 (en) * 2009-12-17 2013-04-09 International Business Machines Corporation Collective acceleration unit tree flow control and retransmit
US8788879B2 (en) * 2010-01-08 2014-07-22 International Business Machines Corporation Non-volatile memory for checkpoint storage
CN102122275A (zh) * 2010-01-08 2011-07-13 上海芯豪微电子有限公司 一种可配置处理器
US9081501B2 (en) * 2010-01-08 2015-07-14 International Business Machines Corporation Multi-petascale highly efficient parallel supercomputer
US8516487B2 (en) * 2010-02-11 2013-08-20 International Business Machines Corporation Dynamic job relocation in a high performance computing system
JP5467891B2 (ja) * 2010-02-19 2014-04-09 ルネサスエレクトロニクス株式会社 情報処理装置、デバッグ装置、デバッグ方法
US8751655B2 (en) 2010-03-29 2014-06-10 International Business Machines Corporation Collective acceleration unit tree structure
US8565089B2 (en) * 2010-03-29 2013-10-22 International Business Machines Corporation Performing a scatterv operation on a hierarchical tree network optimized for collective operations
JP2013524386A (ja) 2010-04-13 2013-06-17 イーティー インターナショナル,インコーポレイティド ランスペース方法、システムおよび装置
US8332460B2 (en) 2010-04-14 2012-12-11 International Business Machines Corporation Performing a local reduction operation on a parallel computer
US9424087B2 (en) 2010-04-29 2016-08-23 International Business Machines Corporation Optimizing collective operations
US8346883B2 (en) * 2010-05-19 2013-01-01 International Business Machines Corporation Effecting hardware acceleration of broadcast operations in a parallel computer
US8949577B2 (en) 2010-05-28 2015-02-03 International Business Machines Corporation Performing a deterministic reduction operation in a parallel computer
DE102010021825A1 (de) 2010-05-28 2011-12-01 Christmann Informationstechnik + Medien Gmbh & Co. Kg Mehrprozessor-Computersystem
US8489859B2 (en) 2010-05-28 2013-07-16 International Business Machines Corporation Performing a deterministic reduction operation in a compute node organized into a branched tree topology
US8850250B2 (en) * 2010-06-01 2014-09-30 Intel Corporation Integration of processor and input/output hub
US8782456B2 (en) 2010-06-01 2014-07-15 Intel Corporation Dynamic and idle power reduction sequence using recombinant clock and power gating
US9552299B2 (en) * 2010-06-11 2017-01-24 California Institute Of Technology Systems and methods for rapid processing and storage of data
JP2012003644A (ja) * 2010-06-21 2012-01-05 Fujitsu Ltd メモリエラー箇所検出装置、及びメモリエラー箇所検出方法。
US8950686B2 (en) 2010-11-19 2015-02-10 Google Inc. Control unit with automatic setback capability
US8727611B2 (en) 2010-11-19 2014-05-20 Nest Labs, Inc. System and method for integrating sensors in thermostats
US8776081B2 (en) 2010-09-14 2014-07-08 International Business Machines Corporation Send-side matching of data communications messages
US9104211B2 (en) 2010-11-19 2015-08-11 Google Inc. Temperature controller with model-based time to target calculation and display
US8918219B2 (en) 2010-11-19 2014-12-23 Google Inc. User friendly interface for control unit
US8606374B2 (en) 2010-09-14 2013-12-10 Nest Labs, Inc. Thermodynamic modeling for enclosures
US8510255B2 (en) 2010-09-14 2013-08-13 Nest Labs, Inc. Occupancy pattern detection, estimation and prediction
US9146610B2 (en) 2010-09-25 2015-09-29 Intel Corporation Throttling integrated link
WO2012051577A1 (en) 2010-10-15 2012-04-19 Coherent Logix, Incorporated Disabling communication in a multiprocessor system
US8566841B2 (en) 2010-11-10 2013-10-22 International Business Machines Corporation Processing communications events in parallel active messaging interface by awakening thread from wait state
US8667441B2 (en) 2010-11-16 2014-03-04 International Business Machines Corporation Clock optimization with local clock buffer control optimization
US9453655B2 (en) 2011-10-07 2016-09-27 Google Inc. Methods and graphical user interfaces for reporting performance information for an HVAC system controlled by a self-programming network-connected thermostat
US9448567B2 (en) 2010-11-19 2016-09-20 Google Inc. Power management in single circuit HVAC systems and in multiple circuit HVAC systems
US9046898B2 (en) 2011-02-24 2015-06-02 Google Inc. Power-preserving communications architecture with long-polling persistent cloud channel for wireless network-connected thermostat
US11334034B2 (en) 2010-11-19 2022-05-17 Google Llc Energy efficiency promoting schedule learning algorithms for intelligent thermostat
US8850348B2 (en) 2010-12-31 2014-09-30 Google Inc. Dynamic device-associated feedback indicative of responsible device usage
WO2013058820A1 (en) 2011-10-21 2013-04-25 Nest Labs, Inc. User-friendly, network connected learning thermostat and related systems and methods
US8195313B1 (en) 2010-11-19 2012-06-05 Nest Labs, Inc. Thermostat user interface
US8788103B2 (en) 2011-02-24 2014-07-22 Nest Labs, Inc. Power management in energy buffered building control unit
US9459018B2 (en) 2010-11-19 2016-10-04 Google Inc. Systems and methods for energy-efficient control of an energy-consuming system
US9256230B2 (en) 2010-11-19 2016-02-09 Google Inc. HVAC schedule establishment in an intelligent, network-connected thermostat
US9268344B2 (en) 2010-11-19 2016-02-23 Google Inc. Installation of thermostat powered by rechargeable battery
US9092039B2 (en) 2010-11-19 2015-07-28 Google Inc. HVAC controller with user-friendly installation features with wire insertion detection
US10346275B2 (en) 2010-11-19 2019-07-09 Google Llc Attributing causation for energy usage and setpoint changes with a network-connected thermostat
US9714772B2 (en) 2010-11-19 2017-07-25 Google Inc. HVAC controller configurations that compensate for heating caused by direct sunlight
US9075419B2 (en) 2010-11-19 2015-07-07 Google Inc. Systems and methods for a graphical user interface of a controller for an energy-consuming system having spatially related discrete display elements
IT1403031B1 (it) 2010-11-19 2013-09-27 Eurotech S P A Apparecchiatura di rete unificata per sistemi di supercalcolo scalabili
US9292395B2 (en) * 2010-12-07 2016-03-22 Nec Corporation Debug stub server, debug method, and program
US9589254B2 (en) * 2010-12-08 2017-03-07 Microsoft Technology Licensing, Llc Using e-mail message characteristics for prioritization
CN103262064A (zh) 2010-12-16 2013-08-21 Et国际有限公司 分布式计算体系结构
US9417637B2 (en) 2010-12-31 2016-08-16 Google Inc. Background schedule simulations in an intelligent, network-connected thermostat
CA2818696C (en) 2010-12-31 2020-07-28 Nest Labs, Inc. Flexible functionality partitioning within intelligent-thermostat-controlled hvac systems
US9851728B2 (en) 2010-12-31 2017-12-26 Google Inc. Inhibiting deleterious control coupling in an enclosure having multiple HVAC regions
US9342082B2 (en) 2010-12-31 2016-05-17 Google Inc. Methods for encouraging energy-efficient behaviors based on a network connected thermostat-centric energy efficiency platform
US8725483B2 (en) 2011-01-19 2014-05-13 International Business Machines Corporation Minimizing the maximum required link capacity for three-dimensional interconnect routing
US8511577B2 (en) 2011-02-24 2013-08-20 Nest Labs, Inc. Thermostat with power stealing delay interval at transitions between power stealing states
US8944338B2 (en) 2011-02-24 2015-02-03 Google Inc. Thermostat with self-configuring connections to facilitate do-it-yourself installation
US9036493B2 (en) 2011-03-08 2015-05-19 Riverbed Technology, Inc. Multilevel network monitoring system architecture
JP5696779B2 (ja) * 2011-03-22 2015-04-08 富士通株式会社 並列計算機システム及び並列計算機システムの制御方法
JP5703909B2 (ja) 2011-03-31 2015-04-22 富士通株式会社 情報処理装置、並列計算機システム、および並列計算機システムの制御方法
US20120331153A1 (en) * 2011-06-22 2012-12-27 International Business Machines Corporation Establishing A Data Communications Connection Between A Lightweight Kernel In A Compute Node Of A Parallel Computer And An Input-Output ('I/O') Node Of The Parallel Computer
US8788862B1 (en) * 2011-07-01 2014-07-22 Altera Corporation Method and system for efficiently transitioning a communication circuit from a low-power state
US9049120B1 (en) 2011-07-01 2015-06-02 Altera Corporation Method and system for operating a communication circuit during a low-power state
US8856495B2 (en) 2011-07-25 2014-10-07 International Business Machines Corporation Automatically routing super-compute interconnects
US9115908B2 (en) 2011-07-27 2015-08-25 Honeywell International Inc. Systems and methods for managing a programmable thermostat
US8893083B2 (en) 2011-08-09 2014-11-18 International Business Machines Coporation Collective operation protocol selection in a parallel computer
US8667501B2 (en) 2011-08-10 2014-03-04 International Business Machines Corporation Performing a local barrier operation
US8910178B2 (en) 2011-08-10 2014-12-09 International Business Machines Corporation Performing a global barrier operation in a parallel computer
WO2012083705A1 (zh) * 2011-08-11 2012-06-28 华为技术有限公司 一种实现对称多处理系统的节点聚合系统
US9595074B2 (en) * 2011-09-16 2017-03-14 Imagination Technologies Limited Multistage collector for outputs in multiprocessor systems
US8893032B2 (en) 2012-03-29 2014-11-18 Google Inc. User interfaces for HVAC schedule display and modification on smartphone or other space-limited touchscreen device
EP3486743B1 (en) 2011-10-21 2022-05-25 Google LLC Energy efficiency promoting schedule learning algorithms for intelligent thermostat
US8622314B2 (en) 2011-10-21 2014-01-07 Nest Labs, Inc. Smart-home device that self-qualifies for away-state functionality
IN2014CN02291A (ko) 2011-10-26 2015-06-19 Ibm
CN102426636A (zh) * 2011-10-31 2012-04-25 绚视软件科技(上海)有限公司 可挂载式加密算法引擎系统及其使用方法
TW201328550A (zh) * 2011-12-16 2013-07-01 Inventec Corp 機櫃系統及機櫃系統的監控方法
US9465632B2 (en) 2012-02-04 2016-10-11 Global Supercomputing Corporation Parallel hardware hypervisor for virtualizing application-specific supercomputers
US9495135B2 (en) 2012-02-09 2016-11-15 International Business Machines Corporation Developing collective operations for a parallel computer
US8706847B2 (en) 2012-02-09 2014-04-22 International Business Machines Corporation Initiating a collective operation in a parallel computer
US9069649B2 (en) * 2012-02-17 2015-06-30 Netronome Systems, Incorporated Distributed credit FIFO link of a configurable mesh data bus
US20130247069A1 (en) * 2012-03-15 2013-09-19 International Business Machines Corporation Creating A Checkpoint Of A Parallel Application Executing In A Parallel Computer That Supports Computer Hardware Accelerated Barrier Operations
JP5900088B2 (ja) * 2012-03-27 2016-04-06 富士通株式会社 並列計算機、並列計算機の制御方法及び制御プログラム
WO2013149210A1 (en) 2012-03-29 2013-10-03 Nest Labs, Inc. Processing and reporting usage information for an hvac system controlled by a network-connected thermostat
US9091453B2 (en) 2012-03-29 2015-07-28 Google Inc. Enclosure cooling using early compressor turn-off with extended fan operation
US9160619B2 (en) * 2012-04-16 2015-10-13 Pacific Star Communications, Inc. Call flow diagnostic system for heterogeneous networks
US9298632B2 (en) * 2012-06-28 2016-03-29 Intel Corporation Hybrid cache state and filter tracking of memory operations during a transaction
US8902902B2 (en) 2012-07-18 2014-12-02 Netronome Systems, Incorporated Recursive lookup with a hardware trie structure that has no sequential logic elements
JP5920105B2 (ja) 2012-08-16 2016-05-18 富士通株式会社 演算処理装置および演算処理装置の制御方法
US8620841B1 (en) 2012-08-31 2013-12-31 Nest Labs, Inc. Dynamic distributed-sensor thermostat network for forecasting external events
US8708242B2 (en) 2012-09-21 2014-04-29 Nest Labs, Inc. Thermostat system with software-repurposable wiring terminals adaptable for HVAC systems of different ranges of complexity
US9007222B2 (en) 2012-09-21 2015-04-14 Google Inc. Detector unit and sensing chamber therefor
US8659302B1 (en) 2012-09-21 2014-02-25 Nest Labs, Inc. Monitoring and recoverable protection of thermostat switching circuitry
US8994540B2 (en) 2012-09-21 2015-03-31 Google Inc. Cover plate for a hazard detector having improved air flow and other characteristics
US9046414B2 (en) 2012-09-21 2015-06-02 Google Inc. Selectable lens button for a hazard detector and method therefor
US8600561B1 (en) 2012-09-30 2013-12-03 Nest Labs, Inc. Radiant heating controls and methods for an environmental control system
US8630741B1 (en) 2012-09-30 2014-01-14 Nest Labs, Inc. Automated presence detection and presence-related control within an intelligent controller
US8885510B2 (en) 2012-10-09 2014-11-11 Netspeed Systems Heterogeneous channel capacities in an interconnect
US20140122796A1 (en) * 2012-10-31 2014-05-01 Netapp, Inc. Systems and methods for tracking a sequential data stream stored in non-sequential storage blocks
US9807099B2 (en) 2013-03-15 2017-10-31 Google Inc. Utility portals for managing demand-response events
US9810442B2 (en) 2013-03-15 2017-11-07 Google Inc. Controlling an HVAC system in association with a demand-response event with an intelligent network-connected thermostat
US9595070B2 (en) 2013-03-15 2017-03-14 Google Inc. Systems, apparatus and methods for managing demand-response programs and events
US10775814B2 (en) 2013-04-17 2020-09-15 Google Llc Selective carrying out of scheduled control operations by an intelligent controller
US9910449B2 (en) 2013-04-19 2018-03-06 Google Llc Generating and implementing thermodynamic models of a structure
US9298197B2 (en) 2013-04-19 2016-03-29 Google Inc. Automated adjustment of an HVAC schedule for resource conservation
US9360229B2 (en) 2013-04-26 2016-06-07 Google Inc. Facilitating ambient temperature measurement accuracy in an HVAC controller having internal heat-generating components
US9696735B2 (en) 2013-04-26 2017-07-04 Google Inc. Context adaptive cool-to-dry feature for HVAC controller
US9185023B2 (en) * 2013-05-03 2015-11-10 Netspeed Systems Heterogeneous SoC IP core placement in an interconnect to optimize latency and interconnect performance
EP3014420A4 (en) * 2013-06-29 2017-04-05 Intel Corporation On-chip mesh interconnect
US9471726B2 (en) 2013-07-25 2016-10-18 Netspeed Systems System level simulation in network on chip architecture
US9473388B2 (en) 2013-08-07 2016-10-18 Netspeed Systems Supporting multicast in NOC interconnect
KR20150057798A (ko) * 2013-11-20 2015-05-28 한국전자통신연구원 캐시 제어 장치 및 방법
US9367504B2 (en) 2013-12-20 2016-06-14 International Business Machines Corporation Coherency overcommit
US9058273B1 (en) 2013-12-20 2015-06-16 International Business Machines Corporation Frequency determination across an interface of a data processing system
US9495312B2 (en) 2013-12-20 2016-11-15 International Business Machines Corporation Determining command rate based on dropped commands
US9699079B2 (en) 2013-12-30 2017-07-04 Netspeed Systems Streaming bridge design with host interfaces and network on chip (NoC) layers
US9473415B2 (en) 2014-02-20 2016-10-18 Netspeed Systems QoS in a system with end-to-end flow control and QoS aware buffer allocation
US9520180B1 (en) 2014-03-11 2016-12-13 Hypres, Inc. System and method for cryogenic hybrid technology computing and memory
US9971627B2 (en) 2014-03-26 2018-05-15 Intel Corporation Enabling maximum concurrency in a hybrid transactional memory system
US9568201B2 (en) 2014-03-28 2017-02-14 Google Inc. Environmental control system retrofittable with multiple types of boiler-based heating systems
US9581342B2 (en) 2014-03-28 2017-02-28 Google Inc. Mounting stand for multi-sensing environmental control device
US9791839B2 (en) 2014-03-28 2017-10-17 Google Inc. User-relocatable self-learning environmental control device capable of adapting previous learnings to current location in controlled environment
US9609462B2 (en) 2014-03-28 2017-03-28 Google Inc. Facilitating radio frequency communications among environmental control system components
US9857238B2 (en) 2014-04-18 2018-01-02 Google Inc. Thermodynamic model generation and implementation using observed HVAC and/or enclosure characteristics
CN103970214B (zh) * 2014-05-19 2018-05-04 浪潮电子信息产业股份有限公司 一种异构加速刀片式计算机系统架构
US9330433B2 (en) * 2014-06-30 2016-05-03 Intel Corporation Data distribution fabric in scalable GPUs
US9553784B2 (en) 2014-07-29 2017-01-24 International Business Machines Corporation Selection of message passing collectives in presence of system noise
US9495217B2 (en) * 2014-07-29 2016-11-15 International Business Machines Corporation Empirical determination of adapter affinity in high performance computing (HPC) environment
US9742630B2 (en) 2014-09-22 2017-08-22 Netspeed Systems Configurable router for a network on chip (NoC)
US9571341B1 (en) 2014-10-01 2017-02-14 Netspeed Systems Clock gating for system-on-chip elements
WO2016057038A1 (en) 2014-10-09 2016-04-14 Hewlett Packard Enterprise Development Lp A transmitter that does not resend a packet despite receipt of a message to resend the packet
US9990324B2 (en) * 2014-10-22 2018-06-05 Cavium Inc. Two modes of a configuration interface of a network ASIC
US9946832B2 (en) * 2014-11-13 2018-04-17 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Optimized placement design of network and infrastructure components
US20160173398A1 (en) * 2014-12-12 2016-06-16 Intel Corporation Method, Apparatus And System For Encoding Command Information In a Packet-Based Network
US9779134B2 (en) * 2014-12-26 2017-10-03 Business Objects Software Ltd. System and method of data wrangling
CN104503921B (zh) * 2014-12-31 2017-06-30 中国科学院重庆绿色智能技术研究院 一种嵌入式高性能rtk算法内存空间定量优化分配方法
US9612031B2 (en) 2015-01-07 2017-04-04 Google Inc. Thermostat switching circuitry robust against anomalous HVAC control line conditions
US9660942B2 (en) 2015-02-03 2017-05-23 Netspeed Systems Automatic buffer sizing for optimal network-on-chip design
US9794522B2 (en) 2015-02-06 2017-10-17 Google Inc. Systems, methods, and devices for managing coexistence of multiple transceiver devices by optimizing component layout
US9396633B1 (en) 2015-06-14 2016-07-19 Google Inc. Systems, methods, and devices for managing coexistence of multiple transceiver devices by optimizing component layout
US9679454B2 (en) 2015-02-06 2017-06-13 Google Inc. Systems, methods, and devices for managing coexistence of multiple transceiver devices using control signals
US10348563B2 (en) 2015-02-18 2019-07-09 Netspeed Systems, Inc. System-on-chip (SoC) optimization through transformation and generation of a network-on-chip (NoC) topology
US9933826B2 (en) 2015-05-11 2018-04-03 Hewlett Packard Enterprise Development Lp Method and apparatus for managing nodal power in a high performance computer system
US9825809B2 (en) 2015-05-29 2017-11-21 Netspeed Systems Dynamically configuring store-and-forward channels and cut-through channels in a network-on-chip
US9864728B2 (en) 2015-05-29 2018-01-09 Netspeed Systems, Inc. Automatic generation of physically aware aggregation/distribution networks
US10429909B2 (en) 2015-06-01 2019-10-01 Hewlett Packard Enterprise Development Lp Managing power in a high performance computing system for resiliency and cooling
US9543998B2 (en) 2015-06-14 2017-01-10 Google Inc. Systems, methods, and devices for managing coexistence of multiple transceiver devices using bypass circuitry
US10218580B2 (en) 2015-06-18 2019-02-26 Netspeed Systems Generating physically aware network-on-chip design from a physical system-on-chip specification
US9846623B2 (en) * 2015-08-20 2017-12-19 Qsigma, Inc. Simultaneous multi-processor apparatus applicable to acheiving exascale performance for algorithms and program systems
US10387314B2 (en) * 2015-08-25 2019-08-20 Oracle International Corporation Reducing cache coherence directory bandwidth by aggregating victimization requests
US9702582B2 (en) 2015-10-12 2017-07-11 Ikorongo Technology, LLC Connected thermostat for controlling a climate system based on a desired usage profile in comparison to other connected thermostats controlling other climate systems
CN105354242A (zh) * 2015-10-15 2016-02-24 北京航空航天大学 分布式数据处理方法及装置
US10268586B2 (en) * 2015-12-08 2019-04-23 Via Alliance Semiconductor Co., Ltd. Processor with programmable prefetcher operable to generate at least one prefetch address based on load requests
US10101050B2 (en) 2015-12-09 2018-10-16 Google Llc Dispatch engine for optimizing demand-response thermostat events
US9948543B2 (en) 2015-12-30 2018-04-17 International Business Machines Corporation Mechanism to extend the remote get to do async rectangle broadcast on a rectangle with wild cards in the packet header
US10733350B1 (en) * 2015-12-30 2020-08-04 Sharat C Prasad On-chip and system-area multi-processor interconnection networks in advanced processes for maximizing performance minimizing cost and energy
KR102024934B1 (ko) * 2015-12-30 2019-11-04 한국전자통신연구원 분산 파일 시스템 및 이의 파일 연산 처리 방법
EP3376399A4 (en) 2015-12-31 2018-12-19 Huawei Technologies Co., Ltd. Data processing method, apparatus and system
KR102025801B1 (ko) * 2016-01-26 2019-09-26 한국전자통신연구원 분산 파일 시스템 및 이의 데이터 내결함성 지원 방법
US9898441B2 (en) 2016-02-05 2018-02-20 Google Llc Matrix processing apparatus
US9805001B2 (en) 2016-02-05 2017-10-31 Google Inc. Matrix processing apparatus
US10571519B2 (en) * 2016-03-08 2020-02-25 International Business Machines Corporation Performing system functional test on a chip having partial-good portions
US10598526B2 (en) 2016-03-08 2020-03-24 International Business Machines Corporation Methods and systems for performing test and calibration of integrated sensors
US10402234B2 (en) * 2016-04-15 2019-09-03 Nec Corporation Fine-grain synchronization in data-parallel jobs
US10402235B2 (en) * 2016-04-15 2019-09-03 Nec Corporation Fine-grain synchronization in data-parallel jobs for distributed machine learning
US10613213B2 (en) 2016-05-13 2020-04-07 Google Llc Systems, methods, and devices for utilizing radar with smart devices
US10687184B2 (en) 2016-05-13 2020-06-16 Google Llc Systems, methods, and devices for utilizing radar-based touch interfaces
JP6846027B2 (ja) * 2016-05-19 2021-03-24 公立大学法人会津大学 ネットワークオンチップ用の欠陥耐性ルータ
GB2552454A (en) * 2016-06-15 2018-01-31 Nanotronix Inc High performance computing network
CN107526528B (zh) * 2016-06-20 2021-09-07 北京正泽兴承科技有限责任公司 一种片上低延迟存储器的实现机制
CN106293937A (zh) * 2016-08-02 2017-01-04 合肥奇也信息科技有限公司 一种用于分配数据处理资源给数据处理的方法
US10452124B2 (en) 2016-09-12 2019-10-22 Netspeed Systems, Inc. Systems and methods for facilitating low power on a network-on-chip
WO2018075811A2 (en) * 2016-10-19 2018-04-26 Rex Computing, Inc. Network-on-chip architecture
US10355975B2 (en) 2016-10-19 2019-07-16 Rex Computing, Inc. Latency guaranteed network on chip
US10700968B2 (en) 2016-10-19 2020-06-30 Rex Computing, Inc. Optimized function assignment in a multi-core processor
US20180159786A1 (en) 2016-12-02 2018-06-07 Netspeed Systems, Inc. Interface virtualization and fast path for network on chip
US10313269B2 (en) 2016-12-26 2019-06-04 Netspeed Systems, Inc. System and method for network on chip construction through machine learning
US10063496B2 (en) 2017-01-10 2018-08-28 Netspeed Systems Inc. Buffer sizing of a NoC through machine learning
KR101948163B1 (ko) * 2017-01-10 2019-02-14 충북대학교 산학협력단 Pci 익스프레스 기반의 연결통신망에서 배리어 구현 방법
US10084725B2 (en) 2017-01-11 2018-09-25 Netspeed Systems, Inc. Extracting features from a NoC for machine learning construction
KR102468686B1 (ko) * 2017-01-17 2022-11-22 한국전자통신연구원 대규모 토러스 네트워크에서의 분산 스토리지 시스템을 위한 ip 자동 할당 방법 및 이를 위한 장치
CN107743246A (zh) * 2017-01-24 2018-02-27 贵州白山云科技有限公司 任务处理方法、系统及数据处理系统
US10469337B2 (en) 2017-02-01 2019-11-05 Netspeed Systems, Inc. Cost management against requirements for the generation of a NoC
US10298485B2 (en) 2017-02-06 2019-05-21 Netspeed Systems, Inc. Systems and methods for NoC construction
US11934945B2 (en) 2017-02-23 2024-03-19 Cerebras Systems Inc. Accelerated deep learning
US10841621B2 (en) * 2017-03-01 2020-11-17 Wyse Technology L.L.C. Fault recovery of video bitstream in remote sessions
US10317888B2 (en) 2017-03-01 2019-06-11 PLETHORA IloT, S.L. Device and system including multiple devices for supervision and control of machines in industrial installation
US11232347B2 (en) 2017-04-17 2022-01-25 Cerebras Systems Inc. Fabric vectors for deep learning acceleration
US11488004B2 (en) 2017-04-17 2022-11-01 Cerebras Systems Inc. Neuron smearing for accelerated deep learning
WO2018193352A1 (en) 2017-04-17 2018-10-25 Cerebras Systems Inc. Dataflow triggered tasks for accelerated deep learning
GB2562520A (en) * 2017-05-17 2018-11-21 John Hamlin Derrick Digital processing connectivity
US10356008B2 (en) 2017-06-28 2019-07-16 International Business Machines Corporation Large scale fabric attached architecture
US10169048B1 (en) 2017-06-28 2019-01-01 International Business Machines Corporation Preparing computer nodes to boot in a multidimensional torus fabric network
US10088643B1 (en) 2017-06-28 2018-10-02 International Business Machines Corporation Multidimensional torus shuffle box
US10571983B2 (en) 2017-06-28 2020-02-25 International Business Machines Corporation Continuously available power control system
CN107918799B (zh) * 2017-11-08 2021-11-26 中国舰船研究设计中心 一种基于bs架构的舰船综合保障管理系统
US20190163646A1 (en) * 2017-11-29 2019-05-30 International Business Machines Corporation Cyclic preloading mechanism to define swap-out ordering for round robin cache memory
US10896476B2 (en) 2018-02-22 2021-01-19 Netspeed Systems, Inc. Repository of integration description of hardware intellectual property for NoC construction and SoC integration
US10983910B2 (en) 2018-02-22 2021-04-20 Netspeed Systems, Inc. Bandwidth weighting mechanism based network-on-chip (NoC) configuration
US10547514B2 (en) 2018-02-22 2020-01-28 Netspeed Systems, Inc. Automatic crossbar generation and router connections for network-on-chip (NOC) topology generation
US11144457B2 (en) 2018-02-22 2021-10-12 Netspeed Systems, Inc. Enhanced page locality in network-on-chip (NoC) architectures
US11023377B2 (en) 2018-02-23 2021-06-01 Netspeed Systems, Inc. Application mapping on hardened network-on-chip (NoC) of field-programmable gate array (FPGA)
US11176302B2 (en) 2018-02-23 2021-11-16 Netspeed Systems, Inc. System on chip (SoC) builder
US11113223B1 (en) * 2018-04-03 2021-09-07 Xilinx, Inc. Dual mode interconnect
CN108509371A (zh) * 2018-04-09 2018-09-07 郑州云海信息技术有限公司 一种高端容错计算机节点互联系统及实现方法
FR3081581B1 (fr) * 2018-05-22 2020-09-04 Bull Sas Procede d'envoi de donnees, programme d'ordinateur et systeme associes
US10992175B2 (en) 2018-06-15 2021-04-27 Google Llc Communication circuit for 2-wire protocols between HVAC systems and smart-home devices
CN112567350A (zh) 2018-06-18 2021-03-26 普林斯顿大学 可配置的存储器内计算引擎、平台、位单元及其布局
CN109343791B (zh) * 2018-08-16 2021-11-09 武汉元鼎创天信息科技有限公司 一种大数据一体机
WO2020044152A1 (en) 2018-08-28 2020-03-05 Cerebras Systems Inc. Scaled compute fabric for accelerated deep learning
WO2020044208A1 (en) 2018-08-29 2020-03-05 Cerebras Systems Inc. Isa enhancements for accelerated deep learning
WO2020044238A1 (en) 2018-08-29 2020-03-05 Cerebras Systems Inc. Processor element redundancy for accelerated deep learning
RU2710890C1 (ru) * 2018-10-08 2020-01-14 Общество с ограниченной ответственностью "Информационный Вычислительный Центр" Вычислительная система для научно-технических расчетов
CN113508363B (zh) * 2019-02-27 2022-09-16 美光科技公司 多用户网络中的算术和逻辑运算
US10990387B2 (en) 2019-02-27 2021-04-27 Micron Technology, Inc. Converting floating-point operands into universal number format operands for processing in a multi-user network
GB201904267D0 (en) * 2019-03-27 2019-05-08 Graphcore Ltd A networked computer with multiple embedded rings
CN110083449B (zh) * 2019-04-08 2020-04-28 清华大学 动态分配内存和处理器的方法、装置及计算模块
WO2020236277A1 (en) 2019-05-23 2020-11-26 Cray Inc. System and method for facilitating tracer packets in a data-driven intelligent network
CN110188254B (zh) * 2019-05-28 2022-02-01 南京航空航天大学 动态最短路径查询及可视化
TWI742394B (zh) * 2019-07-03 2021-10-11 神雲科技股份有限公司 伺服器
CN112349233B (zh) * 2019-08-08 2023-11-07 佛山市顺德区顺达电脑厂有限公司 服务器
EP3857394B1 (en) * 2019-08-16 2023-10-04 Google LLC Inter-chip latency characteristic in multi-chip system
US11271992B2 (en) * 2020-01-22 2022-03-08 EMC IP Holding Company LLC Lazy lock queue reduction for cluster group changes
KR20220006122A (ko) * 2020-03-26 2022-01-14 그래프코어 리미티드 토로이드 컴퓨터 네트워크에 대한 링 임베딩
CN111553122A (zh) * 2020-05-15 2020-08-18 深圳探科技术有限公司 集成电路仿真同步处理的方法、模块、存储介质及系统
CN113703955A (zh) * 2020-05-22 2021-11-26 华为技术有限公司 计算系统中数据同步的方法及计算节点
US11761823B2 (en) * 2020-08-28 2023-09-19 Google Llc Temperature sensor isolation in smart-home devices
US11885838B2 (en) 2020-08-28 2024-01-30 Google Llc Measuring dissipated electrical power on a power rail
US11726507B2 (en) 2020-08-28 2023-08-15 Google Llc Compensation for internal power dissipation in ambient room temperature estimation
US11775303B2 (en) 2020-11-12 2023-10-03 Electronics And Telecommunications Research Institute Computing accelerator for processing multiple-type instruction and operation method thereof
CN112383843B (zh) * 2020-11-20 2024-04-23 浙江工业大学 一种网络信息技术数据交换装置
US11516087B2 (en) * 2020-11-30 2022-11-29 Google Llc Connecting processors using twisted torus configurations
US11720521B2 (en) * 2021-03-29 2023-08-08 Alibaba Singapore Holding Private Limited Topologies and algorithms for multi-processing unit interconnected accelerator systems
KR20220139199A (ko) * 2021-04-07 2022-10-14 삼성전자주식회사 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
CN113138918B (zh) * 2021-04-16 2023-12-01 Oppo广东移动通信有限公司 应用于具有多系统的终端的调试方法、终端和存储介质
CN113778939B (zh) * 2021-09-03 2023-11-07 深圳市同泰怡信息技术有限公司 基于基板管理控制器的海光芯片管理方法、装置、设备
WO2023068960A1 (ru) * 2021-10-20 2023-04-27 Федеральное Государственное Унитарное Предприятие "Российский Федеральный Ядерный Центр - Всероссийский Научно - Исследовательский Институт Технической Физики Имени Академика Е.И. Забабахина" Компактный суперкомпьютер
US11960982B1 (en) 2021-10-21 2024-04-16 Neuralmagic, Inc. System and method of determining and executing deep tensor columns in neural networks
CN115158734B (zh) * 2021-10-22 2024-01-30 苏州优斯登物联网科技有限公司 一种设备异常动作监测系统及自动化设备
US11808467B2 (en) 2022-01-19 2023-11-07 Google Llc Customized instantiation of provider-defined energy saving setpoint adjustments
CN116186905B (zh) * 2023-04-24 2023-06-27 中国空气动力研究与发展中心计算空气动力研究所 基于能流定向输运的高热载荷疏导设计方法及热防护系统
CN117811993B (zh) * 2024-03-01 2024-06-07 山东云海国创云计算装备产业创新中心有限公司 三维超立方结构网络及其路由方法、装置、设备和介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4845744A (en) * 1986-10-16 1989-07-04 American Telephone And Telegraph Company, At&T Bell Laboratories Method of overlaying virtual tree networks onto a message passing parallel processing network
US5050069A (en) * 1987-04-27 1991-09-17 Thinking Machines Corporation Method and apparatus for simulating m-dimension connection networks in and n-dimension network where m is less than n
US5353412A (en) * 1990-10-03 1994-10-04 Thinking Machines Corporation Partition control circuit for separately controlling message sending of nodes of tree-shaped routing network to divide the network into a number of partitions
US5365228A (en) * 1991-03-29 1994-11-15 International Business Machines Corporation SYNC-NET- a barrier synchronization apparatus for multi-stage networks
JPH06243113A (ja) * 1993-02-19 1994-09-02 Fujitsu Ltd 並列計算機における計算モデルのマッピング法
JPH06290158A (ja) * 1993-03-31 1994-10-18 Fujitsu Ltd 再構成可能なトーラス・ネットワーク方式
JPH06325005A (ja) * 1993-05-14 1994-11-25 Fujitsu Ltd 再構成可能なトーラス・ネットワーク方式
US5515510A (en) * 1994-01-14 1996-05-07 Consilium Overseas Limited Communications internetwork system connecting a client node array to a resource array
US5682480A (en) * 1994-08-15 1997-10-28 Hitachi, Ltd. Parallel computer system for performing barrier synchronization by transferring the synchronization packet through a path which bypasses the packet buffer in response to an interrupt
KR100259276B1 (ko) * 1997-01-27 2000-06-15 윤종용 대역폭확장이 가능한 상호연결망
FR2795840B1 (fr) * 1999-07-02 2001-08-31 Commissariat Energie Atomique Reseau de processeurs paralleles avec tolerance aux fautes de ces processeurs, et procede de reconfiguration applicable a un tel reseau
US6466227B1 (en) * 1999-09-01 2002-10-15 Mitsubishi Electric Research Laboratories, Inc. Programmable architecture for visualizing sampled and geometry data
US6735717B1 (en) * 2000-04-13 2004-05-11 Gnp Computers, Inc. Distributed computing system clustering model providing soft real-time responsiveness and continuous availability

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180085188A (ko) * 2017-01-18 2018-07-26 한국전자통신연구원 토러스 네트워크 기반의 분산 파일 시스템을 위한 파일 접근 경로 설정 방법 및 이를 위한 장치
KR102154653B1 (ko) * 2017-01-18 2020-09-10 한국전자통신연구원 토러스 네트워크 기반의 분산 파일 시스템을 위한 파일 접근 경로 설정 방법 및 이를 위한 장치

Also Published As

Publication number Publication date
IL157505A (en) 2011-06-30
JP3980488B2 (ja) 2007-09-26
CA2437039A1 (en) 2002-10-24
CN1494688A (zh) 2004-05-05
US20090259713A1 (en) 2009-10-15
EP1370966B1 (en) 2010-08-25
KR20030077033A (ko) 2003-09-29
US7555566B2 (en) 2009-06-30
EP1370966A4 (en) 2008-12-24
US8667049B2 (en) 2014-03-04
WO2002084509A1 (en) 2002-10-24
US8250133B2 (en) 2012-08-21
ATE479147T1 (de) 2010-09-15
CN1311376C (zh) 2007-04-18
DE60237433D1 (de) 2010-10-07
IL157505A0 (en) 2004-03-28
US20120311299A1 (en) 2012-12-06
JP2004538548A (ja) 2004-12-24
US20040103218A1 (en) 2004-05-27
EP1370966A1 (en) 2003-12-17

Similar Documents

Publication Publication Date Title
KR100537582B1 (ko) 신규의 초병렬 수퍼컴퓨터
US7761687B2 (en) Ultrascalable petaflop parallel supercomputer
Adiga et al. An overview of the BlueGene/L supercomputer
Rettberg et al. The Monarch parallel processor hardware design
Lenoski et al. Scalable shared-memory multiprocessing
Putnam et al. A reconfigurable fabric for accelerating large-scale datacenter services
Gara et al. Overview of the Blue Gene/L system architecture
US10102179B2 (en) Multiple core computer processor with globally-accessible local memories
Culler et al. Parallel computing on the Berkeley NOW
Novakovic et al. Scale-out NUMA
Faanes et al. Cray cascade: a scalable HPC system based on a Dragonfly network
US9971713B2 (en) Multi-petascale highly efficient parallel supercomputer
Abts et al. The Cray BlackWidow: a highly scalable vector multiprocessor
US20110119526A1 (en) Local rollback for fault-tolerance in parallel computing systems
Rajamony et al. PERCS: The IBM POWER7-IH high-performance computing system
Davis Mayfly: A general-purpose, scalable, parallel processing architecture
Iyer et al. Switch cache: A framework for improving the remote memory access latency of CC-NUMA multiprocessors
Barrett et al. An overview of the BlueGene/L supercomputer
Bhanota et al. The bluegene/l supercomputer
Bellofatto et al. An overview of the BlueGene/L Supercomputer.
Alverson et al. Cray Cascade: a Scalable HPC System based on a Dragonfly Network
Crumley et al. X/02 $17.00 (c) 2002 IEEE 1 An Overview of the BlueGene/L Supercomputer
Yalamanchili et al. A dynamic, partitioned global address space model for high performance clusters
Sterling et al. The “MIND” scalable PIM architecture
KAMINSKI APPROVED:, SSAS SSAS

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20101109

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee