KR20040002870A - 계산 구조에 대한 전역 트리 네트워크 - Google Patents
계산 구조에 대한 전역 트리 네트워크 Download PDFInfo
- Publication number
- KR20040002870A KR20040002870A KR10-2003-7010998A KR20037010998A KR20040002870A KR 20040002870 A KR20040002870 A KR 20040002870A KR 20037010998 A KR20037010998 A KR 20037010998A KR 20040002870 A KR20040002870 A KR 20040002870A
- Authority
- KR
- South Korea
- Prior art keywords
- node
- tree
- virtual
- nodes
- global
- Prior art date
Links
- 238000012545 processing Methods 0.000 claims abstract description 33
- 238000000034 method Methods 0.000 claims abstract description 27
- 230000007480 spreading Effects 0.000 claims abstract description 22
- 238000003892 spreading Methods 0.000 claims abstract description 22
- 230000006870 function Effects 0.000 claims abstract description 19
- 230000008878 coupling Effects 0.000 claims abstract description 18
- 238000010168 coupling process Methods 0.000 claims abstract description 18
- 238000005859 coupling reaction Methods 0.000 claims abstract description 18
- 238000004891 communication Methods 0.000 claims abstract description 12
- 238000011144 upstream manufacturing Methods 0.000 claims abstract description 7
- 230000003213 activating effect Effects 0.000 claims abstract 9
- 240000007182 Ochroma pyramidale Species 0.000 claims description 16
- 230000007246 mechanism Effects 0.000 claims description 15
- 238000002347 injection Methods 0.000 claims description 11
- 239000007924 injection Substances 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims description 7
- 230000000903 blocking effect Effects 0.000 claims description 3
- 230000009467 reduction Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 claims description 2
- 238000009792 diffusion process Methods 0.000 claims 1
- 230000004888 barrier function Effects 0.000 abstract description 7
- 230000001360 synchronised effect Effects 0.000 abstract description 2
- 238000001914 filtration Methods 0.000 description 7
- 238000007667 floating Methods 0.000 description 5
- 238000003860 storage Methods 0.000 description 5
- 238000004220 aggregation Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000011440 grout Substances 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
Classifications
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F04—POSITIVE - DISPLACEMENT MACHINES FOR LIQUIDS; PUMPS FOR LIQUIDS OR ELASTIC FLUIDS
- F04D—NON-POSITIVE-DISPLACEMENT PUMPS
- F04D25/00—Pumping installations or systems
- F04D25/16—Combinations of two or more pumps ; Producing two or more separate gas flows
- F04D25/166—Combinations of two or more pumps ; Producing two or more separate gas flows using fans
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
-
- H—ELECTRICITY
- H05—ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
- H05K—PRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
- H05K7/00—Constructional details common to different types of electric apparatus
- H05K7/20—Modifications to facilitate cooling, ventilating, or heating
- H05K7/20709—Modifications to facilitate cooling, ventilating, or heating for server racks or cabinets; for data centers, e.g. 19-inch computer racks
- H05K7/20836—Thermal management, e.g. server temperature control
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F04—POSITIVE - DISPLACEMENT MACHINES FOR LIQUIDS; PUMPS FOR LIQUIDS OR ELASTIC FLUIDS
- F04D—NON-POSITIVE-DISPLACEMENT PUMPS
- F04D27/00—Control, e.g. regulation, of pumps, pumping installations or pumping systems specially adapted for elastic fluids
- F04D27/004—Control, e.g. regulation, of pumps, pumping installations or pumping systems specially adapted for elastic fluids by varying driving speed
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17337—Direct connection machines, e.g. completely connected computers, point to point communication networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17381—Two dimensional, e.g. mesh, torus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/003—Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
- G09G5/006—Details of the interface to the display terminal
- G09G5/008—Clock recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/02—Speed or phase control by the received code signals, the signals containing no special synchronisation information
- H04L7/033—Speed 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/0337—Selecting between two or more discretely delayed clocks or selecting between two or more discretely delayed received code signals
- H04L7/0338—Selecting 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
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F24—HEATING; RANGES; VENTILATING
- F24F—AIR-CONDITIONING; AIR-HUMIDIFICATION; VENTILATION; USE OF AIR CURRENTS FOR SCREENING
- F24F11/00—Control or safety arrangements
- F24F11/70—Control systems characterised by their outputs; Constructional details thereof
- F24F11/72—Control systems characterised by their outputs; Constructional details thereof for controlling the supply of treated air, e.g. its pressure
- F24F11/74—Control 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/77—Control 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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02B—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
- Y02B30/00—Energy efficient heating, ventilation or air conditioning [HVAC]
- Y02B30/70—Efficient 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)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Mechanical Engineering (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Discrete Mathematics (AREA)
- Databases & Information Systems (AREA)
- Thermal Sciences (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Multi Processors (AREA)
Abstract
트리 네트워크 구조에 따라 상호 결합된 처리 노드들 사이에서 고속, 저-지연 전역 트리 통신을 활성화시키는 시스템 및 방법이다. 전역 트리 네트워크는 복수의 상호 결합된 처리 노드를 지니는 컴퓨터 구조에서 병렬 알고리즘 연산이 실행되는 동안 집합적인 감산 연산이 실행되게 한다. 가상 트리와 서브-트리 구조의 노드에서 저-지연 전역 처리 연산의 성능을 실행하기 위하여 링크를 통하여 라우터 장치에 트리의 노드의 상호 결합이 포함된다. 전역 연산은 가상 트리의 뿌리 노드로부터 잎 노드로 다운스트림되는 전역 확산 연산과, 가상 트리에서 잎 노드로부터 뿌리 노드로 업스트림되는 전역 감산 연산과, 가상 트리에서 임의의 노드로부터 뿌리 노드로 통과하는 포인트-투-포인트 메시지 연산 중 하나 이상을 포함한다. 가상 트리 네트워크의 하나의 노드는 가상 트리의 각 노드에 대하여 외부 시스템에 I/O 기능을 제공하기 위하여 I/O 노드로서 결합되고 기능한다. 전역 트리 네트워크는 전역 장벽을 제공하도록 구성될 수 있고, 비동기 또는 동기 방식으로 기능을 인터럽트한다. 따라서, 예컨대 병렬 계산 시스템에 사용되는 병렬 알고리즘 처리 연산은 병렬 알고리즘 연산의 특정한 연산 구문에 따라 최적으로 수행될 수 있다. 대량-병렬 수퍼컴퓨팅 구조에서 실행될 때, 전역 트리 네트워크는 처리 알고리즘의 필요에 따라 물리적으로 그리고 논리적으로 참여 가능하다.
Description
"초대형 컴퓨터" 또는 "수퍼컴퓨터"라고 불리는 대량 병렬 계산 구조는 다수의 계산 노드를 일반적으로 그리드, 격자 또는 토러스(torus)와 같은 매우 규칙적인 구조 형태로 상호 결합시킨다.
위와 같은 대량 병렬 시스템에서 일반적으로 부딪치는 한가지 문제는 다수의 노드를 포함하는 집합적인 산술 또는 논리 연산의 효율적인 계산이다. 위 시스템에서 일반적으로 부딪치는 두번째 문제는 제한된 수의 외부 I/O 결합을 모든 노드에 의해서 효율적으로 공유해야 한다는 것이다. 다수의 계산 노드에 걸리는 집합적인 산술 연산을 포함하는 통상적인 한가지 계산예는 전역 합산에 기초하여 전역 내적(inner product)을 요구하는 반복적이지만 드문 선형식을 푸는 기술이다.
도 1에 도시하는 3차원 토러스 상호 결합 계산 구조(10)는 에지에서 "랩(wrapped)"되고 가장 인접한 것과 상호 결합하는 간단한 3차원 구조를 포함하여, 대부분의 내부-프로세서 형태에 대해서 잘 동작하는 반면, 각 계산 노드(12)에 의하여 제공된 피연산자로부터 단일한 결과를 계산하거나, 외부 I/O 결합(도시되지 않음)과 같이 한정된 자원을 효율적으로 공유하는 것과 같은, 감산(reduction)과 같은 집합적인 연산은 잘 수행하지 못한다.
따라서, 전역 감산 계산, 데이터 분산, 동기화 및 한정된 자원의 공유와 같은 전역 산술 연산을 요구하는 연산을 포함하여 효율적이고 신뢰성 있는, 많은 종류의 연산에 대하여 최적화된 처리 노드의 고유한 상호 결합을 포함하는 초대형 수퍼컴퓨터 구조를 제공하는 것이 매우 바람직하다.
토러스와 같은 고속 네트워크의 정규 결합은 긴 지연으로 인하여 위 목적을 만족시키기 못한다.
즉, 물리적인 토러스 상호 결합의 트리 통신 패턴의 단순한 맵핑은 인접한 트리 노드가 토러스에서 인접해서 위치할 것을 요구할 때 필요한 깊이보다 더 깊은 트리를 만들거나, 노드가 토러스에서 인접하지 않을 때 노드 사이에 더 긴 지연을 지니는 트리를 만든다. 상호 결합 자원이 제한되었을 때, 가장 효율적으로 집합적인 연산을 계산하기 위하여, 진정한 트리 네트워크, 즉 노드 사이의 물리적인 상호 결합이 트리 내에 노드를 형성하는 네트워크가 필요하다.
(관련 출원 상호 참조)
본 발명은 2001년 2월 24일자로 출원된 "MASSIVELY PARALLEL SUPERCOMPUTER"라는 제목의 본 출원의 출원인과 공유되고 동시에 계류 중인 미국 가특허 출원 번호 60/271,124의 우선권을 주장하고 있으며, 이 가출원의 전체 내용 및 개시 사항은 본 명세서에 완전히 개시되어 있고 본 명세서에 참조로서 명백히 통합되어 있다. 이 가출원은 추가적으로 동일자로 출원된 아래 본 출원의 출원인과 공유이고 동시에 계류 중인 미국 특허 출원들에 관련되어 있으며, 이러한 특허 출원들 각각의 전체 내용 및 개시 사항은 본 명세서에 완전히 개시되어 있고 본 명세서에 참조로서 명백히 통합되어 있다: "Class Networking Routing"이라는 제목의 미국 특허 출원 번호( YOR920020027US1, YOR920020044US1(15270)); "A Global Tree Network For Computing Structures"라는 제목의 미국 특허 출원 번호( YOR920020028US1 (15271)); "Global Interrupt and Barrier Network"라는 제목의 미국 특허 출원 번호(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 Access 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 Distributed-Memory Parallel Multi-Node Computer"라는 제목의 미국 특허 출원 번호(YOR920020043US1(15262)); "A Novel Massively Parallel Supercomputer"라는 제목의 미국 특허 출원 번호(YOR9-20010211US2(15275)); "Smart Fan Modules and System"이라는 제목의 미국 특허 출원 번호(YOR920020045US1(15263)).
본 발명은 일반적으로 분산-메모리 메시지-통과 병렬 컴퓨터 설계 및 시스템 소프트웨어에 대한 것으로서, 특히 예컨대 대량-병렬(massively-parallel), 분산-메모리 컴퓨터에 사용하기 위하여 개별적인 프로세서를 상호 결합하기 위한 신규한 방법 및 장치에 관한 것이다.
도 1은 8개의 계산 노드를 상호 결합하는 3차원 토러스 네트워크를 도시한다.
도 2는 35개의 노드(원으로 표시됨)와 노드 전체를 결합하는 트리 네트워크 (100)를 포함하는 일반적인 시스템의 실시예를 도시한다.
도 3은 도 2의 전역 트리 네트워크에서 실현되는 라우터 장치의 기본 구조를 도시한다.
본 발명의 목적은 효율적이고 신뢰성있게 전역 감산을 계산하고 데이터를 분산하고 동기화하며 제한된 자원을 공유하도록 계산 구조의 개별적인 처리 노드들을 상호 결합하는 시스템 및 방법을 제공하는 것이다.
본 발명의 다른 목적은 트리 상호 결합으로 배열되고 전역, 산술 및 집합적인 연산을 용이하게 하는 대량-병렬, 분산-메모리 컴퓨터의 개별적인 프로세서를 상호 결합하는 독립적인 단일한 물리적인 네트워크를 제공하는 것이다.
본 발명의 다른 목적은 외부 I/O(입력/출력)을 제공하기 위한 전역 트리 상호 결합으로 배열되고 물리적 네트워크의 서브-트리인 가상 트리 네트워크에 대한 하나 이상의 노드에 기능성을 부여하는 대량-병렬, 분산-메모리 컴퓨터의 개별적인프로세서를 상호 결합하는 독립적인 단일한 물리 네트워크를 제공하는 것이다. 그러한 전역 트리 상호 결합 시스템은 메시지-통과 토러스 또는 그리드 계산 구조의 메시지 트래픽 오프를 유지하기 위한 전용 I/O 노드를 포함할 수 있다.
본 발명에 따르면, 트리 네트워크 구조에 따라 상호 결합된 처리 노드들 사이에 고속, 저-지연 전역 통신을 가능하게 하는 시스템 및 방법이 제공되어 있다. 전역 트리 네트워크는 복수의 상호 결합 처리 노드를 지니는 컴퓨터 구조에서 병렬 알고리즘이 실행되는 동안, 집합적인 감산 연산이 최적으로 실행되게 한다. 라우터 장치에는 트리의 노드에서 저-지연 전역 처리 연산의 수행을 용이하게 하는 링크를 통하여 트리의 노드를 상호 결합하는 것이 포함된다. 구성 옵션(configuration option)에는 트리 네트워크의 전체 노드의 서브세트를 구성하는 "가상 트리 (virtual tree)"의 정의가 포함된다. 전역 연산은 가상 트리의 뿌리(root) 노드로부터 잎(leaf) 노드로 다운스트림되는 전역 확산 연산 (global broadcast operation), 가상 트리의 잎 노드로부터 뿌리 노드로 업스트림되는 전역 감산 연산(global reduction operation) 및 가상 트리에서 임의의 노드로부터 뿌리 노드로 통과하는 포인트-투-포인트 메시지 중 하나 이상을 포함한다. 가상 트리 네트워트 중 하나의 노드는 가상 트리의 각 노드에 대한 외부 시스템을 지니는 I/O 기능을 제공하기 위하여 결합되고 I/O 노드로 기능한다. 전역 트리 네트워크는 전역 장벽을 제공하도록 구성될 수 있고, 비동기 또는 동기 방식으로 기능을 인터럽트시킨다. 이것은 현재 미국 특허청에서 계류중인 특허 출원 제YOR920020029US1(15272)호에 개시되어 있다. 따라서, 예컨대 병렬 계산 시스템에 사용된 병렬 알고리즘 처리연산은 병렬 알고리즘 연산의 특정한 연산 구문에 따라 최적으로 수행될 수 있다. 대량-병렬 수퍼컴퓨팅 구조에서 실행될 때, 전역 트리 네트워크는 처리 알고리즘의 요구에 따라 물리적으로 그리고 논리적으로 분할될 수 있다.
대량 병렬 컴퓨터에서, 모든 계산 노드들은 일반적으로 파일 시스템과 같은 외부 자원에 액세스할 것을 요구한다. 결합을 제공하는 비용이 개별적인 계산 노드의 비용보다 훨씬 높기 때문에, 제한된 수의 외부 I/O 결합에 효율적으로 공유하는 문제가 발생한다. 따라서, I/O 결합의 효율적인 공유가 I/O 대역폭이 시스템 크기를 제한하는 비용 요소가 되지 않게 한다. 제한된 내부-프로세서의 상호 결합을 가정하면, 평균 지연이라는 관점에서 단일한 자원을 공유하기 위한 가장 효율적인 네트워크는 트리의 뿌리에서 자원이 공유되는 전역 트리이다.
전역 집합 연산에서, 단일한 대형 트리가 모든 프로세서를 상호 결합하는데 사용될 수 있다. 그러나, 파일 시스템 I/O는 뿌리에서 I/O 장치를 지니는 많은 수의 작은 트리를 요구한다. 대형 트리가 복수의 작은 서브트리를 포함하기 때문에, 하나의 대형 트리는 그 안의 적당한 크기의 서브 트리의 뿌리에 외부 결합을 전략적으로 배치함으로써 파일시스템 I/O용으로 사용될 수 있다. 또한, 파일시스템 I/O는 본 발명에 따라 활성화되는 포인트-투-포인트 메시징에는 요구되나, 집합 연산을 위해서는 요구되지 않는다.
본 발명의 전역 트리 네트워크와 결합된 효과적이고 크기가 조절되고 대량의 병렬 수퍼컴퓨터는 생명 과학 분야에서 수행되는 병렬 알고리즘에 적당하다.
본 발명은 광범위한 애플리케이션에 대하여 teraOPS(초당 트릴리온의 부동 소수점 연산)의 순서로 처리 전력을 전송하도록 설계된 3차원 토러스의 형태를 지니는 신규한 대량 병렬 수퍼컴퓨터 구조에 대하여 개시하고 있는, 본 명세서에 일체로 결합되고, 본원 출원인과 공동 소유이며, 현재 미국 특허청에서 계류중인 특허 출원 제(YOR920010211US2, D#15275)호에 개시되어 있는 컴퓨터 구조로 실현될 수 있다. 이 실시예에서 대량 병렬 수퍼컴퓨터 구조는 64×32×32 3차원 토러스로 조직된 65,536개의 처리 노드를 포함하고, 각 처리 노드는 6개의 인접 노드(12)에 결합되어 있다. 도 1은 8개의 노드(12)로 구성된 토러스를 도시하고 있고, 3차원의 각 축을 따라 노드(12)의 수를 증가시킴으로써 위 상호 결합의 크기를 조절할 수 있다. 현재의 기술을 사용하여, 이 구조는 통신보다 현저하게 많은 계산을 요구하거나 가장 가까운 인접 통신만을 요구하는 애플리케이션에 대하여 수백의 teraOPS로 조절될 수 있다. 본 발명은 수퍼컴퓨터 외에도 다른 많은 컴퓨터 구조에서 실현될 수 있다.
위에 언급한 바와 같이, 토러스 처리 노드를 결합시키는 상호 결합 네트워크는 대부분의 내부-처리 통신 형태에는 잘 작동하지만, 각 노드에 의해서 제공되는 피연산자로부터 단일한 결과를 계산하는, 감산과 같은 집합 연산에는 잘 작동하지 않는다.
본 명세서에서 일체로 결합되고, 본원 출원인과 공동 소유이며, 현재 미국 특허 출원 제(D#15275)호에 개시되어 있는 바와 같이, 토러스에서 집합 감산 연산을 수행하기 위한 가장 효율적인 메카니즘은 최소 지연이라는 관점에서 볼 때 노드들 사이에 물리적인 상호 결합이 트리의 노드를 형성하는 네트워트인 진정한 트리 네트워크를 제공하는 것이다.
따라서, 본 발명의 바람직한 실시예에 따르면, 전역 트리 네트워크는 노드당 하나의 ASIC를 포함하는 복수의 상호 결합 라우터 장치가 제공된다. 각 라우터는 3개의 "자(child)" 포트와 하나의 "부(parent)" 포트를 제공하고, 그 각각은 선택적으로 활성화된다. 2개의 자 포트가 있으면 트리 토폴로지를 생성하는데 충분하다. 더 많은 자가 트리의 높이 또는 뿌리에 도달하기 위하여 요구되는 결합을 감소시킨다. 따라서, 더 많은 상호 결합이 있을수록 더 많은 자가 집합 연산에 대한 지연을 감소시킬 수 있다. 트리는 부가 없는(즉, 그 부 포트에 아무것도 결합되지 않은) "뿌리(root)" 노드에서 시작하는 것으로 형성된다. 뿌리 노드는 트리의 최상의 "레벨"을 형성한다. 그 아래 레벨은 하나 또는 그 이상의 뿌리의 자 포트를 다른 라우터의 부 포트에 결합함으로써 형성된다. 이 경우, 뿌리 노드는 그 아래의 레벨에서는 "부" 노드이다. 이러한 처리는 노드들이 아무 자를 지니지 않을 때까지 (즉, 그라우터의 자 포트에 아무것도 결합되지 않을 때까지) 반복적으로 계속된다. 이 노드들은 트리의 "잎(leaves)"으로 불린다. 예컨대, 도 2의 트리 네트워크(100)에서, 노드 B(110)는 뿌리 노드이고, 잎은 뿌리 노드로부터 가장 먼 바닥에 있는 노드(120)이다. 본 명세서에서 뿌리를 향하여 트리 위로 이동하는 데이터는 "업트리(uptree)" 트래픽이고, 잎을 향하여 뿌리로부터 멀어지는 방향으로 트리 아래로 이동하는 데이터는 "다운트리(downtree)" 트래픽이라고 한다.
아래 보다 상세하게 설명하는 바와 같이, 트리 네트워크는 라우터(노드)를 상호 결합시키는 링크 상의 가상의 채널에 의하여 지지되는, 복수의 독립적인 "가상 네트워크"를 포함할 수 있다. 링크를 공유하기 위하여, 가상 네트워크 데이터 스트림은 패킷화되고, 적당한 방법으로 인터리브된다. 각각의 가상 네트워크는 그 고유의 저장 자원을 지니기 때문에 어느 하나의 기능적인 교착 상태가 다른 것에 영향을 미치지 않는다.
각각의 가상 네트워크는 (각 가상 네트워크 내에서) 독립적이거나 아닐 수도 있는 가상 트리(또는 서브-트리)로 서브 분할될 수 있다. 임의의 노드는 16개의 가상 트리 중 하나의 뿌리가 되도록 구성될 수 있다. 가상 트리는 a) 동일한 가상 트리 번호의 뿌리로 지정된 노드와, b) 위 a)를 만족하는 노드의 자 노드를 제외한, 뿌리와 그것의 모든 자로 지정된 노드를 포함한다. 따라서, 동일한 가상 트리 번호를 지니는 가상 트리는 중첩될 수 없으나, 다른 번호를 지니는 가상 트리는 중첩될 수 있다.
노드는 임의의 번호를 지니는 가상 트리에 참여하거나 어느 것에도 참여하지않도록 구성될 수 있다. 만약 노드가 참여한다면, 그들은 감산 연산에 피연산자가 기여하는 것과 같이 모든 트리 의미론을 따를 것이라고 기대할 수 있다. 노드가 복수의 가상 트리에 참여함에 따라, 노드는 가상 네트워크로 주입하는 모든 패킷에 대한 가상 트리 번호를 특정해야 한다.
본 발명에 따른 예시적인 트리 구조(100)가 도 2에 도시되어 있다. 보다 구체적으로, 도 2는 35개의 노드(원으로 표시됨)와 그 35개의 노드 모두를 결합시키는 트리 네트워크(100)를 포함하는 가상 트리 네트워크(100)의 실시예를 도시한다. 트리 네트워크(100)는 아래 상세하게 설명하는 바와 같이 전역 감산 및 확산에 사용된다. 외부 시스템과의 입/출력(I/O) 및 자원 공유를 위하여, 도 2의 예시적인 가상 네트워크(100)의 노드는 도 2의 가상 트리에 참조 번호 1-5호 표시하는 5개의 비-중첩 가상 서브-트리로 분류된다. 즉, 각각의 가상 서브-트리는 원 내에서 다른 번호로 표시된다. 각각의 서브-트리 1-5의 뿌리에서는 각각 노드(111, 112, 113, 114)와 노드(110)가 외부 시스템(예컨대, 호스트 또는 파일 시스템)과의 인터페이스 결합을 포함한다. 따라서, 각 I/O 결합은 뿌리가 결합되어 있는 서브 트리의 7개의 노드에 대한 모든 트래픽을 조절한다. 바람직한 실시예에서, 각 서브-트리의 뿌리에 있는 노드는 I/O 전용이나. 항상 그런 것은 아니다.
도 2에서 뿌리에 노드 A(111)를 지니는 가상 트리 번호(1)에 대해서 설명하면, 구조로부터 데이터를 전송하고자 하는 일반적인 노드(115)는 외부 접속으로 전달하는 위치인 가상 트리의 뿌리 노드(111)로 메지시를 올려서 통과시킨다. 외부 네트워크 접속에 도착하는 데이터는 아래 보다 상세하게 설명하는 바와 같이 모든다른 노드를 필터링하는 확산 필터를 사용함으로써 참조 번호 115와 같은 특정한 노드로 전달될 수 있다. 전역 트리 네트워크의 연산에 관하여 보다 상세하게 설명하면, 특히 프로그램 가능한 포인트-투-포인트 또는 입출력에 사용되기 위한 서브 트리 메시징, 프로그램 로드, 시스템 관리, 병렬 작업 모니터링 및 디버그를 지원하는 기능에 관하여 본 명세서에서 일체로서 인용되고, 본원 출원인과 공유이고, 현재 미국 특허청에서 계류중인 특허 출원 제(YOR982001-1002, YOR982001-1005 및 YOR982001-1009호)호에 개시되어 있다.
도 2로 다시 돌아가면, 일반적으로 I/O 트래픽은 그 뿌리에 외부 접속을 지니는 가상 트리 내에 유지된다. 그러나, 만약 외부 접속이 실패하면, 외부 접속을 지니는 다른 노드가 실패를 극복하는데 사용될 수 있다. 예컨대, 도 2에서 노드 A(111)에 대한 외부 I/O 접속이 실패하면, 뿌리가 노드 A인 서브-트리의 모든 노드는 노드 B(110)를 통하여 외부 파일 시스템 또는 호스트 시스템과 통신할 수 있다.
트리(20)에 구축된 하드웨어 기능이 정수 합산, 정수 최대값, 최소값, 비트방식 논리 AND, 비트방식 논리 OR, 비트방식 논리 XOR(독점적 OR) 및 확산을 포함하나, 그것에 한정되지는 않는다. 위 기능은 가능한 최저 지연 방식으로 실현된다. 예컨대, 합산 기능은 전역 네트워크에서 우선적으로 전송된 워드의 최저 바이트를 만든다. 이 저 바이트는 즉시 다른 소스로부터의 다른 바이트(하드웨어에서)에 부가되고, 그 결과값은 트리의 다음 레벨로 이동된다. 이러한 방식으로 예컨대 8-바이트는 고차 바이트가 이동되기 전에 이미 트리의 수개층 위로 진행한다. 이것은 전체 기계를 통하여 매우 낮은 지연 합산의 가능성을 만든다. "토러스와 트리 네트워크에서의 연산 기능(Arithmetic Functions in Torus and Tree Networks)"이라는 제목의 현재 미국 특허청에서 계류중인 특허 출원 제(YOR920020031US1, YOR20020032US1(15258))호에서 설명하는 바와 같이, 최소값 또는 감산과 같은 다른 산술 기능이 데이터의 적당한 예비 조건에 의하여 달성될 수 있다. 부동 소수점 합산이 전역 조합 트리없이 위와 같은 결과를 달성하는 방법과 비교된 매우 낮은 지연을 지니는 것 모두를 트리에서 2만큼 통과함으로써 달성될 수 있다. 트리에서 산술 또는 논리 연산은 항상 트리를 따라 위로 흐르고, 거기에서 모든 결과값이 조합되고, 그 다음 트리 아래로 흐르고 그 결과값은 모든 가지(branch)에 분산된다. 설명하는 바와 같이, 특정한 가지가 특정한 방법으로 제어되면 계산으로부터 생략될 수 있다.
바람직한 실시예에서, 본 발명의 전역 트리 네트워크는 데이터를 이동시키고 집합적인 감산을 계산하는 노드당 하나의 상호 결합 라우터를 포함한다. 도 3은 도 2의 트리 네트워크에 대한 라우터 장치(200)의 기본 구조를 도시한다. 도 3에 도시하는 바와 같이, 각 라우터 장치(200)는 다른 라우터와 결합되거나, 결합되지 않았을 때에는 비활성화되는 복수개의 포트, 예컨대 4개의 포트를 포함한다. 도 3에 도시하는 바와 같이, 라우터는 3-트리가 구성되게 하는 데이터 경로를 형성하기 위하여 4개의 입력 포트(210a-213a)와 그에 대응하는 4개의 출력 포트(210b-213b)를 지닌다. 한가지 실시예에서, 4개의 포트 중 오직 하나만이 부 노드로의 결합으로 지정될 수 있고, 나머지 3개의 포트는 자 노드에 결합될 수 있다. 트리의 바닥에 있는 잎 노드는 활성화된 부 노드에 결합된 오직 하나의 포트를 지니게 될 것이고,트리의 뿌리는 활성화된 부 노드는 지니지 않지만, 적어도 하나의 자가 활성화된다. 도 3에 도시하는 바와 같이, 크로스바 스위치(215)를 통하여 데이터 경로가 생성된다는 것을 알 수 있다.
설명을 위하여, 도 3의 라우터 장치(200)에서 데이터는 항상 좌에서 우로 흐른다. 따라서, 패킷은 로컬 주입 FIFO(202), 또는 라우터의 입력 포트(210a-213a) 중 하나 중 어느 것으로부터 라우터 장치(200)에 진입할 수 있다. 만약 패킷이 포트에 진입하면, 그것은 2개의 가상 네트워크 중 어느 것인가에 따라 2개의 입력 FIFO(예컨대, A 또는 B) 중 하나에 배치된다. 패킷은 결과적으로 업트리 선택 블록(220) 또는 다운트리 선택 블록(230)에 제공된 ALU 장치(240)에 의해서 실행되는 논리 및 산술 연산 중 하나에 의해서 사용된다. 업트리 논리 또는 다운트리 선택의 결과는 4개의 출력단(210b-213b) 모두에 확산되고, 그 각각은 연산 또는 그것의 최종 목적지인 출력 포트에 따라 그것을 조절하거나 조절하지 않을 수 있다. 선택 블록(220, 230)은 패킷(또는 패킷들)이 라우터를 통하여 이동할 위치를 결정하는 조정 회로(도시되지 않음)를 포함한다. 동시적인 업트리 및 다운트리 트래픽이 있을 수 있다는 것을 이해하여야 한다.
트리에 대한 소프트웨어 접근은 주입 및 수신 인터페이스(202, 204)와 한 세트의 구성 레지스터(218)에 의해서 제공된다. 일반적으로 구성 레지스터(218)는 라우터를 구성하는데 사용되고, 상태를 결정하는 반면, 주입과 수신 인터페이스(202, 204)는 각각 피연산자를 제공하고 결과값을 수신하는 애플리케이션에 의하여 사용된다. 보다 구체적으로, 각각의 가상 트리는 가상 트리당 하나 존재하는 각 라우터의 가상 트리 구성 레지스터(218)에 적당한 값을 저장함으로써 구성된다. 각각의 가상 트리에 대하여, 구성 레지스터는 노드가 1) 트리의 뿌리, 2) 트리에 참여할 것인지 여부, 3) 업트리 확산 패킷의 수신을 강제할 것인지 여부의 기능을 할 것인지 여부를 확정하게 한다. 또한, 가상 트리 구성 레지스터(218)는 노드를 활성화시켜서 어느 자들(children)이 트리에 참여할 것인지 또는 그 아래 참여자를 지닐 것인지를 특정하게 한다. 이것은 드문 트리를 지원하는데 필요하다.
애플리케이션은 CPU 주입(202)과 CPU 수신(204) 인터페이스를 통하여 트리와 상호 작용한다. 데이터는 주입 인터페이스(202)에 패킷으로 저장됨으로써 명시적으로 또는 직접 메모리 액세스(DMA)를 통하여 트리로 전송된다. 마찬가지로, 결과값은 수신 인터페이스(204)에서 패킷으로 판독됨으로써 명시적으로 또는 DMA를 통하여 트리로부터 제거된다.
도시되어 있지는 않지만, 흐름 제어 기술이 라우터들 사이에서, 예컨대 여유분(slack)의 가치가 있는 수개의 패킷을 허용하는 토큰 기초 프로토콜을 사용하여 실현된다는 것을 알 수 있다. 즉, 활성화된 모든 출력 포트(210b-213b)가 다른 라우터의 하나의 입력 포트에 결합된다. 일반적으로, 그 입력 포트의 개별적인 가상 채널은 대응하는 출력 포트의 가상 채널에 대하여 그 입력 FIFO에서 버퍼 공간의 가치가 있는 모든 패킷에 대하여 토큰을 허용한다. 출력 포트가 패킷을 전송함에 따라 토큰을 소비하고, 입력 포트는 FIFO 공간을 비울 것처럼 출력 포트에 토큰을 복귀시킨다. 따라서, 출력 포트는 그것이 사용가능한 토큰을 가지고 있는 한, 패킷을 전송하는 것을 계속할 것이다.
본 발명의 바람직한 실시예의 라우터 장치 내에 산술 및 연산 장치(ALU) 블록(240)이 4개의 피연산자 크기에 대하여 5개의 감산 연산을 수행하도록 활성화된다. 연산은 정수 합산, 정수 최대값, 비트방식 논리 OR, 비트방식 XOR, 비트방식 논리 AND이다. 피연산자 크기는 32 비트, 64 비트, 128 비트 및 2048 비트이다. 도 3에 도시된 구조가 연산 또는 피연산자 크기에 대한 서로 다른 선택을 배제하지 않는다는 것을 이해하여야 한다. 특히, 연산 및 피연산자 크기를 선택하기 위하여 소프트웨어가 사용된다.
일반적으로, 감산 연산에 참여하는 노드는 그것들을 CPU 주입 FIFO(202)에 저장함으로써 "감산"형 패킷을 주입한다. 감산은 예컨대 본 발명의 일실시예에 따르면 패킷이 256 바이트의 페이로드를 전송하는 패킷의 세부 부분에서 실행된다. 개별적인 패킷은 항상 동일한 크기의 피연산자를 전송할 것이고, 모든 피연산자에서 동일한 감산을 수행할 것이다. 어떠한 노드도 각각의 가상 트리에 대하여 감산에 참여하지 않도록 구성될 수 있다. 이 경우, 노드는 감산에 어떠한 데이터도 공급하지 않을 것이고, 결과값을 수신하지 않게 된다.
개개의 가상 트리에 대하여, 라우터 장치(200)는 그 자 중 어느 것이 감산에 참여할 것인지를 특정하도록 구성된다. 그것이 그 각 참여 자 및 로컬 주입 FIFO(로컬 노드가 참여하지 않는다면)로부터 감산 패킷을 수신할 때, 그것은 패킷의 컨탠츠에 특정된 감산 연산을 계산하고, 그 결과를 단일한 패킷으로 부에 전송한다. 즉, 각 패킷의 제1 워드가 결과 패킷의 제1 워드를 생성하도록 조합된다. 각 패킷에 대한 제2 워드가 그 결과 패킷의 제2 워드를 생성하도록 조합된다. 이하 마찬가지이다. 이러한 방법으로, 전역 결과는 반복적으로 트리 위로 계산되고, 마지막으로 감산 트리의 뿌리 노드에서 그 결과를 포함하는 단일한 패킷으로 완성된다.
임의의 노드가 가상 감산 트리의 뿌리로 구성되는 것이 바람직하다. 일단 감산이 그 노드에 도달하면, 하나의 조합 패킷이 수신되거나 참여 자들 모두에 확산하거나 그 두가지 모두를 수행한다. 라우터가 자 노드 다운트리에 대하여 예정된 감산 패킷을 수신할 때, 그것은 그 자의 각각에 대하여 패킷의 카피를 전송한다. 그것은 또한, 가상 트리 상에서 감산에 참여하도록 구성된다면, 로컬 수신 FIFO(204)에 패킷의 카피를 배치시킨다.
바람직한 실시예에서, 물리적인 상호 결합의 폭은 피연산자 폭보다 좁기 때문에, 피연산자는 직렬화된 방법으로 트리에서 전송된다. 가능한 최저 지연을 달성하기 위하여, 정수 피연산자는 결과값이 계산되고 피연산자가 도착하는대로 전송될 수 있도록 우선 최저 순서 비트로 전송된다. 이러한 방법으로, 고차 비트가 이동되기 전에 결과값이 트리의 수개 레벨 위로 잠재적으로 진행하고, 전체 노드에 걸쳐 매우 낮은 지연을 만든다. 파이프라인된 최대값 연산이 최고차 비트를 포함하는 워드와 함께 계산된다는 것을 알아야 한다. 왜냐하면, 다른 곳에 속한 최고차 비트에 기초하여 숫자가 다르다는 것이 발견되기 때문이다. 하드웨어는 자동적으로 주입되고 수신된 최대 피연산자를 반전하고 고차에서 저차 비트로 계산이 수행된다.
정수 감산이 부가적으로 부동 소수점 감산을 계산하는데 사용될 수 있다. 예컨대, 전역 부동 소수점 합산이 트리를 두번 사용함으로써 실행될 수 있다. 여기에서 첫번째는 모든 최대 지수를 얻는 것이고, 두번째는 모든 이동 로그 가수 부분이합산되는 것이다.
위에 설명한 바와 같이, 본 발명의 트리 네트워크(100)는 효율적인 전역 확산을 수행하기 위한 이상적인 구조이다. 하드웨어 확산 연산도 항상 트리의 뿌리로부터 수행된다. 그러나, 임의의 노드가 포인트-투-포인트 "확산(broadcast)"형 메시지를 뿌리 노드에서 라우터 장치에 우선적으로 전송함으로써 확산할 수 있다. 그런 다음 확산을 자동적으로 시작한다. 대부분의 경우, 전역 확산은 감산의 규칙과 제한을 따른다. 그러나, 업트리 동작에서는 다르다. 임의의 노드는 가상 트리에서 확산형의 패킷을 주입함으로써 페이로드의 확산을 수행할 수 있다. 패킷은 그것이 가상 트리의 뿌리로 구성된 노드에 도달할 때까지 변경되지 않은 트리 위로 주행한다. 이제 반대로 가상 트리상의 모든 참여 자에게 확산된다. 따라서, 가상 트리에서 감산에 참여한 노드에만 수신될 것이다.
본 발명에 따른 확산 수신은 패킷 내에 포함된 정보를 필터링함으로써 제어된다. 바람직한 실시예의 필터링 메카니즘은 패킷 내에 포함된 값을 각 라우터에 저장된 미리 구성된 값에 일치시키고, 그 값이 일치할 때에만 패킷을 수신하도록 기능한다. 일반적으로, 확산 필터링 메카니즘이 뿌리 노드로부터 그 아래의 단일 노드로 메시지를 전송하도록 시스템의 모든 노드에는 고유값(주소)이 할당된다. 그것은 또한 노드의 서브세트에 의하여 수신되게 하기 위해서는 고유하지 않은 어드레스를 사용할 수 있다. 확산 필터링이 일반화될 수 있는 방법은 많이 있다. 예컨대, 주소 대신에 비트 벡터를 사용하면, 확산 수신에 있어서 다중, 결합 해제, 구성 가능한 서브세트 노드가 가능해진다.
외부 I/O 결합의 효율적인 공유가 확산 필터링과 "뿌리"형 패킷의 조합에 의하여 제공된다. 뿌리형 패킷은 항상 그것이 무조건적으로 수신되는, 트리의 뿌리로 지정된 노드에 도달할 때까지 가상 트리 위로 진행한다. 이것은 뿌리가 아닌 노드가 뿌리로 메시지를 전송하고, 외부 접속으로 데어터가 전달될 수 있게 한다. 외부 접속에 도달하는 데이터는 원하는 목적지와 일치하는 주소를 지니는 필터링 확산을 사용하여 특정한 뿌리가 아닌 노드로 진행될 수 있다.
외부 결합이 실패하면, 그 결합을 사용하는 노드는 그 다음 노드를 통하여 외부 결합을 향하여 트리 위로 진행하는 것이 실패할 것이다. 노드로부터의 트래픽에 있어서, 실패한 노드를 가상 트리의 뿌리가 되지 못하게 하고 실패를 극복한 노드가 새로운 뿌리가 되도록 재구성하는 방식으로, 실패한 외부 접속에서 노드를 간단하게 재구성함으로써 수행될 수 있다. 실패를 극복한 뿌리로부터의 확산이 그 실패한 노드 아래의 자들만을 제외하고 그 노드의 모든 자들에게 확산될 것이기 때문에 노드로의 트래픽이 더 이상 복잡해지지 않는다. 예컨대, 도 2에서 노드 A(111)에서의 실패가 노드 B(110)에서 극복되면, 노드 B로부터의 패킷은 전체 트리로 확산될 것이다.
불필요한 트래픽을 방지하기 위하여, 임의의 라우터 장치는 각 가상 트리 상에서 독립적으로 다운트리 트래픽을 블록(block)하도록 구성될 수 있다. 블록으로 구성된 가상 트리의 업트리 링크에서 라우터에 진입하는 패킷은 간단하게 드롭된다. 예컨대, 도 2에서 노드 A(111) 아래 1번으로 표시된 가상 트리가 노드 A(111)의 접속으로 외부 I/O와 전송하고 수신한다고 가정한다. 노드 A에서 접속이 안되고, 노드 B에서 극복하면, 노드 B는 노드 A 대신 가상 트리(1)의 뿌리가 되고, 노드 C와 D는 가상 트리(1)의 다운트리 트래픽을 블록하도록 구성된다. 이러한 다운트리 블로킹 메카니즘은 일반적으로 가상 트리를 가지치기하는데 사용될 수 있다.
임의의 패킷이 인터럽트 요구가 부착된 채로 트리 네트워크로 주입될 수 있다. 이것은 최종적으로 패킷을 수신하는 모든 노드에서 또는 감산의 경우에는 패킷으로부터 계산된 결과값에서 마스크 가능한 인터럽트를 일으킬 것이다. 만약 결과값에 기여한 어떤 주입 패킷이 인터럽트를 요청했다면 감산 결과는 인터럽트를 일으킬 것이다. 더욱이, 전역 감산 연산이 인터럽트 메카니즘으로 소프트 장벽을 수행하는데 사용될 수 있다. 간단하게 말하면, 각 노드는 그 인터럽트 플래그를 소거함으로써 장벽에 진입하고 그 후 전역 감산에 기여한다. 그것은 인터럽트 플래그를 폴링(polling)하거나 인터럽트를 수신함으로써 장벽의 완성을 검출한다. 또한, 전역 조합 트리의 연산을 보다 상세하게 설명하면, 장벽 네트워크는 본 명세서에서 전체로서 인용하는 본원 출원인과 공유이고 현재 미국에서 계류중인 미국 특허 출원 제(YOR8-2001-1009)호에 개시되어 있다.
본 발명의 트리 네트워크는 그것이 기초 순서 규칙을 따르는 한 연산의 정확한 완성을 보증한다. 즉, 패킷이 수신되는 순서대로 라우터(200)에 의해서 처리되기 때문에, 가상 트리에서의 연산에 참여하는 노드가 동일한 순서로 감산 피연산자를 주입하지 않거나, 피연산자를 주입하는데 실패하면, 가상 네트워크에 교착 상태가 나타난다. 마찬가지로, 교착 상태는 2개의 가상 트리가 동일한 가상 네트워크에서 중첩하거나, 피연산자 주입이 가상 네트워크의 엄격한 순서 규칙을 교란하는 경우에 발생할 수 있다. 바람직하게는, 확산 또는 포인트-투-포인트 메시징 연산에 순서 제약은 없고, 이러한 연산은 감산으로 인터리브될 수 있다.
정확한 순서로 연산이 완성되었음을 보장하는 것은 하드웨어 에러 회복 메카니즘에 의해서 제공된다. 간단하게, 각 라우터는 패킷이 에러없이 수신되었음을 확인하는 통지를 수신할 때까지 전역 트리 네트워크를 통하여 전송되는 모든 패킷의 카피를 보유한다. 오염된 패킷을 검출하기 위한 메카니즘 및 저장된 카피를 사용하여 패킷을 재전송하는 메카니즘을 포함하여 패킷 CRC를 지니는 슬라이딩 윈도우 프로토콜과 같은 링크-레벨 통신 프로토콜이 실현될 수 있다.
위에 설명한 바와 같이, 흐름 제어는 토큰-기초 통신 프로토콜의 사용을 통하여 유지된다. "다운스트림" 라우터로 패킷을 전송하는 "업스트림" 라우터는 다운스트림 라우터에서 빈(free) 저장 용량을 나타내는 몇개의 토큰을 포함한다. 업스트림 라우터가 패킷을 전송할 때마다, 토큰을 소비하고, 만약 그것이 토큰을 남겨놓지 않는다면 패킷을 전송할 수 없다. 반대로, 다운스트림 라우터는 저장 공간을 비울 때마다 다운스트림 라우터에 토큰을 등록시킨다. 저장 공간과 패킷 지연 사이의 균형이 링크를 일정하게 비지(busy)로 유지시킨다.
하나의 패킷이 일반적으로 복수의 다운트리 링크를 통하여 전송되고 지역적으로 수신되는 다운트리 확산에 있어서, 흐름 제어는 토큰이 전체 다운트리 링크에서 사용가능하게 되고 CPU 수신 FIFO(204)에 공간이 있을 때까지 패킷의 진행을 방지함으로써 실현된다. 그러나, 이러한 고전적인 접근 방법은, 목적지가 토큰을 지니는 링크 아래에 있고 패킷이 토큰을 지니지 않는 다른 링크에서 대기하고 있을수 있기 때문에, 하나의 원하는 목적지로의 확산을 필터링하는 처리량에 영향을 미칠 수 있다. 따라서, 바람직한 실시예에 있어서, 트리 네트워크는 개별적인 다운트리 링크 상의 흐름 제어를 결합 해제하는 "적극적인(aggressive)" 확산을 수행한다. 도 3을 참조하면, 패킷은 다운트리 링트와 가상 네트워크에 충분한 저장 공간이 있게 되면 바로 적당한 다운트리 링크와 가상 네트워크의 인출 FIFO(250)으로 진행한다. 그 후 각 인출 FIFO(250)는 토큰이 사용 가능하게 됨에 따라 개별적으로 그 출력 포트(210b-213b)로 인출된다. 전술한 바와 같이 재전송을 통한 전송 에러 회복을 위하여, 패킷의 개별적인 카피가 각 인출 FIFO(250)에 배치되어야 한다는 것에 주목한다.
바람직한 실시예에 있어서, 본 명세서에서 전체로서 인용하고 본원 출원인과 공유이며, 현재 미국 특허청에 계류중인 특허 출원 제(YOR9-20010211US2(15275))호, "새로운 대량 병렬 수퍼컴퓨터(A Massively Parallel Supercomputer)"에 본원의 도 1-3과, 각 처리 노드(12)이 시스템-온-칩 처리에 기초한 것, 즉 라우팅 기능을 포함하는 계산 노드의 모든 기능이 하나의 ASIC에 집적될 수 있고, 노드 크기와 전력을 현저하게 감소시키는 것에 대하여 개시하고 있다. 이러한 수퍼컴퓨터 구조는 또한 노드 밀도를 증가시키고 또한 기계의 전체 비용/성능을 감산시키도록 조절된다. 각 노드는 컴퓨터 ASIC에 그러한 많은 기능을 일체화시킨 PowerPC 440 내장 처리 코어, 부동 소수점 코어, 내장 DRAM, 집적 외부 DDR 메모리 제어기, 메시지 프로세서, 이더넷 어댑터 및 네트워크 라우터가 바람직하지만 그것에 제한되는 것은 아니다. 한가지 실시예에서, 동일한 컴퓨터 ASIC 노드가 파일서버 통신 및 I/O연산을 처리하기 위하여 예컨대 64 노드와 같은 컴퓨트 노드의 서브세트에 결합된 I/O 노드로 사용될 수 있다. 즉, I/O 노드는 컴퓨트 노드와 매우 유사하다. 그러나. 외부 메모리 구성이라는 점에서만 다를 수 있다. 예컨대 기가비트 이더넷과 같은 외부 네트워크 인터페이스의 부가라는 점에서. 본 명세서에서 사용된 트리 네트워크 라우터가 바람직한 실시예의 집적 장치에 독립 장치가 부가된 것으로 기능할 수 있음을 이해하여야 한다.
본 발명은 특정한 실시예에 대하여 설명하고 있으나, 당업자라면 첨부하는 청구항에 기재된 발명의 기술적 사상의 범위를 벗어나지 않는 범위에서 얼마든지 다른 변형이 가능하다.
본 발명에 따르면, 전역 감산 계산, 데이터 분산, 동기화 및 한정된 자원의 공유와 같은 전역 산술 연산을 요구하는 연산을 포함하여 효율적이고 신뢰성 있는, 많은 종류의 연산에 대하여 최적화된 처리 노드의 고유한 상호 결합을 포함하는 초대형 수퍼컴퓨터 구조가 제공된다.
Claims (33)
- 복수의 처리 노드를 포함하는 계산 구조에서 병렬 알고리즘 연산이 실행되는 동안 집합적인 감산(reduction), 확산(broadcast) 및 포인트-투-포인트 메시지 통과를 수행하는 장치에 있어서,하나 이상의 가상 트리 네트워크를 포함하는 트리 구성에서 상기 노드들을 상호 결합시키는 라우팅 장치를 포함하고, 특정한 가상 트리 네트워크의 뿌리 노드로부터 잎 노드로 다운스트림되는 전역 확산 연산과, 상기 가상 트리의 잎 노드로부터 뿌리 노드로 업스트림되는 전역 감산 연산과, 필요시 상기 가상 트리의 임의의 노드로부터 상기 가상 트리의 뿌리 노드로 통과하는 포인트-투-포인트 메시지 중 하나 이상의 전역 처리 연산을 활성화시키는 전역 트리 네트워크를 포함하고,상기 전역 트리 네트워크 및 라우팅 장치 구성은 상기 계산 구조에서 저-지연 통신을 최적으로 제공하는 것인 장치.
- 제1항에 있어서, 상기 계산 구조는 제1 네트워크를 형성하기 위하여 상호 결합된 복수의 처리 노드를 포함하고, 상기 하나 이상의 가상 트리 네트워크와 상기 제1 네트워크는 병렬 알고리즘 처리 성능을 최적화하기 위하여 병렬 알고리즘의 대역폭 및 지연 요건에 따라 공동으로 또는 독립적으로 사용되는 것인 장치.
- 제1항에 있어서, 가상 트리 네트워크의 뿌리 노드는 외부 시스템에 대한 고속 접속을 포함하는 I/O 노드로 기능하고, 상기 I/O 노드는 상기 가상 트리 네트워크에 대하여 상기 제1 네트워크에서 수행되는 처리와는 독립적인 I/O 연산을 수행하는 것인 장치.
- 제3항에 있어서, 상기 각 라우터는 가상 트리의 다른 노드로부터 패킷을 수신하기 위한 입력 장치와, 상기 트리의 다른 노드로 패킷을 전달하기 위한 출력 장치와, 상기 트리로 패킷을 주입하기 위한 로컬 주입 장치와, 상기 트리로부터 패킷을 제거하기 위한 로컬 수신 장치를 포함하고, 상기 장치는 상기 라우터를 상기 가상 트리에 참여시키거나 참여시키지 않도록 구성하는 수단을 더 포함하는 것인 장치.
- 제4항에 있어서, 상기 라우터를 구성하기 위한 수단은 감산 연산을 위하여 가상 트리의 뿌리로서 상기 노드의 참여를 더 특정하는 것인 장치.
- 제5항에 있어서, 상기 라우터를 구성하기 위한 수단은 감산 연산 동안 피연산자를 제공하기 위하여 입력 장치와 로컬 주입 장치의 참여를 더 특정하는 것인 장치.
- 제6항에 있어서, 상기 라우터는 감산 연산에 기여한다면 입력 장치와 로컬 주입 장치를 기여시킴으로써 수신된 패킷 콘탠츠 상에 특정한 감산 연산을 계산하기 위한 수단과, 상기 출력 장치를 통하여 노드의 업스트림 부 노드에 계산 결과를 전송하기 위한 수단을 더 포함하는 것인 장치.
- 제7항에 있어서, 상기 가상 트리 네트워크는 상기 뿌리 노드에서 단일한 패킷으로 완성되기 위하여 상기 가상 트리에서 반복적으로 전역 조합 결과가 계산되도록 프로그램되는 것인 장치.
- 제8항에 있어서, 상기 가상 트리 상에서의 감산에 피연산자를 기여시키도록 구성된 모든 참여 자들에게 각각 상기 뿌리에서 단일하게 조합된 패킷을 확산하기 위한 수단을 더 포함하는 것인 장치.
- 제3항에 있어서, 상기 고속 접속을 통하여 외부 시스템으로 전달될 예정인 포인트-투-포인트 패킷을 가상 트리의 뿌리에 있는 I/O 노드로 전송하기 위하여 계산 노드를 활성화시키는 메카니즘을 더 포함하는 것인 장치.
- 제9항에 있어서, 노드 주소와 가상 트리에의 참여를 기초로, 가상 트리의 노드에서 확산 패킷의 수신을 제어하기 위한 필터 메카니즘을 더 포함하는 것인 장치.
- 제11항에 있어서, 각 노드는 주소를 포함하고, 상기 시스템은 상기 각 가상트리의 노드들 사이에서 포인트-투-포인트 메시징을 활성화시키기 위한 프로그램 가능한 수단을 더 포함하고, 상기 주소는 모든 노드 또는 노드의 서브세트와 직접 통신하기 위하여 외부 호스트 시스템을 활성화시키는 것인 장치.
- 제9항에 있어서, 상기 로컬 수신 장치에 의해서 수신된 패킷의 콘탠츠에 기초하여 처리 노드의 프로세서에 하드웨어 인터럽트를 일으키는 메카니즘을 더 포함하는 것인 장치.
- 제9항에 있어서, 각 가상 트리 상에서 불필요한 다운트리 트래픽을 독립적으로 블로킹하기 위한 메카니즘을 더 포함하는 것인 장치.
- 제11항에 있어서, 패킷 통신에서 라우터들 사이의 흐름 제어를 제공하기 위한 메카니즘을 더 포함하는 것인 장치.
- 제15항에 있어서, 적극적인(aggressive) 확산을 수행하기 위하여 상기 흐름 제어 메카니즘으로부터 결합 해제된 개별적인 다운스트림 링크 상에 패킷 확산을 활성화시키는 수단을 더 포함하는 것인 장치.
- 제2항에 있어서, 상기 제1 네트워크는 n 차원 토러스를 포함하고, 여기에서 n은 1 이상인 것인 장치.
- 복수의 상호 결합된 처리 노드를 포함하는 컴퓨터 구조에서 병렬 알고리즘 연산이 실행되는 동안 집합적인 감산, 확산 및 포인트-투-포인트 메시지 통과를 수행하는 방법에 있어서,하나 이상의 가상 서브-트리 구조를 포함하는 트리 구조의 전역 트리 네트워크 구조에 따라 링크를 통하여 상기 노드를 상호 결합시키기 위한 라우터 장치를 제공하는 단계와,상기 가상 트리 구조의 노드에서, 특정한 가상 서브-트리 네트워크의 뿌리 노드로부터 잎 노드로 다운스트림되는 전역 확산 연산과, 상기 가상 트리의 잎 노드로부터 뿌리 노드로 업스트림되는 전역 감산 연산과, 상기 병렬 알고리즘 연산의 수행에 필요하다면 상기 가상 트리의 임의의 노드로부터 상기 가상 트리의 뿌리 노드로 포인트-투-포인트 메시지를 통과하는 연산 중 하나 이상을 포함하는 저-지연 전역 처리 연산의 수행을 활성화시키는 단계를 포함하는 것인 방법.
- 제18항에 있어서, 상기 계산 구조는 제1 네트워크를 형성하기 위하여 상호 결합된 복수의 처리 노드를 포함하고, 병렬 알고리즘 처리 성능을 최적화하기 위하여 병렬 알고리즘의 대역폭 및 지연 요건에 따라 상기 전역 트리 네트워크 및 제1 네트워크를 공동으로 또는 독립적으로 사용하는 단계를 더 포함하는 것인 방법.
- 제18항에 있어서, 각 가상 트리 네트워크의 뿌리 노드는 외부 시스템에 대한 고속 접속을 포함하는 I/O 노드로 기능하고, 상기 가상 트리 네트워크에 대하여 상기 제1 네트워크에서 수행되는 연산과는 독립적으로 I/O 연산을 수행하는 단계를 포함하는 것인 방법.
- 제20항에 있어서, 상기 각 라우터는 가상 트리의 다른 노드로부터 패킷을 수신하기 위한 입력 장치와, 상기 트리의 다른 노드로 패킷을 전송하기 위한 출력 장치와, 상기 트리로 패킷을 주입하기 위한 로컬 주입 장치와, 상기 트리로부터 패킷을 제거하기 위한 로컬 수신 장치를 포함하고, 상기 라우터를 상기 가상 트리에 참여시키거나 참여시키지 않도록 구성하는 단계를 더 포함하는 것인 방법.
- 제20항에 있어서, 상기 라우터 구성 단계는 감산 연산 수행시 가상 트리의 뿌리로서 노드의 참여를 특정하는 단계를 더 포함하는 것인 방법.
- 제22항에 있어서, 상기 라우터 구성 단계는감산 연산 동안 피연산자를 주입하기 위하여 상기 라우터에 결합된 상기 처리 노드의 참여를 특정하는 단계와,감산 연산 동안 피연산자를 주입하기 위하여 상기 라우터에 결합된 상기 처리 노드의 참여를 특정하는 단계중 하나 이상을 더 포함하는 것인 방법.
- 제23항에 있어서, 기여 자 노드 및 상기 처리 노드로부터 수신된 패킷 콘탠츠 상에 특정한 감산 연산을 계산하도록 라우터를 구성하는 단계와, 출력 장치를 통하여 노드의 업스트림 부 노드에 계산 결과를 전송하는 단계를 더 포함하는 것인 방법.
- 제24항에 있어서, 상기 뿌리 노드에서 단일한 패킷으로 완성하기 위하여 상기 가상 트리에서 반복적으로 전역 조합 결과를 계산하는 단계를 더 포함하는 것인 방법.
- 제25항에 있어서, 상기 가상 트리 상에서의 감산에 피연산자를 기여시키도록 구성된 모든 참여 자들에게 각각 상기 뿌리에서 단일하게 조합된 패킷을 확산하는 단계를 더 포함하는 것인 방법.
- 제20항에 있어서, 상기 고속 접속을 통하여 외부 시스템으로 전달될 예정인 포인트-투-포인트 패킷을 가상 트리의 뿌리에 있는 I/O 노드에 전송하기 위하여 계산 노드를 활성화시키는 단계를 더 포함하는 것인 방법.
- 제26항에 있어서, 노드 주소와 가상 트리에의 참여를 기초로, 가상 트리의 노드에서 확산 패킷의 수신을 제어하는 단계를 더 포함하는 것인 방법.
- 제28항에 있어서, 각 노드는 주소를 포함하고, 상기 각 가상 트리의 노드들 사이에서 포인트-투-포인트 메시징을 활성화시키고 서브-트리 메시징을 위한 단계를 더 포함하고, 상기 주소는 노드의 모든 노드 또는 노드의 서브세트와 직접 통신하기 위하여 외부 호스트 시스템을 활성화시키는 것인 방법.
- 제26항에 있어서, 상기 로컬 수신 장치에 의해서 수신된 패킷의 콘탠츠에 기초하여 처리 노드의 프로세서에 하드웨어 인터럽트를 일으키는 단계를 더 포함하는 것인 방법.
- 제26항에 있어서, 각 가상 트리 상에서 불필요한 다운트리 트래픽을 독립적으로 블로킹하는 단계를 더 포함하는 것인 방법.
- 제28항에 있어서, 패킷 통신에서 라우터들 사이의 흐름 제어를 제공하는 단계를 더 포함하는 것인 방법.
- 제32항에 있어서, 상기 흐름 제어 메카니즘을 결합 해제시킴으로써 개별적인 다운스트림 링크 상에 패킷의 적극적인(aggressive) 확산을 활성화시키는 단계를 더 포함하는 것인 방법.
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/005586 WO2002069168A1 (en) | 2001-02-24 | 2002-02-25 | A global tree network for computing structures |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20040002870A true KR20040002870A (ko) | 2004-01-07 |
KR100553143B1 KR100553143B1 (ko) | 2006-02-22 |
Family
ID=68499836
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020037010998A KR100553143B1 (ko) | 2001-02-24 | 2002-02-25 | 계산 구조에 대한 전역 트리 네트워크 |
Country Status (8)
Country | Link |
---|---|
US (1) | US7650434B2 (ko) |
EP (1) | EP1381959A4 (ko) |
JP (1) | JP4127791B2 (ko) |
KR (1) | KR100553143B1 (ko) |
CN (1) | CN100476785C (ko) |
CA (1) | CA2437661A1 (ko) |
IL (1) | IL157512A0 (ko) |
WO (1) | WO2002069168A1 (ko) |
Families Citing this family (70)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060259607A1 (en) * | 2001-09-13 | 2006-11-16 | Network Foundation Technologies, Llc | System and method for distributing data over a computer network |
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 |
US7478156B1 (en) * | 2003-09-25 | 2009-01-13 | Juniper Networks, Inc. | Network traffic monitoring and reporting using heap-ordered packet flow representation |
CA2577129C (en) * | 2004-07-09 | 2016-07-05 | Network Foundation Technologies, Llc | Systems for distributing data over a computer network and methods for arranging nodes for distribution of data over a computer network |
US8117288B2 (en) * | 2004-10-12 | 2012-02-14 | International Business Machines Corporation | Optimizing layout of an application on a massively parallel supercomputer |
US20060227774A1 (en) * | 2005-04-06 | 2006-10-12 | International Business Machines Corporation | Collective network routing |
US7472079B2 (en) * | 2005-01-12 | 2008-12-30 | International Business Machines Corporation | Computer implemented method for automatically controlling selection of a grid provider for a grid job |
US8516444B2 (en) * | 2006-02-23 | 2013-08-20 | International Business Machines Corporation | Debugging a high performance computing program |
JP4704252B2 (ja) | 2006-03-14 | 2011-06-15 | 富士通株式会社 | ネットワークシステムのブロードキャスト処理方法及びネットワークシステム |
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 |
US7796527B2 (en) * | 2006-04-13 | 2010-09-14 | International Business Machines Corporation | Computer hardware fault administration |
CN100451972C (zh) * | 2006-09-26 | 2009-01-14 | 杭州华三通信技术有限公司 | 提高多核系统访问临界资源速度的方法和装置 |
US7953684B2 (en) * | 2007-01-31 | 2011-05-31 | International Business Machines Corporation | Method and system for optimal parallel computing performance |
US9330230B2 (en) * | 2007-04-19 | 2016-05-03 | International Business Machines Corporation | Validating a cabling topology in a distributed computing system |
CN101311917B (zh) * | 2007-05-24 | 2011-04-06 | 中国科学院过程工程研究所 | 一种面向粒子模型的多层直连集群并行计算系统 |
EP2174442A4 (en) * | 2007-07-20 | 2012-03-07 | Blue Danube Labs Inc | METHOD AND SYSTEM FOR MULTI-POINT SIGNAL GENERATION WITH PHASE SYNCHRONIZED LOCAL BEARINGS |
US8296457B2 (en) * | 2007-08-02 | 2012-10-23 | International Business Machines Corporation | Providing nearest neighbor point-to-point communications among compute nodes of an operational group in a global combining network of a parallel computer |
US7831866B2 (en) * | 2007-08-02 | 2010-11-09 | International Business Machines Corporation | Link failure detection in a parallel computer |
US8423663B2 (en) * | 2007-08-06 | 2013-04-16 | International Business Machines Corporation | Providing full point-to-point communications among compute nodes of an operational group in a global combining network of a parallel computer |
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 |
GB0803238D0 (en) * | 2008-02-22 | 2008-04-02 | Isis Innovation | Parallel processing |
US7958184B2 (en) * | 2008-03-04 | 2011-06-07 | International Business Machines Corporation | Network virtualization in a multi-node system with multiple networks |
US8108467B2 (en) * | 2008-06-26 | 2012-01-31 | International Business Machines Corporation | Load balanced data processing performed on an application message transmitted between compute nodes of a parallel computer |
JP5077104B2 (ja) * | 2008-06-30 | 2012-11-21 | 富士通株式会社 | ネットワーク障害検知プログラム、システム、及び方法 |
US8194678B2 (en) * | 2008-07-21 | 2012-06-05 | International Business Machines Corporation | Providing point to point communications among compute nodes in a global combining network of a parallel computer |
US8121816B2 (en) * | 2008-08-13 | 2012-02-21 | Verizon Patent And Licensing Inc. | Identifying causes of service level agreement performance violations |
US8387064B2 (en) | 2008-10-09 | 2013-02-26 | International Business Machines Corporation | Balancing a data processing load among a plurality of compute nodes in a parallel computer |
JP5540609B2 (ja) | 2009-09-01 | 2014-07-02 | 富士通株式会社 | 並列計算システムおよび通信制御プログラム |
US9110860B2 (en) * | 2009-11-11 | 2015-08-18 | Mellanox Technologies Tlv Ltd. | Topology-aware fabric-based offloading of collective functions |
US8103910B2 (en) * | 2009-11-13 | 2012-01-24 | International Business Machines Corporation | Local rollback for fault-tolerance in parallel computing systems |
US8571834B2 (en) * | 2010-01-08 | 2013-10-29 | International Business Machines Corporation | Opcode counting for performance measurement |
US8811417B2 (en) * | 2009-11-15 | 2014-08-19 | Mellanox Technologies Ltd. | Cross-channel network operation offloading for collective operations |
US8904118B2 (en) | 2011-01-07 | 2014-12-02 | International Business Machines Corporation | Mechanisms for efficient intra-die/intra-chip collective messaging |
US20120179896A1 (en) | 2011-01-10 | 2012-07-12 | International Business Machines Corporation | Method and apparatus for a hierarchical synchronization barrier in a multi-node system |
US9195550B2 (en) | 2011-02-03 | 2015-11-24 | International Business Machines Corporation | Method for guaranteeing program correctness using fine-grained hardware speculative execution |
JP5696779B2 (ja) | 2011-03-22 | 2015-04-08 | 富士通株式会社 | 並列計算機システム及び並列計算機システムの制御方法 |
US8898289B1 (en) * | 2011-03-22 | 2014-11-25 | Netapp, Inc. | Distributed event processing method and architecture |
CN102141975B (zh) * | 2011-04-01 | 2013-10-09 | 华为技术有限公司 | 计算机系统 |
EP2573643B1 (en) | 2011-07-26 | 2015-09-23 | Huawei Technologies Co., Ltd. | Computer system and clock configuration method thereof |
US20130218795A1 (en) * | 2012-02-20 | 2013-08-22 | Michel Rienzo | System for creating an entertainment network conglomerate via a global computer network and methods thereof |
US9665531B2 (en) * | 2012-06-13 | 2017-05-30 | International Business Machines Corporation | Performing synchronized collective operations over multiple process groups |
US9160607B1 (en) | 2012-11-09 | 2015-10-13 | Cray Inc. | Method and apparatus for deadlock avoidance |
WO2014151773A1 (en) * | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for implementing a line speed interconnect structure |
US9405724B2 (en) * | 2013-06-28 | 2016-08-02 | Intel Corporation | Reconfigurable apparatus for hierarchical collective networks with bypass mode |
US20150091909A1 (en) * | 2013-09-30 | 2015-04-02 | Alcatel Lucent | Systems And Methods For Distance Approximation In Graphs |
US9495204B2 (en) * | 2014-01-06 | 2016-11-15 | International Business Machines Corporation | Constructing a logical tree topology in a parallel computer |
US10360050B2 (en) * | 2014-01-17 | 2019-07-23 | International Business Machines Corporation | Simulation of high performance computing (HPC) application environment using virtual nodes |
US9553784B2 (en) | 2014-07-29 | 2017-01-24 | International Business Machines Corporation | Selection of message passing collectives in presence of system noise |
CN104184828B (zh) * | 2014-09-09 | 2018-05-11 | 清华大学 | 混合网络系统、通信方法和网络节点 |
US10284383B2 (en) | 2015-08-31 | 2019-05-07 | Mellanox Technologies, Ltd. | Aggregation protocol |
US10521283B2 (en) | 2016-03-07 | 2019-12-31 | Mellanox Technologies, Ltd. | In-node aggregation and disaggregation of MPI alltoall and alltoallv collectives |
US10425358B2 (en) * | 2016-09-29 | 2019-09-24 | International Business Machines Corporation | Network switch architecture supporting multiple simultaneous collective operations |
CN107835175B (zh) * | 2017-11-09 | 2020-09-22 | 深圳市云盾科技有限公司 | 采用平衡二叉树算法的网络连接跟踪方法 |
US11277455B2 (en) | 2018-06-07 | 2022-03-15 | Mellanox Technologies, Ltd. | Streaming system |
CN111475250B (zh) * | 2019-01-24 | 2023-05-26 | 阿里巴巴集团控股有限公司 | 一种云环境下的网络优化方法和装置 |
CN109857810B (zh) * | 2019-02-02 | 2023-06-23 | 立旃(上海)科技有限公司 | 基于区块链的数据同步装置及方法 |
US11625393B2 (en) | 2019-02-19 | 2023-04-11 | Mellanox Technologies, Ltd. | High performance computing system |
EP3699770A1 (en) | 2019-02-25 | 2020-08-26 | Mellanox Technologies TLV Ltd. | Collective communication system and methods |
GB2586277B (en) * | 2019-08-16 | 2022-11-23 | Siemens Ind Software Inc | Broadcasting event messages in a system on chip |
CN110690991B (zh) * | 2019-09-10 | 2021-03-19 | 无锡江南计算技术研究所 | 一种基于逻辑树的无阻塞网络归约计算装置、方法 |
US11750699B2 (en) | 2020-01-15 | 2023-09-05 | Mellanox Technologies, Ltd. | Small message aggregation |
US11252027B2 (en) * | 2020-01-23 | 2022-02-15 | Mellanox Technologies, Ltd. | Network element supporting flexible data reduction operations |
CN111770173B (zh) * | 2020-06-29 | 2022-09-06 | 中国人民解放军国防科技大学 | 一种基于网络控制器的归约方法及系统 |
US11876885B2 (en) | 2020-07-02 | 2024-01-16 | Mellanox Technologies, Ltd. | Clock queue with arming and/or self-arming features |
US11556378B2 (en) | 2020-12-14 | 2023-01-17 | Mellanox Technologies, Ltd. | Offloading execution of a multi-task parameter-dependent operation to a network device |
JP2022108373A (ja) * | 2021-01-13 | 2022-07-26 | 富士通株式会社 | 情報処理装置、情報処理方法、およびシステム |
US11922237B1 (en) | 2022-09-12 | 2024-03-05 | Mellanox Technologies, Ltd. | Single-step collective operations |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59140694A (ja) * | 1983-01-31 | 1984-08-13 | Sharp Corp | ダイナミツクramのリフレツシユ方法 |
US4843540A (en) | 1986-09-02 | 1989-06-27 | The Trustees Of Columbia University In The City Of New York | Parallel processing method |
US4860201A (en) * | 1986-09-02 | 1989-08-22 | The Trustees Of Columbia University In The City Of New York | Binary tree parallel processor |
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 |
US5191578A (en) * | 1990-06-14 | 1993-03-02 | Bell Communications Research, Inc. | Packet parallel interconnection network |
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 |
US5224100A (en) * | 1991-05-09 | 1993-06-29 | David Sarnoff Research Center, Inc. | Routing technique for a hierarchical interprocessor-communication network between massively-parallel processors |
US5367692A (en) * | 1991-05-30 | 1994-11-22 | Thinking Machines Corporation | Parallel computer system including efficient arrangement for performing communications among processing node to effect an array transposition operation |
US5379415A (en) * | 1992-09-29 | 1995-01-03 | Zitel Corporation | Fault tolerant memory system |
US5802278A (en) * | 1995-05-10 | 1998-09-01 | 3Com Corporation | Bridge/router architecture for high performance scalable networking |
US5721921A (en) * | 1995-05-25 | 1998-02-24 | Cray Research, Inc. | Barrier and eureka synchronization architecture for multiprocessors |
US5923593A (en) * | 1996-12-17 | 1999-07-13 | Monolithic Systems, Inc. | Multi-port DRAM cell and memory system using same |
KR100272108B1 (ko) * | 1998-10-13 | 2000-11-15 | 윤종용 | Ieee 1394 가상 네트웍 생성방법 및 그 콘트롤러 |
JP3708801B2 (ja) * | 2000-06-16 | 2005-10-19 | 松下電器産業株式会社 | 半導体記憶装置 |
-
2002
- 2002-02-25 IL IL15751202A patent/IL157512A0/xx unknown
- 2002-02-25 JP JP2002568222A patent/JP4127791B2/ja not_active Expired - Fee Related
- 2002-02-25 CN CNB028055209A patent/CN100476785C/zh not_active Expired - Fee Related
- 2002-02-25 EP EP02719068A patent/EP1381959A4/en not_active Ceased
- 2002-02-25 CA CA002437661A patent/CA2437661A1/en not_active Abandoned
- 2002-02-25 KR KR1020037010998A patent/KR100553143B1/ko not_active IP Right Cessation
- 2002-02-25 WO PCT/US2002/005586 patent/WO2002069168A1/en active IP Right Grant
- 2002-02-25 US US10/469,000 patent/US7650434B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US7650434B2 (en) | 2010-01-19 |
JP4127791B2 (ja) | 2008-07-30 |
CN1493040A (zh) | 2004-04-28 |
CN100476785C (zh) | 2009-04-08 |
IL157512A0 (en) | 2004-03-28 |
KR100553143B1 (ko) | 2006-02-22 |
US20040078493A1 (en) | 2004-04-22 |
EP1381959A1 (en) | 2004-01-21 |
CA2437661A1 (en) | 2002-09-06 |
JP2004536372A (ja) | 2004-12-02 |
EP1381959A4 (en) | 2008-10-29 |
WO2002069168A1 (en) | 2002-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100553143B1 (ko) | 계산 구조에 대한 전역 트리 네트워크 | |
US8001280B2 (en) | Collective network for computer structures | |
US10069599B2 (en) | Collective network for computer structures | |
JP6856612B2 (ja) | 多層相互接続による分散型プロセッサを有する処理システム | |
JP4478390B2 (ja) | クラス・ネットワーク経路指定 | |
KR100586768B1 (ko) | 글로벌 인터럽트 및 배리어 네트워크 | |
US20040114609A1 (en) | Interconnection system | |
WO2007124514A2 (en) | Method and apparatus for a scalable hybrid architecture for polyvertexic extensible networks | |
Ravindran et al. | Issues in the Design of Direct Multiprocessor Networks | |
Moadeli | Quarc: an architecture for efficient on-chip communication | |
Liu et al. | Communication in a hybrid multi-layer MIMD system for computer vision |
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: 20110110 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |