KR20110063730A - 스트림 프로세싱 컴퓨터 아키텍쳐를 구현하는 방법 및 시스템 - Google Patents

스트림 프로세싱 컴퓨터 아키텍쳐를 구현하는 방법 및 시스템 Download PDF

Info

Publication number
KR20110063730A
KR20110063730A KR1020117000684A KR20117000684A KR20110063730A KR 20110063730 A KR20110063730 A KR 20110063730A KR 1020117000684 A KR1020117000684 A KR 1020117000684A KR 20117000684 A KR20117000684 A KR 20117000684A KR 20110063730 A KR20110063730 A KR 20110063730A
Authority
KR
South Korea
Prior art keywords
stream
super node
kernels
computation
nodes
Prior art date
Application number
KR1020117000684A
Other languages
English (en)
Other versions
KR101572295B1 (ko
Inventor
유진 셴펠드
토마스 바실 스미스 3세
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 KR20110063730A publication Critical patent/KR20110063730A/ko
Application granted granted Critical
Publication of KR101572295B1 publication Critical patent/KR101572295B1/ko

Links

Images

Classifications

    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • 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
    • 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/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • G06F15/17343Direct connection machines, e.g. completely connected computers, point to point communication networks wherein the interconnection is dynamically configurable, e.g. having loosely coupled nearest neighbor architecture
    • 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
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • 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
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)

Abstract

스트림 컴퓨터 아키텍쳐를 구현하는 방법은, 물리적 컴퓨테이션 노드들("노드들")을 나타내는 프로세서들의 수퍼 노드 클러스터를 형성하고, 로컬 인터커넥션 수단("인터커넥트")을 통해 상기 프로세서들을 통신상으로 결합시키고, 옵티컬 외부 링크들("링크들")을 통해 상기 클러스터를 옵티컬 회로 스위치(OCS)에 통신상으로 결합시킴으로써, 스트림 컴퓨터 프로세싱(SCP) 시스템을 생성하는 단계를 포함한다. 상기 OCS는 상기 링크들을 통해 프로세서들의 또 다른 클러스터에 통신상으로 결합된다. 상기 방법은 또한 커널들 및 데이터 스트림들을 포함하는 스트림 컴퓨테이션 그래프를 발생시키는 단계, 및 상기 그래프를 상기 SCP 시스템에 매핑하는 단계를 더 포함하는데, 상기 매핑하는 단계는 상기 커널들을 상기 커널들 및 각각의 노드들에 배치하는 단계, 상기 데이터 스트림이 동일한 클러스터 내의 노드들 사이에 있는 경우 상기 커널들 사이의 데이터 스트림 트래픽을 상기 인터커넥션으로 배치하는 단계, 및 상기 데이터 스트림이 서로 다른 클러스터들 내의 노드들 사이에 있는 경우 상기 커널들 사이의 트래픽을 상기 링크들에 배치하는 단계를 포함한다. 상기 방법은 또한 매핑된 클러스터들 사이의 연결을 제공하기 위해 상기 OCS들을 구성하는 단계를 포함한다.

Description

스트림 프로세싱 컴퓨터 아키텍쳐를 구현하는 방법 및 시스템{METHOD AND SYSTEM FOR IMPLEMENTING A STREAM PROCESSING COMPUTER ARCHITECTURE}
본 발명은 데이터 프로세싱 시스템들과 관련된다. 더 상세하게는 본 발명은 스트림 프로세싱 컴퓨터 아키텍쳐를 구현하는 방법 및 시스템과 관련된다.
컴퓨터 시스템의 성능에 대한 통신의 영향은 매크로 레벨(예, 블레이드 서버들(blade servers) 및 컴퓨터들의 클러스터들)에서 그리고 마이크로 레벨(예, 많은 코어들을 갖는 단일 프로세서 칩 내)에서 계속해서 커지고 있다. 컴퓨팅에 대한 전통적인 접근법은 캐시 메모리들의 계층을 통해 주 메모리로의 접근 시간을 감소시키는 것에 의존하는데, 이러한 전통적인 접근법은 한계점에 이르고 있다. 이는, 캐시 메모리들 및 글로벌 통신선들에 의해 요구되는 (제한되는) 온칩 전력 소비 예산(on-chip power dissipation budget)의 증가 부분뿐만 아니라 프로세싱 코어들의 속도에 관한 I/O 데이터 전송의 지연 증가 때문에 부분적으로는 사실이다. 한편, 엄격한 온칩 전력 소비 제약들로 인해 많은 주요 반도체 회사들이 멀티-코어 또는 칩 멀티프로세서(chip multiprocessor, CMP) 아키텍쳐들로 방향을 바꿔 왔다. CMP들의 출현은, 결국, 두 개의 주요 영역들에서 통신 인프라구조에 관해 도전해야 할 과제들을 증가시켜 왔다. 특히, CMP들에서 프로세싱 코어들의 수의 증가는 인트라-칩(intra-chip) 및 인터-칩(inter-chip) 통신 둘 모두를 위한 대역폭 요건들을 악화시킨다. 또한, 전통적인 단일-코어 프로세서 칩들에 비해 CMP 아키텍쳐들은 프로그래밍 복잡성(programming complexity) 및 최고 생산성(ultimate productivity)을 대단히 증가시킨다.
스트림 프로세싱은 소프트웨어로 관리되는 캐시 메모리 구성(software managed cache memory organization) 및 CMP 아키텍쳐들에 기초한 시스템들을 위한 대체(alternative) 컴퓨테이션 모델 접근법으로서 최근에 나타났다. 중요 어플리케이션들(예, 디지털 신호 처리 및 멀티미디어 어플리케이션들)의 많은 클래스들은 동시에 프로세스될 수 있는 규칙적인(regular) 데이터 구조들의 긴 시퀀스들에 대해 상당히 규칙적인 접근을 제공한다. 이는 데이터베이스들에서 일반적인 복잡한 데이터 레코드들에 대한 더 랜덤한(randomized) 접근과는 대조적이다. 이들 어플리케이션들에 있어서, nVidia® 및 AMD/ATI 그래픽 프로세싱 장치(graphic processing units, GPU) 또는 IBM's® Cell Broadband Engine과 같은 전문 프로세서들(specialty processors)과 스트림 프로세싱의 조합은, 범용(general-purpose) CMP 아키텍쳐들에 적용되는 전통적인 컴퓨팅 패러다임보다 더 높은 성능 및 더 낮은 전력 소비를 제공할 수 있는 가능성을 갖는다.
도 1에는 스트림 컴퓨테이션 그래프의 일 예가 도시된다. 그래프(100)는 컴퓨테이션 노드들로 구성되는데, 이 컴퓨테이션 노드들은 커널들(102A, 102B, 및 102C)로 일컬어지고 하나의 커널로부터 다른 커널로 가는 데이터의 스트림들을 나타내는 에지들(104A/104B)에 의해 연결된다. 커널은 데이터의 스트림들에 관한 컴퓨테이션을 수행하는 소프트웨어 코드 엘리먼트들을 나타낸다. 도 1의 그래프(100)에서, 이들 데이터 스트림들은 단향성(unidirectional)이다. 즉, 데이터는 도면의 좌측에서부터 우측으로 이동(스트리밍)하는데, 이는 화살표로 도시되어 있다. 커널들은 세 가지 유형들, 즉 소스(source)(102A)(컴퓨테이션 그래프로의 입력으로서 발생된 데이터의 스트림의 기원을 나타냄); 싱크(sink)(102B)(스트림 또는 스트림들의 형태의 최종 결과들을 나타냄); 및 레귤러 커널들(regular kernels)(102C), 중 하나일 수 있다. 커널들(102A-102C)은 하나 또는 그 이상의 입력 스트림들(104A)을 가질 수 있고 커널들 각각의 특정 컴퓨테이션의 결과로서, 하나 또는 그 이상의 출력 스트림들(104B)을 발생시킬 수 있다.
일반적으로 스트림 컴퓨테이션 그래프(예, 그래프 100)는 컴퓨터 프로세싱 문제에 대한 솔루션(예, 입력 데이터 스트림 - 주식(stocks)의 금융거래, 감각적 데이터 상관관계들(sensory data correlations) 및 그 이상의 것들 - 사이의 복잡한 관계들 및 패턴을 찾아내거나 몇몇 이벤트들을 검출하는 것)을 나타낸다. 상기 그래프는 상기 데이터 스트림들이 상기 컴퓨테이션 커널들에 의해 프로세스되고 있는 한 계속되는데, 일반적으로 이는 매우 긴 시간(시간(hours) 또는 그 이상 또는 무한히 긴 시간)이다. 따라서, 이 그래프의 토폴로지는 변하지 않는(fix) 것으로 간주된다.
이러한 스트림 컴퓨테이셔널 그래프를 프로세스함에 있어서 한 가지 도전해야 할 과제는 그래프들 내에 상기 컴퓨테이션 노드들(예, 커널들(102A-102C))을 그룹지어 이것들이 컴퓨터 프로세싱 시스템의 물리적 컴퓨테이션 노드들에 배치(assign)될 수 있도록 하는 방법을 결정하는 것이다. 이러한 그룹핑(grouping)(이는 또한 스케쥴링(scheduling), 임베딩(embedding), 또는 그래프 이론에서 그래프 컨트랙션(graph contraction)으로 알려진 그래프 이론 변형(graph theory transformation)으로 알려짐)을 수행하기 위한 여러 가지 가능한 방법들이 있다. 도 1에 도시된 바와 같이, 음영으로 처리된 그룹들(110A-110C)은 커널들의 그룹핑을 나타낸다. 그리하여 하나의 그룹(예를 들어, 그룹(110B))에 배치된 커널들이 하나의 물리적 컴퓨테이션 노드 또는 빠른 로컬 통신 네트워크와 타이트하게 결합되거나 빠른 로컬 통신 네트워크를 사용함에 의해 타이트하게 결합된 노드들의 클러스터 내에 위치하도록 할 것이다. 그런 다음, 커널들의 이러한 하나의 그룹으로부터 다른 하나의 그룹으로 지나가는 총 합계의 스트림들은 상기 그룹들 사이에서 하나의 연결로 보여질 수 있다. 그래프 이론 용어들에서, 이는 상기 레귤러 컴퓨테이션 노드들(커널들)이 겹쳐져 있는(collapse) 수퍼 노드(super node)로 보여질 수 있다. 이러한 유형의 그룹핑은 스트림 컴퓨테이션 그래프 내의 모든 컴퓨테이션 노드들에 대해 수행될 수 있다. 이와 유사하게, 상기 스트림 컴퓨테이션 그래프의 커널들 사이의 에지들에 의해 표현된 스트림들은, 상기 수퍼 노드들 사이에서 지나가는 데이터의 모든 스트림들의 합을 표현하는 수퍼 에지에 겹쳐질 수 있다.
일 예로서, 도 1에 도시된 바와 같이, 수퍼 노드들(110C 및 110B)은 수퍼 노드들(110B 및 110C) 사이에서 (좌측에서 우측으로) 지나가는 세 개의 스트림들을 공유한다. 그것들은 이제 수퍼 노드들(110B 및 110C) 사이에서 연결되는 하나의 스트림으로 보여질 수 있다. 실제로, 데이터의 오리지널 스트림들은 스트림 컴퓨팅 시스템의 물리적 통신 구조(physical communication fabric)에 의해 합쳐진다. 그리하여, 수퍼 노드(110B)에서 입력점(ingress point)은 커널들의 그룹(예, 수퍼 노드(110B) 내의 것들)으로부터의 세 개의 스트림들을 하나의 스트림으로 멀티플렉스할 것이고, 한편에서는, 커널들의 그룹(수퍼 노드(110C) 내의 커널들)은 다시 디멀티플렉스(demultiplex)할 것이고 또한 하나의 물리적 컴퓨테이션 노드 또는 이러한 노드들의 클러스터에 맵핑되는 바에 따라 적절한 커널들에 그것들을 로컬로 연결할 것이다.
금융, 데이터 마이닝, 및 컴퓨터 생명공학과 같은 서로 다른 분야들에서 특정의 큰 규모의 어플리케이션들로 이러한 스트림 프로세싱 패러다임을 확장하는 것에 점차 관심이 증가하고 있다. 이러한 확장은 단일 GPU-유사 프로세서상에서 스트림 어플리케이션을 실행하는 것을 넘어설 것을 요구하고, 그렇지 않으면, 큰 스케일가능한 스트림 프로세싱 시스템들(Stream Processing Systems, SPSs)을 구성하는 것과 결부된다. 상기 SPS들 중 많은 것이 고속 인터커넥션 네트워크들에 의해 인터커넥트된다. 그러나, 큰 스케일가능한 스트림 프로세싱 시스템들을 구성하는 것은, 예를 들어, 증가되는 전송 대역폭 도전 과제들, 및 프로세싱 노드들로부터 메모리 내의 큰 데이터 세트들에 대한 증가되는 접근 시간들과 같은 여러 가지 문제점들로부터 어려움을 겪게 된다.
그러므로, 앞서 언급한 문제점들을 극복하는 향상된 스트림 프로세싱 아키텍쳐를 제공하는 것이 바람직하다.
본 발명의 일 실시예에 따라, 스트림 프로세싱 컴퓨터 아키텍쳐(stream processing computer architecture)를 구현하는 방법은 스트림 컴퓨터 프로세싱(Stream Computer Processing, SCP) 시스템을 생성하는 단계를 포함한다. 상기 SCP 시스템은 상기 수퍼 노드 클러스터 내의 물리적 컴퓨테이션 노드들을 나타내는 프로세서들의 수퍼 노드 클러스터를 형성하고, 로컬 인터커넥션 수단을 통해 상기 수퍼 노드 클러스터에서 상기 프로세서들 각각을 통신상으로 결합시키고, 다수의 옵티컬(optical) 외부 링크들을 통해 옵티컬 회로 스위치(Optical Circuit Switch, OCS)에 상기 수퍼 노드 클러스터를 통신상으로 결합시키는 것에 의해 생성된다. 상기 OCS는 다른(other) 물리적 컴퓨테이션 노드들을 나타내는 프로세서들을 포함하는 다른(other) 수퍼 노드 클러스터들에 통신상으로 결합되는데, 이 결합은 상기 다른 수퍼 노드 클러스터로부터 상기 옵티컬 회로 스위치로 다른 다수의 외부 링크들을 통해 이루어진다. 상기 방법은 또한 커널들 및 데이터 스트림들을 포함하는 스트림 컴퓨테이션 그래프를 발생시키는 단계를 포함한다. 상기 방법은 상기 스트림 컴퓨테이션 그래프를 상기 SCP 시스템에 매핑하는 단계를 더 포함한다. 상기 매핑하는 단계는, 상기 컴퓨테이션의 커널들을 각각의 수퍼 노드 클러스터에 그리고 상기 수퍼 노드 클러스터들 각각의 물리적 컴퓨테이션 노드들 각각에 배치하는 단계, 상기 데이터 스트림이 동일한 수퍼 노드 클러스터 내의 물리적 컴퓨테이션 노드들 사이에 있는 경우 상기 로컬 인터커넥션 수단에 상기 커널들 사이의 데이터 스트림 트래픽을 배치하는 단계, 및 상기 데이터 스트림이 서로 다른 수퍼 노드 클러스터들 내의 물리적 컴퓨테이션 노드들 사이에 있는 경우 상기 옵티컬 외부 링크들에 상기 커널들 사이의 데이터 스트림 트래픽을 배치하는 단계를 포함한다. 상기 방법은 또한 상기 배치들에 대응하게 매핑된 클러스터들 사이의 연결을 제공하기 위해 상기 OCS들을 구성(configure)하는 단계를 포함한다.
본 발명의 기술들을 통해 추가 특징들 및 이점들이 실현된다. 본 발명의 다른 실시예들 및 측면들은 여기서 상세히 기술되며 청구되는 발명의 일부로서 고려된다. 이러한 특징들 및 이점들을 갖는 발명에 관해 더 잘 이해할 수 있도록 설명 및 도면들을 참조한다.
발명으로 고려되는 주제는 특히 명세서의 끝 부분에 있는 청구항들에서 구체적으로 지시되고 분명하게 청구된다. 본 발명에 관한 앞에서 언급한 특징들 및 이점들, 그리고 기타 특징들 및 이점들은 첨부되는 도면들과 함께 다음의 상세한 설명을 읽을 경우 분명해질 것이다.
도 1은 노드 그룹핑들을 갖는 전통적인 스트림 컴퓨테이션 그래프이다.
도 2는 발명의 일 실시예에 따른 스트림 컴퓨터 시스템의 다이어그램이다.
도 3은 발명의 일 실시예에서 스트림 컴퓨터 시스템의 스트림 프로세싱 아키텍쳐를 생성하고 관리하기 위한 프로세스를 기술하는 흐름도이다.
도 4는 컴퓨테이션 그래프의 일 예로서 바이너리 트리 토폴로지(binary tree topology)를 포함하는 스트림 컴퓨테이션 그래프를 도시하며, 일 실시예에서 어떻게 이들 노드들이 인터커넥트되는지 뿐만 아니라, 어떻게 그것의 커널들이 수퍼 노드들 내에서 그룹지어지는지를 도시한다.
도 5a는 일 예의 스트림 컴퓨테이션 그래프 - 이는 도 5b에 도시됨 - 가 매핑 또는 임베드(embed)되는 스트림 컴퓨터 시스템의 일 예를 도시한다.
본 발명의 일 실시예에 따라 스트림 컴퓨터 시스템을 위한 인터커넥트 스트림 프로세싱 아키텍쳐, 상기 인터커넥트 아키텍쳐를 구현하기 위한 프로세스가 개시된다. 상기 인터커넥트 아키텍쳐는 두 개의 네트워크 유형들로 구성되는데, 이들 두 개의 네트워크 유형들은 서로의 기능을 보완하고 프로세싱 노드들의 타이트하게 결합된 그룹들 사이의 연결을 다룬다. 이러한 그룹(또는 클러스터)은 정적(static) 및 동적(dynamic) 네트워크 토폴로지들(예, 2D/3D 메쉬, 계층적으로 전체가 연결된, 스위치 기반 구조들) 뿐만 아니라, 다양한 프로토콜들을 사용하여 로컬로 인터커넥트될 수 있다. 네트워크 및 스위치 기능은 프로세서 칩들 내에 편입될 수 있다. 그래서, 클러스터들이 외부 스위치들 없이도 프로세서 칩들을 서로에게 직접적으로 인터커넥트함으로써 만들어질 수 있도록 한다. 이러한 기술 및 프로토콜의 일 예는 HyperTransport 3(HT3)이다. 패키징 한계들, 시그널링 속도들 및 인터커넥션의 허용가능 거리들은 모든 전기적 구조 크기를 제한하므로, 단지 한정된 수의 프로세서들만이 클러스터 내에 직접 연결될 수 있다. 매우 높은 수준의 성능(예, 엑사스케일(exascale))을 달성하는 것은 하나의 시스템 내에 인터커넥트되는 100,000개의 장래 멀티-코어 프로세서까지 필요로 할 수 있다. 클러스터는 하나의 랙(rack) 내에 패키지된 100개 또는 더 적은 프로세서 칩들로 한정될 수 있는 반면, 이러한 클러스터들 중 약 1000개 또는 그 이상이 인터커넥트될 필요가 있다. 일 실시예에서, 높은 대역폭을 가지며 더 긴 거리들에 이르는 인터-클러스터 연결들(inter-cluster connections)은 옵티컬 시그널링(optical signaling)을 사용할 것이고 상기 스트림 프로세싱 아키텍쳐는 이들 클러스터들 사이에서 연결될 마이크로 일렉트로 메커니컬 시스템들(Micro Electo Mechanical Systems, MEMS) 기반의 OCS를 사용한다. 필요한 대역폭 및 거리를 제공하기 위해 많은 큰 설비들(installations)에서 노드-대-스위치 연결은 옵티컬이지만, 큰-라딕스(large-radix)의 전기 스위치 구조들이 사용되고 있다(예를 들어, 인피니밴드(InfiniBand) 또는 10G 이더넷 프로토콜 및 스위치들을 위해). 이것들은, 하나의 경로를 위해 적어도 두 개의 옵티컬 송신기들(transmitters, Tx) 및 두 개의 수신기들(receivers, Rx)을 필요로 한다. 왜냐하면 통신은 전기적으로부터(상기 프로세서 클러스터로부터) 옵티컬로 그런 다음 전기적으로(상기 스위치를 위해), 그런 다음 옵티컬로(상기 스위치의 밖으로 가도록) 그리고 마침내 전기적으로 (목적 클러스터에서) 되돌아오기 때문이다. 한편 여기에 기술되는 실시예들의 옵티컬 스위치는 단지 하나의 Tx 및 하나의 Rx를 필요로 한다. 왜냐하면 이 스위치는 미러들을 통해 상기 옵티컬 신호를 직접적으로 편향(deflect)시킬 수 있다. 큰 라딕스(radix)의 전기적 스위치들은 더 작은 라딕스의 빌딩 블록들로 구성되어야 하는데, 이는 그것들이 크거나 파워-헝그리(power-hungry)될 경향이 있음을 의미한다. 옵티컬 회로 스위치들은 훨씬 더 큰 하나의 스위치 라딕스를 가질 수 있으며, 그것들은 상당히 더 작은 크기 및 더 낮은 전력 소비를 보일 것이다.
일 실시예에서, 클러스터를 형성하는 타이트하게 결합된 프로세서들의 그룹은 상기 SPS 내에서 상기 OCS 네트워크 및 옵티컬 송수신기들(transceivers)을 사용하여 다른 이러한 클러스터들에 인터커넥트된다. 이 OCS 네트워크는 약 밀리초 시간 스케일로 변화될 수 있는 플렉시블 점-대-점 연결(flexible point-to-point connection)을 가능하게 한다. 프로세스들의 장래 대역폭들은 증가할 것이므로, OCS 아키텍쳐의 사용은 동일한 스위칭 네트워크에서 장래의 더 높은 대역폭 요구 및 프로토콜들을 지원할 수 있다. 상기 OCS 네트워크는 패킷 스위칭 네트워크를 통해 라우팅함에 따라 매우 빠르게 회로 연결들을 변화시킬 필요가 없다. 회로 연결들에 대한 조정들은 노드들 사이의 작업을 로드 밸런스(load banance)하기 위해 작업 위치들이 조정될 경우에만 수행될 필요가 있다. SPS에 의해 수행되는 컴퓨테이션의 본질(nature)은 이것들의 통신 패턴들 및 지속시간들(durations)이 상기 OCS의 비교적 높은 스위칭 시간(밀리초)을 나누기(amortize)에 충분한 꽤 긴 시간(예, 분 또는 시간) 동안 안정되는 특징이 있다. 서로 다른 프로세서들 내에서 수행되는 컴퓨테이션에 대한 로드 밸런싱을 위한 작업의 배치에 대한 조정들은 자주 일어나지 않는 작업이므로(그것의 컴퓨테이션의 높은 비용 및 복잡성으로 인해), 이 예시적인 스트림 프로세싱 아키텍쳐는 전체 성능에서 뚜렷한 결점들이 없이 상기 OCS 인터커넥션의 특별한 특징들에 대해 상기 SPS 요구들의 특징들 사이에서 고유하게 매치된다. 사실상, 재구성(reconfigure)되는 경우, 이 네트워크를 사용하는 것은 더 나은 통신 지연(communication latency)의 결과를 가져올 수 있다. 왜냐하면, 그것은 큐 혼잡(queue congestions)이 없으며, 프로토콜 및 데이터 대역폭에 대한 어떠한 다툼(contentions)도 없으며 투명성(transparency)을 갖기 때문이다.
이제 도 2를 참조하면, 일 실시예에서 스트림 프로세싱 아키텍쳐의 일 예를 갖는 스트림 컴퓨터 시스템(200)이 기술될 것이다. 스트림 컴퓨터 시스템(200)은 멀티프로세서(202)를 형성하기 위해 함께 연결된 개별 물리적 컴퓨테이션 노드들(201)로 구성된다. 복수의 이들 프로세서들(202)은 함께 그룹지어져 수퍼 노드 클러스터(204)(이는 또한 여기서는 "수퍼 노드" 및 '클러스터'로 일컬어짐)를 형성한다. 클러스터(204) 내의 프로세서들(및 각각의 물리적 컴퓨테이션 노드들)은 알려진 빠른 인터커넥션 수단(206)에 의해 로컬로 연결되는데, 이 빠른 인터커넥션 수단(206)은 캐시 코히어런트(cache coherent) 대칭 멀티프로세서(symmetric multiprocessor, SMP) 구조, 또는 위에서 기술한 것들의 조합을 이용하여 메모리를 통해 클러스터, 또는 스위치 내에서 프로세서들(202)의 물리적 컴퓨테이션 노드들 사이의 일부 토폴로지를 갖는 직접적으로 연결된 네트워크일 수 있다. 프로세서들(202)의 각각의 클러스터(204)는 옵티컬 외부 링크들(208)을 공유한다. 이들 외부 링크들은 매우 높은 대역폭에서 점-대-점 연결을 최적화하도록 만들어진다. 이 최적화는 사용되는 물리적 구현에 있을 수 있고, 이러한 높은 대역폭을 용이하게 하도록 선택된 프로토콜에 있을 수 있고, 저 지연 클러스터-대-클러스터 링크에 있을 수 있는데, 적은 물리적 연결들로 구성된 하나의 높은 대역폭의 물리적 연결처럼 보이도록 하나의 물리적 링크 또는 다수의 물리적 링크들 내에 다수의 스트림들의 집합(aggregation)을 지원할 수 있는 능력을 갖는다. 이들 외부 링크들은 프로토콜, 데이터 또는 이러한 내용에 대해 알지 못할 모든 옵티컬 스위치를 통해, 스위치되는 회로이므로, 이것들은 매우 경량(light weight)의 통신 프로토콜을 사용해야 한다. 더 나아가, 이들 외부 링크들의 물리적 특성들은 WDM(파장 분할 멀티플렉서, wavelength division multiplexer)에서 다수의 옵티컬 파장들의 사용을 필요로 할 수 있는데, 이것들은 모두 하나의 섬유(fiber) 또는 하나의 외부 링크에 결합되지만, 양 단들(ends)에서 분리가능하다. 미러-기반 MEMS OCS는 그것들의 파장, 프로토콜, 및 시그널링 속도의 수에 관계없이 상기 광학 영역(optics domain)에서 이들 외부 링크들 내의 광 빔들을 편향시킬 것이다. 이들 외부 링크들은 클러스터 내에서 모든 컴퓨테이션 노드들에 대해 공통이다. 그래서, 클러스터(204)에서 물리적 컴퓨테이션 노드(201)는 이들 외부 링크들(208) 중 하나 또는 모두 상에서 정보를 직접적으로 또는 로컬로 인터커넥트된 클러스터 패브릭(206)을 통과함으로써 패스(pass)할 수 있다. 일 실시예에서, 회로 스위칭 스위치들(210)이 사용된다. 회로 스위칭 스위치들(210)은 자주 스위칭할 필요는 없다. 따라서 구성하기에 훨씬 더 간단할 수 있고, 다수의 클러스터들(204) 사이를 동적으로 연결하기 위해 다른 기술들(예, 모든 옵티컬, MEMS 미러 기반의 기술들)을 사용할 수 있다. 주어진 시간 내에서 이들 클러스터들(204) 사이의 특정 연결은 주어진 스트림 컴퓨테이션 그래프에 기초하여 최적화될 수 있는데, 이 주어진 스트림 컴퓨테이션 그래프의 컴퓨테이션은 연결되어 있는 물리적 컴퓨테이션 노드들(201) 및 클러스터들(204)에 의해 수행된다.
외부 링크들(208)의 이러한 유형들 및 동적 스위칭은 필요에 따라 동적으로 변화하는 매우 높은 스루풋(throughput)(고 대역폭) 연결을 가능하게 한다. 멀티-코어 프로세싱 칩들은 그것들을 다른 그러한 물리적 프로세싱 노드들 또는 메모리 서브시스템(subsystem)에 인터커넥트하기 위해 매우 높은 대역폭의 네트워크들을 필요로 하므로, 상기 예시적인 스트림 프로세싱 아키텍쳐는 스트림 프로세싱 컴퓨테이션 그래프들 및 그것들의 상대적으로 변하지 않는 본질(fixed nature)에 의해 특히 기능적으로 가능해질 그러한 메커니즘을 제공함에 있어서 필수적인 역할을 한다. 패킷들은 재조사(reexamine)될 필요가 없고 패킷 기준으로 하나의 패킷에 관해 라우트하므로, 이는 더 효율적인 라우팅을 제공한다. 회로 스위치들(210)의 구성은, 이러한 기능에 대해 최적화될 수 있으며, 또한 적절한 기술(예, 모든 옵티컬 회로 스위칭)로써, 매우 낮은 전력 및 효율적인 비용으로 효과적으로 대량의 정보(스트림들)를 다룰 수 있다.
도 2에 도시된 다이어그램은 단지 시스템 내의 데이터의 주 도관(conduit)만을 도시하였음을 주목하는 것도 또한 중요하다. 상기 시스템 내의 모든 클러스터들/컴퓨테이션 노드들 사이의 완전한 연결을 제공하는 또 다른 더 느린 네트워크(미도시)는 제어 및 다른 더 낮은 대역폭 통신들을 위한 것뿐만 아니라 덜 바쁜(less busy) 연결들을 처리함에 있어서 사용하기 위해 또한 제공됨을 더 이해해야 할 것이다. 따라서, 예를 들어 패킷-스위치 네트워크(packet-switched network)는 최소 데이터를 전송하도록 결정되는 그들 데이터 스트림들(예, 104)을 전송하기 위해 사용될 수 있다. 상기 결정은 스레스홀드 함수(threshold function)(예, 미리 정의된 시구간 내에서 지나가는 데이터의 수량화된 수(quantified number), 또는 특정 컴퓨테이션 또는 다른 그러한 시스템들을 위한 우선순위(priority)의 함수, 및 동작 관련 파라미터들)를 명시함으로써 이뤄질 수 있는데, 그 결과 상기 스레쉬홀드에 이르는 경우, 상기 스트림들은 상기 스위치되는 회로 기반의 네트워크를 통해 라우트된다. 그러므로, 스트림들의 라우팅은 상기 패킷 스위칭 네트워크를 통과하도록 배치된 모든 것을 시작할 수 있는 한편, 상기 컴퓨테이션이 진행되고 더 큰 대역폭이 스트림 내에서 전송되므로, 이러한 것은 상기 회로 스위칭 네트워크를 형성하는 외부 링크들을 통과하도록 리다이렉트(redirect)될 것이다.
이제 도 3을 참조하면, 스트림 프로세싱 아키텍쳐를 구현하기 위한 프로세스를 기술하는 흐름도가 일 실시예에서 기술될 것이다. 도 3의 흐름도에서, 단계들(302-306)은 예시적인 스트림 컴퓨터 프로세싱 시스템을 생성하는 것을 나타낸다. 단계 308은 예시적인 스트림 컴퓨테이션 그래프를 발생시키는 것을 나타내고, 단계들(310-316)은 상기 스트림 컴퓨터 프로세싱 시스템에 상기 스트림 컴퓨테이션 그래프를 매핑하는 것을 나타내며, 단계 318은 상기 스트림 컴퓨터 프로세싱 시스템에 관해 상기 스트림 컴퓨테이션 그래프를 실행하는 것을 나타낸다.
이제 상기 스트림 컴퓨터 프로세싱 시스템의 생성이 기술될 것이다. 단계 302에서, 프로세서들(예, 도 2의 프로세서들(202))의 수퍼 노드 클러스터가 형성된다. 단계 304에서, 상기 수퍼 노드 클러스터 내의 프로세서들 각각은 로컬의 알려진 인터커넥션 수단(예, 도 2의 네트워크(206))을 통해 통신상으로 결합된다. 상기 로컬의 알려진 인터커넥션 수단은, 예를 들어, 직접적인 연결을 사용하여, 또는, 캐시 코히어런트 대칭 멀티프로세서(SMP) 구조, 스위치, 또는 이것들의 조합을 이용하여 메모리를 통해, 구현될 수 있다.
단계 306에서, 상기 수퍼 노드 클러스터(예, 도 2의 클러스터(204))는 하나 또는 그 이상의 옵티컬 외부 링크들(예, 링크들(208))을 통해 하나 또는 그 이상의 옵티컬 회로 스위치들(예, 도 2의 스위치들(210)에 통신상으로 결합된다. 상기 옵티컬 회로 스위치는 다른 물리적 컴퓨테이션 노드들을 포함하는 프로세서들의 다른 수퍼 노드 클러스터들에 통신상으로 결합되는데, 이 결합은 상기 수퍼 노드 클러스터들로부터 상기 옵티컬 회로 스위치로 상기 옵티컬 외부 링크들을 통해 이루어진다.
위에서 나타낸 바와 같이, 스트림 컴퓨테이션 그래프는 단계들(302-306)에서 생성된 스트림 컴퓨테이션 시스템을 위해 단계(308)에서 생성된다. 상기 스트림 컴퓨테이션 그래프는 커널들 및 데이터 스트림들을 포함한다. 상기 커널들은 대응하는 커널들에 입력되는 하나 또는 그 이상의 데이터 스트림들에 관한 컴퓨테이션들을 수행하는 소프트웨어 코드 엘리먼트들을 나타낸다. 도 4는 바이너러 트리 토폴로지를 갖는 스트림 컴퓨테이션 그래프(400)를 보여준다. 커널들(402)은 다른 커널들로 데이터의 스트림들(404)을 보낸다. 이들 커널들(402)은 특정 바람직한 특성들을 갖는 수퍼 노드들(410A 및 410B)과 같은 수퍼 노드들로 그룹지어진다.
위에서 나타낸 바와 같이, 상기 스트림 컴퓨테이션 그래프는 이제 기술되는 바와 같이 상기 스트림 컴퓨터 프로세싱 시스템에 매핑된다. 이제 도 5a 및 5b를 참조하면, 스트림 컴퓨테이션 그래프(예, 스트림 컴퓨테이션 그래프(500B))의 커널들 및 데이터 스트림들은 스위치되는 재구성가능한 회로 연결 클러스터들(reconfigurable circuit switched connected clusters)(예, 스트림 컴퓨터 시스템(500A)의 클러스터들(505A))에 매핑된다. 단계 310에서, 상기 커널들은 수퍼 노드 클러스터들에 그리고 상기 수퍼 노드 클러스터들 각각의 물리적 컴퓨테이션 노드들에 배치된다. 도 5b에 도시된 바와 같이, 커널(예, 커널(502B))은 도 5a의 시스템(500A) 상의 물리적 컴퓨테이션 노드(예, 노드(503A))에 배치되었다. 수퍼 노드들(예, 수퍼 노드들(510B 및 512B))을 형성하고 데이터 스트림(스트림(504B)으로 도시됨)과 연결된 노드들의 그룹핑(도 5b에 도시됨)은 도 5a(연결 501A 참조)에 도시된 구조에 각각 매핑되었다.
단계 312에서, 상기 커널들 사이의 데이터 스트림 트래픽은 상기 데이터 스트림이 동일한 수퍼 노드 클러스터 내의 물리적 컴퓨테이션 노드들 사이에 있는 경우 상기 로컬의 알려진 인터커넥션 수단에 배치된다.
단계 314에서, 상기 커널들 사이의 데이터 스트림 트래픽은 상기 데이터 스트림이 서로 다른 수퍼 노드 클러스터들 내의 물리적 컴퓨테이션 노드들 사이에 있는 경우 상기 옵티컬 외부 링크들에 배치된다.
단계 316에서, 상기 옵티컬 회로 스위치들은 외부 링크들(도 5a 및 5b에 도시됨)을 통해 상기 배치들에 대응하는 수퍼 노드 클러스터들 사이의 연결을 제공하도록 구성되며, 회로 스위치들(520)은 이들 매핑된 수퍼 노드들(예, 수퍼 노드들 510B, 512B, 514B, 516B, 518B, 520B) 사이의 필요한 연결을 제공하도록 재구성되었다. 클러스터들 사이의 연결들의 셋업, 즉 외부 링크들의 사용 - 각각의 클러스터는 상기 OCS 스위치를 통해 특정의 다른 클러스터들에 연결될 것임 - 은 커널들을 물리적 프로세싱 노드들에 매핑하는 것의 최적화 프로세스에 기초한다. 이 프로세스의 끝에서, 전체적으로 클러스터들 사이에서 전달되는 리저브된(reserved) 통신의 총량(오리지널 그래프의 모든 스트림 에지들의 써머리에 기초함)이 계산되고 있으며, 결국 각각의 클러스터와 모든 다른 클러스터들 사이에서 통신에 요구되는 총 대역폭이 된다. 그런 다음, 적절한 외부 링크들은 모든 다른 것들에 대한 어떤 클러스터 사이의 이러한 대역폭을 지원하기 위해 상기 OCS 스위치를 통해 구성된다. 더 낮은 대역폭의 스레쉬홀드 연결들은 상기 패킷 스위칭 네트워크를 통해 라우트된다(즉, 이들 연결들을 통과할 것이 매우 낮게 예상되는 데이터이므로, 상기 OCS를 통해, 고 대역폭의 외부 링크들을 사용하여, 회로를 수립할 가치가 없는 것들임).
단계 318에서, 상기 스트림 컴퓨터 프로세싱 시스템상의 동작들은 상기 스트림 컴퓨테이션 그래프에 따라 실행되고, 상기 클러스터들 사이의 주어진 시간에서 특정 연결들이 최적화되도록 한다.
따라서, 위의 프로세스는 결국 상기 스트림 컴퓨테이션 그래프(하나의 가능한 그러한 그래프의 일 예로서, 도 4에서 바이너리 트리로 도시됨)의 토폴로지를 충족시키며 클러스터들(505A) 사이의 필요한 통신 패턴을 매치시키기 위해 회로 스위치들(520)을 동적으로 변화시키는 결과를 가져오며, 한편 데이터의 개별 스트림들의 로컬 분리(local separation)는 클러스터 인터커넥트들(506A)(도 5A 및 5B에 도시됨)에 의해 로컬로 수행된다.
위에서 기술된 예시적인 실시예로부터 알 수 있는 바와 같이, 옵티컬 통신과 스트림 프로세싱 패러다임의 조합은 앞서 언급한 프로그래밍 및 대역폭 도전 과제들을 해결한다. 옵티컬 통신 링크들은 초-고 스루풋, 최소 통신 지연들, 및 용량(capacity)에 독립적으로 유지되는 저 동작 전력을 제공한다. 상기 용량, 투명성, 및 고-라딕스 MEMS(마이크로 전자 메커니컬 시스템들) 스위치들과 조합된 옵티컬 링크들의 근본적인 저 전력 소모에 관해 자본화(capitalize)할 수 있는 옵티컬 회로 스위칭 인터커넥션 네트워크는, 단순히 모든-전자 인터커넥트들로써 불가능한 대역폭-당-와트(bandwidth-per-watt)를 전달할 수 있다. 나아가, 초-고-대역폭 OCS 인터커넥션 네트워크는 SPS를 위한 최적의 솔루션인데, 이 SPS의 컴퓨테이션 성능은 현재 프로세스되는 스트림들의 I/O 데이터 대역폭을 최대화하는 것에 그리고 다음으로 프로세스될 스트림들의 큰 DMA 전송들의 지연을 최소화하는 것에 직접적으로 의존한다. 또한, SPS는 일반적으로 상대적으로 길게 살아 있는 프로세서들 사이에서 연결들을 셋업하고, 그래서 OCS의 더 긴 스위칭 시간은 중요하지 않다.
옵티컬 통신은 SPS들을 위한 프로그램가능 도전 과제(programmability challenge)를 더 해결할 수 있다. 왜냐하면 그것은 그것들의 상대적 위치들에 무관하게 주어진 프로세싱 노드로부터 주어진 메모리에서 큰 데이터 세트들에 대한 접근 시간을 최소화하기 때문이다. 데이터 접근에서 시간 변화들(time variations)을 감소시키는 것은 상기 스트림 프로세싱 시스템의 모델링을 간략화하는 것을 돕는다. 결국, 간략화된 개념적 시스템-레벨 모델(simplified abstract system-level model)은 그것의 일관된 프로세싱 스루풋을 최대화하기 위해 상기 SPS 아키텍쳐에 대해 큰-스케일의 스트리밍 어플리케이션의 밸런스된 채용을 유도(derive)하는 문제의 해결을 용이하게 한다. 이러한 모델은, 나아가 컴파일 시간에 전체 SPS에 걸친 데이터 전송들 및 데이터 처리의 정적인 편성(static orchestration)과 SPS 동작들 동안 통신 및 컴퓨테이션의 동적인 리밸런싱(rebalancing) 둘 다를 위한 자동의 최적화 벙법들의 개발을 가능하게 할 수 있다.
여기에 사용되는 용어는 단지 특정 실시예들을 기술하려는 목적으로 사용된 것이지 발명의 범위를 한정하려고 사용된 것은 아니다. 여기에 사용되는 바와 같이, 단수 형태인 "한", "하나" 및 "일" 이라는 용어들은 그 맥락에서 다르게 명시되지 않는다면 복수의 형태들도 또한 포함하는 것으로 의도된다. 또한, "포함하다" 및/또는 "포함하는" 이라는 용어들은 본 명세서에서 사용되는 경우, 언급한 특징들, 정수들, 단계들, 동작들, 엘리먼트들, 및/또는 컴포넌트들의 존재를 명시하지만, 하나 또는 그 이상의 다른 특징들, 정수들, 단계들, 동작들, 엘리먼트들, 컴포넌트들, 및/또는 이것들의 그룹들의 존재 또는 추가를 배제하는 것은 아님을 더 이해해야 할 것이다.
이하의 청구항들에서 모든 수단들 또는 단계 플러스 기능 엘리먼트들의 대응하는 구조들, 재료들, 작용들, 및 균등물들은 구체적으로 청구되는 다른 청구된 엘리먼트들과 함께 그 기능을 수행하기 위한 구조, 재료, 또는 작용을 포함하는 것으로 의도된다. 본 발명에 관한 기술은 예시 및 설명의 목적으로 제시된 것이지 개시되는 형태대로 발명의 범위를 한정하거나 발명의 실시예를 빠짐없이 총 망라하려는 의도는 아니다. 발명의 범위 및 사상을 벗어남이 없이 많은 변경 및 변형 예들이 있을 수 있음은 당해 기술 분야에서 통상의 기술을 가진 자들에게는 분명할 것이다. 상기 실시예는, 본 발명의 원리들 및 실제 어플리케이션을 가장 잘 설명하기 위해 그리고 당해 기술 분야에서 통상의 기술을 가진 다른 자들이 고려된 특정 사용에 적합하게 여러 가지 변경 예들을 갖는 다양한 실시예들에 대해 본 발명을 이해할 수 있도록 하기 위해 선택되고 기술되었다.
여기서 기술된 흐름도들은 단지 일 예일 뿐이다. 본 발명의 사상을 벗어남이 없이 여기에 기술되는 이러한 다이어그램 또는 단계들(또는 동작들)에 대한 많은 변형 예들이 있을 수 있다. 예를 들어, 상기 단계들은 다른 순서로 수행될 수 있고, 또는 단계들은 추가, 삭제 또는 변경될 수 있다. 이들 변형 예들 모두는 청구되는 발명의 일부로서 고려된다.
본 발명에 대한 바람직한 실시예가 기술되었으나, 당해 기술 분야에서 숙련된 자들은, 현재 그리고 장래에, 다음의 청구항들의 범위 내에 들어오는 여러 가지 개량 예들 및 개선 예들을 만들 수 있다는 것이 이해될 것이다. 이들 청구항들은 먼저 기술되는 발명에 대한 적절한 보호 범위를 유지하는 것으로 해석된다.

Claims (18)

  1. 스트림 프로세싱 컴퓨터 아키텍쳐를 구현하는 방법에 있어서,
    스트림 컴퓨터 프로세싱 시스템을 생성하는 단계 - 상기 생성하는 단계는,
    프로세서들의 수퍼 노드 클러스터를 형성하는 단계 - 상기 프로세서들 각각은 상기 수퍼 노드 클러스터 내에 적어도 하나의 물리적 컴퓨테이션 노드를 포함함 -;
    로컬 인터커넥션 수단을 통해 상기 수퍼 노드 클러스터 내의 프로세서들 각각을 통신상으로 결합시키는 단계; 및
    상기 수퍼 노드 클러스터를 하나 또는 다수의 옵티컬 외부 링크들을 통해 적어도 하나의 옵티컬 회로 스위치에 통신상으로 결합시키는 단계 - 상기 옵티컬 회로 스위치는 각기 적어도 하나의 다른 물리적 컴퓨테이션 노드를 포함하는 적어도 하나의 다른 프로세서들의 수퍼 노드 클러스터(at least one other super node cluster of processors)에 상기 다른 수퍼 노드 클러스터로부터의 하나 또는 그 이상의 옵티컬 외부 링크들을 통해 통신상으로 결합됨 - 를 포함함 -;
    커널들 및 데이터 스트림들을 포함하는 스트림 컴퓨테이션 그래프를 발생시키는 단계 - 상기 커널들은 소프트웨어 코드 엘리먼트들을 나타내며, 상기 소프트웨어 코드 엘리먼트들은 해당 커널들로 입력되는 데이터 스트림들 중 하나 또는 그 이상에 관해 컴퓨테이션을 수행함 -;
    상기 스트림 컴퓨테이션 그래프를 상기 스트림 컴퓨터 프로세싱 시스템에 매핑하는 단계 - 상기 매핑하는 단계는,
    상기 커널들을 상기 수퍼 노드 클러스터들에 그리고 상기 수퍼 노드 클러스터들 각각의 물리적 컴퓨테이션 노드들 각각에 배치(assign)하는 단계;
    각각의 데이터 스트림이 동일한 수퍼 노드 클러스터 내의 물리적 컴퓨테이션 노드들 사이에 있는 경우 상기 커널들 사이의 데이터 스트림 트래픽을 상기 로컬 인터커넥션 수단에 배치하는 단계;
    상기 각각의 데이터 스트림이 서로 다른 수퍼 노드 클러스터들 내의 물리적 컴퓨테이션 노드들 사이에 있는 경우 상기 커널들 사이의 데이터 스트림 트래픽을 상기 옵티컬 외부 링크들에 배치하는 단계; 및
    상기 옵티컬 외부 링크들을 통해, 상기 배치들에 대응하는 수퍼 노드 클러스터들 사이의 연결을 제공하기 위해 상기 옵티컬 회로 스위치를 구성하는 단계를 포함함 -; 및
    상기 스트림 컴퓨테이션 그래프에 따라 상기 스트림 컴퓨터 프로세싱 시스템상에서 동작들을 실행하는 단계를 포함하는
    방법.
  2. 청구항 1에 있어서, 상기 옵티컬 회로 스위치를 구성하는 단계는 상기 스트림 컴퓨테이션 그래프에 만들어지는 변화들을 반영(reflect)하기 위해 상기 옵티컬 회로 스위치의 연결을 동적으로 스위칭하는 단계를 포함하는
    방법.
  3. 청구항 2에 있어서, 상기 스트림 컴퓨테이션 그래프에 대한 변화들은 로드 밸런싱(load balancing) 활동들을 반영하는
    방법.
  4. 청구항 1에 있어서, 수퍼 노드 클러스터 내의 개별 데이터 스트림들은 상기 수퍼 노드 클러스터의 대응하는 로컬 인터커넥션 수단에 의해 관리되는
    방법.
  5. 청구항 4에 있어서, 상기 로컬 인터커넥션 수단은,
    직접적인 연결;
    캐시 코히어런트(cache coherent) 대칭 멀티프로세서(symmetric multiprocessor, SMP) 구조를 통해; 그리고
    스위치, 중 적어도 하나에 의해 구현되는
    방법.
  6. 청구항 1에 있어서, 상기 물리적 컴퓨테이션 노드는 단일 프로세서인
    방법.
  7. 청구항 1에 있어서, 상기 물리적 컴퓨테이션 노드는 멀티-프로세서인
    방법.
  8. 청구항 1에 있어서, 상기 스트림 컴퓨테이션 그래프는 바이너리 트리 토폴로지를 사용하여 발생되는
    방법.
  9. 청구항 1에 있어서, 상기 방법은 최소 데이터 패싱(passing)이 일어나는(encounter) 것으로 결정되는 커널들 사이의 데이터 스트림 트래픽들을 전달하기 위해 패킷-스위치 네트워크(packet-switched network)를 사용하는 단계를 더 포함하되, 상기 결정은 스레쉬홀드 함수(threshold function)를 사용하여 수행되는
    방법.
  10. 스트림 프로세싱 컴퓨터 아키텍쳐를 구현하는 시스템에 있어서,
    스트림 컴퓨터 프로세싱 시스템 - 상기 스트림 컴퓨터 프로세싱 시스템은,
    프로세서들의 수퍼 노드 클러스터를 형성하는 단계 - 상기 프로세서들 각각은 상기 수퍼 노드 클러스터 내에 적어도 하나의 물리적 컴퓨테이션 노드를 포함함 -;
    로컬 인터커넥션 수단을 통해 상기 수퍼 노드 클러스터 내의 프로세서들 각각을 통신상으로 결합시키는 단계; 및
    상기 수퍼 노드 클러스터를 하나 또는 다수의 옵티컬 외부 링크들을 통해 적어도 하나의 옵티컬 회로 스위치에 통신상으로 결합시키는 단계 - 상기 옵티컬 회로 스위치는 각기 적어도 하나의 다른 물리적 컴퓨테이션 노드를 포함하는 적어도 하나의 다른 프로세서들의 수퍼 노드 클러스터(at least one other super node cluster of processors)에 상기 다른 수퍼 노드 클러스터로부터의 하나 또는 그 이상의 옵티컬 외부 링크들을 통해 통신상으로 결합됨 - 에 의해 생성됨 -;
    커널들 및 데이터 스트림들을 포함하는 스트림 컴퓨테이션 그래프 - 상기 커널들은 소프트웨어 코드 엘리먼트들을 나타내며, 상기 소프트웨어 코드 엘리먼트들은 해당 커널들로 입력되는 데이터 스트림들 중 하나 또는 그 이상에 관해 컴퓨테이션들을 수행함 - 를 포함하며,
    상기 스트림 컴퓨테이션 그래프는 상기 스트림 컴퓨터 프로세싱 시스템에 매핑되고, 상기 매핑은 상기 수퍼 노드 클러스터들에 그리고 상기 수퍼 노드 클러스터들 각각의 물리적 컴퓨테이션 노드들 각각에 배치(assign)하는 단계, 각각의 데이터 스트림이 동일한 수퍼 노드 클러스터 내의 물리적 컴퓨테이션 노드들 사이에 있는 경우 상기 커널들 사이의 데이터 스트림 트래픽을 상기 로컬 인터커넥션 수단에 배치하는 단계, 상기 각각의 데이터 스트림이 서로 다른 수퍼 노드 클러스터들 내의 물리적 컴퓨테이션 노드들 사이에 있는 경우 상기 커널들 사이의 데이터 스트림 트래픽을 상기 옵티컬 외부 링크들에 배치하는 단계, 및 상기 옵티컬 외부 링크들을 통해 상기 배치들에 대응하는 수퍼 노드 클러스터들 사이의 연결을 제공하기 위해 상기 옵티컬 회로 스위치를 구성하는 단계를 포함하며,
    상기 스트림 컴퓨테이션 그래프에 따라 상기 스트림 컴퓨터 프로세싱 시스템상에서 동작들이 실행되는
    시스템.
  11. 청구항 10에 있어서, 상기 옵티컬 회로 스위치를 구성하는 단계는 상기 스트림 컴퓨테이션 그래프에 만들어지는 변화들을 반영(reflect)하기 위해 상기 옵티컬 회로 스위치의 연결을 동적으로 스위칭하는 단계를 포함하는
    시스템.
  12. 청구항 11에 있어서, 상기 스트림 컴퓨테이션 그래프에 대한 변화들은 로드 밸런싱(load balancing) 활동들을 반영하는
    시스템.
  13. 청구항 10에 있어서, 수퍼 노드 클러스터 내의 개별 데이터 스트림들은 상기 수퍼 노드 클러스터의 대응하는 로컬 인터커넥션 수단에 의해 관리되는
    시스템.
  14. 청구항 13에 있어서, 상기 로컬 인터커넥션 수단은,
    직접적인 연결;
    캐시 코히어런트(cache coherent) 대칭 멀티프로세서(symmetric multiprocessor, SMP) 구조를 통해; 그리고
    스위치, 중 적어도 하나에 의해 구현되는
    시스템.
  15. 청구항 10에 있어서, 상기 물리적 컴퓨테이션 노드는 단일 프로세서인
    시스템.
  16. 청구항 10에 있어서, 상기 물리적 컴퓨테이션 노드는 멀티-프로세서인
    시스템.
  17. 청구항 10에 있어서, 상기 스트림 컴퓨테이션 그래프는 바이너리 트리 토폴로지를 사용하여 발생되는
    시스템.
  18. 청구항 10에 있어서, 상기 시스템은 패킷-스위치 네트워크(packet-switched network)를 더 포함하되, 상기 패킷-스위치 네트워크는 최소 데이터 패싱(passing)이 일어나는(encounter) 것으로 결정되는 커널들 사이의 데이터 스트림 트래픽들을 전달하되, 상기 결정은 스레쉬홀드 함수(threshold function)를 사용하여 수행되는
    시스템.
KR1020117000684A 2008-08-18 2009-08-13 스트림 프로세싱 컴퓨터 아키텍쳐를 구현하는 방법 및 시스템 KR101572295B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/193,125 2008-08-18
US12/193,125 US7856544B2 (en) 2008-08-18 2008-08-18 Stream processing in super node clusters of processors assigned with stream computation graph kernels and coupled by stream traffic optical links

Publications (2)

Publication Number Publication Date
KR20110063730A true KR20110063730A (ko) 2011-06-14
KR101572295B1 KR101572295B1 (ko) 2015-12-04

Family

ID=41078173

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117000684A KR101572295B1 (ko) 2008-08-18 2009-08-13 스트림 프로세싱 컴퓨터 아키텍쳐를 구현하는 방법 및 시스템

Country Status (7)

Country Link
US (2) US7856544B2 (ko)
EP (1) EP2274685A1 (ko)
JP (1) JP5490120B2 (ko)
KR (1) KR101572295B1 (ko)
CN (1) CN102138138B (ko)
TW (1) TWI434186B (ko)
WO (1) WO2010020577A1 (ko)

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8943509B2 (en) * 2008-03-21 2015-01-27 International Business Machines Corporation Method, apparatus, and computer program product for scheduling work in a stream-oriented computer system with configurable networks
US9032407B2 (en) * 2009-05-25 2015-05-12 Panasonic Intellectual Property Corporation Of America Multiprocessor system, multiprocessor control method, and multiprocessor integrated circuit
US20110134127A1 (en) * 2009-12-03 2011-06-09 Ravishankar Gundlapalli Global Career Graph
CN102201992B (zh) * 2011-05-25 2013-09-25 上海理工大学 面向流处理器并行环境的数据流通信系统及其通信方法
CN102200906B (zh) * 2011-05-25 2013-12-25 上海理工大学 大规模并发数据流处理系统及其处理方法
US8990452B2 (en) 2011-07-26 2015-03-24 International Business Machines Corporation Dynamic reduction of stream backpressure
US8560526B2 (en) 2011-07-26 2013-10-15 International Business Machines Corporation Management system for processing streaming data
US8959313B2 (en) 2011-07-26 2015-02-17 International Business Machines Corporation Using predictive determinism within a streaming environment
US9148495B2 (en) 2011-07-26 2015-09-29 International Business Machines Corporation Dynamic runtime choosing of processing communication methods
CN102957622B (zh) * 2011-08-16 2015-05-27 阿里巴巴集团控股有限公司 一种数据处理的方法、装置及系统
EP3410737B1 (en) 2011-10-28 2021-12-29 NeoPhotonics Corporation Scalable optical switching node
US8874751B2 (en) 2011-12-01 2014-10-28 International Business Machines Corporation Candidate set solver with user advice
US10554782B2 (en) 2011-12-01 2020-02-04 International Business Machines Corporation Agile hostpool allocator
US8898505B2 (en) 2011-12-01 2014-11-25 International Business Machines Corporation Dynamically configureable placement engine
US9405553B2 (en) 2012-01-30 2016-08-02 International Business Machines Corporation Processing element management in a streaming data system
US9009007B2 (en) 2012-03-13 2015-04-14 International Business Machines Corporation Simulating stream computing systems
US8954698B2 (en) 2012-04-13 2015-02-10 International Business Machines Corporation Switching optically connected memory
US9146775B2 (en) 2012-04-26 2015-09-29 International Business Machines Corporation Operator graph changes in response to dynamic connections in stream computing applications
CN102882799B (zh) * 2012-09-13 2017-09-01 曙光信息产业(北京)有限公司 流量可控的集群部署配置系统与方法
US9930081B2 (en) 2012-11-13 2018-03-27 International Business Machines Corporation Streams optional execution paths depending upon data rates
CN103345458A (zh) * 2013-06-24 2013-10-09 北京工业大学 一种面向高性能计算的多fpga互联结构及逻辑划分方法
US9460049B2 (en) * 2013-07-18 2016-10-04 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Dynamic formation of symmetric multi-processor (SMP) domains
CN104750659B (zh) * 2013-12-26 2018-07-20 中国科学院电子学研究所 一种基于自动布线互连网络的粗粒度可重构阵列电路
US9886521B2 (en) * 2014-03-13 2018-02-06 International Business Machines Corporation Adaptive sampling schemes for clustering streaming graphs
US20160062756A1 (en) * 2014-08-26 2016-03-03 Vendita Technology Group, Inc. Hardware and software architecture for enabling optimizing technical capabilities in a database
CN104504143B (zh) * 2015-01-04 2017-12-29 华为技术有限公司 一种流图优化方法及其装置
US9967197B2 (en) * 2015-01-12 2018-05-08 Citrix Systems, Inc. Large scale bandwidth management of IP flows using a hierarchy of traffic shaping devices
US10511659B1 (en) 2015-04-06 2019-12-17 EMC IP Holding Company LLC Global benchmarking and statistical analysis at scale
US10404787B1 (en) 2015-04-06 2019-09-03 EMC IP Holding Company LLC Scalable distributed data streaming computations across multiple data processing clusters
US10541938B1 (en) 2015-04-06 2020-01-21 EMC IP Holding Company LLC Integration of distributed data processing platform with one or more distinct supporting platforms
US10860622B1 (en) 2015-04-06 2020-12-08 EMC IP Holding Company LLC Scalable recursive computation for pattern identification across distributed data processing nodes
US10496926B2 (en) 2015-04-06 2019-12-03 EMC IP Holding Company LLC Analytics platform for scalable distributed computations
US10541936B1 (en) 2015-04-06 2020-01-21 EMC IP Holding Company LLC Method and system for distributed analysis
US10812341B1 (en) 2015-04-06 2020-10-20 EMC IP Holding Company LLC Scalable recursive computation across distributed data processing nodes
US10015106B1 (en) 2015-04-06 2018-07-03 EMC IP Holding Company LLC Multi-cluster distributed data processing platform
US10776404B2 (en) 2015-04-06 2020-09-15 EMC IP Holding Company LLC Scalable distributed computations utilizing multiple distinct computational frameworks
US10791063B1 (en) 2015-04-06 2020-09-29 EMC IP Holding Company LLC Scalable edge computing using devices with limited resources
US10706970B1 (en) 2015-04-06 2020-07-07 EMC IP Holding Company LLC Distributed data analytics
US10505863B1 (en) 2015-04-06 2019-12-10 EMC IP Holding Company LLC Multi-framework distributed computation
US10425350B1 (en) 2015-04-06 2019-09-24 EMC IP Holding Company LLC Distributed catalog service for data processing platform
US10348810B1 (en) * 2015-04-06 2019-07-09 EMC IP Holding Company LLC Scalable distributed computations utilizing multiple distinct clouds
US10515097B2 (en) * 2015-04-06 2019-12-24 EMC IP Holding Company LLC Analytics platform for scalable distributed computations
US10366111B1 (en) * 2015-04-06 2019-07-30 EMC IP Holding Company LLC Scalable distributed computations utilizing multiple distinct computational frameworks
US10509684B2 (en) 2015-04-06 2019-12-17 EMC IP Holding Company LLC Blockchain integration for scalable distributed computations
US10331380B1 (en) 2015-04-06 2019-06-25 EMC IP Holding Company LLC Scalable distributed in-memory computation utilizing batch mode extensions
US10528875B1 (en) 2015-04-06 2020-01-07 EMC IP Holding Company LLC Methods and apparatus implementing data model for disease monitoring, characterization and investigation
US11379262B2 (en) 2015-05-26 2022-07-05 Blaize, Inc. Cascading of graph streaming processors
US10437637B1 (en) 2015-05-26 2019-10-08 Thin CI, Inc. Configurable scheduler for graph processing on multi-processor computing systems
US11416282B2 (en) 2015-05-26 2022-08-16 Blaize, Inc. Configurable scheduler in a graph streaming processing system
US11150961B2 (en) 2015-05-26 2021-10-19 Blaize, Inc. Accelerated operation of a graph streaming processor
US11436045B2 (en) 2015-05-26 2022-09-06 Blaize, Inc. Reduction of a number of stages of a graph streaming processor
US10656861B1 (en) 2015-12-29 2020-05-19 EMC IP Holding Company LLC Scalable distributed in-memory computation
US10122788B2 (en) * 2016-03-29 2018-11-06 Amazon Technologies, Inc. Managed function execution for processing data streams in real time
US10178451B2 (en) * 2016-07-21 2019-01-08 Raytheon Company Optical data switching circuitry
US10334334B2 (en) 2016-07-22 2019-06-25 Intel Corporation Storage sled and techniques for a data center
US10374968B1 (en) 2016-12-30 2019-08-06 EMC IP Holding Company LLC Data-driven automation mechanism for analytics workload distribution
US11461105B2 (en) 2017-04-07 2022-10-04 Intel Corporation Methods and apparatus for deep learning network execution pipeline on multi-processor platform
US11792284B1 (en) 2017-11-27 2023-10-17 Lacework, Inc. Using data transformations for monitoring a cloud compute environment
US12021888B1 (en) 2017-11-27 2024-06-25 Lacework, Inc. Cloud infrastructure entitlement management by a data platform
US20220232024A1 (en) 2017-11-27 2022-07-21 Lacework, Inc. Detecting deviations from typical user behavior
US10425437B1 (en) 2017-11-27 2019-09-24 Lacework Inc. Extended user session tracking
US11979422B1 (en) 2017-11-27 2024-05-07 Lacework, Inc. Elastic privileges in a secure access service edge
CN110213073B (zh) * 2018-04-20 2021-10-22 腾讯科技(深圳)有限公司 数据流向变更方法、电子设备、计算节点及存储介质
US11042416B2 (en) * 2019-03-06 2021-06-22 Google Llc Reconfigurable computing pods using optical networks
US11307860B1 (en) 2019-11-22 2022-04-19 Blaize, Inc. Iterating group sum of multiple accumulate operations
US10996960B1 (en) 2019-11-22 2021-05-04 Blaize, Inc. Iterating single instruction, multiple-data (SIMD) instructions
US11366664B1 (en) 2019-12-08 2022-06-21 Blaize, Inc. Single instruction multiple data (simd) execution with variable width registers
US10873592B1 (en) 2019-12-23 2020-12-22 Lacework Inc. Kubernetes launch graph
US11188571B1 (en) 2019-12-23 2021-11-30 Lacework Inc. Pod communication graph
US11256759B1 (en) 2019-12-23 2022-02-22 Lacework Inc. Hierarchical graph analysis
US11201955B1 (en) 2019-12-23 2021-12-14 Lacework Inc. Agent networking in a containerized environment
US11561840B2 (en) * 2020-01-30 2023-01-24 Alibaba Group Holding Limited Efficient inter-chip interconnect topology for distributed parallel deep learning
CN111415007B (zh) * 2020-03-26 2023-01-17 中科寒武纪科技股份有限公司 一种计算数据的方法、装置、板卡及计算机可读存储介质
CN111880911A (zh) * 2020-06-19 2020-11-03 浪潮电子信息产业股份有限公司 一种任务负载调度方法、装置、设备及可读存储介质
US11513845B2 (en) 2020-11-06 2022-11-29 Blaize, Inc. Configurable scheduler with pre-fetch and invalidate threads in a graph stream processing system
US11620248B2 (en) * 2021-03-31 2023-04-04 Advanced Micro Devices, Inc. Optical bridge interconnect unit for adjacent processors
US20230409643A1 (en) * 2022-06-17 2023-12-21 Raytheon Company Decentralized graph clustering using the schrodinger equation
CN115809685B (zh) * 2023-02-09 2023-07-25 鹏城实验室 一种npu集群网络结构和网络互连方法

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56127266A (en) * 1980-03-10 1981-10-05 Ibm Method of executing and controlling command stream
JPS62259164A (ja) * 1985-11-27 1987-11-11 テキサス インスツルメンツ インコ−ポレイテツド コンピユ−タ及び実時間音声レコグナイザ
US5317734A (en) * 1989-08-29 1994-05-31 North American Philips Corporation Method of synchronizing parallel processors employing channels and compiling method minimizing cross-processor data dependencies
FR2689711B1 (fr) 1992-04-03 1994-05-13 France Telecom Reseau de telecommunications.
US6631018B1 (en) 1997-08-27 2003-10-07 Nortel Networks Limited WDM optical network with passive pass-through at each node
JPH1185616A (ja) * 1997-09-11 1999-03-30 Canon Inc 情報処理システム及び情報処理装置及びそれらの制御方法及び記憶媒体
US6175868B1 (en) 1998-05-15 2001-01-16 Nortel Networks Limited Method and apparatus for automatically configuring a network switch
US6671254B1 (en) 1998-12-11 2003-12-30 Oki Electric Industry Co., Ltd. Communication network and communication node used in such network
US6647208B1 (en) 1999-03-18 2003-11-11 Massachusetts Institute Of Technology Hybrid electronic/optical switch system
US6748440B1 (en) * 1999-05-12 2004-06-08 Microsoft Corporation Flow of streaming data through multiple processing modules
US6792174B1 (en) 1999-11-02 2004-09-14 Nortel Networks Limited Method and apparatus for signaling between an optical cross-connect switch and attached network equipment
JP2003533150A (ja) 2000-05-11 2003-11-05 ビーティージー・インターナショナル・リミテッド 光トランスポート・ネットワーク
US20020131103A1 (en) 2001-03-16 2002-09-19 Nicholas Bambos Method and system for reconfiguring a network element such as an optical network element
US6809734B2 (en) * 2001-03-22 2004-10-26 Sony Computer Entertainment Inc. Resource dedication system and method for a computer architecture for broadband networks
US7263096B2 (en) 2001-12-21 2007-08-28 Lucent Technologies Inc. Apparatus, system and method for managing circuit and packet-switched calls on a network
US6970617B2 (en) 2003-01-07 2005-11-29 Charles Mao Reconfigurable service ring and method for operation in optical networks
US8281297B2 (en) 2003-02-05 2012-10-02 Arizona Board Of Regents Reconfigurable processing
US7340169B2 (en) 2003-11-13 2008-03-04 Intel Corporation Dynamic route discovery for optical switched networks using peer routing
US7000048B2 (en) 2003-12-18 2006-02-14 Intel Corporation Apparatus and method for parallel processing of network data on a single processing thread
US7376295B2 (en) 2004-09-20 2008-05-20 Fujitsu Limited Opto-electronic processors with reconfigurable chip-to-chip optical interconnections
US7739218B2 (en) 2005-08-16 2010-06-15 International Business Machines Corporation Systems and methods for building and implementing ontology-based information resources
US20070204020A1 (en) * 2006-02-24 2007-08-30 International Business Machines Corporation System and method of stream processing workflow composition using automatic planning
US7441224B2 (en) * 2006-03-09 2008-10-21 Motorola, Inc. Streaming kernel selection for reconfigurable processor
US7738129B2 (en) 2006-03-13 2010-06-15 International Business Machines Corporation Method and apparatus for assigning candidate processing nodes in a stream-oriented computer system
US20100242042A1 (en) 2006-03-13 2010-09-23 Nikhil Bansal Method and apparatus for scheduling work in a stream-oriented computer system
US7853949B2 (en) 2006-03-13 2010-12-14 International Business Machines Corporation Method and apparatus for assigning fractional processing nodes to work in a stream-oriented computer system
US8194638B2 (en) 2006-07-27 2012-06-05 International Business Machines Corporation Dual network types solution for computer interconnects
US7680502B2 (en) 2006-07-28 2010-03-16 Mccown Steven H Radio frequency detection assembly and method for detecting radio frequencies
US9038041B2 (en) 2006-12-04 2015-05-19 Tibco Software, Inc. Stream processor with compiled programs
US7899861B2 (en) * 2007-04-02 2011-03-01 International Business Machines Corporation Method for declarative semantic expression of user intent to enable goal-driven stream processing
US8458720B2 (en) 2007-08-17 2013-06-04 International Business Machines Corporation Methods and systems for assigning non-continual jobs to candidate processing nodes in a stream-oriented computer system
US7941387B2 (en) 2007-11-05 2011-05-10 International Business Machines Corporation Method and system for predicting resource usage of reusable stream processing elements
US8943509B2 (en) 2008-03-21 2015-01-27 International Business Machines Corporation Method, apparatus, and computer program product for scheduling work in a stream-oriented computer system with configurable networks
US8125984B2 (en) * 2008-03-21 2012-02-28 International Business Machines Corporation Method, system, and computer program product for implementing stream processing using a reconfigurable optical switch

Also Published As

Publication number Publication date
US7856544B2 (en) 2010-12-21
WO2010020577A1 (en) 2010-02-25
EP2274685A1 (en) 2011-01-19
JP5490120B2 (ja) 2014-05-14
TWI434186B (zh) 2014-04-11
US20100042809A1 (en) 2010-02-18
CN102138138A (zh) 2011-07-27
CN102138138B (zh) 2015-01-28
JP2012500432A (ja) 2012-01-05
TW201019133A (en) 2010-05-16
US20110055519A1 (en) 2011-03-03
KR101572295B1 (ko) 2015-12-04
US8037284B2 (en) 2011-10-11

Similar Documents

Publication Publication Date Title
KR101572295B1 (ko) 스트림 프로세싱 컴퓨터 아키텍쳐를 구현하는 방법 및 시스템
Wu et al. UNION: A unified inter/intrachip optical network for chip multiprocessors
Wu et al. Suor: Sectioned undirectional optical ring for chip multiprocessor
Morris et al. Dynamic reconfiguration of 3d photonic networks-on-chip for maximizing performance and improving fault tolerance
Wu et al. An inter/intra-chip optical network for manycore processors
Van Winkle et al. Extending the power-efficiency and performance of photonic interconnects for heterogeneous multicores with machine learning
Ben Ahmed et al. Hybrid silicon-photonic network-on-chip for future generations of high-performance many-core systems
US8406623B2 (en) Data channel organization for a switched arbitrated on-chip optical network
Morris et al. 3d-noc: Reconfigurable 3d photonic on-chip interconnect for multicores
Yang et al. RSON: An inter/intra-chip silicon photonic network for rack-scale computing systems
Bashir et al. GPUOPT: Power-efficient photonic network-on-chip for a scalable GPU
Kavitha et al. Optical network on chip: design of wavelength routed optical ring architecture
Al Faisal et al. HFBN: An energy efficient high performance hierarchical interconnection network for exascale supercomputer
Yang et al. Rwadmm: routing and wavelength assignment for distribution-based multiple multicasts in onoc
JP6270329B2 (ja) 自由空間の光インターコネクトでの再構成が可能なマルチコア・ネットワーク
İmre Dual-mode routing approach for photonic network on chip platforms
Nitta et al. DCOF—An arbitration free directly connected optical fabric
Yan et al. A novel non-cluster based architecture of hybrid electro-optical network-on-chip
Shah et al. Heterogeneous photonic network-on-chip with dynamic bandwidth allocation
CN113709603B (zh) 通过硅光子实现零增加等待时间的分组重新路由
Yang et al. Unified inter-and intra-chip optical interconnect networks
Ben Abdallah et al. Communication Networks for Neuromorphic Systems
CN113986813B (zh) 片上网络结构构建及使用的方法、系统、设备和存储介质
Feng et al. Scalable Low-Power High-Performance Optical Network for Rack-Scale Computers
Zhou et al. Topology Optimization of 3D Hybrid Opti-cal-Electronic Networks-on-Chip

Legal Events

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

Payment date: 20191029

Year of fee payment: 5