KR101159377B1 - 고성능 컴퓨팅 시스템 및 방법 - Google Patents

고성능 컴퓨팅 시스템 및 방법 Download PDF

Info

Publication number
KR101159377B1
KR101159377B1 KR1020067023882A KR20067023882A KR101159377B1 KR 101159377 B1 KR101159377 B1 KR 101159377B1 KR 1020067023882 A KR1020067023882 A KR 1020067023882A KR 20067023882 A KR20067023882 A KR 20067023882A KR 101159377 B1 KR101159377 B1 KR 101159377B1
Authority
KR
South Korea
Prior art keywords
node
processor
nodes
hpc
processors
Prior art date
Application number
KR1020067023882A
Other languages
English (en)
Other versions
KR20070011503A (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=34711924&utm_source=***_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR101159377(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 레이던 컴퍼니 filed Critical 레이던 컴퍼니
Publication of KR20070011503A publication Critical patent/KR20070011503A/ko
Application granted granted Critical
Publication of KR101159377B1 publication Critical patent/KR101159377B1/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/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/803Three-dimensional arrays or hypercubes
    • 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
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)

Abstract

고성능 컴퓨팅(High Performance Computing, HPC) 노드는 마더보드, 마더 보드 상에 통합된 8개 이상의 포트를 포함하는 스위치, 및 HPC 작업을 실행하는 적어도 2개의 프로세서를 포함하며, 각각의 프로세서는 통합된 스위치와 통신가능하게 연결되어 있고 마더보드 상에 통합되어 있다.
데이터 처리, 고성능 컴퓨팅, 블레이드, 클러스터, HPC

Description

고성능 컴퓨팅 시스템 및 방법{HIGH PERFORMANCE COMPUTING SYSTEM AND METHOD}
본 발명은 일반적으로 데이터 처리 분야에 관한 것으로서, 보다 상세하게는 고성능 컴퓨팅 시스템 및 방법에 관한 것이다.
고성능 컴퓨팅(High Performance Computing, HPC)은 종종 과학자 및 공학자가 복잡한 물리적 또는 알고리즘 현상을 모델링, 시뮬레이션 및 분석하는데 사용하는 컴퓨팅 시스템의 특징을 이룬다. 현재, HPC 머신은 일반적으로 노드라고 하는 하나 이상의 프로세서의 수많은 HPC 클러스터를 사용하여 설계된다. 대부분의 대규모 과학 및 공학 응용에 있어서, 성능은 주로 병렬 확장성(parallel scalability)에 의해 결정되고 개개의 노드의 속도에 의해 결정되지 않으며, 따라서 확장성은 종종 이러한 고성능 클러스터를 구축 또는 구매하는 데 있어서 제한 요소(limiting factor)이다. 확장성은 일반적으로 i) 하드웨어, ii) 메모리, I/O 및 통신 대역폭, iii) 소프트웨어, iv) 아키텍처, 및 v) 애플리케이션에 기초하는 것으로 생각되고 있다. 대부분의 종래의 HPC 환경에서의 프로세싱, 메모리, 및 I/O 대역폭은 통상 균형을 이루고 있지 않으며, 따라서 확장(scale)이 여의치 않다. 많은 HPC 환경은 고급의 데이터 처리 요건(high-end data processing requirement)을 만족시키는 I/O 대역폭을 가지고 있지 않거나 너무 많은 불필요한 컴포넌트가 설치되어 있는 블레이드(blade)로 구축되어 있으며, 이는 시스템의 신뢰성을 극적으로 떨어뜨리는 경향이 있다. 따라서, 많은 HPC 환경은 생산 지향적(production-oriented) 환경에서의 효율적인 동작을 위한 안정된 클러스터 관리 소프트웨어를 제공하지 못할 수 있다.
본 발명은 마더보드, 마더보드 상에 통합된 8개 이상의 포트를 포함하는 스위치, 및 HPC 작업을 실행하는 적어도 2개의 프로세서를 포함하며, 각각의 프로세서는 통합된 스위치에 통신가능하게 연결되어 있고 마더보드 상에 통합되어 있는 고성능 컴퓨팅(HPC) 노드를 제공한다.
본 발명은 몇가지 중요한 기술적 이점을 갖는다. 예를 들어, 본 발명의 한가지 가능한 이점은, 집중된 스위칭 기능을 적어도 부분적으로 감소, 분산 또는 제거함으로써, 더 높은 입/출력(I/O) 성능, 아마도 종래의 HPC 대역폭보다 4배 내지 8배의 대역폭을 제공할 수 있다는 것이다. 실제로, 어떤 환경에서, I/O 성능은 프로세서 성능과 거의 대등할 수 있다. 이러한 균형 잡힌 방법은 통신 오버헤드에 덜 민감할 수 있다. 따라서, 본 발명은 블레이드 및 전체 시스템 성능을 향상시킬 수 있다. 다른 가능한 이점은 상호 접속 대기 시간의 감소(reduced interconnect latency)이다. 게다가, 본 발명은 종래의 블레이드보다 더 용이하게 확장가능하고, 신뢰성이 있으며 또한 내고장성(fault-tolerant)이 있다. 또다른 이점은 대학 및 공학 연구실에 전달될 수 있는 HPC 서버의 제작에 들어가는 비용 및/또는 HPC 프로세싱을 수행하는 데 들어가는 비용의 감소일 수 있다. 본 발명은 또한 균형된 아키텍처에 적어도 부분적으로 기초하여 보다 안정되고 효율적인 관리 소프트웨어를 가능하게 해줄 수 있다. 본 발명의 여러가지 실시예들은 이들 이점 중 어느 것도 가지고 있지 않거나, 그 중 일부를 가지거나, 그 전부를 가질 수 있다. 본 발명의 다른 기술적 이점들은 당업자에게는 곧바로 명백할 것이다.
도 1은 본 발명의 일 실시예에 따른 예시적인 고성능 컴퓨팅 시스템을 나타낸 도면.
도 2A 내지 도 2D는 도 1의 시스템에서의 그리드의 여러가지 실시예 및 그의 사용을 나타낸 도면.
도 3A 내지 도 3C는 도 1의 시스템에서의 개개의 노드의 여러가지 실시예를 나타낸 도면.
도 4A 및 도 4B는 도 1의 시스템에 따른 그래픽 사용자 인터페이스의 여러가지 실시예들을 나타낸 도면.
도 5는 도 1의 시스템에 따른 클러스터 관리 소프트웨어의 일 실시예를 나타낸 도면.
도 6은 도 1의 고성능 컴퓨팅 시스템에 따른, 배치 작업(batch job)을 제출(submit)하는 방법을 나타낸 플로우차트.
도 7은 도 1의 고성능 컴퓨팅 시스템에 따른, 그리드의 동적 백필링(dynamic backfilling) 방법을 나타낸 플로우차트.
도 8은 도 1의 고성능 컴퓨팅 시스템에 따른, 노드 고장을 동적으로 관리하는 방법을 나타낸 플로우차트.
본 발명 및 그의 이점에 대한 보다 완전한 이해를 위해, 이제부터 첨부 도면과 관련하여 기술된 이하의 설명을 참조한다.
도 1은 HPC 기술을 사용하여 소프트웨어 애플리케이션 및 프로세스, 예를 들어 대기, 기상 또는 충돌 시뮬레이션을 실행하는 고성능 컴퓨팅(HPC) 시스템(100)을 나타낸 블록도이다. 시스템(100)은 프로세싱 성능과 실질적으로 유사한 I/O 성능을 갖는 여러가지 컴퓨팅 노드(115) 중에서 동적으로 할당되는 HPC 기능을 사용자에게 제공한다. 일반적으로, 이들 노드(115)는, 그 중에서도 특히, 이 증가된 입/출력(I/O) 성능 및 감소된 패브릭 대기 시간(fabric latency)으로 인해 용이하게 확장가능하다. 예를 들어, 분산 아키텍처에서의 노드(115)의 확장성은 이하의 Amdahl의 법칙의 파생물(derivative)에 의해 표현될 수 있다.
S(N) = 1/((FP/N)+FS)*(1-Fc*(1-RR/L))
여기서, S(N) = N개의 프로세서에 대한 속도 증가, Fp = 병렬 코드의 비율, Fs = 비병렬 코드의 비율, Fc = 통신에 전용된 프로세싱의 비율, 및 RR/L = 원격/로컬 메모리 대역폭의 비이다. 따라서, HPC 시스템(100)이 프로세싱 성능과 실질적으로 같거나 비슷한 I/O 성능을 제공함으로써, HPC 시스템(100)은 HPC 애플리케이션의 전체 효율을 증가시키고 보다 용이한 시스템 관리를 가능하게 해준다.
HPC 시스템(100)은 사용자(과학자 및 공학자 등)로 하여금 HPC 서버(102) 상 에서 처리하기 위한 작업(150)을 제출할 수 있게 해주는 분산 클라이언트/서버 시스템이다. 예를 들어, 시스템(100)은 네트워크(106)를 통해 하나 이상의 관리 워크스테이션 또는 로컬 클라이언트(120)에 연결되어 있는 HPC 서버(102)를 포함할 수 있다. 그렇지만, 시스템(100)은 독립형 컴퓨팅 환경 또는 임의의 다른 적합한 환경일 수 있다. 요약하면, 시스템(100)은 확장성이 높은 노드(115)를 포함하고 또한 사용자로 하여금 작업(150)을 제출할 수 있게 해주며 작업(150)을 위해 확장가능 노드(115)를 동적으로 할당하고 또 할당된 노드(115)를 사용하여 작업(150)을 자동적으로 실행하는 임의의 HPC 컴퓨팅 환경이다. 작업(150)은 HPC 기술을 사용하여 처리되고 임의의 적절한 사용자에 의해 제출되는 임의의 배치(batch) 또는 온라인(online) 작업일 수 있다. 예를 들어, 작업(150)은 시뮬레이션, 모델링 또는 임의의 다른 고성능 요건의 요청일 수 있다. 작업(150)은 또한 클러스터 데이터베이스(clustered database), 온라인 트랜잭션 처리 시스템 또는 클러스터 애플리케이션 서버(clustered application server) 등의 데이터 센터 애플리케이션을 실행하라는 요청일 수 있다. 용어 "동적으로"는, 본 명세서에서 사용되는 바와 같이, 일반적으로 어떤 프로세싱이 하나 이상의 변수에 기초하여 적어도 부분적으로 런타임 시에 결정된다는 것을 의미한다. 용어 "자동적으로"는, 본 명세서에서 사용되는 바와 같이, 일반적으로 적절한 프로세싱이 실질적으로 HPC 시스템(100)의 적어도 일부분에 의해 수행된다는 것을 의미한다. "자동적으로"가 또한 본 발명의 범위를 벗어나지 않고 시스템(100)과의 임의의 적당한 사용자 또는 관리자 상호작용을 생각하고 있다는 것을 잘 알 것이다.
HPC 서버(102)는 복수의 균형잡힌 노드(115) 및 클러스터 관리 엔진(130)을 사용하여 작업(150)을 처리하는 임의의 로컬 또는 원격 컴퓨터를 포함하고 있다. 일반적으로, HPC 서버(102)는 블레이드 서버 또는 다른 분산 서버 등의 분산 컴퓨터를 포함한다. 그렇지만, 구성을 보면, 서버(102)는 복수의 노드(115)를 포함한다. 노드(115)는 예를 들어, 블레이드, 범용 퍼스널 컴퓨터(PC), 매킨토시, 워크스테이션, 유닉스-기반 컴퓨터 또는 임의의 다른 적당한 장치 등의 임의의 컴퓨터 또는 처리 장치를 포함한다. 일반적으로, 도 1은 본 발명에서 사용될 수 있는 컴퓨터의 단지 일례를 제공한다. 예를 들어, 도 1이 본 발명에서 사용될 수 있는 하나의 서버(102)를 도시하고 있지만, 시스템(100)은 서버 이외의 컴퓨터는 물론 서버 풀(server pool)을 사용하여 구현될 수 있다. 환언하면, 본 발명은 범용 컴퓨터 이외의 컴퓨터는 물론 종래의 운영 체제를 갖지 않는 컴퓨터를 생각하고 있다. 본 명세서에서 사용되는 바와 같이, 용어 "컴퓨터"는 퍼스널 컴퓨터, 워크스테이션, 네트워크 컴퓨터, 또는 임의의 다른 적당한 처리 장치를 포괄하도록 의도된다. HPC 서버(102) 또는 컴포넌트 노드(115)는 리눅스, 유닉스, 윈도즈 서버, 또는 임의의 다른 적당한 운영 체제 등의 임의의 운영 체제를 실행하도록 구성될 수 있다. 일 실시예에 따르면, HPC 서버(102)는 또한 원격 웹 서버를 포함하거나 그와 통신가능하게 연결되어 있을 수 있다. 따라서, 서버(102)는 HPC 작업(150)을 처리하기 위해 노드(115)를 동적으로 할당하기에 적합한 임의의 조합으로 소프트웨어 및/또는 하드웨어를 갖는 임의의 컴퓨터를 포함할 수 있다.
상위 레벨에서, HPC 서버(102)는 관리 노드(105), 복수의 노드(115)를 포함 하는 그리드(110), 및 클러스터 관리 엔진(130)을 포함한다. 보다 구체적으로는, 서버(102)는 복수의 블레이드(노드(115))를 포함하는 표준 19" 랙(standard 19" rack)일 수 있으며, 이 블레이드는 이하의 컴포넌트, 즉 i) 듀얼-프로세서, ii) 대용량, 고대역폭 메모리, iii) 듀얼 호스트 채널 어댑터(host channel adapter, HCA), iv) 통합 패브릭 스위칭(integrated fabric switching), v) FPGA 지원, 및 vi) 예비의 전원 입력 또는 N+1개의 전원 공급 장치 중 일부 또는 그 전부를 갖추고 있다. 이들 여러가지 컴포넌트는 고장이 노드 레벨로 한정될 수 있게 해준다. 그렇지만, HPC 서버(102) 및 노드(115)가 이들 컴포넌트를 전부 포함하지는 않을 수 있다는 것을 잘 알 것이다.
관리 노드(105)는 관리 또는 관리자를 지원하는 일에 실질적으로 전용되어 있는 적어도 하나의 블레이드를 포함한다. 예를 들어, 관리 노드(105)는 2개의 블레이드를 포함할 수 있으며, 2개의 블레이드 중 하나는 예비(능동/수동 구성 등)이다. 일 실시예에서, 관리 노드(105)는 HPC 노드(115)와 동일한 유형의 블레이드 또는 컴퓨팅 장치일 수 있다. 그렇지만, 관리 노드(105)는, 그리드(110)를 적어도 부분적으로 관리하도록 유지하는 한, 임의의 수의 회로를 포함하고 또 임의의 적당한 방식으로 구성된 임의의 노드일 수 있다. 종종, 관리 노드(105)는 그리드(110) 내에 결합하게 표시되어 있는 복수의 HPC 노드(115)와 물리적으로 또는 논리적으로 분리되어 있다. 예시된 실시예에서, 관리 노드(105)는 링크(108)를 통해 그리드(110)와 통신가능하게 연결되어 있을 수 있다. 링크(108)는 임의의 적절한 통신 프로토콜을 구현하는 임의의 통신 선로(communication conduit)를 포함할 수 있다. 일 실시예에서, 링크(108)는 관리 노드(105)와 노드(115) 간에 기가비트 또는 10 기가비트 이더넷 통신을 제공한다.
그리드(110)는 처리 능력의 향상을 위해 상호 접속된 노드(115)들의 그룹이다. 일반적으로, 그리드(110)는 3D 토러스(Torus)이지만, 본 발명의 범위를 벗어나지 않고 메쉬(mesh), 하이퍼큐브(hypercube) 또는 임의의 다른 형상 또는 구성일 수 있다. 그리드(110) 내의 노드(115)들 간의 링크는 예를 들어 파이버 또는 구리 등의 전기 또는 전자기 신호를 전달할 수 있는 직렬 또는 병렬 아날로그 링크, 디지털 링크, 또는 임의의 다른 유형의 링크일 수 있다. 각각의 노드(115)는 통합된 스위치로 구성되어 있다. 이것은 노드(115)가 보다 쉽게 3D 토러스의 기본 구성체(basic construct)가 될 수 있게 해주며 다른 노드(115)들 간의 XYZ 거리를 최소화시키는 데 도움이 된다. 게다가, 이것은 구리 배선이 대규모 시스템에서 기가비트 레이트까지 동작하게 만들어줄 수 있으며, 어떤 실시예들에서 가장 긴 케이블은 5 미터 미만이다. 요약하면, 노드(115)는 일반적으로 최근접-이웃 통신(nearest-neighbor communications) 및 I/O 대역폭 증가를 위해 최적화되어 있다.
각각의 노드(115)는 클러스터 관리 엔진(130)과 통신가능하게 연결되어 있는 클러스터 에이전트(132)를 포함할 수 있다. 일반적으로, 에이전트(132)는 관리 노드(105) 및/또는 클러스터 관리 엔진(130)으로부터 요청 또는 명령을 수신한다. 에이전트(132)는 노드(115)의 물리적 상태를 판정하고 처리된 데이터를 "하트비트(heartbeat)" 등을 통해 관리 노드(105)에 전달하는 임의의 하드웨어, 소프트웨어, 펌웨어 또는 이들의 조합을 포함할 수 있다. 다른 실시예에서, 관리 노 드(105)는 관련 노드(115)의 상태를 판정하기 위해 주기적으로 에이전트(132)에 폴링(poll)할 수 있다. 에이전트(132)는, 클러스터 관리 엔진(130)의 적어도 일부분과 호환되는 한, 예를 들어 C, C++, 어셈블러, 자바, 비쥬얼 베이직, 및 기타 또는 이들의 조합 등의 임의의 적절한 컴퓨터 언어로 작성될 수 있다.
클러스터 관리 엔진(130)은 노드(115)를 동적으로 할당 및 관리하며 노드(115)를 사용하여 작업(150)을 실행하는 임의의 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합을 포함할 수 있다. 예를 들어, 클러스터 관리 엔진(130)은 C, C++, 자바, 비쥬얼 베이직, 어셈블러, 임의의 적당한 버전의 4GL, 및 기타 또는 이들의 임의의 조합을 비롯한 임의의 적절한 컴퓨터 언어로 작성 또는 기술될 수 있다. 클러스터 관리 엔진(130)이 도 1에서 단일의 멀티-태스킹 모듈로서 도시되어 있지만, 이 엔진에 의해 수행되는 특징 및 기능이 예를 들어 물리 계층 모듈, 가상 계층 모듈, 작업 스케쥴러(job scheduler), 및 프리젠테이션 엔진(도 5에 보다 상세히 나타냄) 등의 다수의 모듈에 의해 수행될 수 있다는 것을 잘 알 것이다. 게다가, 관리 노드(105) 외부에 있는 것으로 도시되어 있지만, 관리 노드(105)는 일반적으로 클러스터 관리 엔진(130)과 연관된 하나 이상의 프로세스를 실행하고 또한 클러스터 관리 엔진(130)을 저장할 수 있다. 게다가, 클러스터 관리 엔진(130)은 본 발명의 범위를 벗어나지 않고 다른 소프트웨어 모듈의 자식(child) 또는 서브-모듈일 수 있다. 따라서, 클러스터 관리 엔진(130)은 노드(115) 및 작업(150)을 지능적으로 관리하는 기능을 하는 하나 이상의 소프트웨어 모듈을 포함한다.
서버(102)는 클라이언트-서버 또는 다른 분산 환경에서 네트워크(106)를 통해 클라이언트(120) 등의 다른 컴퓨터 시스템과 통신하기 위한 인터페이스(104)를 포함할 수 있다. 어떤 실시예들에서, 서버(102)는 디스크 팜(disk farm)(140)에 저장하기 위해 네트워크(106)로부터 작업(150) 또는 작업 정책을 수신한다. 디스크 팜(140)은 또한 노드들을 상호 접속시키는 동일한 광대역 인터페이스를 사용하여 계산 어레이(computational array)에 직접 부착될 수 있다. 일반적으로, 인터페이스(104)는 적당한 조합으로 소프트웨어 및/또는 하드웨어로 인코딩되어 있고 또 네트워크(106)와 통신하는 로직을 포함한다. 보다 구체적으로는, 인터페이스(104)는 통신 네트워크(106)와 연관된 하나 이상의 통신 프로토콜을 지원하는 소프트웨어 또는 물리적 신호를 전달하는 하드웨어를 포함할 수 있다.
네트워크(106)는 컴퓨터 서버(102)와 클라이언트(120) 등의 임의의 다른 컴퓨터 사이의 무선 또는 유선 통신을 용이하게 해준다. 실제로, 서버(102)와 클라이언트(120) 사이에 존재하는 것으로 도시되어 있지만, 네트워크(106)는 또한 본 발명의 범위를 벗어나지 않고 여러가지 노드(115) 사이에 존재할 수 있다. 환언하면, 네트워크(106)는 여러가지 컴퓨팅 컴포넌트들 간의 통신을 용이하게 해주는 임의의 네트워크, 네트워크들, 또는 서브네트워크를 포괄한다. 네트워크(106)는 네트워크 주소들 간에 예를 들어 인터넷 프로토콜(IP) 패킷, 프레임 릴레이 프레임, 비동기 전송 모드(ATM) 셀, 음성, 비디오, 데이터, 및 다른 적당한 정보를 전달할 수 있다. 네트워크(106)는 하나 이상의 근거리 통신망(LAN), 무선 액세스 네트워크(RAN), 대도시 통신망(MAN), 원거리 통신망(WAN), 인터넷이라고 하는 글로벌 컴 퓨터 네트워크의 전부 또는 그 일부분, 및/또는 하나 이상의 장소에 있는 임의의 다른 통신 시스템 또는 시스템들을 포함할 수 있다.
일반적으로, 디스크 팜(140)은 작업(150), 프로파일, 부트 이미지, 또는 다른 HPC 정보를 저장하는 임의의 메모리, 데이터베이스 또는 SAN(storage area network, 스토리지 전용 네트워크)이다. 예시된 실시예에 따르면, 디스크 팜(140)은 하나 이상의 스토리지 클라이언트(storage client)(142)를 포함한다. 디스크 팜(140)은 다수의 통신 프로토콜 중 임의의 것, 예를 들어, 인피니밴드(InfiniBand, IB), 기가비트 이더넷(Gigabit Ethernet, GE) 또는 파이버채널(FiberChannel, FC)에 따라 데이터 패킷을 처리 및 라우팅할 수 있다. 데이터 패킷은 일반적으로 디스크 팜(140) 내의 데이터를 전송하는 데 사용된다. 데이터 패킷은 소스 식별자 및 목적지 식별자를 갖는 헤더를 포함할 수 있다. 소스 식별자, 예를 들어 소스 주소는 정보의 송신자를 식별해주고, 목적지 식별자, 예를 들어, 목적지 주소는 정보의 수신자를 식별해준다.
클라이언트(120)는 그래픽 사용자 인터페이스(GUI)(126)를 통해 사용자에게 작업 제출 화면 또는 관리를 제공하는 임의의 장치이다. 상위 레벨에서, 예시된 클라이언트(120)는 적어도 GUI(126)를 포함하며, 또 시스템(100)과 연관된 임의의 적절한 데이터를 수신, 전송, 처리 및 저장하는 전자 컴퓨팅 장치를 포함한다. 서버(102)와 통신가능하게 연결되어 있는 임의의 수의 클라이언트(120)가 있을 수 있다는 것을 잘 알 것이다. 게다가, "클라이언트(120)" 및 "클라이언트(120)의 사용자"는 본 발명의 범위를 벗어나지 않고 적절한 경우 상호 교환가능하게 사용될 수 있다. 게다가, 설명을 쉽게 하기 위해, 각각의 클라이언트는 한 명의 사용자에 의해 사용되는 것으로 기술되어 있다. 그렇지만, 본 발명은 다수의 사용자가 동일한 GUI(126)를 사용하여 작업(150)을 전달하기 위해 하나의 컴퓨터를 사용할 수 있다는 것을 생각하고 있다.
본 명세서에서 사용되는 바와 같이, 클라이언트(120)는 퍼스널 컴퓨터, 터치 스크린 단말기, 워크스테이션, 네트워크 컴퓨터, 키오스크, 무선 데이터 포트, 셀 전화, 개인 휴대 단말기(PDA), 이들 또는 다른 장치 내의 하나 이상의 프로세서, 또는 임의의 다른 적당한 처리 장치를 포괄하려고 한 것이다. 예를 들어, 클라이언트(120)는 키패드, 터치 스크린, 마우스 또는 정보를 받을 수 있는 다른 장치 등의 입력 장치, 및 디지털 데이터, 비쥬얼 정보 또는 GUI(126)를 비롯한 서버(102) 또는 클라이언트(120)의 동작과 연관된 정보를 전달하는 출력 장치를 포함하는 컴퓨터를 포함할 수 있다. 입력 장치 및 출력 장치 둘다는 관리 및 작업 제출 디스플레이, 즉 GUI(126)를 통해 클라이언트(120)의 사용자로부터 입력을 수신하기도 하고 그에게 출력을 제공하기 위해 자기 컴퓨터 디스크, CD-ROM 또는 다른 적당한 매체 등의 고정식 또는 분리형 저장 매체를 포함할 수 있다.
GUI(126)는 i) 클라이언트(120)의 사용자로 하여금 하나 이상의 작업(150)을 제출하기 위해 시스템(100)과 인터페이스할 수 있게 해주고 및/또는 ii) 클라이언트(120)를 사용하는 시스템(또는 네트워크) 관리자로 하여금 임의의 적당한 관리 목적을 위해 시스템(100)과 인터페이스할 수 있게 해주는 그래픽 사용자 인터페이스를 포함한다. 일반적으로, GUI(126)는 HPC 시스템(100)에 의해 제공된 데이터의 효율적이고 사용하기 편리한 프리젠테이션(presentation)을 클라이언트(120)의 사용자에게 제공한다. GUI(126)는 대화형 필드, 풀-다운 리스트, 및 사용자에 의해 조작되는 버튼을 갖는 복수의 커스터마이즈가능한 프레임 또는 뷰를 포함할 수 있다. 일 실시예에서, GUI(126)는 입력 장치들 중 하나를 통해 여러가지 작업 파라미터 필드를 제공하고 또 클라이언트(120)의 사용자로부터 명령을 수신하는 작업 제출 디스플레이를 제공한다. GUI(126)는, 다른 대안으로서 또는 그와 조합하여, 도 4A 및 도 4B에 나타낸 바와 같이 시스템 관리자에 노드(115)의 물리적 및 논리적 상태를 제공하고 또 관리자로부터 여러가지 명령을 수신할 수 있다. 관리자 명령은 노드를 이용가능(이용불가능)한 것으로 표시하는 것, 유지 보수를 위해 노드를 정지(shut down)시키는 것, 노드를 재부팅하는 것, 또는 임의의 다른 적당한 명령을 포함할 수 있다. 게다가, 그래픽 사용자 인터페이스라는 용어가 하나 이상의 그래픽 사용자 인터페이스 및 특정의 그래픽 사용자 인터페이스의 디스플레이들 각각을 기술하기 위해 단수형으로 또는 복수형으로 사용될 수 있다는 것을 잘 알 것이다. 따라서, GUI(126)는 시스템(100)에서 정보를 처리하여 그 결과를 사용자에게 효율적으로 제공하는 일반 웹 브라우저 등의 임의의 그래픽 사용자 인터페이스를 생각하고 있다. 서버(102)는 웹 브라우저(예를 들어, 마이크로소프트 인터넷 익스플로러(Internet Explorer) 또는 넷스케이프 내비게이터(Netscape Navigator))를 통해 클라이언트(120)로부터 데이터를 받고 네트워크(106)를 사용하여 적절한 HTML 또는 XML 응답을 반환할 수 있다.
동작의 한 측면에서, HPC 서버(102)는 먼저 초기화 또는 부팅된다. 이 프로 세스 동안에, 클러스터 관리 엔진(130)은 그리드(110) 내의 노드(115)의 존재, 상태, 위치 및/또는 다른 특성을 판정한다. 상기한 바와 같이, 이것은 각 노드의 초기화 시에 또는 관리 노드(105)에 의한 거의 즉각적인 폴링(near immediate polling) 시에 전달되는 "하트비트(heartbeat)"에 기초할 수 있다. 그 다음에, 클러스터 관리 엔진(130)은 예를 들어 미리 정해진 정책에 기초하여 그리드(110)의 다양한 부분들을 하나 이상의 가상 클러스터(220)에 동적으로 할당할 수 있다. 일 실시예에서, 클러스터 관리 엔진(130)은 가능한 고장이 있는지 노드(115)를 계속하여 모니터링하고, 노드(115) 중 하나가 고장난 것으로 판정 시에, 다양한 복구 기술 중 임의의 것을 사용하여 그 고장을 효과적으로 관리한다. 클러스터 관리 엔진(130)은 또한 가상 클러스터(220)의 각각의 할당된 노드에 대한 고유의 실행 환경을 관리 및 제공할 수 있다. 이 실행 환경은 호스트 이름, IP 주소, 운영 체제, 구성된 서비스, 로컬 및 공유 파일 시스템, 및 일련의 설치된 애플리케이션 및 데이터로 이루어질 수 있다. 클러스터 관리 엔진(130)은 관련된 정책에 따라 또한 우선순위 등의 클러스터간 정책에 따라 가상 클러스터(220)에 노드를 동적으로 추가하거나 그로부터 제거할 수 있다.
사용자가 클라이언트(120)에 로그온할 때, 사용자는 GUI(126)를 통해 작업 제출 화면을 제공받을 수 있다. 사용자가 작업 파라미터를 입력하고 작업(150)을 제출하면, 클러스터 관리 엔진(130)은 작업 제출, 관계된 파라미터, 및 작업(150), 사용자 또는 사용자 그룹과 연관된 임의의 미리 정해진 정책을 처리한다. 클러스터 관리 엔진(130)은 이어서 이 정보에 적어도 부분적으로 기초하여 적절한 가상 클러스터(220)를 결정한다. 이어서, 엔진(130)은 가상 클러스터(220) 내에 작업 공간(230)을 동적으로 할당하고 HPC 기술을 사용하여 할당된 노드(115)를 통해 작업(150)을 실행한다. 향상된 I/O 성능에 적어도 부분적으로 기초하여, HPC 서버(102)는 작업(150)의 처리를 보다 빠르게 완료할 수 있다. 완료 시에, 클러스터 관리 엔진은 결과(160)를 사용자에게 전달한다.
도 2A 내지 도 2D는 시스템(100)에서의 그리드(210)의 여러가지 실시예 및 그의 사용 또는 토폴로지를 나타낸 것이다. 도 2A는 복수의 노드 유형을 사용하는 그리드(210)의 한 구성, 즉 3D 토러스(Torus)를 나타낸 것이다. 예를 들어, 예시된 노드 유형은 외부 I/O 노드, FS 서버, FS 메타데이터 서버, 데이터베이스 서버, 및 컴퓨팅 노드이다. 도 2B는 그리드(210)의 "폴딩(folding)"의 예를 나타낸 것이다. 폴딩은 일반적으로 그리드(210)의 한쪽 물리적 경계(edge)가 대응하는 축 경계(axial edge)에 연결될 수 있게 해주며, 그에 의해 보다 견고한 또는 무경계(edgeless) 토폴로지를 제공한다. 본 실시예에서, 노드(215)는 노드 링크(216)에 의해 연결된 거의 이음매가 없는 토폴로지(near seamless topology)를 제공하기 위해 감싸여 있다. 노드 라인(216)은 2개 이상의 노드(215)를 상호 접속하기 위한 임의의 통신 프로토콜을 구현하는 임의의 적당한 하드웨어일 수 있다. 예를 들어, 노드 라인(216)은 기가비트 이더넷을 구현하는 구리 배선 또는 광 섬유 케이블일 수 있다.
도 2C는 하나의 가상 클러스터(220)가 그 안에 할당되어 있는 그리드(210)를 나타낸 것이다. 단지 하나의 가상 클러스터(220)를 갖는 것으로 도시되어 있지만, 본 발명의 범위를 벗어나지 않고 그리드(210) 내에 임의의 수(0을 포함함)의 가상 클러스터(220)가 있을 수 있다. 가상 클러스터(220)는 관계된 작업들(150)을 처리하는 노드들(215)의 논리적 그룹이다. 예를 들어, 가상 클러스터(220)는 하나의 연구 그룹, 부서, 연구실, 또는 유사한 작업(150)을 제출할 가능성이 있는 임의의 다른 사용자 그룹과 연관되어 있을 수 있다. 가상 클러스터(220)는 임의의 형상일 수 있으며 또 그리드(210) 내에 임의의 수의 노드(215)를 포함할 수 있다. 실제로, 가상 클러스터(220)가 복수의 물리적으로 이웃한 노드(215)를 포함하는 것으로 도시되어 있지만, 클러스터(220)는 작업(150)을 처리하는 논리적으로 관계된 노드들(215)의 분산 클러스터일 수 있다.
가상 클러스터(220)는 임의의 적절한 때에 할당될 수 있다. 예를 들어, 클러스터(220)는 예를 들어 기동 파라미터에 기초하여 시스템(100)의 초기화 시에 할당될 수 있거나 예를 들어 변경된 서버(102) 요구사항에 기초하여 동적으로 할당될 수 있다. 게다가, 가상 클러스터(220)는 변하는 요청, 수요 및 상황에 신속하게 대응하기 위해 시간에 따라 그의 형상 및 크기를 변경할 수 있다. 예를 들어, 가상 클러스터(220)는 이전에 클러스터(220)의 일부인 제2 노드(215)의 고장에 응답하여 자동 할당된 제1 노드(215)를 포함하도록 동적으로 변경될 수 있다. 어떤 실시예들에서, 클러스터(220)는 프로세싱이 요구할 때 노드(215)를 공유할 수 있다.
도 2D는 예시적인 가상 클러스터(220) 내에 할당된 여러가지 작업 공간(각각 230a, 230b)을 나타낸 것이다. 일반적으로, 작업 공간(230)은 수신된 작업(150)을 완료하기 위해 동적으로 할당된 가상 클러스터(220) 내의 일련의 노드(215)이다. 일반적으로, 실행 중인 작업(150)마다 하나의 작업 공간(230)이 있으며 작업 공간(230)마다 하나의 실행 중인 작업(150)이 있지만, 본 발명의 범위를 벗어나지 않고 작업 공간(230)은 노드들(215)을 공유할 수 있다. 작업 공간(230)의 크기는 사용자 또는 관리자에 의해 수동으로 입력될 수 있거나 작업 파라미터, 정책, 및/또는 임의의 다른 적당한 특성에 기초하여 동적으로 결정될 수 있다.
도 3A 내지 도 3C는 그리드(110) 내의 개개의 노드(115)의 여러가지 실시예들을 나타낸 것이다. 도시된 예시적인 실시예에서, 노드(115)는 블레이드(blade)(315)로 표현되어 있다. 블레이드(315)는 작업(150)의 전부 또는 일부분(스레드 또는 프로세스 등)을 처리하는 임의의 컴퓨팅 장치를 임의의 오리엔테이션으로 포함하고 있다. 예를 들어, 블레이드(315)는 표준 Xeon64™ 마더보드, 표준 PCI-익스프레스 Opteron™ 마더보드, 또는 임의의 다른 적당한 컴퓨팅 카드일 수 있다.
블레이드(315)는 그리드(110) 내의 노드(115)에 걸쳐 균일하게 패브릭 스위칭 컴포넌트를 분산시킴으로써 임의의 집중된 스위칭 기능을 아마도 감소 또는 제거하고 내고장성(fault tolerance)을 향상시키며 병렬로 메시지 전달을 할 수 있게 해주는, 통합된 패브릭 아키텍처(integrated fabric architecture)이다. 보다 구체적으로는, 블레이드(315)는 통합된 스위치(integrated switch)(345)를 포함한다. 스위치(345)는 서로 다른 토폴로지를 가능하게 해줄 수 있는 임의의 수의 포트를 포함한다. 예를 들어, 스위치(345)는 보다 촘촘한 3차원 메쉬 또는 3D 토러스 토폴로지를 가능하게 해주는 8-포트 스위치일 수 있다. 이들 8개 포트는 X-축을 따 라 이웃 노드(115)에 연결하기 위한 2개의 "X" 연결, Y-축을 따라 이웃 노드(115)에 연결하기 위한 2개의 "Y" 연결, Z-축을 따라 이웃 노드(115)에 연결하기 위한 2개의 "Z" 연결, 및 관리 노드(105)에 연결하기 위한 2개의 연결을 포함한다. 일 실시예에서, 스위치(345)는 표준 8 포트 인피니밴드-4x 스위치 IC일 수 있으며, 그에 따라 내장된 패브릭 스위칭(built-in fabric switching)을 용이하게 제공할 수 있다. 스위치(345)는 또한 4-D 토러스 또는 3차원을 넘는 다른 비전통적 토폴로지(non-traditional topology) 등의 다차원 토폴로지를 가능하게 해주는 24 포트 스위치를 포함할 수 있다. 게다가, 노드(115)는 또한 대각선 축을 따라 상호접속될 수 있으며, 그에 따라 비교적 멀리 떨어진 노드(115) 간의 통신의 점프(jump) 또는 홉(hop)을 감소시킬수 있다. 예를 들어, 제1 노드(115)는 북동 방향 축을 따라 몇개의 3차원 "점프" 떨어져 물리적으로 존재하는 제2 노드(115)에 연결될 수 있다.
도 3A는 상위 레벨에서 적어도 2개의 프로세서(320a, 320b), 로컬 또는 원격 메모리(340), 및 통합된 스위치(또는 패브릭)(345)를 포함하는 블레이드(315)를 나타낸 것이다. 프로세서(320)는 예를 들어 중앙 처리 장치(CPU) 등의 블레이드(315)의 동작을 수행하기 위해 명령어를 실행하고 데이터를 처리한다. 프로세서(320)라고 말한 것은 적용가능한 경우 다수의 프로세서(320)를 포함시키도록 의도된다. 일 실시예에서, 프로세서(320)는 Xeon64 또는 Itanium™ 프로세서 또는 다른 유사한 프로세서 또는 그의 파생품을 포함할 수 있다. 예를 들어, Xeon64 프로세서는 2 MB 캐쉬 및 하이퍼스레딩(Hyper Treading)을 갖는 3.4 GHz 칩일 수 있 다. 이 실시예에서, 듀얼 프로세서 모듈은 효율성을 향상시키는 내재적인 PCI/익스프레스를 포함할 수 있다. 따라서, 프로세서(320)는 효율적인 메모리 대역폭을 가지며, 일반적으로 프로세서 칩에 내장된 메모리 컨트롤러를 갖는다.
블레이드(315)는 또한 노스 브리지(Northbridge)(321), 사우스 브리지(Southbridge)(322), PCI 채널(325), HCA(335) 및 메모리(340)를 포함할 수 있다. 노스 브리지(321)는 프로세서(320)와 통신하고 메모리(340), PCI 버스, 레벨 2 캐쉬, 및 임의의 다른 관련 컴포넌트와의 통신을 제어한다. 일 실시예에서, 노스 브리지(321)는 프론트사이드 버스(frontside bus)(FSB)를 사용하여 프로세서(320)와 통신한다. 사우스 브리지(322)는 블레이드(315)의 입/출력(I/O) 기능들 중 다수를 관리한다. 다른 실시예에서, 블레이드(315)는 그래픽 및 AGP 메모리 컨트롤러 허브(Graphics and AGP Memory Controller Hub, GMCH) 및 I/O 컨트롤러 허브(I/O Controller Hub, ICH)를 포함하는 인텔 허브 아키텍처(Intel Hub Architecture, IHA™)를 구현할 수 있다.
PCI 채널(325)은 통합된 컴포넌트들 간의 통신 속도를 향상시키도록 설계되어 있는 임의의 고속, 저 대기시간 링크를 포함한다. 이것은 블레이드(315) 내의 버스의 수를 감소시키는 데 도움이 되며, 이는 시스템 병목현상을 감소시킬 수 있다. HCA(335)는 서버(102) 내에 채널-기반 I/O를 제공하는 임의의 컴포넌트를 포함한다. 각각의 HCA(335)는 2.65 GB/초의 총 대역폭을 제공할 수 있으며, 그에 따라 스위치(345)에 PE당 1.85 GB/초를, 예를 들어 BIOS(Basic Input/Output System, 기본 입/출력 시스템), 이더넷 관리 인터페이스, 및 기타 등등의 I/O에 PE당 800 MB/초를 할당한다. 이것은 또한 총 스위치(345) 대역폭이 3.7 GB/초일 수 있게 해주는데 그 이유는 13.6 기가플롭/초 피크 또는 0.27 바이트/플롭 I/O 레이트가 기가플롭당 50 MB/초이기 때문이다.
메모리(340)는 임의의 메모리 또는 데이터베이스 모듈을 포함하며, 제한 없이 자기 매체, 광학 매체, 플래쉬 메모리, 랜덤 액세스 메모리(RAM), 판독-전용 메모리(ROM), 분리형 매체, 또는 임의의 다른 적당한 로컬 또는 원격 메모리 컴포넌트를 비롯한 휘발성 또는 비휘발성 형태를 취할 수 있다. 예시된 실시예에서, 메모리(340)는 적어도 6.4 GB/초로 동작하는 8 GB의 듀얼 더블 데이터 레이트(DDR) 메모리 컴포넌트로 이루어져 있다. 메모리(340)는 본 발명을 벗어나지 않고 HPC 작업(150)을 관리 또는 실행하기 위한 임의의 적절한 데이터를 포함할 수 있다.
도 3B는 2개의 프로세서(320a, 320b), 메모리(340), HT/PCI(HyperTransport/peripheral component interconnect) 브리지(330a, 330b), 및 2개의 HCA(335a, 335b)를 포함하는 블레이드(315)를 나타낸 것이다.
예시적인 블레이드(315)는 적어도 2개의 프로세서(320)를 포함한다. 프로세서(320)는 예를 들어 중앙 처리 장치(CPU) 등의 블레이드(315)의 동작을 수행하기 위해 명령어를 실행하고 데이터를 처리한다. 예시된 실시예에서, 프로세서(320)는 Opteron 프로세서 또는 다른 유사한 프로세서 또는 파생품을 포함할 수 있다. 이 실시예에서, Opteron 프로세서 설계는 그리드(110)에 대한 균형잡힌 구성 블록의 개발을 지원한다. 이와 상관없이, 듀얼 프로세서 모듈은 4 내지 5 기가플롭 사용가능 성능(usable performance)을 제공할 수 있으며, 차세대 기술이 메모리 대역폭 제한을 해결하는 데 도움이 된다. 그렇지만, 블레이드(315)는 본 발명의 범위를 벗어나지 않고 3개 이상의 프로세서(320)를 포함할 수 있다. 따라서, 프로세서(320)는 효율적인 메모리 대역폭을 가지며, 일반적으로 프로세서 칩에 내장된 메모리 컨트롤러를 갖는다. 이 실시예에서, 각각의 프로세서(320)는 하나 이상의 하이퍼트랜스포트™(또는 다른 유사한 선로 유형) 링크를 갖는다.
일반적으로, HT 링크(325)는 통합된 컴포넌트 간의 통신 속도를 증가시키도록 설계되어 있는 임의의 고속, 저 대기시간 링크를 포함한다. 이것은 블레이드(315) 내의 버스의 수를 감소시키는 데 도움이 되며, 이는 시스템 병목 현상을 감소시킬 수 있다. HT 링크(325)는 캐쉬 코히런트(cache coherent) 멀티프로세서 블레이드(315)에 대한 프로세서간 통신을 지원한다. HT 링크(325)를 사용하면, 8개까지의 프로세서(320)가 블레이드(315) 상에 배치될 수 있다. 이용되는 경우, 하이퍼 트랜스포트는 6.4 GB/초, 12.8, 또는 그 이상의 대역폭을 제공할 수 있으며, 그에 따라 레거시 PCI 버스보다 데이터 처리 용량에서 40배 이상의 증가를 제공할 수 있다. 게다가, 하이퍼 트랜스포트 기술은 PCI 등의 레거시 I/O 표준 및 PCI-X 등의 다른 기술과 호환될 수 있다.
블레이드(315)는 HT/PCI 브리지(330) 및 HCA(335)를 더 포함한다. PCI 브리지(330)는 PCI 로컬 버스 규격 개정판 2.2 또는 3.0, 또는 PCI 익스프레스 기본 규격(Base Specification) 1.0a 또는 이의 임의의 파생물에 부합되게 설계될 수 있다. HCA(335)는 서버(102) 내에 채널-기반 I/O를 제공하는 임의의 컴포넌트를 포함한다. 일 실시예에서, HCA(335)는 인피니밴드 HCA를 포함한다. 인피니밴드 채 널은 일반적으로 호스트 채널 어댑터 및 타겟 채널 어댑터를 부착함으로써 생성되며, 이는 도 3B에 보다 상세히 나타낸 바와 같이 인피니밴드 패브릭 내로의 원격 스토리지 및 네트워크 연결성을 가능하게 해준다. PCI-익스프레스 브리지(330) 및 HCA(335)는 각각의 프로세서(320)에 대해 전이중(full-duplex) 2GB/초 I/O 채널을 생성할 수 있다. 어떤 실시예들에서, 이것은 분산 HPC 환경(100) 에서 프로세서간 통신을 지원하는 데 충분한 대역폭을 제공한다. 게다가, 이것은 블레이드(315)에 프로세서(320)의 성능과 거의 또는 실질적으로 균형을 이루는 I/O 성능을 제공한다.
도 3C는 도터 보드(daughter board)를 포함하는 블레이드(315)의 다른 실시예를 나타낸 것이다. 이 실시예에서, 도터 보드는 3.2 GB/초 이상의 캐쉬 코히런트 인터페이스를 지원할 수 있다. 도터 보드는 하나 이상의 FPGA(Field Programmable Gate Array)(350)를 포함하는 동작을 한다. 예를 들어, 예시된 도터 보드는 350a 및 350b로 각각 나타낸 2개의 FPGA(350)를 포함한다. 일반적으로, FPGA(350)는 블레이드(315)에 비표준 인터페이스, 커스텀 알고리즘을 처리하는 기능, 신호, 이미지 또는 암호화/복호화 처리 애플리케이션을 위한 벡터 프로세서, 및 고대역폭을 제공한다. 예를 들어, FPGA는 예를 들어 저 정밀도(low precision) 고속 푸리에 변환(FFT) 및 행렬 계산 기능 등의 특수 기능을 위해 범용 프로세서의 성능의 10배 내지 20배의 가속 요인을 제공함으로써 블레이드(315)의 기능을 보완할 수 있다.
이전의 예시 및 부속 설명은 여러가지 확장가능 노드(115)(예시적인 블레이 드(315)로 도시됨)을 구현하는 예시적인 도면을 제공한다. 그렇지만, 이들 도면은 단지 예시적인 것이며, 시스템(100)은 여러가지 확장 방식(scalability scheme)을 구현하기 위한 요소들의 임의의 적당한 조합 및 구성을 사용하는 것을 생각하고 있다. 본 발명이 부분적으로 블레이드 서버(102)와 관련하여 예시되고 설명되어 있지만, 당업자라면 본 발명의 개시 내용이 임의의 클러스터 HPC 서버 환경에 적용될 수 있다는 것을 잘 알 것이다. 따라서, 본 명세서에 기재된 기술을 포함하는 이러한 클러스터 서버(102)는 본 발명의 범위를 벗어나지 않고 로컬형(local) 또는 분산형(distributed)일 수 있다. 따라서, 이들 서버(102)는 I/O 대기시간을 감소시키면서 고성능 컴퓨팅 능력을 제공하기 위한 요소들의 임의의 적당한 조합 및 구성을 포함하는 HPC 모듈(또는 노드(115))을 포함할 수 있다. 게다가, 여러가지 예시된 HPC 모듈들의 동작은 적절한 경우 결합 및/또는 분리될 수 있다. 예를 들어, 그리드(110)는 서로 다른 하드웨어 또는 패브릭 아키텍처를 구현하는 복수의 실질적으로 유사한 노드(115) 또는 여러가지 노드(115)를 포함할 수 있다.
도 4A 및 도 4B는 시스템(100)에 따른 관리 그래픽 사용자 인터페이스(400)의 여러가지 실시예를 나타낸 것이다. 종종, 관리 GUI(400)는 GUI(126)를 사용하여 클라이언트(120)에 제공된다. 일반적으로, 관리 GUI(400)는 다양한 관리 대화형 화면 또는 디스플레이를 시스템 관리자에게 제공하고 및/또는 다양한 작업 제출 또는 프로파일 화면을 사용자에게 제공한다. 이들 화면 또는 디스플레이는 여러가지 수집 정보의 뷰(view)로 조립되는 그래픽 요소들로 이루어져 있다. 예를 들어, GUI(400)는 그리드(110)의 물리적 건강(physical health)(도 4A에 도시함) 또는 그 리드(110) 내의 노드(115)의 논리적 할당 또는 토폴로지(도 4B에 도시함)의 디스플레이를 제공할 수 있다.
도 4A는 예시적인 디스플레이(400a)를 나타낸 것이다. 디스플레이(400a)는 노드(115)를 효과적으로 관리하기 위해 관리자에게 제공되는 정보를 포함할 수 있다. 예시된 실시예는 논리적 "화상(picture)" 또는 스크린샷을 갖는 표준 웹 브라우저를 포함한다. 예를 들어, 이 화상은 그리드(110) 및 컴포넌트 노드(115)의 물리적 상태를 제공할 수 있다. 각각의 노드(115)는 임의의 수의 컬러 중 하나일 수 있으며, 각각의 컬러는 여러가지 상태를 나타낸다. 예를 들어, 고장난 노드(115)는 적색일 수 있고, 이용되는 또는 할당된 노드(115)는 흑색일 수 있으며, 비할당된 노드(115)는 음영 처리되어 있을 수 있다. 게다가, 디스플레이(400a)는 관리자로 하여금 노드(115) 중 하나 상으로 포인터를 이동시켜 그 노드의 여러가지 물리적 속성을 볼 수 있게 해줄 수 있다. 예를 들어, 관리자는 "노드", "이용가능성", "프로세서 이용율", "메모리 이용율", "온도", "물리적 위치", 및 "주소"를 비롯한 정보를 제공받을 수 있다. 물론, 이들은 단지 예시적인 데이터 필드에 불과하며, 임의의 적절한 물리적 또는 논리적 노드 정보가 관리자를 위해 디스플레이될 수 있다. 디스플레이(400a)는 또한 관리자로 하여금 그리드(110)의 뷰를 회전시키거나 임의의 다른 적당한 기능을 수행할 수 있게 해줄 수 있다.
도 4B는 예시적인 디스플레이(400b)를 나타낸 것이다. 디스플레이(400b)는 그리드(110)의 논리적 상태의 뷰 또는 화상을 제공한다. 예시된 실시예는 그리드(110) 내에 할당된 가상 클러스터(220)를 제공한다. 디스플레이(400b)는 또한 하나 이상의 작업(150)을 수행하기 위해 클러스터(220) 내에 할당된 2개의 예시적인 작업 공간을 디스플레이한다. 디스플레이(400b)는 관리자로 하여금 포인터를 그래픽 가상 클러스터(220) 상으로 이동시켜 여러가지 상태(할당됨 또는 비할당됨 등)별로 그룹화된 노드(115)의 수를 볼 수 있게 해줄 수 있다. 게다가, 관리자는 적당한 작업 정보가 제공되도록 작업 공간(230) 중 하나 상으로 포인터를 이동시킬 수 있다. 예를 들어, 관리자는 작업 이름, 시작 시간, 노드의 수, 추정된 종료 시간, 프로세서 사용, I/O 사용, 및 기타를 볼 수 있다.
관리 GUI(126)(예시의 디스플레이(400a, 400b) 각각에 의해 위에 나타내어짐)가 단지 예시적인 것이며 도시되지 않은 부가적인 관리 요소뿐만 아니라 예시된 그래픽 요소 중 아무것도 포함하지 않거나 그 일부 또는 그 전부를 포함할 수 있다는 것을 잘 알 것이다.
도 5는 시스템(100)에 따른 클러스터 관리 엔진(130)(동 도면에서 엔진(500)으로 도시되어 있음)의 일 실시예를 나타낸 것이다. 이 실시예에서, 클러스터 관리 엔진(500)은 복수의 서브 모듈 또는 컴포넌트, 즉 물리 관리자(505), 가상 관리자(510), 작업 스케쥴러(515), 및 로컬 메모리 또는 변수(20)를 포함한다.
물리 관리자(505)는 여러가지 노드(115)의 물리적 건강을 판정하고 이 판정된 건강에 기초하여 노드(115)를 효과적으로 관리하는 임의의 소프트웨어, 로직, 펌웨어, 또는 다른 모듈이다. 물리 관리자는 이 데이터를 사용하여 노드(115) 고장을 효과적으로 판정하고 그에 대응할 수 있다. 일 실시예에서, 물리 관리자(505)는 복수의 에이전트(132)와 통신가능하게 연결되어 있으며, 각각의 에이전 트는 하나의 노드(115) 상에 존재한다. 상기한 바와 같이, 에이전트(132)는 적어도 물리적 정보를 수집하여 이를 관리자(505)에게 전달한다. 물리 관리자(505)는 또한 네트워크(106)를 통해 클라이언트(120)에 있는 시스템 관리자에게 경보(alert)를 전달할 수 있다.
가상 관리자(510)는 가상 클러스터(220) 및 노드(115)의 논리적 상태를 관리하는 임의의 소프트웨어, 로직, 펌웨어 또는 다른 모듈이다. 일반적으로, 가상 관리자(510)는 노드(115)의 논리적 표현을 노드(115)의 물리적 상태와 링크시킨다. 이들 링크에 기초하여, 가상 관리자(510)는 가상 클러스터(220)를 생성하고 노드 고장 또는 HPC 처리 향상에 대한 (시스템 또는 사용자) 요청 등에 응답하여 이들 클러스터(220)에 대한 여러가지 변화를 처리할 수 있다. 가상 관리자(510)는 또한 비실행된 또는 큐잉된 HPC 프로세스 및 작업(150)의 동적 백필링을 가능하게 해주기 위해 비할당된 노드(115) 등의 가상 클러스터(220)의 상태를 작업 스케쥴러(515)에 전달할 수 있다. 가상 관리자(510)는 또한 작업(150)의 특정 노드(115)와의 호환성을 판정하고 이 정보를 작업 스케쥴러(515)에 전달할 수 있다. 어떤 실시예들에서, 가상 관리자(510)는 개개의 가상 클러스터(220)를 나타내는 객체일 수 있다.
클러스터 관리 엔진(500)은 또한 작업 스케쥴러(515)를 포함할 수 있다. 작업 스케쥴러 서브모듈(515)은 최적의 작업 공간(230) 및 시간을 결정하기 위해, 프로세서 및 시간 할당에서와 같이 시스템의 자원의 측면들을 처리하는 토폴로지 인식 모듈(topology-aware module)이다. 종종 고려되는 요인들로는 프로세서, 프로 세스, 메모리, 상호 접속, 디스크, 시각화 엔진, 및 기타 등등이 있다. 환언하면, 작업 스케쥴러(515)는 일반적으로 작업(150)을 수신하기 위해 GUI(126)와 상호작용하고, 여러가지 노드(115)의 건강을 보장하기 위해 물리 관리자(505)와 상호작용하며, 어떤 가상 클러스터(220) 내에 작업 공간(230)을 동적을 할당하기 위해 가상 관리자(510)와 상호작용한다. 그리드(110) 및 적절한 경우 가상 클러스터(220)의 현재 토폴로지에 관한 정보를 포함하고 있는 이러한 동적 할당은 여러가지 알고리즘을 통해 달성된다. 작업 스케쥴러(515)는 직렬 및 병렬 프로그램 둘다의 배치 및 대화형 실행 둘다를 처리한다. 스케쥴러(515)는 또한 작업(150)에 의해 제공되는 여러가지 문제들을 선택 및 실행하는 것에 관한 정책(524)을 구현하는 방법을 제공해야만 한다.
클러스터 관리 엔진(500)은 또한, 작업 스케쥴러(515)를 통하는 등에 의해, 효율적인 체크-포인팅(check-pointing)을 수행하는 동작을 할 수 있다. 재시작 덤프(restart dump)는 디스크에 기록된 데이터의 75 퍼센트 이상을 포함한다. 이 I/O는 종종 프로세싱이 플랫폼 고장의 영향을 받지 않도록 행해진다. 이것에 기초하여, 파일 시스템의 I/O는 2개의 부분, 즉 생산적 I/O(productive I/O) 및 방어적 I/O(defensive I/O)로 분리될 수 있다. 생산적 I/O는 예를 들어 시각화 덤프, 시간에 따른 주요 물리학 변수의 추적, 및 기타 등등의 과학을 하기 위해 사용자가 요구하는 데이터의 기록이다. 방어적 I/O는 상당한 기간에 걸쳐 실행되는 대규모 시뮬레이션을 관리하기 위해 수행된다. 따라서, 증가된 I/O 대역폭은 체크-포인팅에 수반되는 시간 및 위험을 크게 감소시킨다.
엔진(500)으로 되돌아가서, 로컬 메모리(520)는 시스템(100)의 복수의 특징에 대한 논리적 설명(또는 데이터 구조)을 포함한다. 로컬 메모리(520)는 호환 코드(compatible code)에 의해 정의, 처리 또는 검색되는 임의의 물리적 또는 논리적 데이터 저장장치에 저장될 수 있다. 예를 들어, 로컬 메모리(520)는 하나 이상의 XML(eXtensible Markup Language) 테이블 또는 문서를 포함할 수 있다. 여러가지 요소들이 SQL문 또는 스크립트, VSAM(Virtual Storage Access Method) 파일, 플랫 파일(flat file), 이진 데이터 파일(binary data file), Btrieve 파일, 데이터베이스 파일, 또는 CSV(comma-separated-value) 파일로 기술될 수 있다. 각각의 요소가 변수, 테이블, 또는 임의의 다른 적당한 데이터 구조를 포함할 수 있다는 것을 잘 알 것이다. 로컬 메모리(520)는 또한 하나의 서버(102) 상에 또는 복수의 서버 또는 노드에 걸쳐 저장된 복수의 테이블 또는 파일을 포함할 수 있다. 게다가, 엔진(500) 내부에 존재하는 것으로 도시되어 있지만, 로컬 메모리(520)의 일부 또는 전부는 본 발명의 범위를 벗어나지 않고 내부 또는 외부에 있을 수 있다.
예시된 로컬 메모리(520)는 물리 리스트(physical list)(521), 가상 리스트(virtual list)(522), 그룹 파일(523), 정책 테이블(524), 및 작업 큐(25)를 포함한다. 그렇지만, 도시되어 있지는 않지만, 로컬 메모리(520)는 본 발명의 범위를 벗어나지 않고 작업 테이블 및 감사 로그(audit log)를 비롯한 다른 데이터 구조를 포함할 수 있다. 예시된 구조로 되돌아가서, 물리 리스트(521)는 노드(115)에 관한 식별 및 물리적 관리 정보를 저장하는 동작을 한다. 물리 리스트(521)는 노드(115)당 적어도 하나의 레코드를 포함하는 다차원 데이터 구조일 수 있다. 예 를 들어, 물리 레코드(physical record)는 "노드", "이용가능성", "프로세서 이용율", "메모리 이용율", "온도", "물리적 위치", "주소", "부트 이미지", 및 기타 등등의 필드를 포함할 수 있다. 각각의 레코드가 예시적인 필드들 중 아무것도 포함하지 않거나, 그 일부 또는 전부를 포함할 수 있다는 것을 잘 알 것이다. 일 실시예에서, 물리 레코드는 예를 들어 가상 리스트(522) 등의 다른 테이블에 외래키(foreign key)를 제공할 수 있다.
가상 리스트(522)는 노드(115)에 관한 논리적 또는 가상 관리 정보를 저장하는 동작을 한다. 가상 리스트(522)는 노드(115)당 적어도 하나의 레코드를 포함하는 다차원 데이터 구조일 수 있다. 예를 들어, 가상 레코드는 "노드", "이용가능성", "작업", "가상 클러스터", "2차 노드", "논리적 위치", "호환성", 및 기타 등등의 필드를 포함할 수 있다. 각각의 레코드가 예시적인 필드들 중 아무것도 포함하지 않거나 그 일부 또는 전부를 포함할 수 있다는 것을 잘 알 것이다. 일 실시예에서, 가상 레코드는 예를 들어 그룹 파일(523) 등의 다른 테이블로의 링크를 포함할 수 있다.
그룹 파일(523)은 액세스 제어 리스트(access control list)(즉, ACL) 등의 사용자 그룹 및 보안 정보를 저장하는 하나 이상의 테이블 또는 레코드를 포함한다. 예를 들어, 각각의 그룹 레코드는 사용자에 대한 이용가능한 서비스, 노드(115) 또는 작업의 리스트를 포함할 수 있다. 각각의 논리적 그룹은 비지니스 그룹 또는 단위, 부서, 프로젝트, 보안 그룹, 또는 작업(150)을 제출하거나 시스템(100)의 적어도 일부를 관리할 수 있는 한명 이상의 사용자의 임의의 다른 집합 체와 연관될 수 있다. 이 정보에 기초하여, 클러스터 관리 엔진(500)은 작업(150)을 제출하는 사용자가 유효한 사용자인지와, 유효한 경우 작업 실행을 위한 최적의 파라미터를 결정할 수 있다. 게다가, 그룹 테이블(523)은 각각의 사용자 그룹을 가상 클러스터(220) 또는 특정 그룹의 도메인 내에 존재하는 노드 등의 하나 이상의 물리 노드(115)와 연관시킬 수 있다. 이것은 각각의 그룹이 자원을 얻기 위해 경합하지 않고 개별적인 프로세싱 공간을 가질 수 있게 해준다. 그렇지만, 상기한 바와 같이, 가상 클러스터(220)의 형상 및 크기는 동적일 수 있고 또 필요, 시간 또는 임의의 다른 파라미터에 따라 변할 수 있다.
정책 테이블(524)은 하나 이상의 정책을 포함한다. 정책 테이블(524) 및 정책(524)이 적절한 경우 서로 교환가능하게 사용될 수 있다는 것을 잘 알 것이다. 정책(524)은 일반적으로 작업(150) 및/또는 가상 클러스터(220)에 관한 프로세싱 및 관리 정보를 저장한다. 예를 들어, 정책(524)은 문제 크기, 문제 실행 시간, 시간 슬롯, 선점, 노드(115) 또는 가상 클러스터(220)의 사용자 할당량, 기타 등등을 비롯한 임의의 수의 파라미터 또는 변수를 포함할 수 있다.
작업 큐(525)는 실행을 기다리고 있는 하나 이상의 작업(150) 스트림을 나타낸다. 일반적으로, 큐(525)는 임의의 수(0을 포함함)의 작업(150) 또는 그에 대한 참조를 저장하기 위한 버블 어레이(bubble array), 데이터베이스 테이블, 또는 포인터 어레이(pointer array) 등의 임의의 적당한 데이터 구조를 포함한다. 그리드(110)와 연관된 하나의 큐(525)가 있거나 또는 각각의 큐(525)가 그리드(110) 내의 고유의 가상 클러스터(unique virtual cluster)(220) 중 하나와 연관되어 있는 복수의 큐(525)가 있을 수 있다.
동작의 한 측면에서, 클러스터 관리 엔진(500)은 계산을 수행하고 정보를 교환함으로써 문제를 협동적으로 해결하는 N개의 태스크(task)로 이루어진 작업(150)을 수신한다. 클러스터 관리 엔진(500)은 임의의 적당한 기술을 사용하여 N개의 노드(115)를 할당하고 N개의 태스크 각각을 하나의 특정 노드(115)에 배정하며, 그에 따라 문제가 효율적으로 해결될 수 있게 해준다. 예를 들어, 클러스터 관리 엔진(500)은 사용자에 의해 제공되는 작업 태스크 배치 전략(job task placement strategy) 등의 작업 파라미터를 이용할 수 있다. 이와 상관없이, 클러스터 관리 엔진(500)은 서버(102)의 아키텍처를 탐색하려고 시도하며, 이는 이어서 사용자에 대한 보다 빠른 응답 시간(turnaround)을 제공하고 아마도 시스템(100)에 대한 전체 처리 용량을 향상시킨다.
일 실시예에서, 클러스터 관리 엔진(500)은 이어서 이하의 예시적인 토폴로지 중 임의의 것에 따라 노드(115)를 선택 및 할당한다.
지정된 2D (x,y) 또는 3D (x,y,z) - 노드(115)는 할당되고 태스크가 지정된 차원으로 정렬될 수 있으며, 그에 따라 효율적인 이웃간의 통신(neighbor to neighbor communication)을 유지한다. 지정된 토폴로지는 다양한 작업(150)을 관리하며, 이 경우 물리적 통신 토폴로지(physical communication topology)가 문제 토폴로지(problem topology)와 일치하여 작업(150)의 협력 태스크들이 이웃 태스크들과 빈번하게 통신할 수 있게 해주는 것이 바람직하다. 예를 들어, 2x2x2 차원 (2,2,2)의 8개 태스크에 대한 요청이 입방체 형태로 할당되어진다. 가장 적합하도 록(best-fit) 하기 위해, 효율적인 이웃간 통신을 유지하면서 2D 할당이 3개의 차원으로 "폴딩"될 수 있다(도 2D에서 기술함). 클러스터 관리 엔진(500)은 임의의 배향으로 지정된 차원 형상을 자유로이 할당할 수 있다. 예를 들어, 이용가능한 물리 노드 내에 수직으로 또는 수평으로 2x2x8 박스가 할당될 수 있다.
가장 적합한 입방체(Best Fit Cube) - 클러스터 관리 엔진(500)은 입방체 용적(cubic volume) 내에 N개의 노드(115)를 할당한다. 이 토폴로지는 작업(150)을 효율적으로 처리하여, 임의의 2개의 노드(115) 간의 거리를 최소화함으로써 협력 태스크들이 임의의 다른 태스크들과 데이터를 교환할 수 있게 해준다.
가장 적합한 구체(Best Fit Sphere) - 클러스터 관리 엔진(500)은 구체 용적 내에 N개의 노드(115)를 할당한다. 예를 들어, 제1 태스크는 구체의 중심 노드(115) 내에 배치될 수 있고 나머지 태스크들은 중심 노드(115)를 둘러싸고 있는 노드들(115)에 배치된다. 나머지 태스크들의 배치 순서는 일반적으로 중요하지 않다는 것을 잘 알 것이다. 이 토폴로지는 제1 태스크와 다른 태스크들 모두 간의 거리를 최소화시킬 수 있다. 이것은 큰 부류의 문제들을 효율적으로 처리하며, 이 때 태스크들(2-N)이 제1 태스크와 통신하고 서로는 통신하지 않는다.
랜덤(Random) - 클러스터 관리 엔진(500)은 노드(115)가 논리적으로 또는 물리적으로 어디에 위치되는지를 덜 고려하여 N개의 노드(115)를 할당한다. 일 실시예에서, 이 토폴로지는 다른 작업(150)에 거의 영향을 주지 않고 백필링을 위해 그리드(110)의 공격적 사용을 장려한다.
상기한 토폴로지들 및 부속 설명은 단지 예시적인 것이며 사용된 실제 토폴 로지 또는 이러한 토폴로지를 할당하기 위한 기술을 나타낸 것이 아닐 수 있음을 잘 알 것이다.
클러스터 관리 엔진(500)은 작업(150) 파라미터 또는 정책(524) 파라미터로서 저장되어 있는 배치 가중치(placement weight)를 이용할 수 있다. 일 실시예에서, 배치 가중치는 0과 1 사이의 변경자 값(modifier value)으로서, 이는 요청된 태스크(또는 프로세스) 배치 전략에 따라 클러스터 관리 엔진(500)이 얼마나 공격적으로 노드(115)를 배치하려도 시도해야만 하는지를 나타낸다. 이 예에서, 0의 값은 최적의 전략(또는 차원)이 가능한 경우에만 노드(115)를 배치하는 것을 나타내고 1의 값은 요청을 처리하기에 충분히 자유로운 또는 다른 방식으로 이용가능한 노드(115)가 있는 한, 즉각 노드(115)를 배치하는 것을 나타낸다. 일반적으로, 배치 가중치는 큰 작업(150)의 궁핍(starvation)을 방지하고 HPC 시스템(100)의 작업 처리 용량을 유지하기 위해 자원 예약(resource reservation) 등의 관리 정책(524)보다 우선하지 않는다.
이상의 예시 및 부속 설명은 노드(115) 및 작업(150)을 관리하는 논리적 방식을 구현하는 엔진(500)에 대한 예시적인 모듈로 된 도면을 제공한다. 그렇지만, 이 도면은 단지 예시적인 것이며 시스템(100)은 이들 및 다른 알고리즘을 구현하기 위한 논리적 요소들의 임의의 적당한 조합 및 구성을 사용하는 것을 생각하고 있다. 따라서, 이들 소프트웨어 모듈은 노드(115) 및 작업(150)을 효과적으로 관리하기 위한 요소들의 임의의 적당한 조합 및 구성을 포함할 수 있다. 게다가, 여러가지 예시된 모듈들의 동작은 적절한 경우 결합 및/또는 분리될 수 있다.
도 6은 본 발명의 일 실시예에 따른 작업 제출(job submission)을 동적으로 처리하는 예시적인 방법(600)을 나타낸 플로우차트이다. 일반적으로, 도 6은 배치 작업 제출(batch job submission)을 수신하고, 작업 파라미터 및 연관된 정책(524)에 기초하여 노드(115)를 작업 공간(230)에 동적으로 할당하며, 할당된 공간을 사용하여 작업(150)을 실행하는 방법(600)을 기술한 것이다. 이하의 설명은 방법(600)을 수행함에 있어서의 클러스터 관리 모듈(130)의 동작에 중점을 두고 있다. 그렇지만, 시스템(100)은, 그 기능이 적절한 한, 기술된 기능의 일부 또는 그 전부를 구현하는 논리적 요소들의 임의의 적절한 조합 및 구성을 사용하는 것을 생각하고 있다.
방법(600)은 HPC 서버(102)가 사용자로부터 작업 제출(150)을 수신하는 단계(605)에서 시작한다. 상기한 바와 같이, 일 실시예에서, 사용자는 클라이언트(120)를 사용하여 작업(150)을 제출할 수 있다. 다른 실시예에서, 사용자는 HPC 서버(102)를 사용하여 직접 작업(150)을 제출할 수 있다. 다음에, 단계(610)에서, 클러스터 관리 엔진(130)은 사용자에 기초하여 그룹(523)을 선택한다. 사용자가 검증되면, 단계(615)에서 클러스터 관리 엔진(130)은 사용자를 그룹 액세스 제어 리스트(ACL)와 비교한다. 그렇지만, 클러스터 관리 엔진(130)이 사용자를 검증하기 위해 임의의 적절한 보안 기술을 사용할 수 있다는 것을 잘 알 것이다. 판정된 그룹(523)에 기초하여, 클러스터 관리 엔진(130)은 사용자가 요청된 서비스에 액세스하는지를 판정한다. 요청된 서비스 및 호스트 이름에 기초하여, 단계(620)에서 클러스터 관리 엔진(130)은 가상 클러스터(220)를 선택한다. 일반적으로, 가상 클 러스터(220)는 작업(150)의 제출 이전에 식별되고 할당될 수 있다. 그렇지만, 가상 클러스터(220)가 확립되지 않은 경우, 클러스터 관리 엔진(130)은 상기한 기술들 중 임의의 것을 사용하여 가상 클러스터(220)를 자동 할당할 수 있다. 그 다음에, 단계(625)에서, 클러스터 관리 엔진(130)은 작업(150)의 제출에 기초하여 정책(524)을 검색한다. 일 실시예에서, 클러스터 관리 엔진(130)은 사용자, 작업(150), 또는 임의의 다른 적절한 기준에 연관된 적절한 정책(524)을 결정할 수 있다. 클러스터 관리 엔진(130)은 이어서 단계(630)에서 작업(150)의 차원을 판정 또는 다른 방식으로 계산한다. 이 적절한 차원이 길이, 폭, 높이, 또는 임의의 다른 적절한 파라미터 또는 특성을 포함할 수 있다는 것을 잘 알 것이다. 상기한 바와 같이, 이들 차원은 가상 클러스터(220) 내에 적절한 작업 공간(230)(또는 노드(115)의 서브셋)을 결정하는 데 사용된다. 초기 파라미터가 설정된 후에, 클러스터 관리 엔진(130)은 단계(635) 내지 단계(665)에서 HPC 서버(102) 상에서 작업(150)을 실행하려고 시도한다.
결정 단계(635)에서, 클러스터 관리 엔진(130)은, 이미 설정된 파라미터를 사용하여, 원하는 작업 공간(230)을 할당하는 데 이용가능한 노드들이 충분히 있는지를 판정한다. 충분한 노드(115)가 없는 경우에, 클러스터 관리 엔진(130)은 단계(640)에서 가상 클러스터(220)에서 노드(115)의 최초의 이용가능한 서브셋(230)을 결정한다. 이어서, 클러스터 관리 엔진(130)은 단계(645)에서 서브셋(230)이 이용가능하게 될 때까지 작업(150)을 작업 큐(125)에 추가한다. 프로세싱은 이어서 결정 단계(635)로 되돌아간다. 충분한 노드(115)가 이용가능한 경우, 클러스터 관리 엔진(130)은 단계(650)에서 이용가능한 노드(115)로부터 최적의 서브셋(230)을 동적으로 결정한다. 최적의 서브셋(230)이 최단 처리 시간, 가장 신뢰성있는 노드(115), 물리적 또는 가상 위치, 또는 첫번째 이용가능한 노드(115)를 비롯한 임의의 적절한 기준을 사용하여 결정될 수 있다는 것을 잘 알 것이다. 단계(655)에서, 클러스터 관리 엔진(130)은 선택된 가상 클러스터(220)로부터 결정된 서브셋(230)을 선택한다. 그 다음에, 단계(660)에서, 클러스터 관리 엔진(130)은 선택된 서브셋(230)을 사용하여 작업(150)에 대한 선택된 노드(115)를 할당한다. 일 실시예에 따르면, 클러스터 관리 엔진(130)은 가상 노드 리스트(522)에서의 노드(115)의 상태를 "비할당됨"에서 "할당됨"으로 변경할 수 있다. 서브셋(230)이 적절히 할당되었으면, 클러스터 관리 엔진(130)은 단계(665)에서 작업 파라미터, 검색된 정책(524), 및 임의의 다른 적당한 파라미터에 기초하여 할당된 공간을 사용하여 작업(150)을 실행한다. 임의의 적절한 때에, 클러스터 관리 엔진(130)은 작업 결과(160)를 사용자에게 전달 또는 다른 방식으로 제공할 수 있다. 예를 들어, 결과(160)는 포맷되어 GUI(126)를 통해 사용자에게 제공될 수 있다.
도 7은 본 발명의 일 실시예에 따른 그리드(110)에서 가상 클러스터(220)를 동적으로 백필링하는 예시적인 방법(700)을 나타낸 플로우차트이다. 상위 레벨에서, 방법(700)은 가상 클러스터(220)에서의 이용가능한 공간을 결정하는 단계, 이 공간과 호환되는 최적의 작업(150)을 결정하는 단계, 및 이용가능한 공간에서 결정된 작업(150)을 실행하는 단계에 대해 기술한다. 이하의 설명은 이 방법을 수행함에 있어서의 클러스터 관리 모듈(130)의 동작에 중점을 둘 것이다. 그렇지만, 이 전의 플로우차트에서와 같이, 시스템(100)은 기술된 기능 중 일부 또는 그 전부를 구현하는 논리적 요소들의 임의의 적절한 조합 및 구성을 사용하는 것을 생각하고 있다.
방법(700)은 클러스터 관리 엔진(130)이 작업 큐(525)를 정렬(sort)하는 단계(705)에서 시작한다. 예시된 실시예에서, 클러스터 관리 엔진(130)은 큐(525)에 저장된 작업(150)의 우선순위에 기초하여 큐(525)를 정렬한다. 그렇지만, 클러스터 관리 엔진(130)이 적절한 또는 최적의 작업(150)이 실행되어지도록 임의의 적절한 특성을 사용하여 큐(525)를 정렬할 수 있다는 것을 잘 알 것이다. 다음에, 단계(710)에서, 클러스터 관리 엔진(130)은 가상 클러스터(220) 중 하나에서의 이용가능한 노드(115)의 수를 결정한다. 물론, 클러스터 관리 엔진(130)은 또한 그리드(110)에서 또는 가상 클러스터(220) 중 임의의 하나 이상에서 이용가능한 노드(115)의 수를 결정할 수 있다. 단계(715)에서, 클러스터 관리 엔진(130)은 정렬된 작업 큐(525)로부터 첫번째 작업(150)을 선택한다. 그 다음에, 클러스터 관리 엔진(130)은 단계(720)에서 선택된 작업(150)의 최적의 형상(또는 다른 차원)을 동적으로 결정한다. 선택된 작업(150)의 최적의 형상 또는 차원이 결정되면, 클러스터 관리 엔진(130)은 단계(725) 내지 단계(745)에서 적절한 가상 클러스터(220)에서 작업(150)을 백필링할 수 있는지를 판정한다.
결정 단계(725)에서, 클러스터 관리 엔진(130)은 선택된 노드(115)에 대해 이용가능한 충분한 노드(115)가 있는지를 판정한다. 이용가능한 노드(115)가 충분히 있는 경우, 단계(730)에서 클러스터 관리 엔진(130)은 임의의 적절한 기술을 사 용하여 선택된 작업(150)에 대한 노드(115)를 동적으로 할당한다. 예를 들어, 클러스터 관리 엔진(130)은 도 6에 기재된 기술들을 사용할 수 있다. 그 다음에, 단계(735)에서, 클러스터 관리 엔진(130)은 가상 클러스터(220)에서 이용가능한 노드의 수를 재계산한다. 단계(740)에서, 클러스터 관리 엔진(130)은 할당된 노드(115) 상에서 작업(150)을 실행한다. 작업(150)이 실행되었으면(또는 선택된 작업(150)에 대해 충분한 노드(115)가 없었던 경우), 클러스터 관리 엔진(130)은 단계(745)에서 정렬된 작업 큐(525)에서 그 다음 작업(150)을 선택하고, 프로세싱은 단계(720)로 되돌아간다. 루프로서 도시되어 있지만, 클러스터 관리 엔진(130)이 임의의 적절한 때에 방법(700)에 나타낸 기술들을 개시, 실행 및 종료할 수 있다는 것을 잘 알 것이다.
도 8은 본 발명의 일 실시예에 따른 그리드(110)에서 노드(115)의 고장을 동적으로 관리하는 예시적인 방법(800)을 나타낸 플로우차트이다. 상위 레벨에서, 방법(800)은 노드(115)가 고장났는지를 판정하는 단계, 작업 복원 및 관리를 자동적으로 수행하는 단계, 및 고장난 노드(115)를 보조 노드(115)로 교체하는 단계에 대해 기술하고 있다. 이하의 설명은 이 방법을 수행함에 있어서의 클러스터 관리 모듈(130)의 동작에 중점을 둘 것이다. 그렇지만, 이전의 플로우차트들에서와 같이, 시스템(100)은 기술된 기능 중 일부 또는 그 전부를 구현하는 논리적 요소들의 임의의 적절한 조합 및 구성을 사용하는 것을 생각하고 있다.
방법(800)은 클러스터 관리 엔진(130)이 노드(115)가 고장난 것으로 판정하는 단계(805)에서 시작한다. 상기한 바와 같이, 클러스터 관리 엔진(130)은 임의 의 적당한 기술을 사용하여 노드(115)가 고장난 것으로 판정할 수 있다. 예를 들어, 클러스터 관리 엔진(130)은 다양한 때에 노드(115)(또는 에이전트(132))를 풀링(pull)할 수 있으며 또한 노드(115)로부터의 응답이 없는 것에 기초하여 노드(115)가 고장난 것으로 판정할 수 있다. 다른 예에서, 노드(115) 상에 존재하는 에이전트(132)는 "하트비트"를 전달할 수 있고, 이 "하트비트"가 없는 것은 노드(115) 고장을 나타낼 수 있다. 그 다음에, 단계(810)에서, 클러스터 관리 엔진(130)은 가상 클러스터(220)로부터 고장난 노드(115)를 제거한다. 일 실시예에서, 클러스터 관리 엔진(130)은 가상 리스트(522)에서의 노드(115)의 상태를 "할당됨"에서 "고장남"으로 변경할 수 있다. 클러스터 관리 엔진(130)은 이어서 결정 단계(815)에서 작업(150)이 고장난 노드(115)와 연관되어 있는지를 판정한다. 노드(115)와 연관된 작업(150)이 없는 경우에, 프로세싱이 종료된다. 상기한 바와 같이, 프로세싱이 종료되기 이전에, 클러스터 관리 엔진(130)은 관리자에게 에러 메시지를 전달하거나, 자동적으로 교체 노드(115)를 결정하거나, 임의의 다른 적당한 프로세싱을 할 수 있다. 고장난 노드(115)와 연관된 작업(150)이 있는 경우, 클러스터 관리 엔진(130)은 단계(820)에서 작업(150)과 연관된 다른 노드(115)를 결정한다. 그 다음에, 단계(825)에서, 클러스터 관리 엔진(130)은 모든 적절한 노드(115) 상의 작업(150)을 정지(kill)시킨다. 예를 들어, 클러스터 관리 엔진(130)은 작업 정지(kill job) 명령을 실행시키거나 작업(150)을 종료시키기 위해 임의의 다른 적절한 기술을 사용할 수 있다. 다음에, 단계(830)에서, 클러스터 관리 엔진(130)은 가상 리스트(522)를 사용하여 노드(115)를 할당 해제한다. 예를 들어, 클러스터 관리 엔진(130)은 가상 리스트(522)에서의 노드(115)의 상태를 "할당됨"에서 "이용가능"으로 변경할 수 있다. 작업이 정지되고 모든 적절한 노드(115)가 할당 해제되면, 클러스터 관리 엔진(130)은 단계(835) 내지 단계(850)에서 이용가능한 노드(115)를 사용하여 작업(150)을 재실행하려고 시도한다.
단계(835)에서, 클러스터 관리 엔진(130)은 정지된 작업(150)에 대한 정책(524) 및 파라미터를 검색한다. 클러스터 관리 엔진(130)은 이어서 단계(840)에서 검색된 정책(524) 및 작업 파라미터에 기초하여 가상 클러스터(220)에서 노드(115)의 최적의 서브셋(230)을 결정한다. 노드(115)의 서브셋(230)이 결정되었으면, 클러스터 관리 엔진(130)은 단계(845)에서 노드(115)의 서브셋(230)을 동적으로 할당한다. 예를 들어, 클러스터 관리 엔진(130)은 가상 리스트(522)에서의 노드(115)의 상태를 "비할당됨"에서 "할당됨"으로 변경할 수 있다. 노드(115)의 이 서브셋이 작업(150)이 실행되고 있었던 노드들의 원래의 서브셋과 다를 수 있다는 것을 잘 알 것이다. 예를 들어, 클러스터 관리 엔진(130)은 이 실행을 유발시킨 노드 고장으로 인해 노드의 다른 서브셋이 최적이라고 판정할 수 있다. 다른 예에서, 클러스터 관리 엔진(130)은 보조 노드(115)가 고장난 노드(115)를 대체하는 동작을 한 것으로 판단할 수 있으며, 새로운 서브셋(230)은 이전의 작업 공간(230)과 실질적으로 유사하다. 할당된 서브셋(230)이 판정되고 할당되었으면, 클러스터 관리 엔진(130)은 단계(850)에서 작업(150)을 실행한다.
상기한 플로우차트들 및 부속 설명은 예시적인 방법(600, 700, 800)을 나타낸 것이다. 요약하면, 시스템(100)은 이들 및 다른 태스크를 수행하기 위해 임의 의 적당한 기술을 사용하는 것을 생각하고 있다. 따라서, 이 플로우차트 내의 단계들 중 다수는 동시에 및/또는 도시된 것과 다른 순서로 행해질 수 있다. 게다가, 시스템(100)은, 방법이 적절한 한, 부가의 단계, 더 적은 단계, 및/또는 다른 단계를 갖는 방법을 사용할 수 있다.
본 발명이 어떤 실시예 및 일반적으로 연관된 방법과 관련하여 기술되어 있지만, 이들 실시예 및 방법의 변경 및 치환이 당업자에게는 명백할 것이다. 따라서, 예시적인 실시예들에 대한 상기 설명은 본 발명을 규정하거나 제한하지 않는다. 본 발명의 사상 및 범위를 벗어나지 않고 다른 변경, 대체 및 수정도 역시 가능하다.

Claims (27)

  1. 고성능 컴퓨팅(High Performance Computing: HPC) 노드로서,
    마더보드,
    8개 이상의 포트들을 포함하고 상기 마더보드상에 통합된 스위치, 및
    HPC 작업을 실행하도록 동작가능한 적어도 2개의 프로세서 - 각각의 프로세서는 상기 통합된 스위치에 통신가능하게 연결되어 있고 또한 상기 마더보드상에 통합되어 있음 - 를 포함하는 HPC 노드.
  2. 제1항에 있어서,
    각각의 프로세서는 호스트 채널 어댑터(Host Channel Adapter: HCA)를 통해 상기 통합된 스위치에 연결되어 있는 HPC 노드.
  3. 제2항에 있어서,
    각각의 프로세서는 하이퍼 트랜스포트(Hyper Transport)/PCI 브리지를 통해 상기 통합된 스위치에 또한 연결되어 있는 HPC 노드.
  4. 제1항에 있어서,
    상기 프로세서들은 하이퍼 트랜스포트 링크를 통해 통신가능하게 연결되어 있는 HPC 노드.
  5. 제1항에 있어서,
    각각의 프로세서는 노스 브리지(North Bridge)를 통해 상기 통합된 스위치에 통신가능하게 연결되어 있는 HPC 노드.
  6. 제1항에 있어서,
    상기 통합된 스위치는 상기 프로세서들의 성능에 대응하는 대역폭에서 I/O 메시지들을 통신하도록 동작가능한 HPC 노드.
  7. 제1항에 있어서,
    상기 통합된 스위치는 인피니밴드(Infiniband) 스위치를 포함하는 HPC 노드.
  8. 제1항에 있어서,
    상기 통합된 스위치는,
    상기 2개 이상의 프로세서 중 제1 프로세서로부터의 제1 메시지를 통신하고,
    상기 2개 이상의 프로세서 중 제2 프로세서로부터의 제2 메시지를 통신하며,
    상기 제1 및 제2 메시지는 병렬로 통신되는 HPC 노드.
  9. 복수의 상호 접속된 HPC 노드를 포함하는 고성능 컴퓨팅(HPC) 시스템으로서,
    마더보드,
    8개 이상의 포트를 포함하고 상기 마더보드상에 통합되어 있고 또한 상기 복수의 노드의 적어도 한 서브셋을 상호 접속시키는 스위치, 및
    HPC 작업을 실행하도록 동작가능한 적어도 2개의 프로세서 - 각각의 프로세서는 상기 통합된 스위치에 통신가능하게 연결되어 있고 또한 상기 마더보드상에 통합되어 있음 - 를 포함하는 HPC 시스템.
  10. 제9항에 있어서,
    각각의 노드상의 상기 2개 이상의 프로세서는 호스트 채널 어댑터(HCA)를 통해 상기 통합된 스위치에 연결되어 있는 HPC 시스템.
  11. 제10항에 있어서,
    각각의 노드상의 상기 2개 이상의 프로세서는 하이퍼 트랜스포트/PCI 브리지를 통해 상기 통합된 스위치에 또한 연결되어 있는 HPC 시스템.
  12. 제9항에 있어서,
    각각의 노드상의 상기 2개 이상의 프로세서는 하이퍼 트랜스포트 링크를 통해 통신가능하게 상호 연결되어 있는 HPC 시스템.
  13. 제9항에 있어서,
    각각의 노드상의 상기 2개 이상의 프로세서는 노스 브리지를 통해 상기 통합된 스위치에 통신가능하게 연결되어 있는 HPC 시스템.
  14. 제9항에 있어서,
    각각의 노드의 상기 통합된 스위치는 상기 프로세서들의 성능에 대응하는 대역폭에서 I/O 메시지들을 통신하도록 동작가능한 HPC 시스템.
  15. 제9항에 있어서,
    각각의 노드의 상기 통합된 스위치는 인피니밴드 스위치를 포함하는 HPC 시스템.
  16. 제9항에 있어서,
    상기 복수의 HPC 노드는 각각의 노드의 통합된 패브릭(integrated fabric)에 의해 구현되는 토폴로지로 배열되어 있는 HPC 시스템.
  17. 제16항에 있어서,
    상기 토폴로지는 하이퍼큐브(hypercube)를 포함하는 HPC 시스템.
  18. 제16항에 있어서,
    상기 토폴로지는 폴딩된 토폴로지(folded topology)를 포함하는 HPC 시스템.
  19. 제9항에 있어서,
    상기 복수의 노드 중 제1 노드는 X축을 따른 상기 복수의 노드 중 제2 노드, Y축을 따른 상기 복수의 노드 중 제3 노드, Z축을 따른 상기 복수의 노드 중 제4 노드, 및 대각선 축을 따른 제5 노드에 상호 접속되어 있는 HPC 시스템.
  20. 제19항에 있어서,
    상기 제1 노드와 상기 제5 노드 간의 접속은 상기 복수의 노드 중의 통신들의 홉(hop)들을 감소시키도록 동작가능한 HPC 시스템.
  21. HPC 노드를 형성하는 방법으로서,
    마더보드를 제공하는 단계,
    스위치를 상기 마더보드와 통합시키는 단계,
    적어도 2개의 프로세서를 상기 마더보드와 통합시키는 단계, 및
    각각의 프로세서를 상기 통합된 스위치와 연결시키는 단계
    를 포함하는 HPC 노드 형성 방법.
  22. 제21항에 있어서,
    상기 각각의 프로세서를 상기 통합된 스위치와 연결시키는 단계는 각각의 프로세서를 호스트 채널 어댑터(HCA)를 통해 상기 통합된 스위치에 연결시키는 단계를 포함하는 HPC 노드 형성 방법.
  23. 제22항에 있어서,
    상기 각각의 프로세서를 상기 통합된 스위치와 연결시키는 단계는 각각의 프로세서를 하이퍼 트랜스포트/PCI 브리지를 통해 상기 통합된 스위치에 연결시키는 단계를 포함하는 HPC 노드 형성 방법.
  24. 제21항에 있어서,
    상기 프로세서들을 하이퍼 트랜스포트 링크를 통해 연결시키는 단계를 더 포함하는 HPC 노드 형성 방법.
  25. 제21항에 있어서,
    상기 각각의 프로세서를 상기 통합된 스위치와 연결시키는 단계는 각각의 프로세서를 노스 브리지를 통해 상기 통합된 스위치에 통신가능하게 연결시키는 단계를 포함하는 HPC 노드 형성 방법.
  26. 제21항에 있어서,
    상기 통합된 스위치는 상기 프로세서들의 성능에 대응하는 대역폭에서 I/O 메시지들을 통신하도록 동작가능한 HPC 노드 형성 방법.
  27. 제21항에 있어서,
    상기 통합된 스위치는 인피니밴드 스위치를 포함하는 HPC 노드 형성 방법.
KR1020067023882A 2004-04-15 2005-04-13 고성능 컴퓨팅 시스템 및 방법 KR101159377B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/824,874 2004-04-15
US10/824,874 US8335909B2 (en) 2004-04-15 2004-04-15 Coupling processors to each other for high performance computing (HPC)
PCT/US2005/012599 WO2005106696A1 (en) 2004-04-15 2005-04-13 High performance computing system and method

Publications (2)

Publication Number Publication Date
KR20070011503A KR20070011503A (ko) 2007-01-24
KR101159377B1 true KR101159377B1 (ko) 2012-06-27

Family

ID=34711924

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067023882A KR101159377B1 (ko) 2004-04-15 2005-04-13 고성능 컴퓨팅 시스템 및 방법

Country Status (10)

Country Link
US (4) US8335909B2 (ko)
EP (2) EP1814029A3 (ko)
JP (1) JP4560435B2 (ko)
KR (1) KR101159377B1 (ko)
CN (1) CN1704921B (ko)
CA (1) CA2503775C (ko)
IL (1) IL178608A (ko)
MY (1) MY147118A (ko)
TW (1) TWI338232B (ko)
WO (1) WO2005106696A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023277637A1 (ko) * 2021-07-01 2023-01-05 엘지전자 주식회사 신호 처리 장치 및 이를 구비하는 차량용 통신 장치

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9178784B2 (en) * 2004-04-15 2015-11-03 Raytheon Company System and method for cluster management based on HPC architecture
US8336040B2 (en) * 2004-04-15 2012-12-18 Raytheon Company System and method for topology-aware job scheduling and backfilling in an HPC environment
US20050235055A1 (en) * 2004-04-15 2005-10-20 Raytheon Company Graphical user interface for managing HPC clusters
US8335909B2 (en) 2004-04-15 2012-12-18 Raytheon Company Coupling processors to each other for high performance computing (HPC)
US7711977B2 (en) * 2004-04-15 2010-05-04 Raytheon Company System and method for detecting and managing HPC node failure
US8190714B2 (en) * 2004-04-15 2012-05-29 Raytheon Company System and method for computer cluster virtualization using dynamic boot images and virtual disk
JP4477437B2 (ja) * 2004-07-02 2010-06-09 株式会社日立製作所 ストレージ装置、そのクラスタ間データ通信方法、及びそのクラスタ通信制御プログラム
US7475274B2 (en) * 2004-11-17 2009-01-06 Raytheon Company Fault tolerance and recovery in a high-performance computing (HPC) system
US7433931B2 (en) * 2004-11-17 2008-10-07 Raytheon Company Scheduling in a high-performance computing (HPC) system
US8244882B2 (en) * 2004-11-17 2012-08-14 Raytheon Company On-demand instantiation in a high-performance computing (HPC) system
US7698493B2 (en) * 2005-08-31 2010-04-13 Ati Technologies, Inc. Methods and apparatus for translating write request messages in a computing system
US7805560B2 (en) * 2005-08-31 2010-09-28 Ati Technologies Inc. Methods and apparatus for translating messages in a computing system
KR100730279B1 (ko) * 2005-12-16 2007-06-19 삼성전자주식회사 스타 토로스 토폴로지를 이용하여 칩 상의 디바이스를연결한 컴퓨터 칩
US7865633B2 (en) * 2006-08-31 2011-01-04 Cisco Technology, Inc. Multiple context single logic virtual host channel adapter
US7870306B2 (en) 2006-08-31 2011-01-11 Cisco Technology, Inc. Shared memory message switch and cache
US7996583B2 (en) * 2006-08-31 2011-08-09 Cisco Technology, Inc. Multiple context single logic virtual host channel adapter supporting multiple transport protocols
JP5078347B2 (ja) * 2006-12-28 2012-11-21 インターナショナル・ビジネス・マシーンズ・コーポレーション 複数のノードを有するコンピュータ・システムの故障ノードをフェイルオーバー(修復)する方法
US7653773B2 (en) * 2007-10-03 2010-01-26 International Business Machines Corporation Dynamically balancing bus bandwidth
US8595378B1 (en) * 2009-03-30 2013-11-26 Amazon Technologies, Inc. Managing communications having multiple alternative destinations
US9094317B2 (en) 2009-06-18 2015-07-28 Hewlett-Packard Development Company, L.P. Processor topology switches
JP4797095B2 (ja) * 2009-07-24 2011-10-19 株式会社日立製作所 バッチ処理多重化方法
US8327187B1 (en) * 2009-09-21 2012-12-04 Tilera Corporation Low-overhead operating systems
CN102096655B (zh) * 2011-01-31 2013-02-20 中国科学院计算技术研究所 一种移动hpc***及其实现方法
JP5665208B2 (ja) * 2011-10-26 2015-02-04 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ハイパーキューブ・ネットワーク内のデータ伝送の最適化
US20130227190A1 (en) * 2012-02-27 2013-08-29 Raytheon Company High Data-Rate Processing System
US9311122B2 (en) * 2012-03-26 2016-04-12 Oracle International Corporation System and method for providing a scalable signaling mechanism for virtual machine migration in a middleware machine environment
US9397954B2 (en) 2012-03-26 2016-07-19 Oracle International Corporation System and method for supporting live migration of virtual machines in an infiniband network
US9612877B1 (en) 2012-07-12 2017-04-04 Cisco Technology, Inc. High performance computing in a virtualized environment
CN102932276B (zh) * 2012-10-09 2015-01-14 无锡江南计算技术研究所 计算节点集群***和数据中继器
US9078577B2 (en) 2012-12-06 2015-07-14 Massachusetts Institute Of Technology Circuit for heartbeat detection and beat timing extraction
CN103136141A (zh) * 2013-02-06 2013-06-05 浪潮电子信息产业股份有限公司 一种多控制器间的高速互联方法
US10051054B2 (en) 2013-03-15 2018-08-14 Oracle International Corporation System and method for efficient virtualization in lossless interconnection networks
US9990221B2 (en) 2013-03-15 2018-06-05 Oracle International Corporation System and method for providing an infiniband SR-IOV vSwitch architecture for a high performance cloud computing environment
US9183071B1 (en) * 2013-12-02 2015-11-10 Leidos, Inc. System and method for automated hardware compatibility testing
CN104199801A (zh) * 2014-08-26 2014-12-10 山东超越数控电子有限公司 一种基于龙芯服务器的高性能计算集群的实现方法
US9723008B2 (en) 2014-09-09 2017-08-01 Oracle International Corporation System and method for providing an integrated firewall for secure network communication in a multi-tenant environment
CN104468810A (zh) * 2014-12-18 2015-03-25 山东超越数控电子有限公司 一种基于龙芯平台的高性能计算资源监控实现方法
US10101786B2 (en) 2014-12-22 2018-10-16 Intel Corporation Holistic global performance and power management
US10466754B2 (en) * 2014-12-26 2019-11-05 Intel Corporation Dynamic hierarchical performance balancing of computational resources
JP6645011B2 (ja) * 2015-01-27 2020-02-12 日本電気株式会社 仮想化システム、サーバ、端末、仮想化方法、及びそのためのプログラム
US10833940B2 (en) * 2015-03-09 2020-11-10 Vapor IO Inc. Autonomous distributed workload and infrastructure scheduling
KR102237991B1 (ko) 2015-03-20 2021-04-08 한국전자통신연구원 Pci 익스프레스 전용 통신 모듈을 이용한 통신 방법과 이를 포함하는 네트워크 장치
EP3079072A1 (en) * 2015-04-10 2016-10-12 Politechnika Lodzka A parallel machine with reduced number of connections between logical circuits
US9933826B2 (en) 2015-05-11 2018-04-03 Hewlett Packard Enterprise Development Lp Method and apparatus for managing nodal power in a high performance computer system
US10429909B2 (en) 2015-06-01 2019-10-01 Hewlett Packard Enterprise Development Lp Managing power in a high performance computing system for resiliency and cooling
CN108139980B (zh) * 2015-10-19 2022-03-18 瑞典爱立信有限公司 用于合并存储器页的方法和存储器合并功能
RU2635896C1 (ru) * 2016-07-07 2017-11-16 Акционерное общество "Научно-исследовательский институт вычислительных комплексов им. М.А. Карцева" (АО "НИИВК им. М.А. Карцева") Высокопроизводительная вычислительная платформа на базе процессоров с разнородной архитектурой
US10317888B2 (en) 2017-03-01 2019-06-11 PLETHORA IloT, S.L. Device and system including multiple devices for supervision and control of machines in industrial installation
KR102169927B1 (ko) * 2017-10-16 2020-10-26 한국전자기술연구원 스토리지 자원 관리를 위한 3d 시각화 도구를 제공하는 스토리지 관리장치 및 스토리지 관리방법
CN109976899A (zh) * 2017-12-28 2019-07-05 李耀庭 一种分布式运算***
RU2699254C1 (ru) * 2018-10-30 2019-09-04 Федеральное государственное унитарное предприятие "Научно-исследовательский институт "Квант" Реконфигурируемая вычислительная система с многоуровневой подсистемой мониторинга и управления
US11108583B2 (en) * 2018-11-19 2021-08-31 International Business Machines Corporation Collaborative learning and enabling skills among smart devices within a closed social network group
US11184245B2 (en) 2020-03-06 2021-11-23 International Business Machines Corporation Configuring computing nodes in a three-dimensional mesh topology

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002084509A1 (en) 2001-02-24 2002-10-24 International Business Machines Corporation A novel massively parrallel supercomputer

Family Cites Families (200)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5969392A (ja) 1982-10-08 1984-04-19 株式会社 彦間製作所 クレ−ン車輌
US4885770A (en) * 1987-09-04 1989-12-05 Digital Equipment Corporation Boot system for distributed digital data processing system
US4868818A (en) * 1987-10-29 1989-09-19 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Fault tolerant hypercube computer system architecture
US5020059A (en) * 1989-03-31 1991-05-28 At&T Bell Laboratories Reconfigurable signal processor
WO1991014326A2 (en) 1990-03-05 1991-09-19 Massachusetts Institute Of Technology Switching networks with expansive and/or dispersive logical clusters for message routing
US5396635A (en) * 1990-06-01 1995-03-07 Vadem Corporation Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system
US5301104A (en) * 1990-08-07 1994-04-05 Honeywell Inc. Method for allocating processing elements interconnected in a hypercube topology
US5588152A (en) 1990-11-13 1996-12-24 International Business Machines Corporation Advanced parallel processor including advanced support hardware
US5590345A (en) * 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
US5495474A (en) 1991-03-29 1996-02-27 International Business Machines Corp. Switch-based microchannel planar apparatus
US5321813A (en) 1991-05-01 1994-06-14 Teradata Corporation Reconfigurable, fault tolerant, multistage interconnect network and protocol
US5280607A (en) * 1991-06-28 1994-01-18 International Business Machines Corporation Method and apparatus for tolerating faults in mesh architectures
JPH05274178A (ja) 1992-03-25 1993-10-22 Fujitsu Ltd 並列計算機デバッグ結果表示処理方式
US5459857A (en) 1992-05-15 1995-10-17 Storage Technology Corporation Fault tolerant disk array data storage subsystem
CA2106280C (en) * 1992-09-30 2000-01-18 Yennun Huang Apparatus and methods for fault-tolerant computing employing a daemon monitoring process and fault-tolerant library to provide varying degrees of fault tolerance
US5781715A (en) * 1992-10-13 1998-07-14 International Business Machines Corporation Fault-tolerant bridge/router with a distributed switch-over mechanism
US5513313A (en) * 1993-01-19 1996-04-30 International Business Machines Corporation Method for generating hierarchical fault-tolerant mesh architectures
US5729752A (en) 1993-02-19 1998-03-17 Hewlett-Packard Company Network connection scheme
JPH07141305A (ja) * 1993-11-16 1995-06-02 Hitachi Ltd 並列計算機の実行制御方法
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
US5450578A (en) * 1993-12-23 1995-09-12 Unisys Corporation Method and apparatus for automatically routing around faults within an interconnect system
JP3541212B2 (ja) * 1993-12-28 2004-07-07 富士通株式会社 プロセッサ割当て装置
EP0752132B1 (en) * 1994-03-22 2000-11-15 Hyperchip Inc. Cell-based defect tolerant architecture with beneficial use of unassigned spare cells
US6408402B1 (en) * 1994-03-22 2002-06-18 Hyperchip Inc. Efficient direct replacement cell fault tolerant architecture
JPH08227356A (ja) 1994-12-21 1996-09-03 Tec Corp データ処理装置
US5682491A (en) * 1994-12-29 1997-10-28 International Business Machines Corporation Selective processing and routing of results among processors controlled by decoding instructions using mask value derived from instruction tag and processor identifier
US5603044A (en) * 1995-02-08 1997-02-11 International Business Machines Corporation Interconnection network for a multi-nodal data processing system which exhibits incremental scalability
US5872928A (en) * 1995-02-24 1999-02-16 Cabletron Systems, Inc. Method and apparatus for defining and enforcing policies for configuration management in communications networks
US5889953A (en) * 1995-05-25 1999-03-30 Cabletron Systems, Inc. Policy management and conflict resolution in computer networks
JPH09496A (ja) 1995-06-23 1997-01-07 Canon Inc 眼底映像装置
JPH0926941A (ja) * 1995-07-10 1997-01-28 Mitsubishi Electric Corp データ処理装置
US5805785A (en) * 1996-02-27 1998-09-08 International Business Machines Corporation Method for monitoring and recovery of subsystems in a distributed/clustered system
US6006242A (en) * 1996-04-05 1999-12-21 Bankers Systems, Inc. Apparatus and method for dynamically creating a document
US5805786A (en) * 1996-07-23 1998-09-08 International Business Machines Corporation Recovery of a name server managing membership of a domain of processors in a distributed computing environment
US6393581B1 (en) * 1996-08-29 2002-05-21 Cornell Research Foundation, Inc. Reliable time delay-constrained cluster computing
US6009481A (en) 1996-09-30 1999-12-28 Emc Corporation Mass storage system using internal system-level mirroring
JPH10116261A (ja) 1996-10-14 1998-05-06 Hitachi Ltd 並列計算機システムのチェックポイントリスタート方法
KR100207598B1 (ko) 1997-01-27 1999-07-15 윤종용 상호연결망으로서 파이브 채널을 사용한 클러스터시스템
US5933631A (en) * 1997-03-17 1999-08-03 International Business Machines Corporation Dynamic boot filesystem selection
US6029246A (en) * 1997-03-31 2000-02-22 Symantec Corporation Network distributed system for updating locally secured objects in client machines
US5991877A (en) * 1997-04-03 1999-11-23 Lockheed Martin Corporation Object-oriented trusted application framework
US6088330A (en) * 1997-09-09 2000-07-11 Bruck; Joshua Reliable array of distributed computing nodes
US6167502A (en) * 1997-10-10 2000-12-26 Billions Of Operations Per Second, Inc. Method and apparatus for manifold array processing
US6230252B1 (en) * 1997-11-17 2001-05-08 Silicon Graphics, Inc. Hybrid hypercube/torus architecture
US6633945B1 (en) * 1997-12-07 2003-10-14 Conexant Systems, Inc. Fully connected cache coherent multiprocessing systems
US5941972A (en) 1997-12-31 1999-08-24 Crossroads Systems, Inc. Storage router and method for providing virtual local storage
US6480927B1 (en) 1997-12-31 2002-11-12 Unisys Corporation High-performance modular memory system with crossbar connections
US6477663B1 (en) * 1998-04-09 2002-11-05 Compaq Computer Corporation Method and apparatus for providing process pair protection for complex applications
JP3999353B2 (ja) 1998-05-29 2007-10-31 株式会社東芝 コンピュータネットワークにおける通信経路の決定方法ならびにシステム及び同方法がプログラムされ記録される記録媒体
JP3342665B2 (ja) 1998-06-17 2002-11-11 株式会社カスト 表示装置
US6189100B1 (en) * 1998-06-30 2001-02-13 Microsoft Corporation Ensuring the integrity of remote boot client data
US6195760B1 (en) 1998-07-20 2001-02-27 Lucent Technologies Inc Method and apparatus for providing failure detection and recovery with predetermined degree of replication for distributed applications in a network
US6466932B1 (en) * 1998-08-14 2002-10-15 Microsoft Corporation System and method for implementing group policy
JP2000112906A (ja) 1998-10-01 2000-04-21 Mitsubishi Electric Corp クラスタシステム
US6683696B1 (en) * 1998-10-27 2004-01-27 Hewlett-Packard Development Company, L.P. Filter based data imaging method for an image forming device
US6158010A (en) * 1998-10-28 2000-12-05 Crosslogix, Inc. System and method for maintaining security in a distributed computer network
US6691165B1 (en) * 1998-11-10 2004-02-10 Rainfinity, Inc. Distributed server cluster for controlling network traffic
US6496941B1 (en) 1998-12-29 2002-12-17 At&T Corp. Network disaster recovery and analysis tool
US6468112B1 (en) 1999-01-11 2002-10-22 Adc Telecommunications, Inc. Vertical cable management system with ribcage structure
US6480972B1 (en) * 1999-02-24 2002-11-12 International Business Machines Corporation Data processing system and method for permitting a server to remotely perform diagnostics on a malfunctioning client computer system
US6646984B1 (en) 1999-03-15 2003-11-11 Hewlett-Packard Development Company, L.P. Network topology with asymmetric fabrics
US6453426B1 (en) * 1999-03-26 2002-09-17 Microsoft Corporation Separately storing core boot data and cluster configuration data in a server cluster
US6622233B1 (en) * 1999-03-31 2003-09-16 Star Bridge Systems, Inc. Hypercomputer
US6408326B1 (en) * 1999-04-20 2002-06-18 Microsoft Corporation Method and system for applying a policy to binary data
US6718486B1 (en) * 2000-01-26 2004-04-06 David E. Lovejoy Fault monitor for restarting failed instances of the fault monitor
US6597956B1 (en) * 1999-08-23 2003-07-22 Terraspring, Inc. Method and apparatus for controlling an extensible computing system
US6415323B1 (en) * 1999-09-03 2002-07-02 Fastforward Networks Proximity-based redirection system for robust and scalable service-node location in an internetwork
US6741983B1 (en) * 1999-09-28 2004-05-25 John D. Birdwell Method of indexed storage and retrieval of multidimensional information
US6571030B1 (en) 1999-11-02 2003-05-27 Xros, Inc. Optical cross-connect switching system
US6629266B1 (en) * 1999-11-17 2003-09-30 International Business Machines Corporation Method and system for transparent symptom-based selective software rejuvenation
US6748437B1 (en) * 2000-01-10 2004-06-08 Sun Microsystems, Inc. Method for creating forwarding lists for cluster networking
US20020103889A1 (en) 2000-02-11 2002-08-01 Thomas Markson Virtual storage layer approach for dynamically associating computer storage with processing hosts
EP1182822B1 (en) 2000-02-21 2013-02-13 Kabushiki Kaisha Toshiba Network Management Equipment
US6460149B1 (en) * 2000-03-03 2002-10-01 International Business Machines Corporation Suicide among well-mannered cluster nodes experiencing heartbeat failure
AU2001287250A1 (en) * 2000-03-22 2001-10-03 Yotta Yotta, Inc. Method and system for providing multimedia information on demand over wide area networks
US6785713B1 (en) * 2000-05-08 2004-08-31 Citrix Systems, Inc. Method and apparatus for communicating among a network of servers utilizing a transport mechanism
US6658504B1 (en) 2000-05-16 2003-12-02 Eurologic Systems Storage apparatus
US6865157B1 (en) 2000-05-26 2005-03-08 Emc Corporation Fault tolerant shared system resource with communications passthrough providing high availability communications
US20040034794A1 (en) * 2000-05-28 2004-02-19 Yaron Mayer System and method for comprehensive general generic protection for computers against malicious programs that may steal information and/or cause damages
US6591285B1 (en) 2000-06-16 2003-07-08 Shuo-Yen Robert Li Running-sum adder networks determined by recursive construction of multi-stage networks
US6820171B1 (en) 2000-06-30 2004-11-16 Lsi Logic Corporation Methods and structures for an extensible RAID storage architecture
JP4292693B2 (ja) 2000-07-07 2009-07-08 株式会社日立製作所 計算機資源分割装置および資源分割方法
US6643764B1 (en) * 2000-07-20 2003-11-04 Silicon Graphics, Inc. Multiprocessor system utilizing multiple links to improve point to point bandwidth
US6697914B1 (en) 2000-09-11 2004-02-24 Western Digital Ventures, Inc. Switched node comprising a disk controller with integrated multi-port switching circuitry
US6977927B1 (en) 2000-09-18 2005-12-20 Hewlett-Packard Development Company, L.P. Method and system of allocating storage resources in a storage area network
US7061907B1 (en) 2000-09-26 2006-06-13 Dell Products L.P. System and method for field upgradeable switches built from routing components
US7032119B2 (en) * 2000-09-27 2006-04-18 Amphus, Inc. Dynamic power and workload management for multi-server system
JP2002108839A (ja) 2000-09-28 2002-04-12 Mitsubishi Electric Corp 通信ネットワークシステム、ジョブ割当方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
KR20010000624A (ko) 2000-10-10 2001-01-05 최은석 고성능 컴퓨터를 이용한 연산기능 제공방법
US7428583B1 (en) * 2000-10-31 2008-09-23 Intel Corporation Network policy distribution
US7055148B2 (en) * 2000-12-07 2006-05-30 Hewlett-Packard Development Company, L.P. System and method for updating firmware
US6792507B2 (en) 2000-12-14 2004-09-14 Maxxan Systems, Inc. Caching system and method for a network storage system
US6735660B1 (en) * 2000-12-21 2004-05-11 International Business Machines Corporation Sideband signal transmission between host and input/output adapter
JP4457185B2 (ja) 2001-02-13 2010-04-28 ネットアップ,インコーポレイテッド シリコンベースのストレージ仮想化サーバ
WO2002069469A1 (en) 2001-02-24 2002-09-06 International Business Machines Corporation Fault tolerance in a supercomputer through dynamic repartitioning
US7107337B2 (en) * 2001-06-07 2006-09-12 Emc Corporation Data storage system with integrated switching
US6728736B2 (en) 2001-03-14 2004-04-27 Storage Technology Corporation System and method for synchronizing a data copy using an accumulation remote copy trio
US6952766B2 (en) * 2001-03-15 2005-10-04 International Business Machines Corporation Automated node restart in clustered computer system
US7028228B1 (en) * 2001-03-28 2006-04-11 The Shoregroup, Inc. Method and apparatus for identifying problems in computer networks
US6918051B2 (en) * 2001-04-06 2005-07-12 International Business Machines Corporation Node shutdown in clustered computer system
US6820221B2 (en) * 2001-04-13 2004-11-16 Hewlett-Packard Development Company, L.P. System and method for detecting process and network failures in a distributed system
US7231430B2 (en) * 2001-04-20 2007-06-12 Egenera, Inc. Reconfigurable, virtual processing system, cluster, network and method
US20040004966A1 (en) 2001-04-27 2004-01-08 Foster Michael S. Using virtual identifiers to route transmitted data through a network
US6996674B2 (en) 2001-05-07 2006-02-07 International Business Machines Corporation Method and apparatus for a global cache directory in a storage cluster
US6675264B2 (en) * 2001-05-07 2004-01-06 International Business Machines Corporation Method and apparatus for improving write performance in a cluster-based file system
US6587921B2 (en) 2001-05-07 2003-07-01 International Business Machines Corporation Method and apparatus for cache synchronization in a clustered environment
US20030063839A1 (en) 2001-05-11 2003-04-03 Scott Kaminski Fault isolation of individual switch modules using robust switch architecture
WO2002095580A1 (en) 2001-05-23 2002-11-28 Tekelec Methods and systems for automatically configuring network monitoring system
US6950833B2 (en) * 2001-06-05 2005-09-27 Silicon Graphics, Inc. Clustered filesystem
US8010558B2 (en) * 2001-06-05 2011-08-30 Silicon Graphics International Relocation of metadata server with outstanding DMAPI requests
US6988193B2 (en) * 2001-06-28 2006-01-17 International Business Machines Corporation System and method for creating a definition for a target device based on an architecture configuration of the target device at a boot server
US8032625B2 (en) * 2001-06-29 2011-10-04 International Business Machines Corporation Method and system for a network management framework with redundant failover methodology
US20030005039A1 (en) 2001-06-29 2003-01-02 International Business Machines Corporation End node partitioning using local identifiers
SE0102405D0 (sv) 2001-07-04 2001-07-04 Software Run Ab A system and a method for selecting a preconfigured operating system for a server
GB0116310D0 (en) 2001-07-04 2001-08-29 New Transducers Ltd Contact sensitive device
US7139267B2 (en) 2002-03-05 2006-11-21 Industrial Technology Research Institute System and method of stacking network switches
US7065764B1 (en) 2001-07-20 2006-06-20 Netrendered, Inc. Dynamically allocated cluster system
US6944785B2 (en) 2001-07-23 2005-09-13 Network Appliance, Inc. High-availability cluster virtual server system
US7016299B2 (en) * 2001-07-27 2006-03-21 International Business Machines Corporation Network node failover using path rerouting by manager component or switch port remapping
AU2002313583A1 (en) 2001-08-01 2003-02-17 Actona Technologies Ltd. Virtual file-sharing network
EP1283464A1 (en) * 2001-08-06 2003-02-12 Hewlett-Packard Company A boot process for a computer, a boot ROM and a computer having a boot ROM
US6922791B2 (en) * 2001-08-09 2005-07-26 Dell Products L.P. Failover system and method for cluster environment
TW532011B (en) 2001-09-21 2003-05-11 Jiun-Sheng Chen Network topology structure on board of computer cluster
JP2003099412A (ja) 2001-09-21 2003-04-04 Hitachi Eng Co Ltd 超並列コンピュータ
US7340555B2 (en) 2001-09-28 2008-03-04 Dot Hill Systems Corporation RAID system for performing efficient mirrored posted-write operations
US7185062B2 (en) 2001-09-28 2007-02-27 Emc Corporation Switch-based storage services
US6976134B1 (en) 2001-09-28 2005-12-13 Emc Corporation Pooling and provisioning storage resources in a storage network
US7073053B1 (en) * 2001-10-11 2006-07-04 Cisco Technology, Inc. Method and apparatus for a boot progression scheme for reliably initializing a system
GB2381713A (en) * 2001-11-01 2003-05-07 3Com Corp Failover mechanism involving blocking of access of a malfunctioning server and continuing monitoring to enable unblocking of access if server recovers
US7127633B1 (en) 2001-11-15 2006-10-24 Xiotech Corporation System and method to failover storage area network targets from one interface to another
US6904482B2 (en) * 2001-11-20 2005-06-07 Intel Corporation Common boot environment for a modular server system
US7055056B2 (en) 2001-11-21 2006-05-30 Hewlett-Packard Development Company, L.P. System and method for ensuring the availability of a storage system
JP2003162515A (ja) 2001-11-22 2003-06-06 Fujitsu Ltd クラスタシステム
US7574496B2 (en) 2001-11-30 2009-08-11 Surgient, Inc. Virtual server cloud interfacing
EP1318453A1 (en) 2001-12-07 2003-06-11 Hewlett-Packard Company Scheduling system, method and apparatus for a cluster
CA2365729A1 (en) * 2001-12-20 2003-06-20 Platform Computing (Barbados) Inc. Topology aware scheduling for a multiprocessor system
US7046687B1 (en) * 2002-01-16 2006-05-16 Tau Networks Configurable virtual output queues in a scalable switching system
US6918063B2 (en) * 2002-02-04 2005-07-12 International Business Machines Corporation System and method for fault tolerance in multi-node system
US7093004B2 (en) * 2002-02-04 2006-08-15 Datasynapse, Inc. Using execution statistics to select tasks for redundant assignment in a distributed computing platform
US7640547B2 (en) * 2002-02-08 2009-12-29 Jpmorgan Chase & Co. System and method for allocating computing resources of a distributed computing system
JP2003237423A (ja) 2002-02-19 2003-08-27 Kubota Corp 農用作業車
DE10214067B4 (de) * 2002-03-28 2010-01-21 Advanced Micro Devices, Inc., Sunnyvale Integrierter Schaltkreischip mit Hochgeschwindigkeitsdatenschnittstelle sowie zugehöriges Southbridgebauelement und Verfahren
US7043539B1 (en) * 2002-03-29 2006-05-09 Terraspring, Inc. Generating a description of a configuration for a virtual network system
US7406038B1 (en) 2002-04-05 2008-07-29 Ciphermax, Incorporated System and method for expansion of computer network switching system without disruption thereof
JP2003296272A (ja) * 2002-04-08 2003-10-17 Hitachi Ltd 通信システム,通信装置およびクライアント側通信端末
US7139798B2 (en) 2002-05-17 2006-11-21 Groove Networks, Inc. Method and apparatus for connecting a secure peer-to-peer collaboration system to an external system
US20030233427A1 (en) 2002-05-29 2003-12-18 Hitachi, Ltd. System and method for storage network management
US7161904B2 (en) 2002-06-04 2007-01-09 Fortinet, Inc. System and method for hierarchical metering in a virtual router based network switch
JP3932994B2 (ja) 2002-06-25 2007-06-20 株式会社日立製作所 サーバ引継システムおよびその方法
US20040148376A1 (en) 2002-06-28 2004-07-29 Brocade Communications Systems, Inc. Storage area network processing device
DE10234992A1 (de) * 2002-07-31 2004-02-19 Advanced Micro Devices, Inc., Sunnyvale Retry-Mechanismus für blockierende Schnittstellen
US7765299B2 (en) 2002-09-16 2010-07-27 Hewlett-Packard Development Company, L.P. Dynamic adaptive server provisioning for blade architectures
US7127597B2 (en) * 2002-09-24 2006-10-24 Novell, Inc. Mechanism for controlling boot decisions from a network policy directory based on client profile information
JP2004126968A (ja) 2002-10-03 2004-04-22 Fujitsu Ltd 並列計算機のジョブスケジューリング装置
IL152676A0 (en) 2002-11-06 2003-06-24 Teracross Ltd Method and apparatus for high performance single block scheduling in distributed systems
US7039765B1 (en) 2002-12-19 2006-05-02 Hewlett-Packard Development Company, L.P. Techniques for cache memory management using read and write operations
US7117306B2 (en) 2002-12-19 2006-10-03 Intel Corporation Mitigating access penalty of a semiconductor nonvolatile memory
JP4037257B2 (ja) 2002-12-26 2008-01-23 株式会社日立製作所 情報処理システムの制御方法、情報処理システム、及びプログラム
US7245617B2 (en) 2003-02-07 2007-07-17 Fujitsu Limited Queuing packets written to memory for switching
US6941396B1 (en) 2003-02-19 2005-09-06 Istor Networks, Inc. Storage controller redundancy using bi-directional reflective memory channel
US20040210656A1 (en) * 2003-04-16 2004-10-21 Silicon Graphics, Inc. Failsafe operation of storage area network
US7287179B2 (en) * 2003-05-15 2007-10-23 International Business Machines Corporation Autonomic failover of grid-based services
US7287137B2 (en) 2003-06-06 2007-10-23 Hewlett-Packard Development Company, L.P. Batched, asynchronous data redundancy technique
US7007125B2 (en) * 2003-06-24 2006-02-28 International Business Machines Corporation Pass through circuit for reduced memory latency in a multiprocessor system
US7379983B2 (en) * 2003-06-25 2008-05-27 International Business Machines Corporation Merging scalable nodes into single-partition merged system using service processors of nodes
US7299334B2 (en) 2003-07-15 2007-11-20 Xiv Ltd. Storage system configurations
US7644153B2 (en) * 2003-07-31 2010-01-05 Hewlett-Packard Development Company, L.P. Resource allocation management in interactive grid computing systems
US7483374B2 (en) 2003-08-05 2009-01-27 Scalent Systems, Inc. Method and apparatus for achieving dynamic capacity and high availability in multi-stage data networks using adaptive flow-based routing
US7487235B2 (en) 2003-09-24 2009-02-03 Dell Products L.P. Dynamically varying a raid cache policy in order to optimize throughput
JP2007508623A (ja) * 2003-10-08 2007-04-05 ユニシス コーポレーション 複数のノードにわたってシステムリソースを割り当てて管理する仮想データセンタ
US7207039B2 (en) * 2003-12-24 2007-04-17 Intel Corporation Secure booting and provisioning
US7693991B2 (en) 2004-01-16 2010-04-06 International Business Machines Corporation Virtual clustering and load balancing servers
JP4441286B2 (ja) 2004-02-10 2010-03-31 株式会社日立製作所 ストレージシステム
US7527155B2 (en) 2004-02-11 2009-05-05 International Business Machines Corporation Apparatus and system for vertically storing computing devices
US7685597B1 (en) * 2004-02-20 2010-03-23 Sun Microsystems, Inc. System and method for management of characterized resources
US8484348B2 (en) * 2004-03-05 2013-07-09 Rockstar Consortium Us Lp Method and apparatus for facilitating fulfillment of web-service requests on a communication network
JP4147198B2 (ja) 2004-03-23 2008-09-10 株式会社日立製作所 ストレージシステム
US20050256942A1 (en) * 2004-03-24 2005-11-17 Mccardle William M Cluster management system and method
US9178784B2 (en) * 2004-04-15 2015-11-03 Raytheon Company System and method for cluster management based on HPC architecture
US8336040B2 (en) * 2004-04-15 2012-12-18 Raytheon Company System and method for topology-aware job scheduling and backfilling in an HPC environment
US8190714B2 (en) * 2004-04-15 2012-05-29 Raytheon Company System and method for computer cluster virtualization using dynamic boot images and virtual disk
US8335909B2 (en) 2004-04-15 2012-12-18 Raytheon Company Coupling processors to each other for high performance computing (HPC)
US20050235055A1 (en) 2004-04-15 2005-10-20 Raytheon Company Graphical user interface for managing HPC clusters
US7711977B2 (en) * 2004-04-15 2010-05-04 Raytheon Company System and method for detecting and managing HPC node failure
US7484247B2 (en) 2004-08-07 2009-01-27 Allen F Rozman System and method for protecting a computer system from malicious software
JP2006065697A (ja) 2004-08-27 2006-03-09 Hitachi Ltd 記憶デバイス制御装置
US7475274B2 (en) * 2004-11-17 2009-01-06 Raytheon Company Fault tolerance and recovery in a high-performance computing (HPC) system
US7433931B2 (en) * 2004-11-17 2008-10-07 Raytheon Company Scheduling in a high-performance computing (HPC) system
US8244882B2 (en) * 2004-11-17 2012-08-14 Raytheon Company On-demand instantiation in a high-performance computing (HPC) system
JP4457019B2 (ja) 2005-01-05 2010-04-28 富士通株式会社 情報処理システム及び一次ストレージ装置
ATE392097T1 (de) 2005-06-20 2008-04-15 Alcatel Lucent Fehlertolerante schaltmatrix mit einer ebene für ein telekommunikationssystem
US7386662B1 (en) 2005-06-20 2008-06-10 Symantec Operating Corporation Coordination of caching and I/O management in a multi-layer virtualized storage environment
US20070038749A1 (en) 2005-07-29 2007-02-15 Broadcom Corporation Combined local and network storage interface
JP2007141305A (ja) 2005-11-16 2007-06-07 Hitachi Global Storage Technologies Netherlands Bv 磁気ディスク装置
US7720377B2 (en) 2006-01-23 2010-05-18 Hewlett-Packard Development Company, L.P. Compute clusters employing photonic interconnections for transmitting optical signals between compute cluster nodes
US20070253437A1 (en) 2006-04-28 2007-11-01 Ramesh Radhakrishnan System and method for intelligent information handling system cluster switches
US20080101395A1 (en) 2006-10-30 2008-05-01 Raytheon Company System and Method for Networking Computer Clusters
US8160061B2 (en) 2006-12-29 2012-04-17 Raytheon Company Redundant network shared switch
DE602008004088D1 (de) 2007-01-03 2011-02-03 Raytheon Co Computerspeichersystem
JP6224358B2 (ja) 2013-06-14 2017-11-01 株式会社Nttドコモ 無線基地局、ユーザ端末及び無線通信方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002084509A1 (en) 2001-02-24 2002-10-24 International Business Machines Corporation A novel massively parrallel supercomputer

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023277637A1 (ko) * 2021-07-01 2023-01-05 엘지전자 주식회사 신호 처리 장치 및 이를 구비하는 차량용 통신 장치

Also Published As

Publication number Publication date
EP1566738A2 (en) 2005-08-24
US10289586B2 (en) 2019-05-14
CA2503775A1 (en) 2005-10-15
EP1814029A3 (en) 2009-04-22
US9037833B2 (en) 2015-05-19
TWI338232B (en) 2011-03-01
US8335909B2 (en) 2012-12-18
CN1704921A (zh) 2005-12-07
KR20070011503A (ko) 2007-01-24
US20150212964A1 (en) 2015-07-30
CN1704921B (zh) 2010-06-23
EP1814029A2 (en) 2007-08-01
TW200619972A (en) 2006-06-16
EP1566738A3 (en) 2005-09-07
JP4560435B2 (ja) 2010-10-13
CA2503775C (en) 2012-08-28
US10769088B2 (en) 2020-09-08
WO2005106696A1 (en) 2005-11-10
US20130103929A1 (en) 2013-04-25
US20190294576A1 (en) 2019-09-26
US20050235092A1 (en) 2005-10-20
JP2005316997A (ja) 2005-11-10
MY147118A (en) 2012-10-31
IL178608A (en) 2012-07-31
IL178608A0 (en) 2007-02-11

Similar Documents

Publication Publication Date Title
KR101159377B1 (ko) 고성능 컴퓨팅 시스템 및 방법
US10621009B2 (en) System and method for topology-aware job scheduling and backfilling in an HPC environment
US9832077B2 (en) System and method for cluster management based on HPC architecture
US7711977B2 (en) System and method for detecting and managing HPC node failure
US20050235055A1 (en) Graphical user interface for managing HPC clusters

Legal Events

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

Payment date: 20150519

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160517

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170522

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180516

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190515

Year of fee payment: 8