KR100592753B1 - 다차원 고속 푸리에 변환의 효율적 구현 방법, 시스템 및 그에 관한 프로그램을 기록한 컴퓨터 판독가능 기록 매체와, 다차원 어레이의 효율적 재배치 방법, 시스템 및 그에 관한 프로그램을 기록한 컴퓨터 판독가능 기록 매체 - Google Patents

다차원 고속 푸리에 변환의 효율적 구현 방법, 시스템 및 그에 관한 프로그램을 기록한 컴퓨터 판독가능 기록 매체와, 다차원 어레이의 효율적 재배치 방법, 시스템 및 그에 관한 프로그램을 기록한 컴퓨터 판독가능 기록 매체 Download PDF

Info

Publication number
KR100592753B1
KR100592753B1 KR1020037011119A KR20037011119A KR100592753B1 KR 100592753 B1 KR100592753 B1 KR 100592753B1 KR 1020037011119 A KR1020037011119 A KR 1020037011119A KR 20037011119 A KR20037011119 A KR 20037011119A KR 100592753 B1 KR100592753 B1 KR 100592753B1
Authority
KR
South Korea
Prior art keywords
node
elements
array
nodes
multidimensional
Prior art date
Application number
KR1020037011119A
Other languages
English (en)
Other versions
KR20040004542A (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 KR20040004542A publication Critical patent/KR20040004542A/ko
Application granted granted Critical
Publication of KR100592753B1 publication Critical patent/KR100592753B1/ko

Links

Images

Classifications

    • 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
    • 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

Abstract

본 발명은, 네트워크를 통한 통신의 경우에 복수의 노드를 구비하는 멀티 노드 컴퓨터 시스템에서 초기에 배치된 복수의 요소를 구비하는 다차원 어레이의 다차원 고속 푸리에 변환(FFT)을 효율적으로 구현하기 위한 방법으로써, 제1의 1차원 FFT를 용이하게 하기 위해서 다차원 어레이의 복수의 요소를 네트워크 상의 멀티 노드 컴퓨터 시스템의 복수의 노드 전반에 걸쳐서 제1 차원으로 배치하는 단계와, 각 노드에 제1 차원으로 배치된 어레이의 요소들에 관하여 제1의 1차원 FFT를 수행하는 단계와, 1차원 FFT 변환된 요소들을 각 노드에 제2 차원으로 "올 투 올" 배치를 통해서 무작위 순서로 네트워크 상의 멀티 노드 컴퓨터 시스템의 다른 노드들 전반에 걸쳐서 재배치하는 단계와, 각 노드에 제2 차원으로 재배치된 어레이의 요소들에 관하여 제2의 1차원 FFT를 수행하는 단계를 구비하고, 무작위 순서는 다차원 FFT를 효율적으로 구현하도록 네트워크의 효율적인 이용을 용이하게 하는 다차원 고속 푸리에 변환 구현 방법, 시스템 및 프로그램 기억 장치에 관한 것이다. "올 투 올" 재배치와 어레이 요소는 메모리 분산형 병렬 슈퍼컴퓨터 상에서의 다차원 FFT가 아닌 애플리케이션에서 더욱 효율적으로 구현된다.

Description

다차원 고속 푸리에 변환의 효율적 구현 방법, 시스템 및 그에 관한 프로그램을 기록한 컴퓨터 판독가능 기록 매체와, 다차원 어레이의 효율적 재배치 방법, 시스템 및 그에 관한 프로그램을 기록한 컴퓨터 판독가능 기록 매체{EFFICIENT IMPLEMENTATION OF A MULTIDIMENSIONAL FAST FOURIER TRANSFORM ON A DISTRIBUTED-MEMORY PARALLEL MULTI-NODE COMPUTER}
관련 출원의 상호 참조
본 발명은 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 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 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)).
본 발명의 기술 분야
본 발명은 일반적으로, 예컨대 과학, 수학, 엔지니어링 등의 분야의 연산에 적용되는 메모리 분산형 메시지 전송 병렬 멀티 노드 컴퓨터 및 해당 시스템 소프트웨어 분야에 관한 것이다. 보다 구체적으로, 본 발명은 메모리 분산형의 병렬형 슈퍼컴퓨터의 다차원 고속 푸리에 변환(즉, "FFT")의 효율적 구현을 위한 시스템 및 방법에 관한 것이다.
푸리에 변환(즉, "FT")과 같은 선형 변환은 과학, 수학, 엔지니어링 등의 분야에서 문제의 범위를 해결하는데 폭넓게 사용되고 있다. FT는 주어진 문제를 더욱 쉽게 해결될 수 있는 것으로 변경하며, FT는 다양한 애플리케이션에 사용된다. 예컨대, 변수가 N 개인 시스템의 경우, FT는 기본적으로 N 개의 변수가 좌표 공간에서 모멘텀 공간으로 변하는 것을 나타내고, 이 때, 각 변수의 새로운 값은 과거의 모든 변수의 값들에 의존한다. 이러한 N 개 변수의 시스템은 대개 N 개 요소의 어레이로서 컴퓨터에 기억된다. FT는 통상, 고속 푸리에 변환(즉, "FFT")을 이용하여 계산된다. FFT에 관해서는 많은 표준 교과서, 예컨대 수치 해석 by Press, et al.("Numerical Recipes in Fortran", pages 490-529, by W. H. Teukolsky, W. A. Vetterling and Brian P Flannery, Cambridge Unversity Press, 1986, 1992, ISBN: 0-521-43064-X)에서 설명하고 있다. 대부분의 컴퓨터 제조업자는 FFT를 그들 특유 의 프로세서에 최적화하기 위해서 라이브러리 기능 콜(call)을 제공한다. 예컨대, FFT는 엔지니어링 앤드 사이언스 서브루틴 라이브러리에서 IBM의 RS/6000 프로세서에 완전히 최적화된다. 이들 라이브러리 루틴은 노드의 로컬 메모리에 상주하는 FFT를 수행하는 데 필요한 데이터(즉, 앞서는 요소)를 요구한다.
다차원 FFT의 경우, 다차원 어레이의 N 개의 요소는 메모리 분산형 병렬 다중노드 컴퓨터의 노드들 전반에 걸쳐서 복수의 차원으로 분산된다. 메모리 분산형 병렬 다중노드 컴퓨터 상에서 실행하는 다수의 애플리케이션은 다차원 FFT의 연산 시에 컴퓨터의 실행 시간의 대부분을 소비한다. 메모리 분산형 병렬 다중노드 컴퓨터의 개발 동기는 고속 실행이기 때문에, 분산형 어레이에 대한 다차원 FFT의 고속 연산은 매우 중요하다. 어레이의 N 개의 요소는 애플리케이션에 특정한 어떤 임의의 방식에 따라서 초기에 노드들 전반에 걸쳐서 배치된다. 다차원 FFT의 연산을 위해서, 어레이 중에서 각 노드의 일부는 x-차원으로 요소들의 완전한 행을 구성하도록 요소들의 어레이가 재배치된다. 이어서, 각 노드에서 x-차원으로 각 행에 관하여 1차원 FFT를 수행한다. 행은 노드의 일부이기 때문에, 그리고 각 행에 관한 각 1차원 FFT는 다른 것들과는 별개이기 때문에, 각 노드에 관하여 수행되는 1차원 FFT는 다른 어떤 노드와 통신할 필요가 없고 전술한 라이브러리 루틴을 이용하여 수행될 수 있다. 1차원 FFT 이후에, 어레이 요소들은 어레이 중에서 각 노드의 일부가 y-차원으로 완전한 행을 구성하도록 재배치된다. 이후에, 각 노드의 y-차원으로 각 행에 관한 1차원 FFT를 수행한다. 어레이의 차원이 2차원보다 크면, 어레이의 각 연속 차원에 대해서 x-차원과 y-차원을 벗어나서 재배치와 1차원 FFT를 반복 한다. 그 결과로 얻은 어레이는 애플리케이션에 특정한 어떤 임의의 방식으로 재배치될 수 있다.
다차원 FFT에 대해서 x-차원과 y-차원을 차례차례로 처리하는 것은 중요한 것이 아니다. 대신에, 어레이의 차원은 어떠한 순서로도 처리될 수 있다. 애플리케이션이나 컴퓨터에 따라서는, 일부의 순서가 일부의 효율성을 이용할 수 있고, 따라서 다른 순서보다 고속으로 실행될 수 있다. 예컨대, 노드들 전반에 걸쳐서 애플리케이션에 특정한 어떤 임의의 방식으로 되어 있는 초기의 어레이 배치는 y-차원의 1차원 FFT에 필요한 배치와 일치할 수 있다. 이 경우, x-차원 및 다른 어떤 나머지 차원을 취급하기 이전에, y-차원을 먼저 취급하는 것이 다차원 FFT에 대해서 최고속일 수 있다.
전술한 다차원 FFT의 구현에 있어서, 1차원 FFT들간의 각 어레이 재배치는 "올 투 올(all-to-all)" 통신 또는 재배치의 일 예이다. 올 투 올 재배치에 있어서, 메모리 분산형 병렬 멀티 노드 컴퓨터의 각 노드는 복수의 패킷을 이용하여 고유 데이터(즉, 어레이의 요소들)를 다른 모든 노드에 전송한다. 전술한 바와 같이, 메모리 분산형 병렬 멀티 노드 컴퓨터 상에서의 다차원 FFT의 고속 연산은 매우 중요하다. 전술한 구현예의 경우, 통상, 실행 시간의 대부분은 메모리 분산형 병렬 멀티 노드 컴퓨터 상의 노드들 전반에 걸쳐서 어레이를 재배치하는 데 소비된다. 보다 구체적으로, 실행 시간의 대부분은 메모리 분산형 병렬 멀티 노드 컴퓨터 상의 노드들 전반에 걸쳐서 어레이 요소들의 "올 투 올" 재배치 시에 소비된다.
따라서, 메모리 분산형 병렬 슈퍼컴퓨터에서 다차원 FFT를 효율적으로 구현 하는 시스템 및 방법을 제공하는 기술상의 필요가 존재한다. 특히, 다차원 FFT를 효율적으로 구현하기 위해서 메모리 분산형 병렬 슈퍼컴퓨터에서 "올 투 올" 재배치를 효율적으로 구현하는 시스템 및 방법을 제공하는 기술상의 필요가 존재한다.
따라서, 본 발명의 목적은 메모리 분산형 병렬 슈퍼컴퓨터 상에 배치된 어레이에 관하여 다차원 FFT를 효율적으로 구현하는 시스템 및 방법을 제공하는 데 있다.
본 발명의 다른 목적은 메모리 분산형 병렬 슈퍼컴퓨터에 관하여 "올 투 올" 재배치를 효율적으로 구현함으로써 어레이에 관하여 다차원 FFT를 효율적으로 구현하는 시스템 및 방법을 제공하는 데 있다.
본 발명의 또 다른 목적은 메모리 분산형 병렬 슈퍼컴퓨터 상에서 다차원 FFT가 아닌 애플리케이션에서 "올 투 올" 재배치를 효율적으로 구현하는 시스템 및 방법을 제공하는 데 있다.
본 발명의 일 실시예에 따르면, 네트워크를 통한 통신의 경우에 복수의 노드를 구비하는 멀티 노드 컴퓨터 시스템에서 초기에 배치된 복수의 요소를 구비하는 다차원 어레이의 다차원 고속 푸리에 변환(FFT)을 효율적으로 구현하기 위한 방법으로써, 제1의 1차원 FFT를 용이하게 하기 위해서 상기 다차원 어레이의 상기 복수의 요소를 상기 네트워크 상의 상기 멀티 노드 컴퓨터 시스템의 상기 복수의 노드 전반에 걸쳐서 제1 차원으로 배치하는 단계와, 각 노드에 상기 제1 차원으로 배치된 어레이의 요소들에 관하여 상기 제1의 1차원 FFT를 수행하는 단계와, 상기 1차 원 FFT 변환된 요소들을 각 노드에 제2 차원으로 "올 투 올" 배치를 통해서 무작위 순서로 상기 네트워크 상의 상기 멀티 노드 컴퓨터 시스템의 다른 노드들 전반에 걸쳐서 재배치하는 단계와, 각 노드에 상기 제2 차원으로 재배치된 어레이의 요소들에 관하여 제2의 1차원 FFT를 수행하는 단계를 구비하고, 상기 무작위 순서는 상기 다차원 FFT를 효율적으로 구현하도록 상기 네트워크의 효율적인 이용을 용이하게 하는 다차원 고속 푸리에 변환 구현 방법이 제공된다.
본 발명의 다른 실시예에 따르면, 네트워크를 통한 통신의 경우에 복수의 노드를 구비하는 멀티 노드 컴퓨터 시스템에서 초기에 배치된 복수의 요소를 구비하는 다차원 어레이의 다차원 고속 푸리에 변환(FFT)을 효율적으로 구현하기 위한 시스템으로써, 제1의 1차원 FFT를 용이하게 하기 위해서 상기 다차원 어레이의 상기 복수의 요소를 상기 네트워크 상의 상기 멀티 노드 컴퓨터 시스템의 상기 복수의 노드 전반에 걸쳐서 제1 차원으로 배치하는 수단과, 각 노드에 상기 제1 차원으로 배치된 어레이의 요소들에 관하여 상기 제1의 1차원 FFT를 수행하는 수단과, 상기 1차원 FFT 변환된 요소들을 각 노드에 제2 차원으로 "올 투 올" 배치를 통해서 무작위 순서로 상기 네트워크 상의 상기 멀티 노드 컴퓨터 시스템의 다른 노드들 전반에 걸쳐서 재배치하는 수단과, 각 노드에 상기 제2 차원으로 재배치된 어레이의 요소들에 관하여 제2의 1차원 FFT를 수행하는 수단을 구비하고, 상기 무작위 순서는 상기 다차원 FFT를 효율적으로 구현하도록 상기 네트워크의 효율적인 이용을 용이하게 하는 다차원 고속 푸리에 변환 구현 시스템이 제공된다.
본 발명의 또 다른 실시예에 따르면, 네트워크를 통한 통신의 경우에 복수의 노드를 구비하는 멀티 노드 컴퓨터 시스템에서 초기에 배치된 복수의 요소를 구비하는 다차원 어레이의 다차원 고속 푸리에 변환(FFT)을 효율적으로 구현하기 위한 방법을 수행하기 위해서 머신에 의해 실행 가능한 명령의 프로그램을 유형(有形)으로 구현하는 프로그램 기억 장치로써, 상기 다차원 고속 푸리에 구현 방법은, 제1의 1차원 FFT를 용이하게 하기 위해서 상기 다차원 어레이의 상기 복수의 요소를 상기 네트워크 상의 상기 멀티 노드 컴퓨터 시스템의 상기 복수의 노드 전반에 걸쳐서 제1 차원으로 배치하는 단계와, 각 노드에 상기 제1 차원으로 배치된 어레이의 요소들에 관하여 상기 제1의 1차원 FFT를 수행하는 단계와, 상기 1차원 FFT 변환된 요소들을 각 노드에 제2 차원으로 "올 투 올" 배치를 통해서 무작위 순서로 상기 네트워크 상의 상기 멀티 노드 컴퓨터 시스템의 다른 노드들 전반에 걸쳐서 재배치하는 단계와, 각 노드에 상기 제2 차원으로 재배치된 어레이의 요소들에 관하여 제2의 1차원 FFT를 수행하는 단계를 구비하고, 상기 무작위 순서는 상기 다차원 FFT를 효율적으로 구현하도록 상기 네트워크의 효율적인 이용을 용이하게 하는 것인 다차원 고속 푸리에 변환을 구현하기 위한 프로그램 기억 장치가 제공된다.
본 발명의 또 다른 실시예에 따르면, 네트워크를 통한 통신의 경우에 복수의 노드를 구비하는 멀티 노드 컴퓨터 시스템에서 초기에 배치된 복수의 요소를 구비하는 다차원 어레이를 효율적으로 재배치하기 위한 방법으로써, 상기 다차원 어레이 재배치 방법은, 상기 요소들을 각 노드에 "올 투 올" 배치를 통해서 무작위 순서로 상기 네트워크 상의 상기 멀티 노드 컴퓨터 시스템의 다른 노드들 전반에 걸쳐서 재배치하는 단계를 구비하고, 상기 무작위 순서는 상기 네트워크의 효율적인 이용을 용이하게 하는 것인 다차원 어레이 재배치 방법이 제공된다.
본 발명의 또 다른 실시예에 따르면, 네트워크를 통한 통신의 경우에 복수의 노드를 구비하는 멀티 노드 컴퓨터 시스템에서 초기에 배치된 복수의 요소를 구비하는 다차원 어레이를 효율적으로 재배치하기 위한 시스템으로써, 상기 다차원 어레이 재배치 시스템은, 상기 요소들을 각 노드에 "올 투 올" 배치를 통해서 무작위 순서로 상기 네트워크 상의 상기 멀티 노드 컴퓨터 시스템의 다른 노드들 전반에 걸쳐서 재배치하는 수단을 구비하고, 상기 무작위 순서는 상기 네트워크의 효율적인 이용을 용이하게 하는 것인 다차원 어레이 재배치 시스템이 제공된다.
본 발명의 또 다른 실시예에 따르면, 네트워크를 통한 통신의 경우에 복수의 노드를 구비하는 멀티 노드 컴퓨터 시스템에서 초기에 배치된 복수의 요소를 구비하는 다차원 어레이를 효율적으로 재배치하기 위한 방법을 수행하기 위해서 머신에 의해 실행 가능한 명령의 프로그램을 유형(有形)으로 구현하는 프로그램 기억 장치로써, 상기 다차원 어레이 재배치 방법은, 상기 요소들을 각 노드에 "올 투 올" 배치를 통해서 무작위 순서로 상기 네트워크 상의 상기 멀티 노드 컴퓨터 시스템의 다른 노드들 전반에 걸쳐서 재배치하는 단계를 구비하고, 상기 무작위 순서는 상기 네트워크의 효율적인 이용을 용이하게 하는 것인 다차원 어레이 재배치를 수행하기 위한 프로그램 기억 장치가 제공된다.
본 발명의 목적, 특징 및 이점은 첨부 도면과 함께 설명되는 다음의 상세한 설명을 감안하면 당업자에게 명백해질 것이다.
도 1은 본 발명에 따른 2차원 3 ×3 토러스 네트워크를 이용하여 다차원 그리드를 통해서 연결된 9 개의 노드를 포함하는 예시적인 메모리 분산형 병렬 슈퍼컴퓨터를 도시하는 도면이다.
도 2는 본 발명에 따라서 도 1에 도시한 메모리 분산형 병렬 슈퍼컴퓨터의 예시적인 노드를 더욱 상세하게 표시하는 도면이다.
도 3은 본 발명에 따라서 다차원 FFT에 대해서 효율적으로 구현될 수 있는 예시적인 2차원의 9행 ×9열 어레이를 도시하는 도면이다.
도 4는 본 발명에 따라서 도 1에 도시한 슈퍼컴퓨터의 노드들 전반에 걸쳐서 도 3의 2차원 어레이에 관한 예시적인 배치를 도시하는 도면이다.
도 5는 본 발명에 따라서 도 1에 도시한 슈퍼컴퓨터의 노드들 전반에 걸쳐서 배치된 2차원 어레이의 예시적인 제1의 1차원 FFT를 도시하는 도면이다.
도 6은 본 발명에 따라서 도 5에 도시한 제1의 1차원 FFT 후에 얻은 2차원 어레이의 예시적인 재배치를 도시하는 도면이다.
도 7은 본 발명에 따라서 도 6에 도시한 재배치 어레이의 예시적인 제2의 1차원 FFT를 도시하는 도면이다.
도 8은 본 발명에 따른 예시적인 방법의 흐름도로서, 도 4 내지 도 7에 도시한 2차원 FFT의 구성을 묘사한다.
도 9는 본 발명에 따른 예시적인 방법의 흐름도로서, 예시적인 노드 상의 출력 큐의 채움 상태(filling)를 묘사하며, 여기서, 패킷은 메모리 분산형 병렬 슈퍼컴퓨터 상의 다른 노드를 향한다.
도 10은 본 발명에 따른 예시적인 방법의 흐름도로서, 예시적인 노드 상의 출력 큐의 패킷이 토러스 네트워크(100)의 후속 삽입을 위해서 주입 FIFO로 유입되는 방법을 묘사한다.
본 발명은 메모리 분산형 병렬 슈퍼컴퓨터에서 다차원 고속 푸리에 변환(즉, "FFT")을 효율적으로 구현하는 시스템 및 방법에 관한 것이다. 보다 구체적으로, 본 발명은 다차원 FFT의 효율적 구현을 달성하기 위해서 메모리 분산형 병렬 슈퍼컴퓨터의 노드들에 배치된 요소들의 효율적인 "올 투 올(all-to-all)" 재배치를 구현한다.
본 발명에 따르면, FFT는 메모리 분산형 병렬 슈퍼컴퓨터의 노드들 전반에 걸쳐서 다차원 어레이의 하나 또는 그 이상의 "올 투 올" 재배치를 필요로 하는, 일련의 1차원 변환으로서의, 메모리 분산형 병렬 슈퍼컴퓨터 상에 구성된다. 메모리 분산형 병렬 슈퍼컴퓨터는 토러스 기반 네트워크를 이용하여 슈퍼컴퓨터의 노드들 간에 연결 및 통신을 행한다. 후술하는 바와 같이, 각 노드는 하드웨어 라우터를 구성하여, 토러스 기반 네트워크를 통해서 연결된 슈퍼컴퓨터의 노드들 전반에 걸쳐 어레이의 요소들을 포함하는 패킷을 효율적으로 라우팅한다. 따라서, 본 발명은 본 발명에 따른 효율적인 FFT 구현을 얻기 위해서, 다차원 어레이에 관한 일련의 1차원 변환으로서의 다차원 FFT 구현을 앞서는 하드웨어 라우팅에 결합한다.
또한, 본 발명에 따르면, 메모리 분산형 병렬 슈퍼컴퓨터는 복수의 노드를 구비하고, 각 노드는 로컬 메모리 상에서 동작하는 적어도 하나의 프로세서를 포함 한다. 노드들은 다차원 그리드로서 연결되어 있고, 이들은 그리드 링크를 통해서 통신한다. 일반성을 잃지 않고도 본 발명의 설명을 당업자가 쉽게 이해할 수 있도록 하기 위해서, 슈퍼컴퓨터의 다차원 노드 그리드는 예시적인 2차원 그리드로서 설명될 것이다. 다음의 설명에서는 2차원 노드 그리드만을 설명한다고 하는 사실에도 불구하고, 본 발명의 범주 내에서, 본 발명의 교시에 기초하여 다른 차원의 노드 그리드를 쉽게 제공할 수 있다는 점을 예상할 수 있다. 메모리 분산형 병렬 슈퍼컴퓨터는 2차원 또는 더욱 높은 차원의 토러스 기반 아키텍쳐를 이용할 수 있다는 점을 유념한다. 이 외에도, 일반성을 잃지 않고도 본 발명의 설명을 당업자가 쉽게 이해할 수 있도록 하기 위해서, 다차원 FFT에 사용되는 다차원 어레이는 예시적인 2차원 어레이로서 설명될 것이다. 다음의 설명에서는 2차원 어레이만을 설명한다고 하는 사실에도 불구하고, 본 발명의 범주 내에서, 본 발명의 교시에 기초하여 더욱 고차원의 어레이를 쉽게 제공할 수 있다는 점을 예상할 수 있다. 토러스 기반 아키텍쳐의 차원수와 어레이의 차원수 간에는 대응성이 없다는 점을 더 유념한다. 어레이는 본 발명에 따라서 다차원 FFT를 구성하기 위해서 슈퍼컴퓨터의 노드들 또는 서브세트의 노드들 전반에 걸쳐서 배치될 수 있도록 충분한 크기로 이루어져야 한다.
도 1은 본 발명에 따라서, 2차원의 3 ×3 토러스 네트워크(100)를 이용하여 다차원 그리드를 통해서 연결된 9 개의 노드를 포함하는 메모리 분산형 병렬 슈퍼컴퓨터의 예시적인 도면이다. 노드의 수는 간략성과 명료성을 위해서 9개로 제한한 예시적인 방식으로 되어 있다는 점과, 노드의 수는 메모리 분산형 병렬 슈퍼컴퓨터 의 특정한 아키텍쳐 요건에 따라서 변한다는 점을 유념한다. 도 1은 Q11 내지 Q33으로서 표기한 9 개의 노드를 도시하고 있고, 노드 한 쌍은 하나의 그리드 링크에 의해서 연결되어 있다. 전체적으로, 9 개 노드의 토러스 네트워크(100)는 18 개의 그리드 링크에 의해서 연결되어 있고, 각 노드는 개개의 그리드 링크를 경유하여 토러스 네트워크(100)에 있는 다른 4 개의 노드에 직접 연결되어 있다. 메시(mesh)와를 달리, 예시적인 2차원 토러스 네트워크(100)에는 에지 노드가 없다는 점을 유념한다. 예컨대, 노드 Q11은 그리드 링크(102)를 경유하여 노드 Q31에 연결되고, 그리드 링크(104)를 경유하여 노드 Q13에 연결되며, 그리드 링크(106)를 경유하여 노드 Q21에 연결되고, 끝으로 그리드 링크(108)를 경유하여 노드 Q12에 연결된다. 다른 예로서, 노드 Q22는 그리드 링크(110)를 경유하여 노드 Q12에 연결되고, 그리드 링크(112)를 경유하여 노드 Q21에 연결되며, 그리드 링크(114)를 경유하여 노드 Q32에 연결되고, 끝으로 그리드 링크(116)를 경유하여 노드 Q23에 연결된다. 또 다른 노드들도 마찬가지로 연결된다.
도 1을 더 참조하면, 노드간에 통신되는 데이터(즉, 어레이의 요소들)는 네트워크를 통해서 하나 또는 그 이상의 패킷으로 전송된다. 한 쌍의 노드 사이에 주어진 통신의 경우, 통신될 데이터의 량이 토러스 네트워크(100)에 의해서 지원되는 패킷 크기를 초과하면 복수 개의 패킷이 필요하다. 패킷은 패킷 헤더와 그 패킷에 의해서 운반되는 데이터를 구비한다. 패킷 헤더는 패킷을 발원지 노드에서 종착지 노드로 전송하기 위해서 토러스 네트워크(100)가 필요로 하는 정보를 포함한다. 본원의 메모리 분산형 병렬 슈퍼컴퓨터의 경우, 네트워크의 각 노드는 논리 어드레스 에 의해서 식별되고, 패킷 헤더는 패킷이 종착지에 의해서 식별되는 네트워크 상의 노드에 자동으로 라우팅되도록 종착지 어드레스를 포함한다.
도 2는 본 발명에 따라서 도 1에 도시된 메모리 분산형 병렬 슈퍼컴퓨터의 예시적인 노드, 예컨대 노드 Q11의 더욱 상세한 표현(200)이다. 노드 Q11은 로컬 메모리(204)에서 동작하는 적어도 하나의 프로세서(202)를 구비한다. 노드는 노드 Q11을 도 1에 구체적으로 예시된 인접 노드 Q31, Q13, Q21 및 Q12에 각각 연결하는 그리드 링크(102, 104, 106 및 108)를 경유하여 패킷을 라우팅, 즉 송수신하는 라우터(206)를 더 구비한다. 또한, 노드는 라우터(206)에 의해서 수신된 패킷을 일시 기억하기 위한 수신용 버퍼(208)를 구비하고, 이 패킷은 로컬 프로세서(202)로 향한다. 로컬 프로세서(202)는 수신용 버퍼(208)를 쉽게 주기적으로 폴링하여 수신용 버퍼에 패킷이 있는 지를 판단하고, 이어서 수신용 버퍼(208)에 일시 기억되어 있는 패킷을 호출할 수 있다. 특정한 애플리케이션과 패킷에 따라서, 로컬 프로세서(202)는 패킷의 내용을 로컬 메모리(204)에 기록할 수 있다.
도 2를 더 참조하면, 노드 Q11은 구체적으로 X+, X-, Y+ 및 Y-로 표기된 4 개의 인젝션 선입선출(즉, "FIFO") 버퍼(210)를 구비한다.
프로세서는 라우터를 통해서 나가는 패킷(outbound packet)을 로컬 메모리(204)의 하나 또는 그 이상의 출력 큐(212)로 배치하고, 이것은 다른 노드로 향하는 패킷을 기억한 후 패킷은 인젝션 FIFO(210)에 배치될 수 있다. 인젝션 FIFO가 인젝션 FIFO가 충만되어 있지 않은 동안에는 프로세서는 라우터를 통해서 나가는 패킷을 인젝션 FIFO(210)에 배치한다. 특정한 패킷이 인젝션 FIFO(210)의 헤드 에 도달한 때에, 패킷은 라우터(206)에 의해서 인젝션 FIFO(210)으로부터 제거되고 라우터(206)는 그 패킷을 그 특정한 패킷의 종착지 노드를 향하게 그리드 링크(102, 104, 106 및 108)에 싣는다. 4 개의 인젝션 FIFO(210)는 라우터(206)에 의해서 그리고 프로세서(202)의 하드웨어에 의해서 동등하게 취급된다.
도 2를 좀 더 참조하면, 라우터(206)는 몇 가지의 동시 라우팅 특성을 구비한다. 라우팅은 먼저, 가상의 컷스루 라우팅을 표시한다. 예컨대, 여러 개의 그리드 링크 중 하나의 그리드 링크를 통한 유입 패킷이 노드 Q11의 로컬 프로세서(202)로 향하지 않으면, 라우터(206)는 패킷을 여러 개의 유출 그리드 링크(102, 104, 106 및 108) 중 하나의 유출 그리드 링크로 전송한다. 라우터(206)는 로컬 프로세서(202)에 관계하는 일 없이 그 전송을 수행한다. 라우팅은 최단 경로 라우팅을 더 제공한다. 예컨대, 노드 Q11에서부터 그리드 링크(104)를 거쳐서 노드 Q13으로 전송(도 1 및 도 8 참조)되는 패킷은 최단 경로 루트를 제공한다. 다른 어떤 경로는 그보다 길것이다. 다른 예로서, 노드 Q11에서부터 노드 Q22로 전송되는 패킷은 그리드 링크(106 및 112)를 통하거나 이와 달리 그리드 링크(108 및 110)을 통해서 전송될 수 있다. 이 타입의 라우팅은 적응형 타입의 라우팅을 제공한다. 따라서, 패킷이 하나의 노드를 출발하여 토러스 네트워크(100)를 통해서 다른 노드로 전송됨에 있어서는 그리드 링크의 선택이 있을 수 있다. 이전의 예의 경우, 패킷은 노드 Q11을 출발하여 그리드 링크(106)를 거치거나 그리드 링크(108)을 거칠 수 있다. 적응형 라우팅에 의해서, 라우터(206)는 패킷에 대해서 통화량이 적은 유출 그리드 링크를 선택할 수도 있고, 다른 일부 기준에 기초하여 유출 그리드 링크를 선 택할 수도 있다. 적응형 라우팅은 패킷의 발원지 노드, 예컨대 노드 Q11에서 수행될 뿐만 아니라, 패킷이 도 1에 도시된 토러스 네트워크(100)를 통해서 그 패킷의 종착지 노드로 가는 도중의 각 중간 노드에서도 수행될 수 있다는 점을 유념한다. 도 9 및 도 10을 참조하여 후술하는 설명은, 본 발명이 토러스 네트워크(100)를 통해서 슈퍼컴퓨터의 노드들 전반에 걸쳐서 패킷의 앞서는 라우팅을 수행하는 방법에 관하여 구체적으로 설명한다.
도 3은 본 발명에 따라서 다차원 FFT에 대해 효율적으로 구성될 수 있는 81 개의 요소를 포함하는 예시적인 2차원의 9행 ×9열 어레이(300)이다. 예시적인 2차원 어레이(300)는 다른 수의 행과 열을 포함하는 다른 2차원 어레이(예컨대, 10행 ×11열의 2차원 어레이)로 쉽게 확장되고, 이것을 이용하여 본 발명에 따라서 메모리 분산형 병렬 슈퍼컴퓨터에 관하여 FFT를 실시할 수 있다는 점을 유념한다. 어레이(200)의 경우, 어레이의 제1 행은 요소 A11, A12...A19를 구비하고, 어레이의 제1 열은 요소 A11, A21...A91을 구비한다.
도 4는 도 3에 도시한 2차원 어레이(300)가 본 발명에 따라서 도 1의 노드 Q11 내지 Q33에 걸쳐서 배치되는 방법의 예시적인 배치 도면(400)이다. 어레이는 초기에 하나의 애플리케이션에 특정한 어떤 임의의 방식으로 노드들 전반에 걸쳐서 배치될 수 있다는 점을 유념한다. 본 발명에 따르면, 어레이는 각 노드 Q11...Q33에 관한 어레이의 일부가 도 4에 도시된 배치를 구성하도록 재배치된다. 이 재배치는 도 5 및 도 6을 참조하여 후술되는 것과 유사하다. 배치 도면 400에서 구체적으로 묘사되고 있는 바와 같이, 도 1의 각 노드는 도 3에 도시된 2차원 어레이(300) 의 일부를 포함한다. 예컨대, 노드 Q11은 어레이(300)의 제1 행, 즉 요소 A11, A12...A19를 구비한다. 다른 예로서, 노드 Q12는 어레이(300)의 제2 행, 즉 요소 A21, A22...A23을 구비한다. 도 1에 도시된 다른 노드 Q13 내지 Q33은 도 4에 도시된 배치 도면(400)에 구체적으로 도시된 바와 같이 어레이(300)의 각 행(3 내지 9)을 구비한다는 점을 유념한다. 도 4의 예시적인 배치의 경우, 특정한 노드를 어레이 요소들로 된 특정한 행에 할당하는 것은 중요한 것이 아니다. 대신에, 어떠한 할당도 가능하다는 점을 유념한다. 각종 애플리케이션 또는 컴퓨터 또는 애플리케이션과 컴퓨터 모두에 대해서, 일부의 할당이 애플리케이션 또는 컴퓨터 또는 애플리케이션과 컴퓨터 모두에 의해서 제공되는 효율성을 이용하고, 따라서 다른 할당보다 고속 실행을 만들어 낼 수 있다. 예컨대, 다차원 FFT를 수행하는 가장 빠른 방법은 노드 Q11 및 Q12의 할당을 도 4에 도시한 것과 반대로 하는 것일 수도 있다.
도 5는 도 1에 도시된 2차원 토러스 네트워크(100)를 통해서 노드 Q11 내지 Q33에 걸쳐서 배치된 도 4의 2차원 어레이에 관한 제1의 1차원 FFT를 묘사하는 예시적인 도면(500)이다. 구체적으로 전술한 바와 같이, 본 발명에 따른 다차원 FFT는 일련의 1차원 FFT를 수행함으로써 달성된다. 따라서, 본 발명에 따르면, 2차원 어레이(300)의 다차원 FFT는 일련의 1차원 FFT로서 구현될 수 있다. 따라서, 1차원 FFT는 각 노드에 배치된 요소들의 각 행 상에서 수행된다. 예컨대, 1차원 FFT는 노드 Q11에 배치된 요소들, 즉 노드 Q11에 배치된 어레이(300) 제1 행의 요소들에 대해서 수행된다. 1차원 FFT는 각 노드 Q12 내지 Q33의 요소들(즉, 요소들로 된 행 들)에 대해서 수행된다. 그 결과는 제1의 1차원 FFT에 의해서 변환되는 요소들의 어레이이다. 보다 구체적으로, 각 노드의 각 행에 관한 1차원 FFT의 결과는 도 5에서 구체적으로 도시한 바와 동일한 길이의 행이다. 예컨대, 1차원 FFT는 도 4의 노드 Q11에서의 제1 행(이 제1 행은 요소 A11, A12...A19를 구비한다)에 관하여 수행되어, 도 5의 노드 Q11에서의 제1 행(이 제1 행은 요소 B11, B12...B19를 구비한다)이 된다. 또한, 각 노드의 각 행에 관하여 수행되는 1차원 FFT는 다른 노드의 다른 어떤 행에 관하여 수행되는 1차원 FFT와는 별개이다. 도 4에 도시한 특정한 데이터 배치에 의해서, 각 노드는 도 1의 토러스 네트워크(100)에 있는 다른 어떤 노드와 통신하는 일 없이 상기 각 노드에 배치된 요소들의 행에 관하여 1차원 FFT를 수행할 수 있다. 따라서, 노드들 간에는 통신이 필요하지 않기 때문에, 이 1차원 FFT는 고속으로 수행된다. 결과적으로 얻은 도 5의 행 이외에도, 각 노드에서, 원래의 도 4의 행은 계속해서 존재하고 특정한 애플리케이션에 대해서 중요하지만, 원래의 행은 도 6 및 도 7에 구체적으로 도시한 바와 같이 본 발명에 따라서 다차원 FFT에 필요한 일련의 FFT 중에서 제2의 1차원 FFT에 대해서는 더 이상 필요하지 않다.
도 6은 도 5의 제1 차원 FFT를 통해서 변환된 각각의 결과적인 행의 요소들이 본 발명에 따라서 제2 차원 FFT를 수행하기 위해서 노드 Q11 내지 Q33에 걸쳐서 재배치되는 방법을 묘사하는 예시적인 "올 투 올" 재배치 도면(600)이다. 보다 구체적으로, 도 5의 각 노드 Q11 내지 Q33에 재배치되어 있는 각각의 결과적인 행의 요소들은 각 연속 노드가 도 6에 구체적으로 도시된 바와 같이 연속되는 열의 요소 들을 수신하도록 토러스 네트워크(100)에서 재배치된다. 이 효율적인 재배치가, 본 발명에 따라서 메모리 분산형 병렬 슈퍼컴퓨터에서 다차원 FFT를 효율적으로 구현할 수 있는 "올 투 올" 재배치이다. 예컨대, 제1 모드 Q11은 제1 열의 요소들, 즉 각 노드 Q11...Q33로부터의 제1 요소들을 수신한다. 다른 예로서, 노드 Q12는 제2 열의 요소들, 즉 각 노드 Q11...Q33로부터의 요소들을 수신한다. 이 재배치는 도 5의 각 열에 대해서 수행된다. 도 6의 예시적인 재배치의 경우, 특정한 노드를 어레이 요소들로 된 특정한 행에 할당하는 것은 중요한 것이 아니다. 대신에, 어떠한 할당도 가능하다는 점을 유념한다. 각종 애플리케이션 또는 컴퓨터 또는 애플리케이션과 컴퓨터 모두에 대해서, 일부의 할당이 애플리케이션 또는 컴퓨터 또는 애플리케이션과 컴퓨터 모두에 의해서 제공되는 효율성을 이용하고, 따라서 다른 할당보다 고속 실행을 만들어 낼 수 있다. 예컨대, 다차원 FFT를 수행하는 가장 빠른 방법은 노드 Q11 및 Q12의 할당을 도 6에 도시한 것과 반대로 하는 것일 수도 있다. 도 9 및 도 10을 참조하여 후술하는 설명은, 본 발명이 토러스 네트워크(100)를 통해서 슈퍼컴퓨터의 노드들 전반에 걸쳐서 어레이 요소들의 "올 투 올" 재배치를 수행하는 방법에 관하여 구체적으로 설명한다. 도 6에 도시한 재배치의 경우, Q11...Q33 노드들로부터의 각 노드는 단일의 어레이 요소를 다른 모든 노드에 전송한다. 다음의 설명은 어레이의 각 요소의 데이터량이 단일의 패킷으로 운반되는 데이터량보다 많다고 가정한다. 따라서, 어레이의 각 요소를 토러스 네트워크(100)를 통해서 종착지 노드에 전송하기 위해서는 복수 개의 패킷이 필요하다. 이것은, 매우 큰 어레이 크기 때문에 각 노드가 많은 어레이 요소를 다른 모든 노드에 전송하 여 통상 패킷이 많이 필요한 통상적인 실상의 재배치와 흡사하다.
도 7은 본 발명에 따라서 도 1의 2차원 토러스 네트워크(100)를 통해 노드 Q11 내지 Q33에 걸쳐서 재배치된 도 6의 2차원 어레이에 관해서 제2의 1차원 FFT를 묘사하는 예시적인 도면(700)이다. 구체적으로 전술한 바와 같이, 본 발명에 따른 다차원 FFT는 일련의 1차원 FFT를 수행함으로써 달성되며, 도 7은 본 발명에 따른 그 시리즈(that series)로 제2의 1차원 FFT를 묘사하고 있다. 따라서, 1차원 FFT는 도 5에 도시된 바와 같이 각 노드에 배치된 열의 요소들에 관해서 수행된다. 예컨대, 1차원 FFT는 노드 Q11에 배치된 요소들, 즉 노드 Q11에 행으로서 배치되어 도 5의 제1 열을 형성하는 도 6의 요소들 B11, B21...B91에 대해서 수행된다. 또한, 1차원 FFT는 각 노드 Q12 내지 Q33에서 여러 개의 요소들로 된 행들(즉, 도 5에 도시된 요소들의 연속 열들로부터 배치된 것)에 관하여 수행된다. 각 행에 관한 1차원 FFT의 결과는 도 7에 구체적으로 도시된 바와 동일한 길이의 행이 된다. 예컨대, 요소들 B11, B21...B91을 구비하고 도 6에 도시된 노드 Q11의 제1 행에 관하여 수행되는 1차원 FFT는 요소들 C11, C21...C91을 구비하는 도 7의 노드 Q11의 제1 행이 된다. 제1 FFT와 관련하여 전술한 바와 같이, 각 노드의 각 행에 관하여 수행되는 1차원 FFT는 다른 노드의 다른 어떤 행에 관하여 수행되는 1차원 FFT와는 별개이다. 도 6에 도시된 특정한 데이터 배치에 의해서, 각 노드는 도 1의 토러스 네트워크(100) 상의 다른 어떤 노드와 통신하는 일 없이 상기 각 노드에 배치된 요소들의 행에 관하여 1차원 FFT를 수행할 수 있다. 따라서, 노드들 간에 통신이 필요없기 때문에, 1차원 FFT는 고속으로 수행된다.
도 8은 2차원 토러스 네트워크(100)를 이용하여 슈퍼컴퓨터의 노드들 Q11...Q33 간에 통신하는 도 1의 메모리 분산형 병렬 슈퍼컴퓨터 상의 어레이의 2차원 FFT 구현을 도시하는 예시적인 방법의 흐름도이다. 다음의 설명에서, 도 8은 2차원 FFT를 효율적으로 수행하기 위해서 도 1 내지 도 7를 기초로 하여 설명될 것이다. 단계 802에서, 도 1의 메모리 분산형 병렬 슈퍼컴퓨터에서 도 3에 예시한 2차원 어레이의 다차원 FFT를 시작한다. 단계 802에서는 도 3에 예시한 어레이가 어떤 애플리케이션에 특정될 수 있는 어떤 임의의 방식으로 노드들 전반에 걸쳐서 배치된다는 점을 유념한다. 단계 804에서, 어레이(300)의 요소들(즉, 데이터)을 도 4에 구체적으로 예시한 바와 같이 노드들 Q11...Q33에 걸쳐서 효율적으로 재배치한다. 단계 806에서, 각 노드는 도 4에 예시한 바와 같이 상기 각 노드에 기억된 어레이의 요소들의 행에 관하여 (일련의 1차원 FFT 중에서) 제1의 1차원 FFT를 수행하고, 그 결과는 도 5에 구체적으로 예시되어 있다. 도 5 및 도 6과 관련하여 설명한 바와 같이, 1차원 FFT 변환된 요소들의 열들은 단계 808에서 도 1의 토러스 기반 아키텍쳐를 이용하여 슈퍼컴퓨터의 노드들 Q11...Q33에 걸쳐서 재배치된다. 단계 810에서, 각 노드는, 도 5에서 예시한 (도 6에서 요소들의 행으로서 배치되어 있는) 제1의 1차원 FFT 변환된 요소들의 연속 열에 관하여 제2의 1차원 FFT를 수행한다. 제2의 1차원 FFT 결과는 도 7에 도시되어 있다. 단계 812에서, 도 1의 슈퍼컴퓨터에서 도 3에 도시한 2차원 어레이의 다차원 FFT를 종료한다. 구체적으로 전술한 바와 같이, 2 회의 1차원 FFT 사이에는 노드 Q11...Q33 전반에 걸쳐서 요소들의 고속 재배치가 이루어진다.
노드들 전반에 걸쳐서 요소들의 재배치와 결합된 메모리 분산형 병렬 슈퍼컴퓨터의 노드들 전반에 걸쳐서 배치된 요소들의 어레이에 관하여 전술한 다차원 FFT는 본 발명을 예시한다. 보다 구체적으로, 본 발명은 일련의 1차원 FFT와 결합된 토러스 기반 아키텍쳐의 효율적인 하드웨어 라우팅을 이용하여 메모리 분산형 병렬 슈퍼컴퓨터 상에서 다차원 FFT의 효율적인 구현을 달성한다. 전술한 바와 같이, 본 발명에 따른 교시를 이용하여, 효율적인 다차원 FFT를 다른 어레이 차원수로, 다른 어레이 크기로, 그리고 다른 토러스 네트워크 차원수, 예컨대 3차원 토러스로 수행할 수 있다. 또한, 본 발명에 따른 교시를 이용하여, 임의 차원의 토러스 네트워크 상에서 메모리 분산형 병렬 슈퍼컴퓨터의 노드들 간에 "올 투 올" 통신을 수행할 수 있다.
도 9는 본 발명에 따른 메모리 분산형 병렬 슈퍼컴퓨터 상에서, 하나 또는 그 이상의 출력 큐(212)를 도 2의 예시적인 노드 Q11에 채우는 것을 묘사하고, 이 때, 복수의 패킷이 다른 노드, 예컨대 노드 Q22 및 Q33을 향하는 예시적인 방법의 흐름도(900)이다. 앞서 도 6에 예시한 "올 투 올" 재배치는 본 발명에 따라서 다음과 같이 구현된다. Qxy는 x-좌표값 x와 y-좌표값 y(예컨대, x=1; y=1)를 갖는 포괄적인 노드(예컨대, 노드 Q11)를 나타낸다고 가정한다. 따라서, "올 투 올" 재배치에 따라서, 노드 Qxy(예컨대, 노드 Q11)는 복수의 전체 패킷(즉, k 개의 패킷)을 a와 b가 모든 경우의 수인 모든 노드 Qab(예컨대, 도 1에 도시된 바와 같은 Q12, Q13; Q21, Q22, Q23; 및 Q31, Q3, Q33; Q11은 패킷을 자신에게 전송하지 않는다는 점을 유념한다)에 전송하여야 한다. 재배치를 최고속으로 수행하기 위해서는, 토러 스 네트워크(100)의 그리드 링크를 효율적으로 이용하여야 한다. 패킷들이 효율적인 순서로 스케쥴링되어 있지 않으면, 그리드 링크의 이용은 매우 비효율적이 될 수 있다. 예컨대, 모든 노드가 먼저, 양의 X+ 방향으로만 패킷들을 전송하면, 음의 X- 방향의 모든 그리드 링크는 아이들(idle) 상태로 될 것이고, 따라서 재배치는 최고속으로 수행되지 않고 다차원 FFT는 가장 효율적으로 구현되지 않을 것이다. 본 발명에 따르면, 고속의 재배치에는 패킷 스케쥴링이 구체적으로 전술한 바와 같이 효율적으로 구현되도록 토러스 네트워크(100)의 적응형 라우팅 능력을 이용한다.
따라서, 도 9를 참조하면, 패킷들을 교환하여야 하고 토러스 네트워크(100)에 의해서 연결된 노드는 Nx ×Ny 개(즉, 도 1의 경우에는 노드가 3 ×3=9 개)가 있고, 이들 노드는 2차원 어레이의 요소들을 포함한다. 단계 902에서, 예시적인 방법이 시작한다. 단계 904에서, 각 노드 Q11...Q33에는, 토러스 네트워크(100) 상의 각 노드에 0, ..., Nx ×Ny-2 사이에서 고유의 수를 할당하는 어레이(즉, random_map[] 어레이)가 생성된다. 노드는 패킷을 자신에게는 전송하지 않기 때문에, 패킷을 교환하는 노드의 총수는 0개 내지 Nx ×Ny-2개가 된다. 단계 904에서의 할당은 난수적으로 발생된다는 점을 유념한다. 이 시점에서, 노드가 어레이의 요소를 다른 노드에 전송하여야 하는 패킷의 총수는 k개의 패킷(예컨대, 6개의 패킷)이라고 가정한다. 이어서, 총 k개의 패킷 = d회의 반복 ×6개의 패킷(여기서, d는 필요한 반복 횟수이고, 패킷의 총수가 k개일 때 1회 반복당 b개의 패킷을 전송한다)이라고 가정한다. b는 효율성에 필요한 만큼 선택될 수 있고, 1일 수도 있다는 점 을 유념한다. 예컨대, 총 6개의 패킷을 전송하기 위해서는 총 6개의 패킷에 대해서 3회 반복의 각 반복 시마다 1회 반복당 2개의 패킷을 전송하도록 선택할 수 있다. 따라서, 단계 906에서, 1회 반복에서부터 d회 반복까지의 id에 대해서 루프를 개시한다. 단계 908에서, 큐 카운터를 영(零)으로 초기화한다. 패킷(또는 실재의 패킷을 복사하지 않아도 되도록 하기 위한 패킷의 간략한 디스크립터)을 기억하기 위한 출력 큐(212)가 L개(1보다 크거나 같다) 있고, 주어진 종착지로 향하는 모든 패킷(또는 그들 패킷의 디스크립터)은 동일한 출력 큐에 실린다고 가정한다. 특정한 출력 큐 iL을 도 9에 형성된 루프 내에서 단계 912에서 차례대로 선택한다. 단계 910에서, 단계 904에서 생성된 어레이(즉, random_array[])로의 인덱스인 노드 0에서부터 노드 Nx ×Ny-2까지의 iN에 대해서 루프를 개시한다. 단계 904에서 생성된 어레이가 특정한 iL 값에 대해서 인덱스되면, 랜덤 노드 값을 random_array로부터 얻는다. 단계 912에서, 제1 큐를 차례대로 선택한다. 단계 914에서, d회 반복당 1개의 패킷에서부터 b개의 패킷까지의 ib에 대해서 루프를 개시한다. 이어서, 단계 914 및 단계 916에서, 주어진 랜덤 노드 iL로 향하는 복수의 b 개 패킷(예컨대, 상기 예의 경우, b=2인 패킷)을 패킷[노드, id, ib]과 동일한 출력 큐 iL에 추가한다. 단계 918에서, d회 반복 전부가 완료되면, 이 방법은 종료된다. 요컨대, 흐름도 900을 참조하면, 한 번의 d회 반복 기간 중에 특정한 노드 "i"[예컨대, 도 2에 도시된 노드 Q11 상의 프로세스(202)]는 먼저, 노드 MODULUS(i+1, Nx ×Ny-1)로 향하는 어레이의 요소에 대한 데이터를 포함하는 b개의 패킷을 최초의 출력 큐에 싣고, 특정한 노드 "i"는 노드 MODULUS(i+2, Nx ×Ny-1)로 향하는 어레이의 요소에 대한 데이터를 포함하는 b개의 패킷을 다음의 출력 큐에 싣고, 노드 MODULUS[i+(Nx ×Ny-1), Nx ×Ny-1]에 이를 때까지 이 과정을 진행한다. 주어진 반복에 대해서 b개의 패킷을 출력 큐에 삽입 완료하면, d회 반복이 모두 완료될 때까지 이 과정을 반복한다. 앞서 가는(앞서는) 재배치는 도 1의 토러스 네트워크(100) 상에서 최상의 그리드 링크 활용을 달성하고, 그 결과, 본 발명에 따른 다차원 FFT를 효율적으로 구현하게 된다.
도 10은 도 2에 도시한 예시적인 노드 Q11 상의 하나 또는 그 이상의 출력 큐(212)에 있는 패킷들이 본 발명에 따라서 토러스 네트워크(100) 상에서 연속 삽입식으로 인젝션 FIFO(210)에 흘러 들어가는 방법을 묘사하는 예시적인 방법의 흐름도 1000이다. 도 10을 상세하게 설명하기 이전에, 도 9의 채움과 흘러나감이 서로 동시에 수행될 수도 있다는 점을 유념한다. 단계 1002에서, 예시적인 방법이 시작된다. 단계 1004에서, L개의 출력 큐(212) 전부가 비어 있는 지를 판단한다. 단계 1006에서, 1에서부터 L까지의 iL에 대해서 루프를 개시하여 L개의 출력 큐 전부에 걸쳐서 반복한다. 단계 1008에서, 특정한 출력 큐 iL이 비어 있는 지를 판단한다. 출력 큐 iL이 비어 있으면, 이 방법은 단계 1006에서 다음의 iL 출력 큐를 진행한다. 출력 큐 iL이 비어 있지 않으면, 단계 1010에서, 출력 큐 iL의 헤드에서의 패킷에 대해서, 토러스 네트워크(100)를 통해서 패킷을 라우팅할 수 있는 방향을 입수한다. 예컨대, 도 1을 참조하여, 노드 Q11이 노드 Q22로 향하는 패킷을 출력 큐 iL에 실었다고 가정한다. 이 패킷은 노드 Q11에서 출발해서 X+ 방향[그리드 링크(108)를 거침]에 이어 Y- 방향[그리드 링크(110)를 거침]으로 진행하여 노드 Q22 에 도달하거나, Y- 방향[그리드 링크(106)를 거침]에 이어 X+ 방향[그리드 링크(112)를 거침]으로 진행하여 노드 Q22에 도달할 수 있다. 이제 다시 도 10으로 돌아가서, 단계 1012에서, 패킷이 진행 가능한 방향의 모든 FIFO(212)(도 2)가 채워져 있는 지를 더 판단한다. 전술한 바와 같이, 각 인젝션 FIFO(210)에는 논리 방향(예컨대, X+ 방향)이 관련되어 있고, 이 논리 방향은 인젝션 FIFO(210) 안에 있는 패킷이 해당 논리 방향(예컨대, X+ 방향)으로 이동할 수 있다는 것을 나타낸다. 패킷 방향에 대한 인젝션 FIFO(210)가 채워져 있으면, 이 방법은 현재의 출력 큐를 건너 뛰고 단계 1006에서 다음의 출력 큐를 반복함으로써 진행한다. 패킷 방향에 대한 인젝션 FIFO(210)가 채워져 있지 않으면, 단계 1014에서, 패킷이 진행할 수 있는 방향들 중 한 방향으로 패킷을 출력 큐에서부터 가장 적게 채워진 FIFO(212)로 이동시킨다. 패킷을 차례대로 출력 큐에서 제거하여 도 2에 도시한 인젝션 FIFO(210)에 삽입한다는 점을 유념한다. 패킷을 이동시킨 후, 이 방법은 그 출력 큐에서 다음의 이용 가능한 패킷에 대해 단계 1008을 진행한다. 출력 큐 전부가 비어 있으면, 이 방법은 단계 1016에서 종료된다.
"올 투 올" 라우팅을 설명하는 도 9 및 도 10을 더욱 완전하게 시연하기 위해서, 도 5에 도시한 노드 Q11의 요소, 즉 요소 B11, B12...B19의 행은 토러스 네트워크(100)를 통해서 도 6에 도시한 바와 같이 노드 Q12...Q33 전반에 걸쳐 재배치될 수 있다고 가정한다. 또한, 노드의 랜덤 맵핑은 다음의 값을 random_map array={Q32; Q22; Q13; Q21; Q23; Q33; Q21 및 Q31}으로 갖는다고 가정한다. 따라서, 어레이 요소들과 노드 Q11에서 출발하는 그들의 종착지 노드의 순서는 {B12 →Q12; B13 →Q13; B14 →Q21; B15 →Q22; B16 →Q23; B17 →Q31; B18 →Q32 및 B19 →Q33}이다. 어레이 요소가 노드 Q11의 FIFO(210)에 실리는 과정은 {B18 →Q32(X+ 또는 Y-를 경유); B15 →Q22(X+ 또는 Y+를 경유); B13 →Q13(X-를 경유); B14 →Q21(Y+를 경유); B16 →Q23(Y+ 또는 X-를 경유); B19 →Q33(X- 또는 Y-를 경유); B12 →Q12(X+를 경유) 및 B17 →Q31(Y-를 경유)}이다. 이와 같이 하여, 예컨대, 노드 Q11 상의 FIFO(210)는 아래의 표 1에 나타낸 바와 같이 채워질 수도 있을 것이다.
X+ X- Y+ Y-
B18 →Q32 B13 →Q13 B15 →Q22 B14 →Q21
B12 →Q12 B19 →Q33 B16 →Q23 B17 →Q31
이상에서 인젝션 FIFO의 수와 하나의 노드에 연결된 그리드 링크의 수와 같다고 설명한 사실(예컨대, 4개의 FIFO와 4개의 그리드 링크)에도 불구하고, 적어도 하나의 특정한 그리드 링크에 제한되게 하나의 인젝션 FIFO를 사용하는 것은 인젝션 FIFO의 수와 그리드 링크의 수가 같지 않은 경우에도 적절하다. 예컨대, 그리드 링크의 수보다 인젝션 FIFO의 수가 적으면, 하나의 버퍼를 사용하는 것은 몇 개의 특정한 그리드 링크 중 적어도 하나의 그리드 링크에 제한될 수 있다. 다른 예로써, 그리드 링크의 수보다 인젝션 FIFO의 수가 많으면, 적어도 동일한 특정 그리드 링크에 제한되게 사용되는 인젝션 FIFO가 몇 개 있을 수 있다.
이상에서 다차원 FFT의 효율적인 구현과 관련하여 어레이 재배치 구현에 관하여 설명하였지만, "올 투 올" 재배치는 도 1의 토러스 네트워크(100)를 통한 어 떠한 타입의 어레이 재배치에도 적절하다.
본 발명의 양호한 실시예에 관해서 본 발명을 구체적으로 나타내고 설명하였지만, 당업자는 본 발명의 사상과 범주를 벗어하는 일 없이 그 안에서 형식과 세부의 앞서는 변경 및 다른 변경이 이루어질 수 잇다는 점을 이해할 것이다.

Claims (33)

  1. 네트워크를 통한 통신에서 복수의 노드를 포함하는 멀티 노드 컴퓨터 시스템에 초기 배치된 복수의 요소를 포함하는 다차원 어레이의 다차원 고속 푸리에 변환(FFT)을 효율적으로 구현하기 위한 방법에 있어서,
    (a) 제1의 1차원 FFT를 용이하게 하기 위해서 상기 다차원 어레이의 상기 복수의 요소를 상기 네트워크 상의 상기 멀티 노드 컴퓨터 시스템의 상기 복수의 노드 전반에 걸쳐서 제1 차원으로 배치하는 단계와,
    (b) 각 노드에 상기 제1 차원으로 배치된 어레이의 요소들에 관하여 상기 제1의 1차원 FFT를 수행하는 단계와,
    (c) 상기 1차원 FFT 변환된 요소들을 각 노드에 제2 차원으로 "올 투 올" 배치를 통해서 무작위 순서로 상기 네트워크 상의 상기 멀티 노드 컴퓨터 시스템의 다른 노드들 전반에 걸쳐서 재배치하는 단계와,
    (d) 각 노드에 상기 제2 차원으로 재배치된 어레이의 요소들에 관하여 제2의 1차원 FFT를 수행하는 단계를 포함하고,
    상기 무작위 순서는 상기 다차원 FFT를 효율적으로 구현하도록 상기 네트워크의 효율적인 이용을 용이하게 하는 것인 다차원 고속 푸리에 변환의 효율적 구현 방법.
  2. 제1항에 있어서, 상기 다차원 고속 푸리에 변환의 효율적 구현 방법은,
    상기 어레이의 요소들을 각 노드에 제3 차원으로 "올 투 올" 배치를 통해서 무작위 순서로 상기 네트워크 상의 상기 멀티 노드 컴퓨터 시스템의 다른 노드들 전반에 걸쳐서 재배치하는 재배치 단계와,
    각 노드에 상기 제3 차원으로 재배치된 어레이의 요소들에 관하여 1차원 FFT를 수행하는 1차원 FFT 수행 단계와,
    후속의 차원에 대해서 상기 어레이의 요소들을 무작위 순서로 노드들 전반에 걸쳐서 재배치하는 상기 재배치 단계와 상기 각 노드에 재배치된 요소들에 관하여 상기 1차원 FFT를 수행하는 상기 1차원 FFT 수행 단계를 반복하는 단계를 더 포함하는 것인 다차원 고속 푸리에 변환의 효율적 구현 방법.
  3. 제1항에 있어서, 상기 다차원 고속 푸리에 변환의 효율적 구현 방법은 상기 1차원 FFT 변환된 요소들을 각 노드에 재배치하기 위해서 다른 노드들의 무작위 순서를 생성하는 단계를 더 포함하는 것인 다차원 고속 푸리에 변환의 효율적 구현 방법.
  4. 제3항에 있어서, 상기 복수의 요소의 각 요소는 복수의 전체 패킷을 통해서 상기 멀티 노드 컴퓨터 시스템의 노드들 간에 재배치되는 것인 다차원 고속 푸리에 변환의 효율적 구현 방법.
  5. 제4항에 있어서, 상기 다차원 고속 푸리에 변환의 효율적 구현 방법은,
    복수의 출력 큐를 각 노드에 제공하는 단계와,
    생성된 무작위 순서로 상기 다른 노드들 전체에 걸쳐서 복수 회 반복하는 단계와,
    각 반복 기간 중에 상기 복수의 전체 패킷 중 적어도 하나의 패킷을 다른 각 노드로 향하는 출력 큐에 출력하는 단계를 더 포함하는 것인 다차원 고속 푸리에 변환의 효율적 구현 방법.
  6. 제5항에 있어서, 상기 다차원 고속 푸리에 변환의 효율적 구현 방법은,
    패킷을 상기 네트워크 상에서의 적어도 특정 방향으로 각각 전송하는 복수의 인젝션 선입선출(FIFO) 버퍼를 제공하는 단계와,
    각 큐의 헤드에서의 패킷을 식별하기 위해 한 노드에서 상기 복수의 출력 큐 전체에 걸쳐서 반복하는 단계와,
    각 큐의 헤드에서의 패킷에 관련된 가능한 라우팅 방향들을 입수하는 단계와,
    상기 패킷을 각 큐의 헤드에서부터, 상기 패킷에 관련된 상기 가능한 라우팅 방향들 중 하나의 라우팅 방향에 있는 최소로 채워진 FIFO 버퍼로 이동시키는 단계를 더 포함하는 것인 다차원 고속 푸리에 변환의 효율적 구현 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 따른 방법의 각 단계를 수행하는 수단을 포함하는 것인 다차원 고속 푸리에 변환의 효율적 구현 시스템.
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 제1항 내지 제6항 중 어느 한 항에 따른 방법의 각 단계를 수행하기 위해서 머신에 의해 실행 가능한 명령으로 된 프로그램을 기록한 컴퓨터 판독가능 기록 매체.
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 네트워크를 통한 통신에서 복수의 노드를 포함하는 멀티 노드 컴퓨터 시스템에 초기 배치된 복수의 요소를 포함하는 다차원 어레이를 효율적으로 재배치하기 위한 방법에 있어서,
    상기 요소들을 각 노드에 "올 투 올" 배치를 통해서 무작위 순서로 상기 네트워크 상의 상기 멀티 노드 컴퓨터 시스템의 다른 노드들 전반에 걸쳐서 재배치하는 단계를 포함하고,
    상기 무작위 순서는 상기 네트워크의 효율적인 이용을 용이하게 하는 것인 다차원 어레이의 효율적 재배치 방법.
  20. 제19항에 있어서, 상기 다차원 어레이의 효율적 재배치 방법은 상기 요소들을 각 노드에 재배치하기 위해서 다른 노드들의 무작위 순서를 생성하는 단계를 더 포함하는 것인 다차원 어레이의 효율적 재배치 방법.
  21. 제20항에 있어서, 상기 복수의 요소의 각 요소는 복수의 전체 패킷을 통해서 상기 멀티 노드 컴퓨터 시스템의 노드들 간에 재배치되는 것인 다차원 어레이의 효율적 재배치 방법.
  22. 제21항에 있어서, 상기 다차원 어레이의 효율적 재배치 방법은,
    복수의 출력 큐를 각 노드에 제공하는 단계와,
    생성된 무작위 순서로 상기 다른 노드들 전체에 걸쳐서 복수 회 반복하는 단계와,
    각 반복 기간 중에 상기 복수의 전체 패킷 중 적어도 하나의 패킷을 다른 각 노드로 향하는 출력 큐에 출력하는 단계를 더 포함하는 것인 다차원 어레이의 효율적 재배치 방법.
  23. 제22항에 있어서, 상기 다차원 어레이의 효율적 재배치 방법은,
    패킷을 상기 네트워크 상에서의 적어도 특정 방향으로 각각 전송하는 복수의 인젝션 선입선출(FIFO) 버퍼를 제공하는 단계와,
    각 큐의 헤드에서의 패킷을 식별하기 위해 한 노드에서 상기 복수의 출력 큐 전체에 걸쳐서 반복하는 단계와,
    각 큐의 헤드에서의 패킷에 관련된 가능한 라우팅 방향들을 입수하는 단계와,
    상기 패킷을 각 큐의 헤드에서부터, 상기 패킷에 관련된 상기 가능한 라우팅 방향들 중 하나의 라우팅 방향에 있는 최소로 채워진 FIFO 버퍼로 이동시키는 단계를 더 포함하는 것인 다차원 어레이의 효율적 재배치 방법.
  24. 제19항 내지 제23항 중 어느 한 항에 따른 방법의 각 단계를 수행하는 수단을 포함하는 것인 다차원 어레이의 효율적 재배치 시스템.
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 제19항 내지 제23항 중 어느 한 항에 따른 방법의 각 단계를 수행하기 위해서 머신에 의해 실행 가능한 명령으로 된 프로그램을 기록한 컴퓨터 판독가능 기록 매체.
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
KR1020037011119A 2001-02-24 2002-02-25 다차원 고속 푸리에 변환의 효율적 구현 방법, 시스템 및 그에 관한 프로그램을 기록한 컴퓨터 판독가능 기록 매체와, 다차원 어레이의 효율적 재배치 방법, 시스템 및 그에 관한 프로그램을 기록한 컴퓨터 판독가능 기록 매체 KR100592753B1 (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/005574 WO2002069097A2 (en) 2001-02-24 2002-02-25 Efficient implementation of a multidimensional fast fourier transform on a distributed-memory parallel multi-node computer

Publications (2)

Publication Number Publication Date
KR20040004542A KR20040004542A (ko) 2004-01-13
KR100592753B1 true KR100592753B1 (ko) 2006-06-26

Family

ID=68499830

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020037011119A KR100592753B1 (ko) 2001-02-24 2002-02-25 다차원 고속 푸리에 변환의 효율적 구현 방법, 시스템 및 그에 관한 프로그램을 기록한 컴퓨터 판독가능 기록 매체와, 다차원 어레이의 효율적 재배치 방법, 시스템 및 그에 관한 프로그램을 기록한 컴퓨터 판독가능 기록 매체

Country Status (9)

Country Link
US (2) US7315877B2 (ko)
EP (1) EP1497750A4 (ko)
JP (1) JP4652666B2 (ko)
KR (1) KR100592753B1 (ko)
CN (1) CN1244878C (ko)
AU (1) AU2002252086A1 (ko)
CA (1) CA2437036A1 (ko)
IL (1) IL157518A0 (ko)
WO (1) WO2002069097A2 (ko)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008117044A (ja) * 2006-11-01 2008-05-22 Oki Electric Ind Co Ltd 2次元高速フーリエ変換演算方法及び2次元高速フーリエ変換演算装置
CN1244878C (zh) * 2001-02-24 2006-03-08 国际商业机器公司 在分布式存储器上实现多维快速傅里叶变换的方法和系统
US20060095485A1 (en) * 2004-10-30 2006-05-04 Moore George S System and method for permuting a vector
CN100422975C (zh) * 2005-04-22 2008-10-01 中国科学院过程工程研究所 一种面向粒子方法的并行计算系统
US20060241928A1 (en) * 2005-04-25 2006-10-26 International Business Machines Corporation Load balancing by spatial partitioning of interaction centers
GB2425860A (en) * 2005-05-05 2006-11-08 Advanced Risc Mach Ltd Multi-dimensional fast fourier transform
CN101454772B (zh) * 2006-04-28 2015-11-25 高通股份有限公司 多端口混合基fft
US8082289B2 (en) 2006-06-13 2011-12-20 Advanced Cluster Systems, Inc. Cluster computing support for application programs
US8325633B2 (en) * 2007-04-26 2012-12-04 International Business Machines Corporation Remote direct memory access
US7889657B2 (en) * 2007-05-04 2011-02-15 International Business Machines Corporation Signaling completion of a message transfer from an origin compute node to a target compute node
US7948999B2 (en) * 2007-05-04 2011-05-24 International Business Machines Corporation Signaling completion of a message transfer from an origin compute node to a target compute node
US7890670B2 (en) * 2007-05-09 2011-02-15 International Business Machines Corporation Direct memory access transfer completion notification
US7779173B2 (en) * 2007-05-29 2010-08-17 International Business Machines Corporation Direct memory access transfer completion notification
US8037213B2 (en) 2007-05-30 2011-10-11 International Business Machines Corporation Replenishing data descriptors in a DMA injection FIFO buffer
US7765337B2 (en) * 2007-06-05 2010-07-27 International Business Machines Corporation Direct memory access transfer completion notification
US8478834B2 (en) * 2007-07-12 2013-07-02 International Business Machines Corporation Low latency, high bandwidth data communications between compute nodes in a parallel computer
US8018951B2 (en) 2007-07-12 2011-09-13 International Business Machines Corporation Pacing a data transfer operation between compute nodes on a parallel computer
US7890597B2 (en) * 2007-07-27 2011-02-15 International Business Machines Corporation Direct memory access transfer completion notification
US8959172B2 (en) * 2007-07-27 2015-02-17 International Business Machines Corporation Self-pacing direct memory access data transfer operations for compute nodes in a parallel computer
US20090031001A1 (en) * 2007-07-27 2009-01-29 Archer Charles J Repeating Direct Memory Access Data Transfer Operations for Compute Nodes in a Parallel Computer
JP2009104300A (ja) * 2007-10-22 2009-05-14 Denso Corp データ処理装置及びプログラム
US9225545B2 (en) * 2008-04-01 2015-12-29 International Business Machines Corporation Determining a path for network traffic between nodes in a parallel computer
US9009350B2 (en) * 2008-04-01 2015-04-14 International Business Machines Corporation Determining a path for network traffic between nodes in a parallel computer
US8694570B2 (en) * 2009-01-28 2014-04-08 Arun Mohanlal Patel Method and apparatus for evaluation of multi-dimensional discrete fourier transforms
GB2487684B (en) * 2009-11-16 2016-09-14 Ibm Method for scheduling plurality of computing processes including all-to-all (a2a) communication across plurality of nodes (processors) constituting network, p
US8544026B2 (en) 2010-02-09 2013-09-24 International Business Machines Corporation Processing data communications messages with input/output control blocks
JP5238791B2 (ja) 2010-11-10 2013-07-17 株式会社東芝 転送機能を有するメモリノードを相互に接続したストレージ装置及びデータ処理方法
US8949453B2 (en) 2010-11-30 2015-02-03 International Business Machines Corporation Data communications in a parallel active messaging interface of a parallel computer
US8949328B2 (en) 2011-07-13 2015-02-03 International Business Machines Corporation Performing collective operations in a distributed processing system
US8930962B2 (en) 2012-02-22 2015-01-06 International Business Machines Corporation Processing unexpected messages at a compute node of a parallel computer
WO2015001596A1 (ja) * 2013-07-01 2015-01-08 株式会社日立製作所 系列データ並列分析基盤およびその並列分散処理方法
US20160105494A1 (en) * 2014-10-08 2016-04-14 Interactic Holdings, Llc Fast Fourier Transform Using a Distributed Computing System
US10084860B2 (en) * 2015-04-09 2018-09-25 Electronics And Telecommunications Research Institute Distributed file system using torus network and method for configuring and operating distributed file system using torus network
CN104820581B (zh) * 2015-04-14 2017-10-10 广东工业大学 一种fft和ifft逆序数表的并行处理方法
US10116557B2 (en) 2015-05-22 2018-10-30 Gray Research LLC Directional two-dimensional router and interconnection network for field programmable gate arrays, and other circuits and applications of the router and network
KR102452945B1 (ko) * 2015-08-27 2022-10-11 삼성전자주식회사 푸리에 변환을 수행하는 방법 및 장치
KR102526750B1 (ko) * 2015-12-17 2023-04-27 삼성전자주식회사 푸리에 변환을 수행하는 방법 및 장치
US10587534B2 (en) 2017-04-04 2020-03-10 Gray Research LLC Composing cores and FPGAS at massive scale with directional, two dimensional routers and interconnection networks
CN107451097B (zh) * 2017-08-04 2020-02-11 中国科学院软件研究所 国产申威26010众核处理器上多维fft的高性能实现方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5644517A (en) * 1992-10-22 1997-07-01 International Business Machines Corporation Method for performing matrix transposition on a mesh multiprocessor architecture having multiple processor with concurrent execution of the multiple processors
US5583990A (en) * 1993-12-10 1996-12-10 Cray Research, Inc. System for allocating messages between virtual channels to avoid deadlock and to optimize the amount of message traffic on each type of virtual channel
JP3675537B2 (ja) * 1995-11-29 2005-07-27 富士通株式会社 高速フーリエ変換を行うメモリ分散型並列計算機およびその方法
JP3129398B2 (ja) * 1997-01-08 2001-01-29 日本電気株式会社 8点×8点2次元逆離散コサイン変換回路およびそれを実現するマイクロプロセッサ
JPH11143860A (ja) * 1997-11-07 1999-05-28 Matsushita Electric Ind Co Ltd 直交変換装置
US6073154A (en) * 1998-06-26 2000-06-06 Xilinx, Inc. Computing multidimensional DFTs in FPGA
JP4057729B2 (ja) 1998-12-29 2008-03-05 株式会社日立製作所 フーリエ変換方法およびプログラム記録媒体
CN1244878C (zh) * 2001-02-24 2006-03-08 国际商业机器公司 在分布式存储器上实现多维快速傅里叶变换的方法和系统
US7788310B2 (en) * 2004-07-08 2010-08-31 International Business Machines Corporation Multi-dimensional transform for distributed memory network

Also Published As

Publication number Publication date
US20040078405A1 (en) 2004-04-22
JP2004536371A (ja) 2004-12-02
EP1497750A2 (en) 2005-01-19
AU2002252086A1 (en) 2002-09-12
CA2437036A1 (en) 2002-09-06
EP1497750A4 (en) 2011-03-09
US7315877B2 (en) 2008-01-01
WO2002069097A3 (en) 2002-10-24
WO2002069097A2 (en) 2002-09-06
JP4652666B2 (ja) 2011-03-16
US8095585B2 (en) 2012-01-10
CN1244878C (zh) 2006-03-08
US20080133633A1 (en) 2008-06-05
IL157518A0 (en) 2004-03-28
KR20040004542A (ko) 2004-01-13
CN1493042A (zh) 2004-04-28

Similar Documents

Publication Publication Date Title
KR100592753B1 (ko) 다차원 고속 푸리에 변환의 효율적 구현 방법, 시스템 및 그에 관한 프로그램을 기록한 컴퓨터 판독가능 기록 매체와, 다차원 어레이의 효율적 재배치 방법, 시스템 및 그에 관한 프로그램을 기록한 컴퓨터 판독가능 기록 매체
US8117288B2 (en) Optimizing layout of an application on a massively parallel supercomputer
Lim et al. Efficient algorithms for block-cyclic redistribution of arrays
US5797035A (en) Networked multiprocessor system with global distributed memory and block transfer engine
Thakur et al. All-to-all communication on meshes with wormhole routing
Dusseau et al. Fast parallel sorting under LogP: Experience with the CM-5
US20160105494A1 (en) Fast Fourier Transform Using a Distributed Computing System
Kumar et al. Optimization of all-to-all communication on the blue gene/l supercomputer
WO1993004438A1 (en) Input/output arrangement for massively parallel computer system
Culler et al. Fast parallel sorting under LogP: from theory to practice
Bhagavathi et al. A fast selection algorithm for meshes with multiple broadcasting
Bokhari Multiphase complete exchange: A theoretical analysis
Bay et al. Deterministic on-line routing on area-universal networks
Eberhart et al. Contention-free communication scheduling on 2d meshes
Al-Lami et al. Communication impact on non-contiguous allocation strategies for 2-D mesh multicomputer systems
Thakur et al. Complete exchange on the CM-5 and Touchstone Delta
Herault et al. Determining the optimal redistribution for a given data partition
Schomberg A transputer-based shuffle-shift machine for image processing and reconstruction
Lay High-performance communication in parallel computers
Frazier Buffering and flow control in communication switches for scalable multicomputers
Raghunath et al. Customizing interconnection networks to suit packaging hierarchies
Lee et al. Analysis of finite buffered multistage combining networks
Chlebus et al. Algorithms for the parallel alternating direction access machine
Lisper Explicit Routing in the Fluent Machine
Conte The simulation and tuning of the global memory subsystem of a multiprocessor

Legal Events

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

Payment date: 20100428

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee