KR20070006906A - Hpc 환경에서의 토폴로지-인식 작업 스케쥴링 및백필링을 위한 시스템 및 방법 - Google Patents

Hpc 환경에서의 토폴로지-인식 작업 스케쥴링 및백필링을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20070006906A
KR20070006906A KR1020067023880A KR20067023880A KR20070006906A KR 20070006906 A KR20070006906 A KR 20070006906A KR 1020067023880 A KR1020067023880 A KR 1020067023880A KR 20067023880 A KR20067023880 A KR 20067023880A KR 20070006906 A KR20070006906 A KR 20070006906A
Authority
KR
South Korea
Prior art keywords
hpc
job
nodes
task
subset
Prior art date
Application number
KR1020067023880A
Other languages
English (en)
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=34887808&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR20070006906(A) "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 KR20070006906A publication Critical patent/KR20070006906A/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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]
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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
    • 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/5072Grid computing
    • 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/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2025Failover techniques using centralised failover control functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)
  • General Factory Administration (AREA)
  • Multi Processors (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

HPC 환경에서 작업 관리를 위한 방법은 다수의 HPC 노드들로부터 비할당 서브셋을 판정하는 단계를 포함하고, 비할당 HPC 노드들의 각각은 통합 패브릭을 포함한다. HPC 작업은 작업 큐로부터 선택되고, 노드들의 비할당 서브셋의 적어도 일부분을 이용하여 실행된다.
HPC 노드, 작업 관리, 통합 패브릭, 작업 큐, 토폴로지, 작업 파라미터

Description

HPC 환경에서의 토폴로지-인식 작업 스케쥴링 및 백필링을 위한 시스템 및 방법{SYSTEM AND METHOD FOR TOPOLOGY-AWARE JOB SCHEDULING AND BACKFILLING IN AN HPC ENVIRONMENT}
본 발명은 일반적으로 데이터 프로세싱 분야에 관한 것으로, 더 구체적으로는 HPC 환경에서 토폴로지-인식 작업 스케쥴링 및 백필링하는 방법 및 그 시스템에 관한 것이다.
고성능 컴퓨팅(High Performance Computing: HPC)은 주로, 복잡한 물리 또는 알고리즘 현상을 모델링하고, 시뮬레이팅하고, 분석하는 과학자 및 엔지니어에 의해 이용되는 컴퓨팅 시스템에 의해 특성화된다. 현재, HPC 머신들은 전형적으로, 노드라고 불리는 하나 이상의 프로세서들의 수많은 HPC 클러스터들을 이용하여 설계된다. 대부분의 대규모 과학 및 엔지니어링 애플리케이션에 있어서, 성능은 주로 병렬 스케일러빌리티(parallel scalability)에 의해 결정되는 것이며, 개별 노드의 속도에 의해 결정되는 것이 아니기 때문에, 스케일러빌리티는 그러한 고성능 클러스터들을 구축하거나 구입하는 데 있어서 하나의 제한 요인이다. 스케일러빌리티는 일반적으로, i) 하드웨어, ii) 메모리, I/O, 및 통신 대역폭, iii) 소프트웨어, iv) 아키텍처, 및 v) 애플리케이션들에 기초하여 고려되어진다. 대부분의 기존 HPC 환경에서의 프로세싱, 메모리, 및 I/O 대역폭은 통상적으로 균형이 잘 맞지 않기 때문에, 스케일링(scale)을 적절하게 하지 못한다. 다수의 HPC 환경은 하이 엔드(high-end) 데이터 프로세싱 요구를 충족시키기 위한 I/O 대역폭을 갖지 못하거나, 또는 불필요한 구성요소들이 너무 많이 설치된 블레이드(blade)들로 구축되는데, 이는 시스템의 신뢰성을 급격히 감소시키는 경향이 있다. 따라서, 다수의 HPC 환경은 생산-지향적 환경에서의 효율적인 동작을 위한 강력한 클러스터 관리 소프트웨어를 제공하지 못할 수도 있다.
본 발명은 비할당 HPC 노드들의 각각이 통합 패브릭(integrated fabric)을 포함하는 복수의 HPC 노드로부터 비할당 서브셋을 판정하는 것을 포함하는 HPC 환경에서의 작업 관리(job management)를 위한 시스템 및 방법을 제공한다. HPC 작업은 작업 큐(queue)로부터 선택되고, 노드들의 비할당 서브셋의 적어도 일부분을 이용하여 실행된다.
본 발명은 몇가지 중요한 기술적 장점들을 갖고 있다. 예를 들어, 본 발명의 가능한 일 장점은 집중화된 스위칭 기능을 적어도 부분적으로 감소시키거나, 분산시키거나, 또는 제거함으로써, 종래의 HPC 대역폭의 거의 4배 내지 8배 큰 입/출력(I/O) 성능을 제공할 수 있다는 것이다. 사실상, 소정의 실시예에 있어서, I/O 성능은 프로세서 성능과 거의 대등할 수도 있다. 이 균형잡힌 접근 방법은 통신 오버헤드에 덜 민감할 수 있다. 따라서, 본 발명은 블레이드 및 전체 시스템 성능을 향상시킬 수 있다. 또 하나의 가능한 장점은 감소된 상호접속 대기시간(latency)이다. 또한, 본 발명은 종래의 블레이드보다 스케일링이 용이하고, 신뢰성이 높으며, 내고장성(fault tolerant)이 뛰어나다. 또 다른 장점은 대학 및 엔지니어링 연구실로 전가될 수 있는 HPC 서버의 제조와 관련된 비용의 감소, 및/또는 HPC 프로세싱의 수행과 관련된 비용의 감소를 들 수 있다. 또한, 본 발명은 적어도 부분적으로, 균형잡힌 아키텍처에 기초하여, 더욱 강력하고 효율적인 관리 소프트웨어를 허용할 수 있다. 본 발명의 다양한 실시예들은 이들 장점들을 일부 또는 전부를 가질 수도 있거나, 또는 하나도 갖지 않을 수도 있다. 본 발명의 그외의 기술적 장점들은 당업자라면 쉽게 알 수 있을 것이다.
이하, 본 명세서 및 그 장점의 더욱 완전한 이해를 위해, 첨부 도면과 결합하여 후술하는 상세한 설명에 참조될 것이다.
도 1은 본 발명의 일 실시예에 따른 고성능 컴퓨팅 시스템의 일례를 도시한 도면.
도 2A-도 2D는 도 1의 시스템 내의 그리드 및 그것의 이용에 관한 다양한 실시예들을 도시한 도면.
도 3A-도 3C는 도 1의 시스템 내의 개별 노드들의 다양한 실시예들을 도시한 도면.
도 4A 및 도 4B는 도 1의 시스템에 따른 그래픽 사용자 인터페이스의 다양한 실시예들을 도시한 도면.
도 5는 도 1의 시스템에 따른 클러스터 관리 소프트웨어의 일 실시예를 도시 한 도면.
도 6은 도 1의 고성능 컴퓨팅 시스템에 따른 배치(batch) 작업을 제출하는 방법을 도시한 흐름도.
도 7은 도 1의 고성능 컴퓨팅 시스템에 따른 그리드를 동적으로 백필링(dynamic backfilling)하는 방법을 도시한 흐름도.
도 8은 도 1의 고성능 컴퓨팅 시스템에 따른 노드 장애를 동적으로 관리하는 방법을 도시한 흐름도.
도 1은 HPC 기술을 이용하여, 예컨대 대기, 날씨 또는 충돌 시뮬레이션 등의 소프트웨어 애플리케이션 및 처리를 실행하기 위한 고성능 컴퓨팅(HPC) 시스템(100)을 도시한 블록도이다. 시스템(100)은, 프로세싱 성능과 실질적으로 유사한 I/O 성능을 갖는 다양한 컴퓨팅 노드들(115) 사이에 동적으로 할당된 HPC 기능을 사용자에게 제공한다. 일반적으로, 이들 노드들(115)은, 특히 이러한 증가된 입/출력(I/O) 성능 및 감소된 패브릭 대기시간으로 인해 용이하게 스케일링할 수 있다. 예를 들어, 분산 아키텍처에서의 노드들(115)의 스케일러빌리티(scalability)는 암달의 법칙(Amdahl's law)의 유도식에 의해 표현될 수 있다:
S(N)=1/((FP/N)+FS)*(1-Fc*(1-RR/L))
여기에서, S(N) = N개의 프로세서상의 속도 증가, Fp = 병렬 코드의 분율, Fs = 비병렬 코드의 분율, Fc = 통신 전용 프로세싱의 분율, 및 RR/L = 원격/로컬 메모리 대역폭의 비율이다. 따라서, 프로세싱 성능과 실질적으로 동일하거나 근사 한 I/O 성능을 제공하는 HPC 시스템(100)에 의해, HPC 시스템(100)은 HPC 애플리케이션의 전체 효율을 증가시키고, 보다 용이한 시스템 관리를 가능하게 한다.
HPC 시스템(100)은 (과학자 및 엔지니어 등의) 사용자들이 HPC 서버(102)상에서의 프로세싱을 위한 작업들(150)을 제출하는 것을 허용하는 분산 클라이언트/서버 시스템이다. 예를 들어, 시스템(100)은 네트워크(106)를 통해 하나 이상의 관리 워크스테이션들 또는 로컬 클라이언트들(120)에 접속되는 HPC 서버(102)를 포함할 수 있다. 버스 시스템(100)은 독립형 컴퓨팅 환경 또는 임의의 다른 적절한 환경일 수 있다. 요약하면, 시스템(100)은, 고성능 스케일링가능한 노드들(115)을 포함하며, 사용자의 작업(150) 제출을 허용하고, 작업(150)에 대해 스케일링가능한 노드들(115)를 동적으로 할당하고, 할당된 노드들(115)을 이용하여 작업(150)을 자동으로 실행하는 임의의 HPC 컴퓨팅 환경이다. 작업(150)은 HPC 기술을 이용하여 처리되고 임의의 적절한 사용자에 의해 제출되도록 동작가능한 임의의 배치 또는 온라인 작업일 수 있다. 예를 들어, 작업(150)은 시뮬레이션, 모델, 또는 임의의 다른 고성능 요건에 대한 요청일 수 있다. 또한, 작업(150)은 클러스터화된 데이터베이스, 온라인 트랜잭션 프로세싱 시스템, 또는 클러스트화된 애플리케이션 서버 등의 데이터 센터 애플리케이션을 실행하라는 요청일 수 있다. 본 명세서에서 사용되는 "동적으로"라는 용어는 일반적으로, 소정의 프로세싱이 적어도 부분적으로 하나 이상의 변수에 기초하여 런타임시에 결정된다는 것을 의미한다. 본 명세서에서 사용되는 "자동으로"라는 용어는 일반적으로, 적절한 프로세싱이 HPC 시스템(100)의 적어도 일부에 의해 실질적으로 실행된다는 것을 의미한다. "자동으로" 는 본 발명의 범위 내에서 시스템(100)과 임의의 적절한 사용자 또는 관리자의 상호작용을 더 의도하고 있다는 사실을 이해해야 한다.
HPC 서버(102)는 복수의 밸런스 노드들(115) 및 클러스터 관리 엔진(130)을 이용하여 작업(150)을 처리하도록 동작가능한 임의의 로컬 또는 원격 컴퓨터를 포함한다. 일반적으로, HPC 서버(102)는 블레이드 서버 또는 다른 분산 서버 등의 분산 컴퓨터를 포함한다. 그러나, 서버(102)의 구성은 복수의 노드들(115)을 포함한다. 노드들(115)은, 예컨대 블레이드, 범용 퍼스널 컴퓨터(PC), 매킨토시, 워크스테이션, 유닉스 기반의 컴퓨터, 또는 임의의 다른 적절한 장치들 등 임의의 컴퓨터 또는 프로세싱 장치를 포함한다. 일반적으로, 도 1은 단지 본 발명과 함께 이용될 수 있는 컴퓨터들의 일례를 제공한다. 예를 들어, 도 1은 본 발명과 함께 이용될 수 있는 하나의 서버(102)를 도시하고 있지만, 시스템(100)은 서버 풀(pool)뿐만 아니라 서버들 이외의 컴퓨터들을 이용하여 구현될 수 있다. 즉, 본 발명은 종래의 운영 체계가 없는 컴퓨터들뿐만 아니라 범용 컴퓨터 이외의 컴퓨터들을 고려하고 있다. 본 명세서에서 사용되는 바와 같이, "컴퓨터"라는 용어는 퍼스널 컴퓨터, 워크스테이션, 네트워크 컴퓨터, 또는 임의의 다른 적절한 프로세싱 장치를 포함하도록 의도된 것이다. HPC 서버(102) 또는 구성요소 노드들(115)은 리눅스, 유닉스, 윈도우즈 서버, 또는 임의의 다른 적절한 운영 체계를 포함한 임의의 운영 체계를 실행하도록 구성될 수 있다. 일 실시예에 따르면, HPC 서버(102)는 원격 웹 서버를 포함하거나 또는 그 원격 웹 서버와 통신가능하게 연결될 수도 있다. 따라서, 서버(102)는 HPC 작업(150)을 처리하도록 노드들(115)을 동적으로 할당하 는 데 적합한 임의의 조합으로 소프트웨어 및/또는 하드웨어를 구비한 임의의 컴퓨터를 포함할 수 있다.
하이 레벨에서, HPC 서버(102)는 관리 노드(105), 복수의 노드들(115)을 포함하는 그리드(110), 및 클러스터 관리 엔진(130)을 포함한다. 더 구체적으로, 서버(102)는 다음과 같은 구성요소: i) 듀얼-프로세서들; ii) 대규모의 높은 대역폭 메모리; iii) 듀얼 호스트 채널 어댑터(HCA)들; iv) 통합 패브릭 스위칭; v) FPGA 서포트; 및 vi) 예비 전원 입력 또는 N+1 전원들 중의 일부 또는 전부를 갖는 복수의 블레이드들(노드들(115))을 포함하는 표준 19" 랙(rack)일 수 있다. 이들 다양한 구성요소는 장애가 노드 레벨에 국한될 수 있게 한다. 그러나, HPC 서버(102) 및 노드들(115)은 이들 구성요소 모두를 포함하지는 않을 수도 있다는 것을 이해해야 한다.
관리 노드(105)는 관리자를 관리하거나 보조하는 데 실질적으로 전용되는 적어도 하나의 블레이드를 포함한다. 예를 들어, 관리 노드(105)는 2개의 블레이드를 포함할 수 있는데, 2개의 블레이드 중의 하나는 (능동/수동 구성과 같이) 중복된 것이다. 일 실시예에 있어서, 관리 노드(105)는 HPC 노드들(115)과 동일한 타입의 블레이드 또는 컴퓨팅 장치일 수 있다. 그러나, 관리 노드(105)는, 그리드(110)를 적어도 부분적으로 관리하도록 동작가능하다면, 임의의 수의 회로를 포함하고 임의의 적합한 형태로 구성된 임의의 노드일 수 있다. 주로, 관리 노드(105)는 그리드(110) 내에 결합적으로 나타내지는 복수의 HPC 노드들(115)로부터 물리적으로 또는 논리적으로 분리되어 있다. 설명한 실시예에서, 관리 노드(105) 는 링크(108)를 통해 그리드(110)에 통신가능하도록 연결될 수 있다. 링크(108)는 임의의 적절한 통신 프로토콜을 구현하는 임의의 통신 관로를 포함할 수 있다. 일 실시예에 있어서, 링크(108)는 관리 노드(105)와 그리드(110) 사이에 기가비트 또는 10 기가비트 이더넷 통신을 제공한다.
그리드(110)는 처리 능력의 향상을 위해 상호접속된 노드들(115)의 그룹이다. 전형적으로, 그리드(110)는 3D 토러스(Torus)이지만, 본 발명의 범위에 속하는 메시(mesh), 하이퍼큐브(hypercube), 또는 임의의 다른 형상 또는 구성일 수 있다. 그리드(110) 내의 노드들(115) 사이의 링크들은 직렬 또는 병렬 아날로그 링크들, 디지털 링크들, 또는 예컨대 섬유나 구리 등의 전기 또는 전자기 신호들을 전달할 수 있는 임의의 다른 타입의 링크일 수 있다. 각 노드(115)는 통합 스위치와 함께 구성된다. 이는 노드(115)가 보다 용이하게 3D 토러스를 위한 기본 구성으로 될 수 있게 하고, 다른 노드들(115) 사이의 XYZ 거리들을 최소화하는 것을 돕는다. 또한, 이는, 몇몇 실시예에서 최장 5미터 미만인 케이블을 가지고, 기가비트에 이르는 속도에서 대규모 시스템에서의 구리 배선 작업을 행하게 할 수도 있다. 요약하면, 노드(115)는 일반적으로 최근접자 통신 및 증가된 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, 및 그외 이들의 임의의 조합을 포함하는 임의의 적절한 컴퓨터 언어로 기입되거나 기술될 수 있다. 도 1에는 클러스터 관리 엔진(130)이 단일 멀티-태스크 모듈로서 도시되어 있지만, 이 엔진에 의해 수행되는 특징들 및 기능성은, 예컨대 물리 계층 모듈, 가상 계층 모듈, 작업 스케쥴러, 및 프리젠테이션 엔진(도 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) 패킷, 프레임 릴레이(Frame Relay) 프레임, 비동기 전송 모 드(ATM) 셀, 음성, 비디오, 데이터, 및 네트워크 어드레스들 사이의 다른 적절한 정보를 통신할 수 있다. 네트워크(106)는 하나 이상의 근거리 통신망(LAN), 무선 액세스 네트워크(RAN), 대도시 통신망(MAN), 광역 통신망(WAN), 인터넷으로서 공지된 글로벌 컴퓨터 네트워크의 전부 또는 일부, 및/또는 하나 이상의 위치에서의 임의의 다른 통신 시스템 또는 시스템들을 포함할 수 있다.
일반적으로, 디스크 팜(140)은 작업들(150), 프로파일들, 부트 이미지들, 또는 그 외 HPC 정보를 저장하기 위한 임의의 메모리, 데이터베이스, 또는 저장 영역 네트워크(SAN)이다. 설명한 실시예에 따르면, 디스크 팜(140)은 하나 이상의 저장 클라이언트(142)를 포함한다. 디스크 팜(140)은 수많은 통신 프로토콜 중 임의의 프로토콜, 예컨대 IB(InfiniBand), GE(Gigabit Ethernet) 또는 FC(FibreChannel)에 따라 데이터 패킷들을 처리하고 라우팅할 수 있다. 데이터 패킷들은 전형적으로 디스크 팜(140) 내의 데이터를 전송하는 데 이용된다. 데이터 패킷은 송신원 식별자 및 수신처 식별자를 갖는 헤더를 포함할 수 있다. 송신원 식별자, 예컨대 송신원 어드레스는 정보의 송신자를 식별하고, 수신처 식별자, 예컨대 수신처 어드레스는 정보의 수신자를 식별한다.
클라이언트(120)는 그래픽 사용자 인터페이스(GUI)(126)를 통해 작업 제출 화면 또는 관리를 사용자에게 나타내도록 동작가능한 임의의 장치이다. 하이 레벨에서, 도시된 클라이언트(120)는 적어도 GUI(126)를 포함하고, 시스템(100)과 관련된 임의의 적절한 데이터를 수신하고, 송신하고, 처리하고, 저장하도록 동작가능한 전자 컴퓨팅 장치를 포함한다. 서버(102)에 통신가능하게 연결된 임의의 수의 클 라이언트(120)가 존재할 수 있다는 것을 이해할 것이다. 또한, "클라이언트(120)" 및 "클라이언트(120)의 사용자"는 본 발명의 범위 내에서 적절히 상호교체가능하도록 이용될 수 있다. 또한, 설명의 편의상, 각 클라이언트는 한 사용자에 의해 이용되는 것으로 설명한다. 그러나, 본 발명은, 많은 사용자들이 동일한 GUI(126)를 이용하여, 하나의 컴퓨터를 이용하여 작업들(150)을 통신할 수도 있음을 고려하고 있다.
본 명세서에 사용된 바와 같이, 클라이언트(120)는 퍼스널 컴퓨터, 터치 스크린 단말기, 워크스테이션, 네트워크 컴퓨터, 키오스크(kiosk), 무선 데이터 포트, 셀 폰, 개인 휴대 정보 단말기(PDA), 이들 또는 다른 장치들 내의 하나 이상의 프로세서, 또는 임의의 다른 적절한 프로세싱 장치를 포함하는 의미로 사용된다. 예를 들어, 클라이언트(120)는 키패드, 터치 스크린, 마우스, 또는 정보의 접수가 가능한 다른 장치 등의 입력 장치, 및 디지털 데이터, 시각 정보, 또는 GUI(126)를 포함하여 서버(102) 또는 클라이언트들(120)의 동작과 관련된 정보를 전달하는 출력 장치를 포함하는 컴퓨터를 포함할 수 있다. 입력 장치 및 출력 장치는, 관리 및 작업 제출 디스플레이, 즉 GUI(126)를 통해 클라이언트들(120)의 사용자들로부터 입력을 수신하고, 또한 그들에게 출력을 제공하기도 하는 자기 컴퓨터 디스크, CD-ROM, 또는 그 외 적합한 매체 등의 고정된 또는 분리가능한 저장 매체를 포함할 수 있다.
GUI(126)는 i) 클라이언트의 사용자가, 하나 이상의 작업들(150)을 제출하도록 시스템(100)과 인터페이스하고, 또한/또는 ii) 시스템(또는 네트워크) 관리자가 클라이언트(120)를 이용하여 임의의 적절한 관리 목적으로 시스템(100)과 인터페이스하도록 동작가능한 그래픽 사용자 인터페이스를 포함한다. 일반적으로, GUI(126)는 HPC 시스템(100)에 의해 제공되는 데이터의 효율적이고 사용자 친화적인 프리젠테이션을 클라이언트(120)의 사용자에게 제공한다. GUI(126)는 상호작용 필드, 풀-다운(pull-down) 리스트, 및 사용자에 의해 조작되는 버튼들을 갖는 복수의 커스터마이즈가능한 프레임들 또는 뷰(view)들을 포함할 수 있다. 일 실시예에 있어서, GUI(126)는 다양한 작업 파라미터 필드를 나타내고 입력 장치들 중 하나를 통해 클라이언트(120)의 사용자로부터 커맨드를 수신하는 작업 제출 디스플레이를 나타낸다. GUI(126)는, 도 4A 및 도 4B에 도시된 바와 같이 시스템 관리자에게 노드들(115)의 물리 및 논리 상태를 선택적으로 또는 조합하여 나타낼 수 있고, 관리자로부터 다양한 커맨드를 수신할 수 있다. 관리자 커맨드들은 이용할 수 있는(없는) 노드들의 마킹, 유지(maintenance)를 위한 노드들의 셧다운, 노드들의 재부팅, 또는 임의의 다른 적절한 커맨드를 포함할 수 있다. 또한, 그래픽 사용자 인터페이스라는 용어는 하나 이상의 그래픽 사용자 인터페이스 및 특정 그래픽 사용자 인터페이스의 각 디스플레이를 설명하기 위해 단수로 또는 복수로 이용될 수 있다는 것을 이해해야 한다. 따라서, GUI(126)는 시스템(100) 내의 정보를 처리하여 결과를 사용자에게 효율적으로 나타내는 일반적인 웹 브라우저 등 임의의 그래픽 사용자 인터페이스를 고려하고 있다. 서버(102)는 웹 브라우저(예컨대, 마이크로소프트 인터넷 익스플로러 또는 넷스케이프 네비게이터)를 통해 클라이언트(120)로부터 데이터를 접수하고, 네트워크(106)를 이용하여 적절한 HTML 또는 XML 응답을 회신 할 수 있다.
동작의 일 양태에 있어서, HPC 서버(102)는 최초로 초기화되거나 부팅된다. 이 처리 동안에, 클러스터 관리 엔진(130)은 그리드(110) 내의 노드들(115)의 존재, 상태, 위치, 및/또는 그외 특성들을 판정한다. 전술한 바와 같이, 이는 각 노드의 초기화시 또는 관리 노드(105)에 의한 거의 즉각적인 폴링시에 통신되는 "하트비트"에 기초할 수 있다. 다음, 클러스터 관리 엔진(130)은, 예컨대 소정의 정책들에 기초하여 하나 이상의 가상 클러스터들(220)에 그리드(110)의 여러 부분들을 동적으로 할당할 수 있다. 일 실시예에 있어서, 클러스터 관리 엔진(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)"의 일례를 나타낸다. 폴딩은 일반적으로, 그리드(215)의 물리적 에지(physical edge) 하나가 대응 축 에지에 접속가능하게 함으로써, 보다 강력하거나 또는 에지가 없는 토폴로지를 제공한다. 본 실시예에서, 노드(215)는 노드 링크(216)에 의한 거의 끊김없는 토폴로지 접속을 제공하도록 랩 어라운드(wrap around)되어 있다. 노드 라인(216)은 2개 이상의 노드들(215)을 상호접속하기 위한 임의의 통신 프로토콜을 구현하는 임의의 적절한 하드웨어일 수 있다. 예를 들어, 노드 라인(216)은 기가비트 이더넷을 구현하는 광섬유 케이블 또는 구리 배선일 수 있다.
도 2C는 하나의 가상 클러스터(220)가 그 내부에 할당되어 있는 그리드(210) 를 나타낸다. 하나의 가상 클러스터(220)만을 나타냈지만, 본 발명의 범위 내에 속하는 그리드(210) 내에 임의의 수(0을 포함)의 가상 클러스터들(220)이 존재할 수 있다. 가상 클러스터(220)는 관련 작업들(150)을 처리하기 위한 노드들(215)의 논리적 그룹핑(grouping)이다. 예를 들어, 가상 클러스터(220)는 유사한 작업(150)을 제출할 가능성이 있는 하나의 리서치 그룹, 부서, 실험실, 또는 임의의 다른 사용자 그룹과 관련될 수 있다. 가상 클러스터(220)는 임의의 모양일 수 있고, 그리드(210) 내에 임의의 수의 노드들(215)을 포함할 수 있다. 실제로, 물리적으로 인접한 복수의 노드들(215)을 포함하는 가상 클러스터(220)를 나타냈지만, 클러스터(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)은 본 발명의 범위 내에서 노드들(215)을 공유할 수도 있다. 작업 공간(230)의 차원(dimension)들은 사용자 또는 관리자에 의해 수동으로 입력되거나, 또는 작업 파라미터들, 정책들, 및/또는 임의의 다른 적절한 특성에 기초하여 동적으로 판정될 수 있다.
도 3A-도 3C는 그리드(110) 내의 개별 노드들(115)의 여러 실시예를 나타낸다. 예시적인 실시예에서, 노드들(115)은 블레이드(315)에 의해 표시된다. 블레이드(315)는 스레드(thread) 또는 프로세스 등 작업(150)의 전부 또는 일부를 처리하도록 동작가능한 임의의 방향으로의 임의의 컴퓨팅 장치를 포함한다. 예를 들어, 블레이드(315)는 표준 Xeon64TM 마더보드(motherboard), 표준 PCI-Express OpteronTM 마더보드, 또는 임의의 다른 적절한 컴퓨팅 카드일 수 있다.
블레이드(315)는 그리드(110) 내의 노드들(115)에 걸쳐 균일하게 패브릭 스위칭 구성요소를 분산시킴으로써, 임의의 중앙 스위칭 기능을 가능한 감소 또는 제거하고, 장애 내구성을 증가시키며, 메시지 전달을 병렬로 가능하게 하는 통합 패브릭 아키텍처이다. 더 구체적으로, 블레이드(315)는 통합 스위치(345)를 포함한다. 스위치(345)는 상이한 토폴로지들을 허용할 수 있는 임의의 수의 포트를 포함한다. 예를 들어, 스위치(345)는 보다 타이트(tight)한 3차원 메시 또는 3D 토러 스 토폴러지를 가능하게 하는 8-포트 스위치일 수 있다. 이들 8개의 포트들은 X축을 따라 이웃 노드들(115)에 링크하기 위한 2개의 "X" 접속들, Y축을 따라 이웃 노드들(115)에 링크하기 위한 2개의 "Y" 접속들, Z축을 따라 이웃 노드들(115)에 링크하기 위한 2개의 "Z" 접속들, 및 관리 노드(105)에 링크하기 위한 2개의 접속들를 포함한다. 일 실시예에 있어서, 스위치(345)는 표준 8포트 인피니밴드(InfiniBand)-4x 스위치 IC일 수 있으며, 이에 의해 내장 패브릭 스위칭을 용이하게 제공한다. 또한, 스위치(345)는 4-D 토러스 등의 다차원 토폴로지, 또는 그외 기존과는 다른 3차원보다 큰 토폴로지를 허용하는 24포트 스위치를 포함할 수도 있다. 또한, 노드들(115)은 대각선 축을 따라 상호접속됨으로써, 비교적 먼 노드들(115) 사이의 통신의 점프 또는 홉(hop)을 감소시킬 수 있다. 예를 들어, 제1 노드(115)는 북동향 축을 따라 수회의 3차원 "점프" 떨어진 곳에 물리적으로 존재하는 제2 노드들(115)와 접속될 수 있다.
도 3A는, 하이 레벨에서, 적어도 2개의 프로세서(320a 및 320b), 로컬 또는 원격 메모리(340), 및 통합 스위치(또는 패브릭)(345)를 포함하는 블레이드(315)를 나타낸다. 프로세서(320)는 명령어들을 실행하고 데이터를 조작처리하여, 예컨대 중앙 처리 장치(CPU) 등의 블레이드(315)의 동작을 수행한다. 프로세서(320)에의 참조는, 적용가능한 다수의 프로세서들(320)을 포함한다는 것을 의미한다. 일 실시예에 있어서, 프로세서(320)는 Xeon64 또는 ItaniumTM 프로세서 또는 그외 유사한 프로세서 또는 그것의 파생품을 포함할 수 있다. 예를 들어, Xeon64 프로세서는 2MB 캐시 및 하이퍼스레딩(HyperTreading)을 갖는 3.4GHz 칩일 수 있다. 본 실시예에서, 듀얼 프로세서 모듈은 효율을 향상시킨 네이티브 PCI/익스프레스(native PCI/Express)를 포함할 수 있다. 따라서, 프로세서(320)는 효율적인 메모리 대역폭을 갖고, 전형적으로 프로세서 칩에 내장된 메모리 컨트롤러를 갖는다.
또한, 블레이드(315)는 노스브리지(Northbridge)(321), 사우스브리지(322), PCI 채널(325), HCA(335) 및 메모리(340)를 포함할 수 있다. 노스브리지(321)는 프로세서(320)와 통신하고, 메모리(340), PCI 버스, 레벨 2 캐시 및 임의의 다른 관련 구성요소와의 통신을 제어한다. 일 실시예에 있어서, 노스브리지(321)는 전면(frontside) 버스(FSB)를 이용하여 프로세서(320)와 통신한다. 사우스브리지(322)는 블레이드(315)의 다수의 입/출력(I/O) 기능을 관리한다. 다른 실시예에 있어서, 블레이드(315)는, 그래픽과 AGP 메모리 컨트롤러 허브(GMCH) 및 I/O 컨트롤러 허브(ICH)를 포함하는 인텔 허브 아키텍처(Intel Hub Architecture: IHATM)를 구현할 수 있다.
PCI 채널(325)은 통합된 구성요소들 사이의 통신 속도를 증가시키도록 설계된 임의의 고속 저대기시간 링크를 포함한다. 이는 블레이드(315) 내의 버스 수를 감소시키는 것을 도움으로써, 시스템 병목현상을 감소시킬 수 있다. HCA(335)는 서버(102) 내에 채널 기반의 I/O를 제공하는 임의의 구성요소를 포함한다. 각각의 HCA(335)는 2.65 GB/sec의 총 대역폭을 제공함으로써, 스위치(345)에 PE 당 1.85 GB/sec를, 그리고 예컨대 BIOS(Basic Input/Output Syatem), 이더넷 관리 인터페이 스 등의 I/O에 PE 당 800 MB/sec를 허용할 수 있다. 이는 더 나아가 전체 스위치(345) 대역폭이 13.6 Gigaflops/sec 피크에 대해 3.7 GB/sec, 즉 0.27 Bytes/Flop로 되게 하고, I/O 속도는 Gigaflop 당 50 MB/sec가 되게 한다.
메모리(340)는 임의의 메모리 또는 데이터베이스 모듈을 포함하고, 자기 매체, 광 매체, 플래시 메모리, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 분리가능 매체, 또는 임의의 다른 적절한 로컬 또는 원격 메모리 구성요소를 포함하는(이에 국한되지는 않음) 휘발성 또는 비휘발성 메모리의 형태를 가질 수 있다. 설명된 실시예에서, 메모리(340)는 적어도 6.4 GB/s에서 동작하는 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) 프로세서 또는 그외 유사한 프로세서 또는 파생품을 포함할 수 있다. 본 실시예에서, 옵테론 프로세서 설계는 그리드(110)를 위한 균형잡힌 구성 블록의 개발을 지원한다. 이와 상관없이, 듀얼 프로세서 모듈은 4-5 Gigaflop 이용가능 성능을 제공할 수 있고, 차세대 기술은 메모리 대역폭 제한을 해결하는 것을 돕는다. 그러나, 블레이드(315)는 본 발명의 범위 내에서 2개보다 많은 프로세서들을 포함할 수 있다. 따라서, 프로세서(320)는 효율적인 메모리 대역폭을 갖고, 전형적으로 프로세서 칩에 내장된 메모리 컨트롤러를 갖는다. 본 실시예에서, 각 프로세서(320)는 하나 이상의 HyperTransportTM(또는 그외 유사한 관로형(conduit type)) 링크(325)를 갖는다
일반적으로, HT 링크(325)는 통합 구성요소들 사이의 통신 속도를 증가시키도록 설계된 임의의 고속 저대기시간 링크를 포함한다. 이는 블레이드(315) 내의 버스의 수를 감소시키는 것을 도움으로써, 시스템 병목현상을 감소시킬 수 있다. HT 링크(325)는 캐시 코히어런트 멀티프로세서 블레이드들(315)에 대해 프로세서 대 프로세서 통신을 지원한다. HT 링크(325)를 이용하면, 블레이드(315) 상에는 8개까지의 프로세서(320)가 배치될 수 있다. 만약, 이용된다면, 하이퍼트랜스포트(HyperTransport)는 6.4 GB/sec, 12.8, 또는 그 이상의 대역폭을 제공할 수 있고, 이에 따라 종래의 PCI 버스보다 40배 이상의 데이터 처리율 증가를 제공한다. 또한, 하이퍼트랜스포트 기술은 PCI 등의 종래의 I/O 표준, 및 PCI-X 등의 다른 기술과 호환될 수 있다.
블레이드(315)는 HT/PCI 브리지(330) 및 HCA(335)를 더 포함한다. PCI 브리지(330)는 PCI 로컬 버스 스펙 개정판 2.2 또는 3.0, 또는 PCI 익스프레스 베이스 스펙 1.0a 또는 그것의 임의의 파생품에 따라 설계될 수 있다. HCA(335)는 서 버(102) 내에 채널 기반의 I/O를 제공하는 임의의 구성요소를 포함한다. 일 실시예에 있어서, HCA(335)는 인피니밴드 HCA를 포함한다. 인피니밴드 채널은 전형적으로, 도 3B에 더욱 상세하게 도시된, 인피니밴드 패브릭으로의 원격 저장 및 네트워크 접속을 가능하게 하는 호스트 채널 어댑터 및 타겟 채널 어댑터를 부착함으로써 만들어진다. 하이퍼트랜스포트(325)에서 PCI-익스프레스 브리지(330) 및 HCA(335)까지는 각 프로세서(320)마다 양방향 2GB/sec I/O 채널을 만들 수 있다. 소정의 실시예에서, 이는 분산 HPC 환경(100)에서 프로세서-프로세서 통신을 지원하기에 충분한 대역폭을 제공한다. 또한, 이는 프로세서(320)의 성능과 거의 또는 실질적으로 균형잡힌 I/O 성능을 갖는 블레이드(315)를 제공한다.
도 3C는 도터 보드(daughter board)를 포함하는 블레이드(315)의 다른 실시예를 나타낸다. 본 실시예에서, 도터 보드는 3.2 GB/sec 또는 더 높은 캐시 코히어런트 인터페이스를 지원할 수 있다. 도터 보드는 하나 이상의 필드 프로그램가능 게이트 어레이(FPGA)(350)를 포함하여 동작될 수 있다. 예를 들어, 도시된 도터 보드는 각각 참조부호(350a 및 350b)로 표시된 2개의 FPGA(350)를 포함한다. 일반적으로, FPGA(350)는 블레이드(315)에게 비표준 인터페이스, 주문 알고리즘을 처리하는 능력, 신호나, 이미지 또는 암호화/복호화 프로세싱 애플리케이션을 위한 벡터 프로세서, 및 높은 대역폭을 제공한다. 예를 들어, FPGA는, 예컨대 저정밀 고속 푸리에 변환(FFT) 및 행렬 연산 함수 등의 특수 함수를 위한 범용 프로세서의 성능의 10 내지 20배의 가속 계수를 제공함으로써 블레이드(315)의 능력을 보충할 수 있다.
전술한 예시 및 첨부 설명은 (예시적인 블레이드(315)로서 예시된) 다양한 스케일링가능한 노드들(115)을 구현하는 예시적인 도면을 제공한다. 그러나, 이들 도면은 단지 예시적인 것일 뿐이고, 시스템(100)은 다양한 스케일러빌리티 체계를 구현하는 구성요소들의 임의의 적합한 조합 및 배열의 이용을 고려한다. 본 발명은 부분적으로 블레이드 서버(102)에 관하여 도시되고 설명되었지만, 당업자라면 본 발명의 교시가 임의의 집중화 HPC 서버 환경에 적용될 수 있다는 것을 인식할 것이다. 따라서, 본 명세서에 설명된 기술을 이용하는 그러한 집중화 서버(102)는 본 발명의 범위에 속하는 로컬 또는 분산형일 수 있다. 따라서, 이들 서버(102)는 I/O 대기시간을 감소시키면서, 고성능 컴퓨팅 능력을 제공하는 구성요소들의 임의의 적합한 조합 및 배열을 포함하는 HPC 모듈(또는 노드들(115))을 포함할 수 있다. 또한, 다양한 도시된 HPC 모듈의 동작은 적절하게 조합 및/또는 분리될 수 있다. 예를 들어, 그리드(110)는 실질적으로 유사한 복수의 노드들(115), 또는 서로 다른 하드웨어 또는 패브릭 아키텍처를 구현하는 다양한 노드들(115)를 포함할 수 있다.
도 4A 및 도 4B는 시스템(100)에 따른 관리 그래픽 사용자 인터페이스(400)의 여러 실시예를 나타낸다. 주로, 관리 GUI(400)는 GUI(126)를 이용하여 클라이언트(120)에게 제공된다. 일반적으로, 관리 GUI(400)는 다양한 관리 대화형 화면 또는 디스플레이를 시스템 관리자에게 나타내고/나타내거나, 다양한 작업 제출 또는 프로파일 화면을 사용자에게 제공한다. 이들 화면 또는 디스플레이는 수집된 정보의 다양한 뷰 내로 조립된 그래픽 요소들로 구성된다. 예를 들어, GUI(400)는 (도 4A에 도시된) 그리드(110)의 물리적 헬스(health)의 디스플레이, 또는 (도 4B에 도시된) 그리드(110) 내의 노드들(115)의 논리적 할당 또는 토폴로지를 나타낼 수 있다.
도 4A는 예시적인 디스플레이(400a)를 나타낸다. 디스플레이(400a)는 노드들(115)을 효과적으로 관리하기 위해 관리자에게 제공된 정보를 포함할 수 있다. 설명된 실시예는 그리드(110)의 논리적 "픽처" 또는 스크린샷을 갖는 표준 웹 브라우저를 포함한다. 예를 들어, 이 픽처는 구성요소 노드들(115) 및 그리드(110)의 물리 상태를 제공할 수 있다. 각 노드(115)는 각 컬러가 다양한 상태를 나타내는 임의의 수의 컬러들 중의 하나일 수 있다. 예를 들어, 장애가 있는 노드들(115)은 적색일 수 있고, 이용되거나 할당된 노드들(115)은 흑색일 수 있으며, 비할당 노드들(115)은 음영으로 표시될 수 있다. 또한, 디스플레이(400a)는 관리자가 노드들(115) 중의 한 노드 위로 포인터를 이동시켜 그것의 다양한 물리 속성을 볼 수 있게 할 수 있다. 예를 들어, 관리자에게는 "노드", "이용도", "프로세서 이용 효율", "메모리 이용 효율", "온도", "물리적 위치" 및 "어드레스"를 포함하는 정보가 제시될 수 있다. 물론, 이들은 단지 예시적인 데이터 필드일 뿐이고, 임의의 적절한 물리적 또는 논리적 노드 정보가 관리자에게 표시될 수 있다. 또한, 디스플레이(400a)는 관리자가 그리드(110)의 뷰를 순환시키거나 임의의 다른 적절한 기능을 실행할 수 있게 할 수 있다.
도 4B는 예시적인 디스플레이(400b)를 나타낸다. 디스플레이(400b)는 그리드(100)의 논리 상태의 뷰 또는 픽처를 나타낸다. 설명된 실시예는 그리드(110) 내에 할당된 가상 클러스터(220)를 나타낸다. 또한, 디스플레이(400b)는 하나 이상의 작업(150)을 실행하기 위해 클러스터(220) 내에 할당된 2개의 예시적인 작업 공간(230)을 표시한다. 디스플레이(400b)는 관리자가 그래픽 가상 클러스터(220) 위로 포인터를 이동시켜 (할당 또는 비할당 등의) 다양한 상태로 그룹지워진 노드들(115)의 수를 볼 수 있게 할 수 있다. 또한, 관리자는 적합한 작업 정보가 표시되도록 작업 공간들(230) 중의 한 공간 위로 포인터를 이동시킬 수 있다. 예를 들어, 관리자는 작업명, 개시 시간, 노드의 수, 계산된 종료 시간, 프로세서 가용, I/O 가용 등을 보는 것이 가능할 수 있다.
(각각 예시적인 디스플레이(400a 및 400b)에 의해 위에 나타낸) 관리 GUI(126)는 단지 예시적인 것일 뿐이고, 도시되지 않은 추가 관리 요소뿐만 아니라 도시된 그래픽 요소의 전부 또는 일부를 포함하거나 전혀 포함하지 않을 수도 있다는 것을 이해할 것이다.
도 5는 시스템(100)에 따른, 본 명세서에서 엔진(500)으로 도시된 클러스터 관리 엔진(130)의 일 실시예를 나타낸다. 본 실시예에서, 클러스터 관리 엔진(500)은 복수의 서브-모듈 또는 구성요소: 물리 매니저(505), 가상 매니저(510), 작업 스케쥴러(515), 및 로컬 메모리 또는 가변부(520)를 포함한다.
물리 매니저(505)는 다양한 노드들(115)의 물리적 헬스를 판정하고, 이 판정된 헬스에 기초하여 노드들(115)를 효과적으로 관리하도록 동작가능한 임의의 소프트웨어, 로직, 펌웨어 또는 기타 모듈이다. 물리 매니저는 이 데이터를 이용하여 장애들을 효율적으로 판정하고 노드들(115)에 응답할 수 있다. 일 실시예에 있어 서, 물리 매니저(505)는 각각이 노드들(115) 상에 있는 다수의 에이전트(132)에 통신가능하게 연결된다. 전술한 바와 같이, 에이전트(132)는 적어도 물리 정보를 수집하고 매니저(505)에 전송한다. 또한, 물리 매니저(505)는 네트워크(106)를 통해 클라이언트(120)에서 시스템 관리자에게 경보를 통신하도록 동작가능할 수 있다.
가상 매니저(510)는 가상 클러스터(220), 및 노드들(115)의 논리 상태를 관리하도록 동작가능한 임의의 소프트웨어, 로직, 펌웨어 또는 그외 모듈이다. 일반적으로, 가상 매니저(510)는 노드들(115)의 논리 표현을 노드들(115)의 물리 상태와 링크시킨다. 이들 링크들에 기초하여, 가상 매니저(510)는 노드 장애, 또는 증가된 HPC 프로세싱에 대한 (시스템 또는 사용자) 요청 등에 응답하여, 가상 클러스터(220)를 생성하고, 이들 클러스터(220)에 대한 다양한 변화를 처리할 수 있다. 또한, 가상 매니저(510)는 비실행된 또는 큐잉된 HPC 처리 및 작업(150)의 동적 백필링을 가능하게 하기 위해 비할당 노드들(115) 등의 가상 클러스터(220)의 상태를 작업 스케쥴러(515)에 통신할 수 있다. 또한, 가상 매니저(510)는 특정 노드들(115)과의 작업(150) 호환성을 판정하고, 이 정보를 작업 스케쥴러(515)에 통신할 수 있다. 소정의 실시예에서, 가상 매니저(510)는 개별 가상 클러스터(220)를 나타내는 객체일 수 있다.
또한, 클러스터 관리 엔진(500)은 작업 스케쥴러(515)를 포함할 수 있다. 작업 스케쥴러 서브-모듈(515)은 최적 작업 공간(230) 및 시간을 판정하기 위해, 프로세서들 및 시간 할당뿐만 아니라, 시스템 자원의 양태를 처리하는 토폴로지-인식 모듈이다. 주로 고려되는 요인들은 프로세서, 처리, 메모리, 상호접속, 디스 크, 비주얼리제이션 엔진 등을 포함한다. 즉, 작업 스케쥴러(515)는 전형적으로 작업(150)을 수신하기 위한 GUI(126), 다양한 노드들(115)의 헬스를 보장하기 위한 물리 매니저(505), 및 소정의 가상 클러스터(220) 내에 작업 공간(230)을 동적으로 할당하기 위한 가상 매니저(510)와 상호작용한다. 이 동적 할당은 주로, 그리드(110) 및 (적절한 경우에) 가상 클러스터(220)의 현재의 토폴로지의 지식을 반영하는 다양한 알고리즘을 통해 달성된다. 작업 스케쥴러(515)는 직렬 및 병렬 프로그램 양자의 배치 및 대화형 실행을 다룬다. 또한, 스케쥴러(515)는 작업(150)에 의해 나타나는 다양한 문제들의 선택 및 실행시에, 정책들(524)을 구현하는 일 방식을 제공할 것이다.
클러스터 관리 엔진(500)은 작업 스케쥴러(515) 등을 통해, 효율적인 점검을 수행하도록 더 동작가능할 수 있다. 재개시 덤프(restart dump)는 전형적으로 디스크에 기입된 데이터의 75 퍼센트 이상을 포함한다. 이 I/O는 주로 프로세싱이 플랫폼 장애를 놓치지 않도록 행해진다. 이에 기초하여, 파일 시스템의 I/O는 2개의 부분: 생산적 I/O와 방어적 I/O로 분리될 수 있다. 생산적 I/O는, 사용자가, 예컨대 비주얼리제이션 덤프, 시간에 따른 핵심적 물리 변수의 추적 등의 과학 연구를 하기 위해 요청하는 데이터의 기입이다. 방어적 I/O는 상당한 기간동안 대규모의 시뮬레이션 실행을 관리하도록 수행된다. 따라서, 증가된 I/O 대역폭은 점검과 관련된 시간 및 위험을 크게 감소시킨다.
엔진(500)으로 되돌아가면, 로컬 메모리(520)는 시스템(100)의 복수의 특징의 논리적 설명(또는 데이터 구조)을 포함한다. 로컬 메모리(520)는 호환성 코드 에 의해 정의되거나, 처리되거나, 검색되도록 동작가능한 임의의 물리적 또는 논리적 데이터 저장 장치 내에 저장될 수 있다. 예를 들어, 로컬 메모리(520)는 하나 이상의 확장성 생성 언어(XML) 테이블 또는 문서를 포함할 수 있다. 다양한 요소들은 SQL 문장 또는 스크립트, 가상 기억 접근 방식(VSAM) 파일, 단층(flat) 파일, 2진 데이터 파일, 비트리브(Btrieve) 파일, 데이터베이스 파일, 또는 CSV(comma-separated-value) 파일에 의해 기술될 수 있다. 각 요소는 변수, 테이블, 또는 임의의 다른 적절한 데이터 구조를 포함할 수 있다는 것을 이해할 것이다. 로컬 메모리(520)는 하나의 서버(102) 상에 또는 복수의 서버 또는 노드들에 걸쳐 저장된 복수의 테이블 또는 파일을 더 포함할 수 있다. 또한, 엔진(500) 내부에 존재하는 것으로 예시되었지만, 로컬 메모리(520)의 일부 또는 전부는 본 발명의 범위 내에서 내부 또는 외부에 존재할 수 있다.
예시된 로컬 메모리(520)는 물리 리스트(521), 가상 리스트(522), 그룹 파일(523), 정책 테이블(524) 및 작업 큐(525)를 포함한다. 그러나, 예시되지 않았지만, 로컬 메모리(520)는 본 발명의 범위 내에 속하는, 작업 테이블 및 감사 기록(audit log)을 포함하여 기타 데이터 구조를 포함할 수 있다. 예시된 구조로 되돌아가면, 물리 리스트(521)는 노드들(115)에 대한 식별 및 물리 관리 정보를 저장하도록 동작가능하다. 물리 리스트(521)는 노드(115) 당 적어도 하나의 기록을 포함하는 다차원 데이터 구조일 수 있다. 예를 들어, 물리 기록은 "노드", "이용도", "프로세서 이용 효율", "메모리 이용 효율", "온도", "물리 위치", "어드레스", "부트 이미지" 등의 필드들을 포함할 수 있다. 각각의 기록은 예시적인 필드 의 일부 또는 전부를 포함하거나 전혀 포함하지 않을 수도 있다는 것을 이해할 것이다. 일 실시예에 있어서, 물리 기록은, 예컨대 가상 리스트(522) 등의 다른 테이블에 외래 키를 제공할 수 있다.
가상 리스트(522)는 노드(115)에 대한 논리 또는 가상 관리 정보를 저장하도록 동작가능하다. 가상 리스트(522)는 노드(115) 당 적어도 하나의 기록을 포함하는 다차원 데이터 구조일 수 있다. 예를 들어, 가상 기록은 "노드", "이용도", "작업", "가상 클러스터", "2차 노드", "논리 위치", "호환성" 등의 필드들을 포함할 수 있다. 각각의 기록은 예시적인 필드의 일부 또는 전부를 포함하거나 전혀 포함하지 않을 수도 있다는 것을 이해할 것이다. 일 실시예에 있어서, 가상 기록은, 예컨대 그룹 파일(523) 등의 다른 테이블로의 링크를 포함할 수 있다.
그룹 파일(523)은 액세스 제어 리스트(또는 ACL) 등의 사용자 그룹 및 보안 정보를 저장하도록 동작가능한 하나 이상의 테이블 또는 기록을 포함한다. 예를 들어, 각각의 그룹 기록은 사용자에게 이용가능한 서비스, 노드들(115), 또는 작업의 리스트를 포함할 수 있다. 각 논리 그룹은 비즈니스 그룹 또는 유닛, 부서, 프로젝트, 또는 보안 그룹과 관련되거나, 또는 작업(150)을 제출할 수 있거나 시스템(100)의 적어도 일부분을 관리할 수 있는 하나 이상의 사용자들의 임의의 다른 모임과 관련될 수 있다. 이 정보에 기초하여, 클러스터 관리 엔진(500)은 사용자 제출 작업(150)이 유효 사용자인지 판정하고, 만야 유효 사용자라면, 작업 실행을 위한 최적의 파라미터들을 판정할 수 있다. 또한, 그룹 테이블(523)은 각 사용자 그룹을 가상 클러스터(220)와 관련시키거나, 특정 그룹의 도메인 내에 존재하는 노 드 등의 하나 이상의 물리 노드들(115)와 관련시킬 수 있다. 이는 각 그룹이 자원에 대한 경쟁없이 개별 프로세싱 공간을 가질 수 있게 한다. 그러나, 전술한 바와 같이, 가상 클러스터(220)의 모양 및 크기는 동적일 수 있고, 필요성, 시간 또는 임의의 다른 파라미터에 따라 변할 수 있다.
정책 테이블(524)은 하나 이상의 정책을 포함한다. 정책 테이블(524) 및 정책(524)은 적절하게 상호교체가 가능하도록 이용될 수 있다는 것을 이해할 것이다. 정책(524)은 일반적으로 작업(150) 및/또는 가상 클러스터(220)에 대한 프로세싱 및 관리 정보를 저장한다. 예를 들어, 정책(524)은 문제 사이즈, 문제 런타임, 타임슬롯, 선취(preemption), 노드(115) 또는 가상 클러스터(220)의 사용자의 할당된 공유 등을 포함하는 임의의 수의 파라미터 또는 변수를 포함할 수 있다.
작업 큐(525)는 실행을 대기하는 작업들(150)의 하나 이상의 스트림을 나타낸다. 일반적으로, 큐(525)는 임의의 수(0을 포함)의 작업(150) 또는 그 레퍼런스를 저장하기 위해, 버블(bubble) 어레이, 데이터베이스 테이블 또는 포인터 어레이 등의 임의의 적합한 데이터 구조를 포함한다. 그리드(110)와 관련된 하나의 큐(525), 또는 복수의 큐(525)가 존재할 수 있으며, 각각의 큐(525)는 그리드(110) 내의 고유한 가상 클러스터(220) 중의 하나와 관련된다.
동작의 일 양태에 있어서, 클러스터 관리 엔진(500)은 계산을 실행하고 정보를 교환함으로써 문제를 협동적으로 해결하는 N개의 태스크로 이루어진 작업(150)을 수신한다. 클러스터 관리 엔진(500)은 N개의 노드들(115)를 할당하고, 임의의 적합한 기술을 이용하여 N개의 태스크들의 각각을 하나의 특정 노드들(115)에 배정 함으로써, 문제가 효율적으로 해결될 수 있게 한다. 예를 들어, 클러스터 관리 엔진(500)은 사용자에 의해 공급된 작업 태스크 배치 등의 작업 파라미터들을 이용할 수 있다. 이와 무관하게, 클러스터 관리 엔진(500)은 서버(102)의 아키텍처의 이용을 시도하는데, 이는 사용자에게 보다 신속한 소요시간을 교대로 제공하고, 시스템(100)의 전체 처리율을 개선시킨다.
일 실시예에 있어서, 클러스터 관리 엔진(500)은 이때, 다음과 같은 예시적인 토폴로지들 중 임의의 토폴로지에 따라 노드들(115)를 선택하여 할당한다:
지정된 2D (x, y) 또는 3D (x,y,z) - 노드들(115)이 할당되고, 태스크가 지정된 차원으로 순서화될 수 있으며, 이에 따라 효율적인 인접간 통신을 유지한다. 지정된 토폴로지는, 물리 통신 토폴로지가 문제 토폴로지와 일치하여, 협동하는 작업(150)의 태스크들이 이웃 태스크들과 빈번히 통신하도록 허용하는 것이 바람직한 다양한 작업(150)들을 관리한다. 예를 들어, 2x2x2 차원(2,2,2)에서의 8개의 태스크의 요청은 입방체(cube) 내에 할당될 것이다. 최적화를 위해, 2D 할당은 효율적인 인접간 통신을 유지하면서, (도 2D에 설명된 바와 같이) 3차원 내로 "폴드"될 수 있다. 클러스터 관리 엔진(500)은 지정된 차원의 모양을 임의의 방향으로 자유롭게 할당할 수 있다. 예를 들어, 2x2x8 박스는 수직으로 또는 수평으로 이용가능 물리 노드 내에 할당될 수 있다.
최적화 입방체(Best Fit Cube) - 클러스터 관리 엔진(500)은 입방체 체적 내에 N개의 노드들(115)를 할당한다. 이 토폴로지는 효율적으로 작업을 처리하여, 임의의 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) 파라미터로서 저장된 배치 가중치를 이용할 수 있다. 일 실시예에 있어서, 배치 가중치는 0과 1 사이의 변경자(modifier)인데, 이는 클러스터 관리 엔진(500)이 얼마나 적극적으로 요청 태스크(또는 처리) 배치 전략에 따라 노드들(115)을 배치하고자 시도할 것인지를 나타낸다. 본 예에서, 0의 값은 최적 전략(또는 차원들)이 가능한 경 우에만 노드들(115)을 배치하는 것을 나타내고, 1의 값은 요청을 처리하기에 충분히 자유롭거나 그렇지 않더라도 이용가능한 노드들(115)가 존재하는 동안에는, 즉시 노드들(115)을 배치하는 것을 나타낸다. 전형적으로, 배치 가중치는 대규모 작업들(150)의 결핍을 방지하고 HPC 시스템(100)의 작업 처리율을 유지하기 위해, 자원 예약 등의 관리 정책(524)을 간과하지 않는다.
전술한 예시 및 첨부 설명은 노드들(115) 및 작업(150)을 관리하기 위한 논리적 체계를 구현하는 엔진(500)에 대한 예시적인 모듈러 도면을 제공한다. 그러나, 이 도면은 단지 예시적인 것일 뿐이고, 시스템(100)은 이들 및 다른 알고리즘을 구현하기 위한 논리 요소의 임의의 적합한 조합 및 배열의 이용을 고려한다. 따라서, 이들 소프트웨어 모듈은 노드들(115) 및 작업(150)을 효과적으로 관리하기 위한 요소들의 임의의 적합한 조합 및 배열을 포함할 수 있다. 또한, 설명된 다양한 모듈들의 동작은 적절하게 조합 및/또는 분리될 수 있다.
도 6은 본 발명의 일 실시예 따라 작업 제출을 동적으로 처리하는 예시적인 방법(600)을 도시한 흐름도이다. 일반적으로, 도 6은 배치 작업 제출을 수신하고, 작업 파라미터 및 관련된 정책(524)에 기초하여 노드들(115)를 작업 공간(230) 내로 동적으로 할당하며, 할당된 공간을 이용하여 작업(150)을 실행하는 방법(600)을 설명한다. 다음 설명은 방법(600) 실행시의 클러스터 관리 모듈(130)의 동작에 초점을 맞춘다. 그러나, 시스템(100)은 설명된 기능이 적절한 상태로 유지되는 한, 설명된 기능의 일부 또는 전부를 구현하는 논리 요소의 임의의 적절한 조합 및 배열의 이용을 고려한다.
방법(600)은 단계 605에서 개시되어, HPC 서버(102)는 사용자로부터 작업 제출(150)을 수신한다. 전술한 바와 같이, 일 실시예에 있어서, 사용자는 클라이언트(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)을 판정할 수 있다. 그 후, 단계 630에서 클러스터 관리 엔진(130)은 작업(150)의 차원을 판정하거나 그렇지 않으면 상기 차원을 계산한다. 적절한 차원은 길이, 폭, 높이, 또는 임의의 다른 적절한 파라미터 또는 특성을 포함할 수 있다는 것을 이해할 것이다. 전술한 바와 같이, 이들 차원은 가상 클러스터(220) 내의 적절한 작업 공간(230)(또는 노드들(115)의 서브셋)을 판정하기 위해 이용될 수 있다. 초기 파라미터가 확립되었으면, 단계 635 내지 단계 665에서 클러스터 관리 엔진(130)은 HPC 서버상에서 작업(150)의 실행을 시도한다.
결정 단계 635에서, 클러스터 관리 엔진(130)은 이미 확립된 파라미터들을 이용하여, 원하는 작업 공간(230)을 할당하기 위해 충분히 이용가능한 노드가 존재하는지의 여부를 판정한다. 충분한 노드들(115)이 존재하지 않으면, 단계 640에서 클러스터 관리 엔진(130)은 가상 클러스터(220) 내의 노드들(115) 중 최초로 이용가능한 서브셋(230)을 판정한다. 다음, 단계 645에서 클러스터 관리 엔진(130)은 서브셋(230)이 이용가능할 때까지 작업 큐(125)에 작업(150)을 추가한다. 다음, 프로세싱은 결정 단계 635로 복귀한다. 일단 이용가능한 충분한 노드들(115)이 존재하면, 단계 650에서 클러스터 관리 엔진(130)은 이용가능한 노드들(115)로부터 최적 서브셋(230)을 동적으로 판정한다. 최적 서브셋(230)은 최고속 처리 시간을 포함하여 임의의 적절한 기준을 이용하여, 가장 신뢰성있는 노드들(115), 물리적 또는 가상의 위치들, 또는 최초로 이용가능한 노드들(115)이 판정될 수 있다는 것을 이해할 것이다. 단계 655에서, 클러스터 관리 엔진(130)은 판정된 서브셋(230)을 선택된 가상 클러스터(220)로부터 선택한다. 다음, 단계 660에서, 클러스터 관리 엔진(130)은 선택된 서브셋(230)을 이용하여 작업(150)에 대해 선택된 노드들(115)를 할당한다. 일 실시예에 따르면, 클러스터 관리 엔진(130)은 가상 노드 리스트(522) 내의 노드들(115)의 상태를 "비할당"에서 "할당"으로 변경할 수 있다. 일단 서브셋(230)이 적절하게 할당되었으면, 단계 655에서 클러스터 관리 엔진(130)은 작업 파라미터들, 검색된 정책(524), 및 임의의 다른 적절한 파라미터들에 기초하여 할당된 공간을 이용하여 작업(150)을 실행한다. 임의의 적절한 시기에, 클러스터 관리 엔진(130)은 작업 결과(160)들을 사용자에게 전송하거나 그렇지 않으면 제시할 수 있다. 예를 들어, 결과(160)는 포맷되고, GUI(126)를 통해 사용자에게 제시될 수 있다.
도 7은 본 발명의 일 실시예에 따른 그리드(110) 내의 가상 클러스터(220)를 동적으로 백필링하는 예시적인 방법(700)을 도시한 흐름도이다. 하이 레벨에서, 방법(700)은 가상 클러스터(220) 내의 이용가능한 공간을 판정하고, 공간과 양립가능한 최적 작업(150)을 판정하며, 이용가능한 공간 내에서, 판정된 작업(150)을 실행하는 것을 나타낸다. 다음 설명은 이 방법의 수행시의 클러스터 관리 엔진(130)의 동작에 초점이 맞추어질 것이다. 그러나, 전술한 흐름도에서와 같이, 시스템(100)은 설명된 기능의 일부 또는 전부를 구현하는 논리 요소들의 임의의 적절한 조합 및 배열의 이용을 고려한다.
방법(700)은 단계 705에서 개시되며, 클러스터 관리 엔진(130)은 작업 큐(525)를 정렬한다. 설명된 실시예에서, 클러스터 관리 엔진(130)은 큐(525) 내에 저장된 작업(150)의 우선 순위에 기초하여 큐(525)를 정렬한다. 그러나, 클러스터 관리 엔진(130)은 적절한 또는 최적의 작업(150)이 실행될 수 있도록, 임의의 적절한 특성을 이용하여 큐(525)를 정렬할 수 있다는 것을 이해할 것이다. 다음, 단계710에서, 클러스터 관리 엔진(130)은 가상 클러스터들(220) 중 하나의 클러스 터 내의 이용가능한 노드들(115)의 수를 판정한다. 물론, 클러스터 관리 엔진(130)은 그리드(110) 내의 또는 하나 이상의 가상 클러스터(220) 내의 이용가능한 노드들(115)의 수를 판정할 수 있다. 단계 715에서, 클러스터 관리 엔진(130)은 정렬된 작업 큐(525)로부터 제1 작업(150)을 선택한다. 다음, 단계 720에서 클러스터 관리 엔진(130)은 선택된 작업(150)의 최적한 모양(또는 그외 차원)을 동적으로 판정한다. 일단 선택된 작업(150)의 최적한 모양 또는 차원이 판정되면, 단계 725 내지 단계 745에서 클러스터 관리 엔진(130)은 적절한 가상 클러스터(220) 내에서 작업(150)을 백필링할 수 있는지 여부를 판정한다.
결정 단계 725에서, 클러스터 관리 엔진(130)은 선택된 작업(150)에 이용가능한 충분한 노드들(115)이 존재하는 여부를 판정한다. 이용가능한 충분한 노드들(115)이 존재하는 경우, 단계 730에서, 클러스터 관리 엔진(130)은 임의의 적절한 기술을 이용하여, 선택된 작업(150)에 대해 노드들(115)을 동적으로 할당한다. 예를 들어, 클러스터 관리 엔진(130)은 도 6에 설명된 기술들을 이용할 수 있다. 다음에, 단계 735에서, 클러스터 관리 엔진(130)은 가상 클러스터(220) 내의 이용가능한 노드의 수를 재계산한다. 단계 740에서, 클러스터 관리 엔진(130)은 할당된 노드들(115)상에서 작업(150)을 실행한다. 일단 작업(150)이 실행되면(또는 선택된 작업(150)을 위한 충분한 노드들(115)들이 존재하지 않으면), 단계 745에서 클러스터 관리 엔진(130)은 정렬된 작업 큐(525) 내에서 후행 작업(150)을 선택하고, 처리는 단계 720으로 복귀된다. 루프로 설명되었지만, 클러스터 관리 엔진(130)은 임의의 적절한 시기에 방법(700)에서 설명된 기술들을 개시하고, 실행하 고, 종료할 수 있다는 것을 이해할 것이다.
도 8은 본 발명의 일 실시예에 따른 그리드(110) 내의 노드(115)의 장애를 동적으로 관리하는 예시적인 방법(800)을 도시한 흐름도이다. 하이 레벨에서, 방법(800)은 노드들(115)의 장애 여부를 판정하고, 작업 회복 및 관리를 자동으로 수행하고, 장애가 발생한 노드(115)를 이차 노드들(115)로 교체하는 것에 대해 설명한다. 다음 설명은 이 방법의 수행시의 클러스터 관리 모듈(130)의 동작에 초점이 맞추어질 것이다. 그러나, 상기 흐름도에서와 같이, 시스템(100)은 설명된 기능의 일부 또는 전부를 구현하는 논리 요소들의 임의의 적절한 조합 및 배열의 이용을 고려한다.
방법(800)은 단계 805에서 개시되며, 클러스터 관리 엔진(130)은 노드(115)에 장애가 발생하였는지의 여부를 판정한다. 전술한 바와 같이, 클러스터 관리 엔진(130)은 임의의 적절한 기술을 이용하여 노드들(115)에 장애가 발생하였는지의 여부를 판정할 수 있다. 예를 들어, 클러스터 관리 엔진(130)은 여러 차례 노드들(115)(또는 에이전트(132))를 풀링(pull)할 수 있으며, 노드(115)로부터의 응답 결여에 기초하여 노드(115)에 장애가 발생하였는지 여부를 판정할 수 있다. 다른 예에서, 노드(115)상에 존재하는 에이전트(132)는 "하트비트"를 통신할 수 있으며, 이 "하트비트"의 결여는 노드(115) 장애를 나타낼 수 있다. 다음, 단계 810에서, 클러스터 관리 엔진(130)은 장애 노드(115)를 가상 클러스터(220)로부터 제거한다. 일 실시예에 있어서, 클러스터 관리 엔진(130)은 가상 리스트(522) 내의 노드(115)의 상태를 "할당"에서 "장애"로 변경할 수 있다. 다음, 결정 단계 815에서 클러스 터 관리 엔진(130)은 작업(150)이 장애 노드(115)와 관련되어 있는지의 여부를 판정한다. 노드(115)와 관련된 작업(150)이 존재하지 않으면, 처리는 종료된다. 전술한 바와 같이, 처리 종료 전에, 클러스터 관리 엔진(130)은 에러 메시지를 관리자에게 통신하거나, 대체 노드(115)를 자동적으로 판정하거나, 임의의 다른 적절한 처리를 행할 수 있다. 장애 노드(115)와 관련된 작업(150)이 존재하면, 단계 820에서 클러스터 관리 엔진(130)은 작업(150)과 관련된 다른 노드들(115)을 판정한다. 다음, 단계 825에서, 클러스터 관리 엔진(130)은 적절한 모든 노드들(115) 상의 작업(150)을 삭제(kill)한다. 예를 들어, 클러스터 관리 엔진(130)은 작업 삭제 커맨드(kill job command)를 실행하거나, 작업(150)을 끝내기 위한 임의의 다른 적절한 기술을 이용할 수 있다. 다음, 단계 830에서, 클러스터 관리 엔진(130)은 가상 리스트(522)를 이용하여 노드들(115)을 할당해제(de-allocate)한다. 예를 들어, 클러스터 관리 엔진(130)은 가상 리스트(522) 내의 노드들(115)의 상태를 "할당"에서 "이용가능"으로 변경할 수 있다. 일단 작업이 종료되고 모든 적절한 노드들(115)가 할당해제되면, 단계 835 내지 단계 850에서 클러스터 관리 엔진(130)은 이용가능한 노드들(115)를 이용하여 작업(150)의 재실행을 시도한다.
단계 835에서, 클러스터 관리 엔진(130)은 삭제된 작업(150)에 대한 파라미터들 및 정책(524)을 검색한다. 그 후, 단계 840에서 클러스터 관리 엔진(130)은 검색된 정책(524) 및 작업 파라미터들에 기초하여, 가상 클러스터(220) 내의 노드들(115)의 최적 서브셋(230)을 판정한다. 일단 노드들(115)의 서브셋(230)이 판정되면, 단계 845에서 클러스터 관리 엔진(130)은 노드들(115)의 서브셋(230)을 동적 으로 할당한다. 예를 들어, 클러스터 관리 엔진(130)은 가상 리스트(522) 내의 노드들(115)의 상태를 "비할당"에서 "할당"으로 변경할 수 있다. 노드들(115)의 서브셋(230)은 작업(150)이 실행된 노드의 오리지널 서브셋과 상이할 수 있다는 것을 이해할 것이다. 예를 들어, 클러스터 관리 엔진(130)은 이 실행을 촉구한 노드의 장애로 인해 노드들의 어느 상이한 서브셋이 최적이라는 판정을 행할 수 있다. 다른 예에 있어서, 클러스터 관리 엔진(130)은 이차 노드(115)가 장애 노드(155)를 대체하도록 동작가능하였으며, 신규의 서브셋(230)이 기존의 작업 공간(230)과 실질적으로 유사한 것으로 판정했을 수도 있다. 일단 할당된 서브셋(230)이 판정되고 할당되면, 단계 850에서 클러스터 관리 엔진(130)은 작업(150)을 실행한다.
전술한 흐름도 및 첨부 설명은 예시적인 방법들(600, 700, 및 800)을 설명한다. 요약하면, 시스템(100)은 이들 및 다른 태스크들을 실행하기 위한 임의의 적합한 기술의 이용을 고려한다. 따라서, 이 흐름도에서의 여러 단계들은 동시에 또한/또는 설명한 바와 다른 순서로 발생할 수 있다. 또한, 시스템(100)은 전술한 방법들이 적절히 유지되는 한, 추가 단계들, 더 적은 단계들, 및/또는 상이한 단계들을 포함하는 방법들을 이용할 수도 있다.
본 발명은 소정의 실시예들 및 일반적으로 관련된 방법의 관점에서 설명되었지만, 이들 실시예들 및 방법들의 변경 및 변형은 당업자에게는 명백할 것이다. 따라서, 예시적인 실시예들의 전술한 설명은 본 발명을 한정하거나 제한하지 않는다. 본 발명의 사상 및 범위 내에서 그 외의 변화들, 치환들, 및 변경들도 가능하다.

Claims (24)

  1. HPC 환경에서의 작업 관리(job management)를 위한 방법에 있어서,
    복수의 HPC 노드들로부터 비할당 서브셋(subset)을 판정하는 단계 - 상기 비할당 HPC 노드들의 각각은 통합 패브릭(integrated fabric)을 포함함 -;
    작업 큐로부터 HPC 작업을 선택하는 단계; 및
    상기 노드들의 비할당 서브셋의 적어도 일부분을 이용하여 상기 선택된 작업을 실행하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 HPC 작업을 선택하는 단계는 우선 순위에 기초하여 작업 큐로부터 상기 HPC 작업을 선택하는 단계를 포함하며,
    상기 선택된 작업은 상기 비할당 서브셋의 토폴로지(topology)보다 크지 않은 차원(dimension)들을 포함하는 방법.
  3. 제2항에 있어서,
    상기 우선 순위에 기초하여 작업 큐로부터 HPC 작업을 선택하는 단계는,
    작업 우선 순위에 기초하여 작업 큐를 정렬(sort)하는 단계;
    상기 정렬된 작업 큐로부터 제1 HPC 작업을 선택하는 단계;
    상기 비할당 서브셋의 토폴로지를 갖는 제1 HPC 작업의 차원들을 판정하는 단계; 및
    상기 비할당 서브셋의 토폴로지보다 큰 제1 HPC 작업의 차원들에 응답하여, 상기 정렬된 작업 큐로부터 제2 HPC 작업을 선택하는 단계
    를 포함하는 방법.
  4. 제2항에 있어서,
    상기 제1 HPC 작업의 차원들은, 적어도 부분적으로, 하나 이상의 작업 파라미터들 및 관련 정책에 기초하는 방법.
  5. 제2항에 있어서,
    적어도 부분적으로 상기 HPC 작업의 차원들에 기초하여, 상기 비할당 서브셋으로부터 작업 여분(spare)을 동적으로 할당하는 단계를 더 포함하고,
    상기 선택된 작업을 실행하는 단계는, 상기 동적으로 할당된 작업 여분을 이용하여 상기 선택된 작업을 실행하는 단계를 포함하는 방법.
  6. 제1항에 있어서,
    상기 복수의 HPC 노드들은 복수의 제1 HPC 노드들을 포함하고,
    상기 방법은,
    상기 선택된 작업의 차원들이 상기 복수의 제1 HPC 노드들의 토폴로지보다 큰 것으로 판정하는 단계;
    복수의 제2 HPC 노드들로부터 하나 이상의 HPC 노드들을 선택하는 단계 - 상기 제2 HPC 노드들의 각각은 통합 패브릭을 포함함 - ; 및
    상기 선택된 작업의 차원들을 충족시키도록 상기 선택된 제2 HPC 노드들을 상기 비할당 서브셋에 추가하는 단계
    를 더 포함하는 방법.
  7. 제6항에 있어서,
    상기 제2 HPC 노드들을 상기 제2 복수의 HPC 노드들로 복귀시키는 단계를 더 포함하는 방법.
  8. 제1항에 있어서,
    상기 복수의 HPC 노드들 내의 제2 서브셋 상에서 실행한 제2 HPC 작업에 장애가 발생한(failed) 것으로 판정하는 단계;
    상기 제2 서브셋을 상기 비할당 서브셋에 추가하는 단계; 및
    상기 장애가 발생한 작업을 상기 작업 큐에 추가하는 단계
    를 더 포함하는 방법.
  9. HPC 환경에서의 작업 관리를 위한 소프트웨어로서,
    복수의 HPC 노드들로부터 비할당 서브셋을 판정하고 - 상기 비할당 HPC 노드 들의 각각은 통합 패브릭을 포함함 -;
    작업 큐로부터 HPC 작업을 선택하고;
    상기 노드들의 비할당 서브셋의 적어도 일부분을 이용하여 상기 선택된 작업을 실행하도록
    동작가능한 소프트웨어.
  10. 제9항에 있어서,
    상기 HPC 작업을 선택하도록 동작가능한 소프트웨어는, 우선 순위에 기초하여 작업 큐로부터 HPC 작업을 선택하도록 동작가능한 소프트웨어를 포함하고,
    상기 선택된 작업은 상기 비할당 서브셋의 토폴로지보다 크지 않은 차원들을 포함하는 소프트웨어.
  11. 제10항에 있어서,
    상기 우선 순위에 기초하여 작업 큐로부터 HPC 작업을 선택하도록 동작가능한 소프트웨어는,
    작업 우선 순위에 기초하여 상기 작업 큐를 정렬하고;
    상기 정렬된 작업 큐로부터 제1 HPC 작업을 선택하고;
    상기 비할당 서브셋의 토폴로지를 갖는 제1 HPC 작업의 차원들을 판정하고;
    상기 비할당 서브셋의 토폴로지보다 큰 제1 HPC 작업의 차원들에 응답하여, 상기 정렬된 작업 큐로부터 제2 HPC 작업을 선택하도록
    동작가능한 소프트웨어를 포함하는 소프트웨어.
  12. 제10항에 있어서,
    상기 제1 HPC 작업의 차원들은, 적어도 부분적으로, 하나 이상의 작업 파라미터들 및 관련 정책에 기초하는 소프트웨어.
  13. 제10항에 있어서,
    적어도 부분적으로 상기 HPC 작업의 차원들에 기초하여, 상기 비할당 서브셋으로부터 작업 여분을 동적으로 할당하도록 더 동작가능하며,
    상기 선택된 작업을 실행하도록 동작가능한 소프트웨어는, 상기 동적으로 할당된 작업 여분을 이용하여 상기 선택된 작업을 실행하도록 동작가능한 소프트웨어를 포함하는 소프트웨어.
  14. 제9항에 있어서,
    상기 복수의 HPC 노드들은 복수의 제1 HPC 노드를 포함하고,
    상기 소프트웨어는,
    상기 선택된 작업의 차원들이 상기 복수의 제1 HPC 노드의 토폴로지보다 큰 것으로 판정하고;
    복수의 제2 HPC 노드들로부터 하나 이상의 HPC 노드들을 선택하고 - 상기 제2 HPC 노드들의 각각은 통합 패브릭을 포함함 -;
    상기 선택된 작업의 차원들을 충족시키도록 상기 선택된 제2 HPC 노드들을 상기 비할당 서브셋에 추가하도록
    더 동작가능한 소프트웨어.
  15. 제14항에 있어서,
    상기 제2 HPC 노드들을 상기 제2 복수의 HPC 노드들로 복귀시키도록 더 동작가능한 소프트웨어.
  16. 제9항에 있어서,
    상기 복수의 HPC 노드들 내의 제2 서브셋 상에서 실행한 제2 HPC 작업에 장애가 발생한 것으로 판정하고;
    상기 제2 서브셋을 상기 비할당 서브셋에 추가하고;
    상기 장애가 발생한 작업을 상기 작업 큐에 추가하도록
    더 동작가능한 소프트웨어.
  17. HPC 환경에서의 작업 관리를 위한 시스템으로서,
    각각의 노드가 통합 패브릭을 포함하는 복수의 HPC 노드들; 및
    관리 노드를 포함하고,
    상기 관리 노드는,
    상기 복수의 HPC 노드들로부터 비할당 서브셋을 판정하고;
    작업 큐로부터 HPC 작업을 선택하고;
    상기 노드들의 비할당 서브셋의 적어도 일부분을 이용하여 상기 선택된 작업을 실행하도록
    동작가능한 시스템.
  18. 제17항에 있어서,
    상기 HPC 작업을 선택하도록 동작가능한 관리 노드는, 우선 순위에 기초하여 작업 큐로부터 HPC 작업을 선택하도록 동작가능한 관리 노드를 포함하고,
    상기 선택된 작업은 상기 비할당 서브셋의 토폴로지보다 크지 않은 차원들을 포함하는 시스템.
  19. 제18항에 있어서,
    상기 우선 순위에 기초하여 상기 작업 큐로부터 상기 HPC 작업을 선택하도록 동작가능한 관리 노드는,
    작업 우선 순위에 기초하여 작업 큐를 정렬하고;
    상기 정렬된 작업 큐로부터 제1 HPC 작업을 선택하고;
    상기 비할당 서브셋의 토폴로지를 갖는 제1 HPC 작업의 차원들을 판정하고;
    상기 비할당 서브셋의 토폴로지보다 큰 제1 HPC 작업의 차원들에 응답하여, 상기 정렬된 작업 큐로부터 제2 HPC 작업을 선택하도록
    동작가능한 관리 노드를 포함하는 시스템.
  20. 제18항에 있어서,
    상기 제1 HPC 작업의 차원들은, 적어도 부분적으로, 하나 이상의 작업 파라미터들 및 관련 정책에 기초하는 시스템.
  21. 제18항에 있어서,
    적어도 부분적으로, 상기 HPC 작업의 차원들에 기초하여 상기 비할당 서브셋으로부터 작업 여분을 동적으로 할당하도록 더 동작가능하며,
    상기 선택된 작업을 실행하도록 동작가능한 관리 노드는, 상기 동적으로 할당된 작업 여분을 이용하여 상기 선택된 작업을 실행하도록 동작가능한 관리 노드를 포함하는 시스템.
  22. 제17항에 있어서,
    상기 복수의 HPC 노드들은 복수의 제1 HPC 노드를 포함하고,
    상기 관리 노드는,
    상기 선택된 작업의 차원들이 상기 복수의 제1 HPC 노드의 토폴로지보다 큰 것으로 판정하고;
    복수의 제2 HPC 노드로부터 하나 이상의 HPC 노드들을 선택하고 - 상기 제2 HPC 노드들의 각각은 통합 패브릭을 포함함 -;
    상기 선택된 작업의 차원들을 충족시키기 위해 상기 선택된 제2 HPC 노드들 을 상기 비할당 서브셋에 추가하도록
    더 동작가능한 시스템.
  23. 제22항에 있어서,
    상기 관리 노드는 상기 제2 HPC 노드들을 상기 복수의 제2 HPC 노드들로 복귀시키도록 더 동작가능한 시스템.
  24. 제17항에 있어서,
    상기 관리 노드는,
    상기 복수의 HPC 노드들 내의 제2 서브셋 상에서 실행한 제2 HPC 작업에 장애가 발생한 것으로 판정하고;
    상기 제2 서브셋을 상기 비할당 서브셋에 추가하고;
    상기 장애가 발생한 작업을 상기 작업 큐에 추가하도록
    더 동작가능한 시스템.
KR1020067023880A 2004-04-15 2005-04-12 Hpc 환경에서의 토폴로지-인식 작업 스케쥴링 및백필링을 위한 시스템 및 방법 KR20070006906A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/825,021 US8336040B2 (en) 2004-04-15 2004-04-15 System and method for topology-aware job scheduling and backfilling in an HPC environment
US10/825,021 2004-04-15

Publications (1)

Publication Number Publication Date
KR20070006906A true KR20070006906A (ko) 2007-01-11

Family

ID=34887808

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067023880A KR20070006906A (ko) 2004-04-15 2005-04-12 Hpc 환경에서의 토폴로지-인식 작업 스케쥴링 및백필링을 위한 시스템 및 방법

Country Status (10)

Country Link
US (11) US8336040B2 (ko)
EP (2) EP1582981A1 (ko)
JP (1) JP2005310139A (ko)
KR (1) KR20070006906A (ko)
CN (1) CN100562852C (ko)
CA (1) CA2503777C (ko)
IL (1) IL178606A (ko)
MY (1) MY150399A (ko)
TW (1) TWI272502B (ko)
WO (1) WO2005106663A1 (ko)

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1297894C (zh) * 2003-09-30 2007-01-31 国际商业机器公司 用于调度作业的方法、调度器以及网络计算机系统
US20050235055A1 (en) * 2004-04-15 2005-10-20 Raytheon Company Graphical user interface for managing HPC clusters
US8190714B2 (en) * 2004-04-15 2012-05-29 Raytheon Company System and method for computer cluster virtualization using dynamic boot images and virtual disk
US8336040B2 (en) 2004-04-15 2012-12-18 Raytheon Company System and method for topology-aware job scheduling and backfilling in an HPC environment
US8335909B2 (en) 2004-04-15 2012-12-18 Raytheon Company Coupling processors to each other for high performance computing (HPC)
US7711977B2 (en) * 2004-04-15 2010-05-04 Raytheon Company System and method for detecting and managing HPC node failure
US9178784B2 (en) 2004-04-15 2015-11-03 Raytheon Company System and method for cluster management based on HPC architecture
US7596788B1 (en) * 2004-05-11 2009-09-29 Platform Computing Corporation Support of non-trivial scheduling policies along with topological properties
US7788671B2 (en) * 2004-11-01 2010-08-31 International Business Machines Corporation On-demand application resource allocation through dynamic reconfiguration of application cluster size and placement
US8244882B2 (en) * 2004-11-17 2012-08-14 Raytheon Company On-demand instantiation 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
US7475274B2 (en) * 2004-11-17 2009-01-06 Raytheon Company Fault tolerance and recovery in a high-performance computing (HPC) system
US7802257B1 (en) * 2005-06-20 2010-09-21 Oracle America, Inc. Mechanism for bridging a thread-oriented computing paradigm and a job-oriented computing paradigm
US20070061813A1 (en) * 2005-08-30 2007-03-15 Mcdata Corporation Distributed embedded software for a switch
US7926057B2 (en) * 2005-12-15 2011-04-12 International Business Machines Corporation Scheduling of computer jobs employing dynamically determined top job party
KR100730279B1 (ko) * 2005-12-16 2007-06-19 삼성전자주식회사 스타 토로스 토폴로지를 이용하여 칩 상의 디바이스를연결한 컴퓨터 칩
ES2325698B1 (es) * 2006-01-20 2010-10-19 Universidad De La Laguna Camara de fase para la medida de distancias y de aberraciones de frente de onda en diversos entornos mediante slice de fourier.
JP5158447B2 (ja) * 2007-03-02 2013-03-06 日本電気株式会社 タスク群割当方法、タスク群割当装置、タスク群割当プログラム、プロセッサ及びコンピュータ
US8200738B2 (en) 2007-09-30 2012-06-12 Oracle America, Inc. Virtual cluster based upon operating system virtualization
US8107466B2 (en) 2008-04-01 2012-01-31 Mitac International Corp. Flexible network switch fabric for clustering system
JP5402226B2 (ja) * 2009-05-13 2014-01-29 富士通株式会社 管理装置、情報処理システム、情報処理システムの制御プログラムおよび情報処理システムの制御方法
US8473959B2 (en) 2010-02-22 2013-06-25 Virtustream, Inc. Methods and apparatus related to migration of customer resources to virtual resources within a data center environment
US9122538B2 (en) 2010-02-22 2015-09-01 Virtustream, Inc. Methods and apparatus related to management of unit-based virtual resources within a data center environment
US9027017B2 (en) * 2010-02-22 2015-05-05 Virtustream, Inc. Methods and apparatus for movement of virtual resources within a data center environment
JP5035708B2 (ja) 2010-04-21 2012-09-26 日本電気株式会社 並列計算機システム、ジョブサーバ、ジョブスケジューリング方法及びジョブスケジューリングプログラム
US11449394B2 (en) 2010-06-04 2022-09-20 Commvault Systems, Inc. Failover systems and methods for performing backup operations, including heterogeneous indexing and load balancing of backup and indexing resources
US8504526B2 (en) 2010-06-04 2013-08-06 Commvault Systems, Inc. Failover systems and methods for performing backup operations
JP5429382B2 (ja) * 2010-08-10 2014-02-26 富士通株式会社 ジョブ管理装置及びジョブ管理方法
CN102096655B (zh) * 2011-01-31 2013-02-20 中国科学院计算技术研究所 一种移动hpc系统及其实现方法
JP2012243224A (ja) * 2011-05-23 2012-12-10 Fujitsu Ltd プロセス配置装置、プロセス配置方法及びプロセス配置プログラム
US20120324456A1 (en) * 2011-06-16 2012-12-20 Microsoft Corporation Managing nodes in a high-performance computing system using a node registrar
EP2748705A4 (en) 2011-08-25 2015-05-20 Virtustream Inc SYSTEMS AND METHODS FOR HOST-RELATED RESOURCE MANAGEMENT WITH CLUSTER-BASED RESOURCE POOLS
US20130067069A1 (en) 2011-09-13 2013-03-14 International Business Machines Corporation Flow topology of computer transactions
US20140136553A1 (en) * 2012-11-13 2014-05-15 International Business Machines Corporation Appliance for accelerating graph database management and analytics systems
JP6191361B2 (ja) * 2013-09-25 2017-09-06 富士通株式会社 情報処理システム、情報処理システムの制御方法及び制御プログラム
JP6221588B2 (ja) * 2013-09-30 2017-11-01 富士通株式会社 情報処理システム、管理装置制御プログラム及び情報処理システムの制御方法
KR20150083713A (ko) * 2014-01-10 2015-07-20 삼성전자주식회사 자원 관리를 위한 전자 장치 및 방법
JP6364880B2 (ja) * 2014-03-31 2018-08-01 富士通株式会社 並列計算機システム,ジョブ管理装置の制御プログラム,及び並列計算機システムの制御方法
US9811427B2 (en) 2014-04-02 2017-11-07 Commvault Systems, Inc. Information management by a media agent in the absence of communications with a storage manager
JP2016004310A (ja) * 2014-06-13 2016-01-12 富士通株式会社 並列計算機システム、制御方法およびジョブ管理プログラム
JP6369257B2 (ja) * 2014-09-19 2018-08-08 富士通株式会社 情報処理システム、情報処理システムの制御方法、管理装置、及び制御プログラム
JP6446989B2 (ja) * 2014-10-16 2019-01-09 富士通株式会社 計算機システム,処理方法及びジョブ処理プログラム
US9430269B1 (en) 2015-02-09 2016-08-30 International Business Machines Corporation Feedback analysis for virtual machines manager scheduling
JP6428380B2 (ja) * 2015-03-02 2018-11-28 富士通株式会社 並列計算システム、ジョブ管理装置、ジョブ管理プログラム、およびジョブ管理方法
US10042410B2 (en) * 2015-06-11 2018-08-07 International Business Machines Corporation Managing data center power consumption
US20160381120A1 (en) * 2015-06-24 2016-12-29 Intel Corporation System for event dissemination
US10108411B2 (en) * 2015-10-08 2018-10-23 Lightbend, Inc. Systems and methods of constructing a network topology
KR101995056B1 (ko) * 2015-12-30 2019-07-02 한국전자통신연구원 분산 파일 시스템 및 이의 운영방법
US10417102B2 (en) 2016-09-30 2019-09-17 Commvault Systems, Inc. Heartbeat monitoring of virtual machines for initiating failover operations in a data storage management system, including virtual machine distribution logic
KR102468686B1 (ko) * 2017-01-17 2022-11-22 한국전자통신연구원 대규모 토러스 네트워크에서의 분산 스토리지 시스템을 위한 ip 자동 할당 방법 및 이를 위한 장치
JP6885193B2 (ja) * 2017-05-12 2021-06-09 富士通株式会社 並列処理装置、ジョブ管理方法、およびジョブ管理プログラム
US10261837B2 (en) 2017-06-30 2019-04-16 Sas Institute Inc. Two-part job scheduling with capacity constraints and preferences
EP3502890A1 (en) * 2017-12-22 2019-06-26 Bull SAS Method for managing resources of a computer cluster by means of historical data
US10310896B1 (en) 2018-03-15 2019-06-04 Sas Institute Inc. Techniques for job flow processing
CN110554912B (zh) * 2018-05-31 2022-05-20 杭州海康威视数字技术股份有限公司 调度设备执行任务的方法和装置
US11200124B2 (en) 2018-12-06 2021-12-14 Commvault Systems, Inc. Assigning backup resources based on failover of partnered data storage servers in a data storage management system
US11099956B1 (en) 2020-03-26 2021-08-24 Commvault Systems, Inc. Snapshot-based disaster recovery orchestration of virtual machine failover and failback operations
CN112559155A (zh) * 2020-12-23 2021-03-26 平安银行股份有限公司 批量作业处理方法、系统、计算机设备及可读存储介质
US11645175B2 (en) 2021-02-12 2023-05-09 Commvault Systems, Inc. Automatic failover of a storage manager
US20220300321A1 (en) * 2021-03-19 2022-09-22 Regeneron Pharmaceuticals, Inc. Data pipeline
US11720348B2 (en) * 2021-04-28 2023-08-08 Red Hat, Inc. Computing node allocation based on build process specifications in continuous integration environments
TR2021022159A2 (tr) * 2021-12-31 2022-01-21 İstanbul Geli̇şi̇m Üni̇versi̇tesi̇ Fpga tabanli hi̇bri̇t sezgi̇sel arama algori̇tmalarina dayali i̇ş siralama ci̇hazi ve algori̇tmasi

Family Cites Families (208)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5969392A (ja) 1982-10-08 1984-04-19 株式会社 彦間製作所 クレ−ン車輌
JPS6224358A (ja) 1985-07-24 1987-02-02 Hitachi Ltd 信号ル−テイングテ−ブル方式
DE8521550U1 (de) 1985-07-26 1985-09-19 Mannesmann Kienzle GmbH, 7730 Villingen-Schwenningen Fahrtschreiber
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
US5590345A (en) 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
US5588152A (en) 1990-11-13 1996-12-24 International Business Machines Corporation Advanced parallel processor including advanced support hardware
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 並列計算機の実行制御方法
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 富士通株式会社 プロセッサ割当て装置
EP1191457A2 (en) * 1994-03-22 2002-03-27 Hyperchip Inc. Monolithic systems with dynamically focused input/output
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 眼底映像装置
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
US6012092A (en) * 1997-04-30 2000-01-04 International Business Machines Corp. Method and system for managing multi-user data flows in environments having minimal bandwidth and computational resources
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
US6792605B1 (en) 1999-06-10 2004-09-14 Bow Street Software, Inc. Method and apparatus for providing web based services using an XML Runtime model to store state session data
KR20010000624U (ko) 1999-06-15 2001-01-15 윤외철 자전거용 절곡형 크랭크
US20040205414A1 (en) 1999-07-26 2004-10-14 Roselli Drew Schaffer Fault-tolerance framework for an extendable computer architecture
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
JP3329804B2 (ja) * 2000-02-21 2002-09-30 株式会社東芝 監視制御装置
US6460149B1 (en) * 2000-03-03 2002-10-01 International Business Machines Corporation Suicide among well-mannered cluster nodes experiencing heartbeat failure
CA2404095A1 (en) 2000-03-22 2001-09-27 Yottayotta, 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
DE60237583D1 (de) 2001-02-13 2010-10-21 Candera Inc Failover-verarbeitung in einem speicherungssystem
US7555566B2 (en) 2001-02-24 2009-06-30 International Business Machines Corporation Massively parallel supercomputer
KR100570145B1 (ko) 2001-02-24 2006-04-12 인터내셔널 비지네스 머신즈 코포레이션 동적 재분할을 통해 수퍼컴퓨터에 장애 허용성을 제공하는방법
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
US7035928B2 (en) 2001-04-25 2006-04-25 Hewlett-Packard Development Company, L.P. Allocating computer resources for efficient use by a program
US20020188754A1 (en) 2001-04-27 2002-12-12 Foster Michael S. Method and system for domain addressing in a communications 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
US6587921B2 (en) 2001-05-07 2003-07-01 International Business Machines Corporation Method and apparatus for cache synchronization in a clustered environment
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
US20030063839A1 (en) 2001-05-11 2003-04-03 Scott Kaminski Fault isolation of individual switch modules using robust switch architecture
EP1402355B1 (en) 2001-05-23 2018-08-29 Tekelec Global, Inc. Methods and systems for automatically configuring network monitoring system
US8010558B2 (en) * 2001-06-05 2011-08-30 Silicon Graphics International Relocation of metadata server with outstanding DMAPI requests
US6950833B2 (en) * 2001-06-05 2005-09-27 Silicon Graphics, Inc. Clustered filesystem
JP2003009412A (ja) 2001-06-27 2003-01-10 Meidensha Corp 積層型電気二重層キャパシタ用極性反転装置
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
GB0116310D0 (en) 2001-07-04 2001-08-29 New Transducers Ltd Contact sensitive device
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
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
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
US6976134B1 (en) 2001-09-28 2005-12-13 Emc Corporation Pooling and provisioning storage resources in a storage network
US7185062B2 (en) 2001-09-28 2007-02-27 Emc Corporation Switch-based storage services
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
US7093004B2 (en) * 2002-02-04 2006-08-15 Datasynapse, Inc. Using execution statistics to select tasks for redundant assignment in a distributed computing platform
US6918063B2 (en) * 2002-02-04 2005-07-12 International Business Machines Corporation System and method for fault tolerance in multi-node system
US7640547B2 (en) * 2002-02-08 2009-12-29 Jpmorgan Chase & Co. System and method for allocating computing resources of a distributed computing system
US7376693B2 (en) 2002-02-08 2008-05-20 Jp Morgan Chase & Company System architecture for distributed computing and method of using the 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
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
JP4250919B2 (ja) 2002-06-21 2009-04-08 株式会社三洋物産 遊技機
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
US7219345B2 (en) 2002-12-17 2007-05-15 Hewlett-Packard Development Company, L.P. System and method for terminating processes in a distributed computing system
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
JP2007510198A (ja) * 2003-10-08 2007-04-19 ユニシス コーポレーション ホストシステムのパーティション内に実装されているハイパーバイザを使用したコンピュータシステムの準仮想化
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
US20050235055A1 (en) * 2004-04-15 2005-10-20 Raytheon Company Graphical user interface for managing HPC clusters
US8336040B2 (en) * 2004-04-15 2012-12-18 Raytheon Company System and method for topology-aware job scheduling and backfilling in an HPC environment
US8335909B2 (en) 2004-04-15 2012-12-18 Raytheon Company Coupling processors to each other for high performance computing (HPC)
US7711977B2 (en) * 2004-04-15 2010-05-04 Raytheon Company System and method for detecting and managing HPC node failure
US8190714B2 (en) * 2004-04-15 2012-05-29 Raytheon Company System and method for computer cluster virtualization using dynamic boot images and virtual disk
US9178784B2 (en) * 2004-04-15 2015-11-03 Raytheon Company System and method for cluster management based on HPC architecture
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 記憶デバイス制御装置
US7433931B2 (en) * 2004-11-17 2008-10-07 Raytheon Company Scheduling in a high-performance computing (HPC) system
US7475274B2 (en) * 2004-11-17 2009-01-06 Raytheon Company Fault tolerance and recovery in a high-performance computing (HPC) system
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 富士通株式会社 情報処理システム及び一次ストレージ装置
EP1737253B1 (en) 2005-06-20 2008-04-09 Alcatel Lucent Fault tolerant single plane switch fabric for a telecommunication system
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
US8145837B2 (en) 2007-01-03 2012-03-27 Raytheon Company Computer storage system with redundant storage servers and at least one cache server
JP6224358B2 (ja) 2013-06-14 2017-11-01 株式会社Nttドコモ 無線基地局、ユーザ端末及び無線通信方法

Also Published As

Publication number Publication date
EP3267309A1 (en) 2018-01-10
US9189278B2 (en) 2015-11-17
US20130311998A1 (en) 2013-11-21
US20130104138A1 (en) 2013-04-25
TWI272502B (en) 2007-02-01
WO2005106663A8 (en) 2006-02-16
IL178606A0 (en) 2007-02-11
US20170177418A1 (en) 2017-06-22
US9594600B2 (en) 2017-03-14
US20200301749A1 (en) 2020-09-24
US20050235286A1 (en) 2005-10-20
MY150399A (en) 2014-01-15
US20160132361A1 (en) 2016-05-12
US20140047449A1 (en) 2014-02-13
TW200617694A (en) 2006-06-01
US9189275B2 (en) 2015-11-17
US8984525B2 (en) 2015-03-17
JP2005310139A (ja) 2005-11-04
US20180121253A1 (en) 2018-05-03
US9904583B2 (en) 2018-02-27
WO2005106663A1 (en) 2005-11-10
CN100562852C (zh) 2009-11-25
EP1582981A1 (en) 2005-10-05
US20140040912A1 (en) 2014-02-06
US9928114B2 (en) 2018-03-27
US8910175B2 (en) 2014-12-09
IL178606A (en) 2012-05-31
US10621009B2 (en) 2020-04-14
US20140047092A1 (en) 2014-02-13
US8336040B2 (en) 2012-12-18
CN1770109A (zh) 2006-05-10
US20130304895A1 (en) 2013-11-14
CA2503777A1 (en) 2005-10-15
CA2503777C (en) 2011-10-04
US11093298B2 (en) 2021-08-17

Similar Documents

Publication Publication Date Title
US10621009B2 (en) System and method for topology-aware job scheduling and backfilling in an HPC environment
KR101159377B1 (ko) 고성능 컴퓨팅 시스템 및 방법
JP4986844B2 (ja) Hpcノード障害の検出及び管理を行うシステム及び方法
JP4833965B2 (ja) Hpcアーキテクチャに基づいたクラスタ管理のシステム及び方法
US20050235055A1 (en) Graphical user interface for managing HPC clusters

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E902 Notification of reason for refusal
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
E90F Notification of reason for final refusal
B601 Maintenance of original decision after re-examination before a trial
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20090327

Effective date: 20111230