KR101180763B1 - 멀티프로세서 시스템, 멀티프로세서 시스템용 관리 장치 및 멀티프로세서 시스템용 관리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 - Google Patents

멀티프로세서 시스템, 멀티프로세서 시스템용 관리 장치 및 멀티프로세서 시스템용 관리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 Download PDF

Info

Publication number
KR101180763B1
KR101180763B1 KR1020117003109A KR20117003109A KR101180763B1 KR 101180763 B1 KR101180763 B1 KR 101180763B1 KR 1020117003109 A KR1020117003109 A KR 1020117003109A KR 20117003109 A KR20117003109 A KR 20117003109A KR 101180763 B1 KR101180763 B1 KR 101180763B1
Authority
KR
South Korea
Prior art keywords
resources
partition
data movement
partitions
memory
Prior art date
Application number
KR1020117003109A
Other languages
English (en)
Other versions
KR20110034666A (ko
Inventor
히데카츠 이무라
Original Assignee
후지쯔 가부시끼가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 후지쯔 가부시끼가이샤 filed Critical 후지쯔 가부시끼가이샤
Publication of KR20110034666A publication Critical patent/KR20110034666A/ko
Application granted granted Critical
Publication of KR101180763B1 publication Critical patent/KR101180763B1/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/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
    • 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/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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본건은, 시스템의 특성을 의식한 리소스 배분을 실현함으로써 파티션 분할의 최적화를 도모하여, 시스템 전체의 처리 성능을 향상시킨다. 이 때문에, 본건의 시스템 관리부(30)에 있어서, 복수의 리소스 상호간의 거리에 관련되는 거리 정보와 복수의 리소스 상호간의 데이터 이동 빈도에 의거하여, 각 파티션에 대한 복수의 리소스의 최적 배분이 산출되고, 그 최적 배분의 상태로 되도록 복수의 파티션 관리부(21, 22)를 통해서 복수의 파티션(P1, P2)에 복수의 리소스가 배분된다.

Description

멀티프로세서 시스템, 멀티프로세서 시스템용 관리 장치 및 멀티프로세서 시스템용 관리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체{MULTIPROCESSOR SYSTEM, MANAGEMENT DEVICE FOR MULTIPROCESSOR SYSTEM, AND COMPUTER-READABLE RECORDING MEDIUM IN WHICH MANAGEMENT PROGRAM FOR MULTIPROCESSOR SYSTEM IS RECORDED}
본 발명은, CPU(Central Processing Unit;연산 처리부), 메모리 등의 복수의 리소스를 복수의 파티션에 할당하여 분할하고, 각 파티션에 속하는 리소스를 사용해서 파티션마다 데이터 처리를 실행하는, 멀티프로세서 시스템 등의 계산기 시스템에 이용하는 기술에 관한 것이다.
일반적으로, 다수의 CPU, 메모리, I/O(입출력부)로 구성되는 대규모 멀티프로세서 시스템에서는, NUMA(Non-Uniform Memory Access)라고 불리는 아키텍처가 채용되는 경우가 많다. 이 NUMA 아키텍처에서는, 메모리의 레이턴시(latency)가 균일하지 않은 것, 즉, 「가까운 메모리」와 「먼 메모리」가 존재하는 것이 특징이다. 여기에서, 레이턴시란, CPU 등이 메모리에 액세스했을 때에 메모리로부터의 응답 시간에 대응하는 것으로, 레이턴시가 작은 메모리는 「가까운 메모리」, 레이턴시가 큰 메모리는 「먼 메모리」라고 정의할 수 있다.
또한, 대규모 멀티프로세서 시스템은, 상술한 바와 같이, 다수의 CPU나 메모리, I/O를 리소스로서 구비하여 구성되어 있다. 이러한 대규모 멀티프로세서 시스템에서는, 다수의 리소스를 복수의 파티션으로 분할하고 각 파티션에 있어서 독립된 OS(Operating System)를 동작시키는 파티셔닝 기술이 사용되고 있다.
또한, 예를 들면, 하기 특허문헌 1, 2에는, 논리 파티션(소프트웨어 파티션) 기술이 개시되어 있다. 이 논리 파티션 기술에서는, 호스트 OS(제어 호스트) 상에서 복수의 OS가 논리 파티션마다 기동된다. 각 논리 파티션에는 논리 프로세서 등이 할당되어 있고, 호스트 OS에 의해, 논리 프로세서 등과 물리 프로세서 등이 대응지어지면서, 각 OS에 의한 처리가 논리 파티션마다 실행된다. 논리 파티션 기술은, 가상적인 파티션을 이용하는 것임에 대해, 본건은, 리소스를 분할해서 이용하는 하드웨어 파티션 기술, 즉, 파티션마다 물리적으로 상이한 리소스를 이용하는 기술을 전제로 하고 있다.
일본국 특개2006-127462호 공보 일본국 특개2007-193776호 공보
그런데, NUMA 아키텍처를 채용한 멀티프로세서 시스템에서 파티션 분할을 행할 경우, 처리 성능의 저하를 초래하지 않기 위해서도, 파티션의 구성 요소(리소스)가, 적극, 복수의 노드에 걸치지 않는 시스템 구성으로 하는 것이 바람직하다. 따라서, 통상, 노드 단위로 파티션 분할을 행한다. 그러나, 분할 후, 각 파티션 내에 있어서 CPU나 메모리의 추가/삭감/고장에 따른 변경 등을 행하고 있는 동안에, 예기치 않게, 파티션의 구성 요소가 복수의 노드에 걸치게 되는 경우가 있다(예를 들면 도 5 참조).
파티션 구성이 부적절할 경우, 예를 들면, 상술한 바와 같이 파티션의 구성 요소가 복수의 노드에 걸치는 바와 같은 경우, 이하와 같은 불량이 생긴다. 즉, 프로세서(CPU)가 「먼 메모리」에 액세스하게 되어, 메모리 레이턴시가 증가한다. 또한, 메모리 액세스를 행하는데도 보다 많은 통신로를 경유하게 되어, 멀티프로세서 시스템 전체에서의 트래픽이 불필요하게 증가하게 된다. 그 결과, 시스템 전체의 처리 성능이 저하하게 된다.
본 발명의 목적의 하나는, 시스템의 특성을 의식한 리소스 배분을 실현함으로써 파티션 분할의 최적화를 도모하고, 시스템 전체의 처리 성능을 향상시키는 것이다.
또한, 상기 목적에 한하지 않고, 후술하는 발명을 실시하기 위한 최선의 형태에 나타내는 각 구성에 의해 도출되는 작용 효과로서, 종래의 기술에 의해서는 얻을 수 없는 작용 효과를 나타내는 것도 본 발명의 다른 목적의 하나로서 위치부여할 수 있다.
여기에 개시되는 멀티프로세서 시스템은, 복수의 리소스, 복수의 파티션 관리부 및 시스템 관리부를 갖고 있다. 상기 복수의 리소스는, 복수의 파티션 중 어느 하나에 대하여 단독으로 할당 가능한 것이다. 상기 복수의 파티션 관리부는, 상기 복수의 파티션의 각각에 속하는 리소스를 관리하는 것이다. 상기 시스템 관리부는, 상기 복수의 리소스 및 상기 복수의 파티션 관리부를 관리하는 것이다. 그리고, 상기 시스템 관리부는, 제 1 테이블 기억 수단, 수집 수단, 제 2 테이블 기억 수단, 산출 수단 및 배분 수단을 갖고 있다. 여기에서, 상기 제 1 테이블 기억 수단은, 상기 복수의 리소스 상호간의 거리에 관련되는 거리 정보를 정의하는 제 1 테이블을 기억하는 것이다. 상기 수집 수단은, 상기 복수의 리소스 상호간의 데이터 이동 정보를 수집하는 것이다. 상기 제 2 테이블 기억 수단은, 상기 수집 수단에 의해 수집된 상기 데이터 이동 정보에 의거하는 상기 복수의 리소스 상호간의 데이터 이동 빈도를 유지하는 제 2 테이블을 기억하는 것이다. 상기 산출 수단은, 상기 제 1 테이블의 거리 정보와 상기 제 2 테이블의 데이터 이동 빈도에 의거하여, 각 파티션에 대한, 상기 복수의 리소스의 최적 배분을 산출하는 것이다. 상기 배분 수단은, 상기 복수의 파티션에 대한 상기 복수의 리소스의 배분 상태가 상기 산출 수단에 의해 산출된 상기 최적 배분의 상태가 되도록, 상기 복수의 파티션 관리부를 통해서 상기 복수의 파티션에 상기 복수의 리소스를 배분하는 것이다.
또한, 여기에 개시되는 멀티프로세서 시스템용 관리 장치는, 상술한 복수의 리소스 및 복수의 파티션 관리부를 갖는 멀티프로세서 시스템에 있어서, 상기 복수의 리소스 및 상기 복수의 파티션 관리부를 관리하는 것이다. 그리고, 이 관리 장치는, 상술한 제 1 테이블 기억 수단, 수집 수단, 제 2 테이블 기억 수단, 산출 수단 및 배분 수단을 갖고 있다.
또한, 여기에 개시되는 멀티프로세서 시스템용 관리 프로그램은, 상술한 복수의 리소스 및 복수의 파티션 관리부를 갖는 멀티프로세서 시스템에 있어서, 상기 복수의 리소스 및 상기 복수의 파티션 관리부를 관리하는 관리 장치(시스템 관리부)로서, 컴퓨터를 기능시키는 것이다. 이 프로그램은, 상술한 제 1 테이블 기억 수단, 수집 수단, 제 2 테이블 기억 수단, 산출 수단 및 배분 수단으로서, 상기 컴퓨터를 기능시킨다. 또한, 여기에 개시되는, 컴퓨터 판독 가능한 기록 매체는, 상술한 멀티프로세서 시스템용 관리 프로그램을 기록한 것이다.
개시의 기술에 따르면, 멀티프로세서 시스템 내의 리소스간의 거리 정보와 데이터 이동 빈도에 의거하여, 각 파티션에 대한 리소스의 최적 배분이 통계적으로 산출되고, 그 최적 배분에 따른 리소스 배분이 행해진다. 이것에 의해, 시스템의 특성을 의식한 리소스 배분이 실현되고, 파티션 분할이 최적화되어, 시스템 전체의 처리 성능이 대폭 향상한다.
도 1은 본 발명의 일 실시형태로서의 멀티프로세서 시스템의 구성을 나타내는 블록도.
도 2는 본 실시형태의 액세스 레이턴시 테이블(제 1 테이블)의 일례를 나타내는 도면.
도 3은 본 실시형태의 리소스간 데이터 이동 빈도 테이블(제 2 테이블)의 일례를 나타내는 도면.
도 4는 도 1에 나타내는 멀티프로세서 시스템용 관리 장치의 동작에 대해서 설명하기 위한 플로우차트.
도 5는 도 1에 나타내는 멀티프로세서 시스템에 있어서의 파티션 분할의 구체적인 최적화 동작 예를 설명하기 위해 동(同) 시스템의 최적화 전의 상태를 나타내는 도면.
도 6은 도 1에 나타내는 멀티프로세서 시스템에 있어서의 파티션 분할의 구체적인 최적화 동작 예를 설명하기 위해 동 시스템의 최적화 후의 상태를 나타내는 도면.
이하, 도면을 참조해서 본 발명의 실시형태를 설명한다.
도 1은 본 발명의 일 실시형태로서의 멀티프로세서 시스템의 구성을 나타내는 블록도이다. 이 도 1에 나타내는 본 실시형태의 멀티프로세서 시스템의 예인 서버(1)는, CPU, 메모리 등의 복수의 리소스(리소스 그룹(10) 참조)를 복수의 파티션에 할당하여 분할하고, 각 파티션에 속하는 리소스를 사용해서 파티션마다 데이터 처리를 실행하는 것이다. 또한, 본 실시형태에서는, 2개의 파티션(P1, P2)이 설정되어 있는 경우에 대해서 설명하지만 파티션의 수는 2에 한정되는 것은 아니다. 이하, 멀티프로세서 시스템(1)을 단순히 「시스템(1)」이라고 칭할 경우가 있다.
본 실시형태의 멀티프로세서 시스템(1)은, 리소스 그룹(10), 파티션 관리부(21, 22) 및 서버 관리 장치(30)를 갖고 있다. 여기에서, 파티션 관리부(21, 22) 및 서버 관리 장치(30)는, 각각, 예를 들면, 보드(board) 단위로 구성되어 있다.
리소스 그룹(10)은, 본 실시형태에서는 P1, P2의 복수의 파티션 중 어느 하나에 대하여 단독으로 할당 가능한, CPU나 메모리 등의 복수의 리소스를 포함하고 있다. 보다 구체적으로, 본 실시형태에 있어서, 리소스 그룹(10)은, 8개의 노드(N1~N8)와, 이들 8개의 노드(N1~N8)의 상호간을 통신 가능하게 접속하는 크로스바 스위치(CB1, CB2)를 포함하고 있다.
그리고, 4개의 노드(N1~N4)는, 크로스바 스위치(CB1)에 접속되어, 크로스바 스위치(CB1)를 통해서 서로 통신 가능하게 되어 있다. 마찬가지로, 4개의 노드(N5~N8)는, 크로스바 스위치(CB2)에 접속되어, 크로스바 스위치(CB2)를 통해서 서로 통신 가능하게 되어 있다. 또한, 크로스바 스위치(CB1)와 크로스바 스위치(CB2)는 접속되어 있어, 4개의 노드(N1~N4)와 4개의 노드(N5~N8)의 사이에서는, 크로스바 스위치(CB1 및 CB2)를 통해서 상호 통신이 가능하게 되어 있다.
각 노드(N1~N8)는, 시스템(1)에 있어서의 복수의 리소스를 그 물리적인 배치에 의해 분할한 리소스의 집합이며, 각 리소스는 단지 1개의 노드에 속해 있다. 예를 들면, 각 노드(Ni(i=1~8))는 리소스로서, 4개의 CPU(Ci1~Ci4)와, 1개의 메모리(Mi)와, 1개의 메모리 컨트롤러(MCi)와, 1개의 데이터 이동 정보 수집용 테이블(Ti)을 포함하고 있다.
여기에서, 1개의 메모리(Mi)는, 예를 들면, 복수의 DIMM(Double Inline Memory Module)의 조합으로서 구성되어 있다. 또한, 메모리 컨트롤러(MCi)는, CPU(Ci1~Ci4), 메모리(Mi) 및 크로스바 스위치(CB1)(또는 CB2)의 상호간의 데이터 이동을 제어하는 기능을 갖고 있다. 또한, 메모리 컨트롤러(MCi)는, 메모리(Mi)에 대한 리드 리퀘스트(read request)가 있었을 경우, 어느 CPU로부터의 리드 리퀘스트인지에 관한 데이터 이동 정보를 테이블(Ti)에 기록하는 기능도 갖고 있다. 각 테이블(Ti)에 기록된 데이터 이동 정보는, 후술하는 바와 같이, 리소스간 데이터 이동 정보 수집용 버스(B1 또는 B2)를 통해서, 서버 관리 장치(30)의 수집 수단(32)에 의해 수집된다.
또한, 도 1, 도 5 및 도 6에서는, 노드(N1, N2, N5, N6)에 있어서의, CPU(C11~C14, C21~C24, C51~C54, C61~C64); 메모리(M1, M2, M5, M6); 메모리 컨트롤러(MC1, MC2, MC5, MC6); 테이블(T1, T2, T5, T6)이 도시되어 있다. 한편, 노드(N3, N4, N7, N8)에 있어서의, CPU(C31~C34, C41~C44, C71~C74, C81~C84); 메모리(M3, M4, M7, M8); 메모리 컨트롤러(MC3, MC4, MC7, MC8); 테이블(T3, T4, T7, T8)의 도시는 생략되어 있다.
또한, 하드웨어의 구조에 따라서는, CPU와 메모리의 특정한 세트에 대해서는, CPU를 메모리로부터 분리하는 것이 불가능해질 경우도 있지만, 여기에서는, CPU와 메모리의 모든 세트에 대해서 분리 가능한 것으로 설명한다. 단, 본 발명은, CPU와 메모리가 분리 불가능인지 분리 가능인지에 한정되는 것은 아니다.
또한, 도 1, 도 5 및 도 6에 나타내는 시스템(1)에서는, 노드 수가 8이며, 크로스바 스위치 수가 2이고, 또한, 각 노드(Ni)에 있어서의 CPU 수가 4이고 메모리 수가 1인 경우에 대해서 설명했지만, 본 발명은, 이들 수에 한정되는 것은 아니다.
파티션 관리부(21, 22)는, 각각, 파티션(P1, P2)에 대응해서 구비되고, 파티션(P1, P2)에 속하는 CPU나 메모리 등의 리소스를 관리하는 것이다. 또한, 각 파티션 관리부(21, 22)는, 각 파티션(P1, P2)에 관한 조건 테이블에 의거하여, 각 파티션(P1, P2)에 속하는 리소스를 인식한다. 그 인식 결과에 따라, 각 파티션 관리부(21, 22)는, 복수의 리소스를 파티션(P1, P2)의 각각에 할당하여 분할 배분하고, 각 파티션(P1, P2)에 속하는 리소스를 관리한다. 또한, 각 파티션 관리부(21, 22)에 있어서의 조건 테이블은, 서버 관리 장치(30)로부터 지시?설정된다.
서버 관리 장치(멀티프로세서 시스템용 관리 장치, 시스템 관리부)(30)는, 리소스 그룹(10)으로서 나타내지는 복수의 리소스 및 복수의 파티션 관리부(21, 22)를 관리하는 것으로, 기억부(31), 수집 수단(32), 산출 수단(33) 및 배분 수단(34)을 갖고 있다.
기억부(31)는, 예를 들면 RAM(Random Access Memory)에 의해 구성되고, 제 1 테이블로서의 액세스 레이턴시 테이블(31a)을 기억하는 제 1 테이블 기억 수단, 및, 제 2 테이블로서의 리소스간 데이터 이동 빈도 테이블(31b)을 기억하는 제 2 테이블 기억 수단으로서 기능하는 것이다.
여기에서, 액세스 레이턴시 테이블(노드간 거리 테이블)(31a)은, 도 1에 나타내는 시스템(1)의 리소스 그룹(10)에 속하는 복수의 리소스 상호간의 거리에 관련되는 거리 정보를 정의하는 것이다. 이 액세스 레이턴시 테이블(31a)에서는, 그 거리 정보로서, 예를 들면 도 2에 나타내는 바와 같이, 각 리소스가 속하는 노드간의 거리가, 보다 구체적으로는, 노드간의 실제의 액세스 레이턴시(액세스 대기 시간; 단위:nsec)가 정의되어 있다.
이 액세스 레이턴시 테이블(31a)로 정의되는 거리 정보, 즉 액세스 레이턴시는, 시스템(1), 혹은 시스템(1)에 포함되는 리소스 그룹(10)의 성능으로서 성능 시험에 의해 미리 취득되는 것으로, 미리 주어져서 기억부(31)의 액세스 레이턴시 테이블(31a)에 등록된다.
여기에서, 도 2는, 본 실시형태의 액세스 레이턴시 테이블(31a)의 일례를 나타내는 도면이다.
예를 들면, 도 2에 나타내는 액세스 레이턴시 테이블(31a)에 있어서, 노드(N1)와 노드(N2)의 거리는 100nsec, 노드(N3)와 노드(N8)의 거리는 200nsec로 정의되어 있다. 또한, 제 1 테이블로서의 액세스 레이턴시 테이블(31a)에 있어서의 값은, 본 실시형태와 같이 액세스 레이턴시나, 그 액세스 레이턴시에 비례한 값에 한정되는 것은 아니다. 액세스 레이턴시 테이블(31a)에 있어서의 값은, 리소스 상호간의 거리에 관련되는 것이면, 실제의 액세스 레이턴시 이외에, 예를 들면, 데이터가 통과하는 통신로의 스루풋(throughput) 등에 의해 가중한 값을 사용할 수도 있다.
또한, 이하의 설명에서는, 액세스 레이턴시 테이블(31a)에 의해 정의되는 노드(Ni)와 노드(Nj)의 거리, 즉 액세스 레이턴시를 distance(i, j)로 해서, 하기와 같이 기재한다.
distance(i, j) = 50(i=j)
100((i≤4 또한 j≤4 또한 i≠j) 또는
(5≤i 또한 5≤j 또한 i≠j))
200(그 이외)
리소스간 데이터 이동 빈도 테이블(31b)은, 수집 수단(32)에 의해 수집된 데이터 이동 정보에 의거하는 복수의 리소스 상호간의 데이터 이동 빈도를 유지하는 것이다.
여기에서, 수집 수단(32)은, 각 노드(Ni)에 있어서의 테이블(Ti)에 메모리 컨트롤러(MCi)에 의해 기록된 데이터 이동 정보를, 버스(B1, B2)를 통해서 각 테이블(Ti)로부터 수신해서 수집하는 것이다. 그 데이터 이동 정보는, 상술한 바와 같이, 어느 CPU로부터 메모리(Mi)에 대한 리드 리퀘스트를 받았는지를 나타내는 정보이다.
그리고, 수집 수단(32)은, 각 테이블(Ti)로부터 수신한 데이터 이동 정보를, 리소스간 데이터 이동 빈도 테이블(31b)에 등록함으로써 통합하는 기능도 갖고 있다. 이것에 의해, 리소스간 데이터 이동 빈도 테이블(31b)에는, 어느 CPU가 어느 메모리에 대하여, 몇 회, 리드 리퀘스트를 발행했는지에 관한 정보, 예를 들면 통신 횟수/데이터 이동 횟수/리드 액세스 횟수가, 데이터 이동 빈도로서 등록된다.
또한, 여기에서는, 리드 리퀘스트에 대해서 계수를 행하고 있지만, 라이트 리퀘스트(write request), 즉 CPU로부터 메모리로의 기입 요구에 대한 데이터 이동 정보를 메모리 컨트롤러(MCi)나 테이블(Ti)에 의해 수집해도 된다. 이 경우, 리소스간 데이터 이동 빈도 테이블(31b)에는, 어느 CPU가 어느 메모리에 대하여, 몇 회, 라이트 리퀘스트를 발행했는지에 관한 정보, 즉 통신 횟수/데이터 이동 횟수/라이트 액세스 횟수가, 데이터 이동 빈도로서 등록된다. 또한, 리드 리퀘스트에 관련되는 데이터 이동 횟수만을 데이터 이동 빈도로서 계수해도 되고, 라이트 리퀘스트에 관련되는 데이터 이동 횟수만을 데이터 이동 빈도로서 계수해도 되며, 리드 리퀘스트 및 라이트 리퀘스트의 양쪽에 관련되는 데이터 이동 횟수의 합계값을 데이터 이동 빈도로서 계수해도 된다.
이렇게, 본 실시형태에서는, 메모리 컨트롤러(MCi), 테이블(Ti), 버스(B1, B2), 리소스간 데이터 이동 빈도 테이블(31b) 및 수집 수단(32)에 의해, 복수의 리소스 상호간의 데이터 이동 정보를 수집하는 수집 수단이 구성된다. 이 수집 수단을 이용해서, CPU나 메모리 등의 리소스간에서 통신이 행해질 때에, 어디로부터 어디로의 데이터 이동이 행해졌는지가 식별되어 데이터 이동 빈도로서 리소스간 데이터 이동 빈도 테이블(31b)에 기록된다.
여기에서, 도 3은 본 실시형태의 리소스간 데이터 이동 빈도 테이블(31b)의 일례를 나타내는 도면이다. 이 도 3에 나타내는 리소스간 데이터 이동 빈도 테이블(31b)에는, 각 CPU의 각 메모리에 대한 액세스 횟수의 구체예가 기록되어 있다. 리소스간 데이터 이동 빈도 테이블(31b)로부터는, 예를 들면, CPU(C11)는, 메모리(M1)에 대하여 1000회의 액세스를, 메모리(M5)에 대하여 500회의 액세스를 행하고 있는 것을 알 수 있다. 또한, 예를 들면, CPU(C23)는, 메모리(M2)에 대하여 1000회의 액세스를 행하고 있는 것을 알 수 있다.
또한, 도 3에 나타내는 리소스간 데이터 이동 빈도 테이블(31b)에서는, 각 CPU가 속하는 노드 번호(i)가 #NODE 난에 기입되어 있는 동시에, 각 CPU가 속하는 파티션 번호가 #PART 난에 기재되어 있다. 여기에서는, 도 5를 참조하면서 후술하는 예와 마찬가지로, 8개의 CPU(C11, C12, C13, C14, C21, C22, C51, C52) 및 2개의 메모리(M1, M5)가 파티션(P1)에 속하고, 4개의 CPU(C23, C24, C61, C62) 및 1개의 메모리(M2)가 파티션(P2)에 속해 있다.
이하의 설명에서는, CPU(Cik(i=1~8, k=1~4))와 메모리(Mn(n=1~8)) 사이의 데이터 이동 횟수(액세스 횟수)로서, 리소스간 데이터 이동 빈도 테이블(31b)에 등록된 것을, F(Cik, Mn)로 기재한다. 예를 들면, CPU(C13)와 메모리(M5) 사이의 등록 데이터 이동 횟수 F(C13, M5)=1500이다.
또한, CPU(Cik)와 메모리(Mn) 사이의 거리, 즉 노드간 거리 혹은 액세스 레이턴시를 D(Cik, Mn)로 기재하면, D(Cik, Mn)=distance(CPU가 속하는 노드의 노드 ID 번호 i, 메모리가 속하는 노드의 노드 ID 번호 n)=distance(i, n)이 된다. 예를 들면 CPU(C61)와 메모리(M2)의 거리는, D(C61, M2)=distance(6, 2)이며, 도 2에 나타내는 액세스 레이턴시 테이블(31a)을 참조하면, 200이다.
산출 수단(33)은, 액세스 레이턴시 테이블(31a)의 거리 정보(액세스 레이턴시/메모리 레이턴시)와 리소스간 데이터 이동 빈도 테이블(31b)의 데이터 이동 빈도에 의거하여, 각 파티션(P1, P2)에 대한, 복수의 리소스의 최적 배분을 산출하는 것이다.
이 때, 산출 수단(33)은, 우선, 액세스 레이턴시 테이블(31a)의 거리 정보와 리소스간 데이터 이동 빈도 테이블(31b)의 데이터 이동 빈도에 의거하여, 각 파티션(P1, P2)에 할당되는 복수의 리소스의 모든 조합의 각각에 대해서 평균 거리, 즉 평균 메모리 레이턴시를 산출한다.
즉, 산출 수단(33)은, 상기 조합마다, 리소스간 데이터 이동 빈도 테이블(31b)에 데이터 이동 빈도로서 기록된 각 메모리(Mn)에 대한 각 CPU(Cik)의 액세스 횟수 F(Cik, Mn)와, 액세스 레이턴시 테이블(31a)에 거리 정보로서 정의된 대응 메모리 레이턴시, 즉 노드간 액세스 레이턴시 D(Cik, Mn)=distance(i, n)과의 적(積)의 총합을 산출한다. 그리고, 산출 수단(33)은, 당해 적의 총합을 액세스 횟수의 총합으로 제산(除算)한 값을, 당해 조합에 대한 평균 거리로서 산출한다. 이 후, 산출 수단(33)은, 복수의 리소스의 모든 조합 중, 그 조합에 대해서 산출된 평균 거리가 최소로 되는 리소스의 조합을 최적 배분으로서 선택한다.
여기에서, 상술한 바와 같이, 파티션(P1)에는 8개의 CPU 및 2개의 메모리가 할당됨과 함께, 파티션(P2)에는 4개의 CPU 및 1개의 메모리가 할당되는 것으로 한다. 이러한 경우에, 예를 들면, 파티션(P2)에 대해서 보면, 노드(N1~N8)에 있어서의 32개의 CPU 및 8개의 메모리로부터, 4개의 CPU 및 1개의 메모리를 선택해서 파티션(P2)에 할당한다고 하면, 다수의 조합을 생각할 수 있다. 산출 수단(33)은, 그 각 조합에 대한 평균 거리 즉 평균 메모리 레이턴시를, 이하와 같이 액세스 레이턴시 테이블(31a), 리소스간 데이터 이동 빈도 테이블(31b)의 데이터에 의거해서 산출한다.
여기에서는, 간단하게 하기 위해, 도 5에 나타내는 바와 같이 4개의 CPU(C23, C24, C61, C62) 및 1개의 메모리(M2)를 할당한 파티션(P2)에 대한 평균 메모리 레이턴시를, 도 2 및 도 3에 각각 나타내는 액세스 레이턴시 테이블(31a) 및 리소스간 데이터 이동 빈도 테이블(31b)의 데이터에 의거해서 산출하는 경우에 대해서 구체적으로 설명한다.
우선, 파티션(P2)에서의 메모리 액세스 횟수의 총수는, 도 3에 나타내는 리소스간 데이터 이동 빈도 테이블(31b)에 기록된 수치에 의거하여,
F(C23, M2)+F(C24, M2)+F(C61, M2)+F(C62, M2)
= 1000+4000+3000+2000
= 10000
이 된다.
따라서, 도 5에 나타내는 리소스 조합의 파티션(P2)에서의 평균 메모리 레이턴시는, 도 2에 나타내는 액세스 레이턴시 테이블(31a)에 기록된 메모리 레이턴시 및 도 3에 나타내는 리소스간 데이터 이동 빈도 테이블(31b)에 기록된 액세스 횟수에 의거해서 산출된다.
[도 5에 나타내는 파티션(P2)의 평균 메모리 레이턴시]
= Σ'D(C,M)*F(C,M)/10000
= {D(C23,M2)*F(C23,M2)+D(C24,M2)*F(C24,M2)
+D(C61,M2)*F(C61,M2)+D(C62,M2)*F(C62,M2)}/10000
= (50*1000+50*4000+200*3000+200*2000)/10000
= 1250000/10000
= 125 nsec
또한, Σ'은, 파티션(P2)에 속하는 CPU 및 메모리의 모든 조합에 대해서 산출되는 D(C,M)*F(C,M)의 총합을 의미하고 있다.
이것에 대하여, 파티션(P2)에 할당되는 리소스 중, 도 5에 나타내는 CPU(C23, C24) 및 메모리(M2)가, 도 6에 나타내는 바와 같이, 각각 CPU(C63, C64) 및 메모리(M6)로 치환된 경우의 평균 메모리 레이턴시는, 이하와 같이 산출된다. 이 때, 메모리(M6)에 대한 CPU(C63, C64)의 액세스 횟수는, 각각, 메모리(M2)에 대한 CPU(C23, C24)와 동일한 값으로 한다. 즉,
F(C63,M6)=F(C23,M2)=1000
F(C64,M6)=F(C24,M2)=4000
이며, 도 6에 나타내는 파티션(P2)에서의 평균 메모리 레이턴시는, 이하와 같이 산출된다.
[도 6에 나타내는 파티션(P2)의 평균 메모리 레이턴시]
= Σ'D(C,M)*F(C,M)/10000
= {D(C63,M6)*F(C63,M6)+D(C64,M6)*F(C64,M6)
+D(C61,M6)*F(C61,M6)+D(C62,M6)*F(C62,M6)}/10000
= (50*1000+50*4000+50*3000+50*2000)/10000
= 500000/10000
= 50 nsec
도 6에 나타내는 파티션(P2)의 평균 메모리 레이턴시는, 도 5에 나타내는 파티션(P2)의 평균 메모리 레이턴시의 40%(=50/125)로 감소하여, 시스템(1)의 대폭적인 성능 개선이 예상된다.
상술한 바와 같이 해서, 산출 수단(33)은, 모든 리소스의 조합에 대하여 평균 거리를 산출하고, 그 평균 거리를 최소로 하는 리소스 조합을, 최적인 파티션 구성(최적 배분)으로서 구한다.
즉, 일반적으로 기재하면, 산출 수단(33)은, τ:{CPU의 집합}→{CPU의 집합}, ρ:{메모리의 집합}→{메모리의 집합}에 대하여,
평균 거리 AvgD(τ,ρ)=Σ'D(τ(C),ρ(M))*F(C,M)/10000
을 계산하고, 이것을 최소로 하는 τ,ρ를 구한다. 그 결과 얻어진 τ(파티션(P2)의 CPU의 집합) 및 ρ(파티션(P2)의 메모리의 집합)이, 평균 레이턴시를 최소로 하는, 최적인 파티션(P2)의 리소스 구성(리소스 배분)이 된다. 또한, Σ'은, 상술과 마찬가지로, 파티션(P2)에 속하는 CPU 및 메모리의 모든 조합에 대해서 산출되는 D(τ(C),ρ(M))*F(C,M)의 총합을 의미하고 있다.
또한, 파티션(P1) 및 파티션(P2)에 각각 속하는 리소스는, 다른 파티션에 속할 수는 없다. 따라서, 실제로는, 산출 수단(33)은, 파티션(P1) 및 파티션(P2)의 각각에 속하는, 12개의 CPU 및 3개의 메모리의 조합을 순차 선택하고, 각 조합에 대해서, 상술과 마찬가지로 해서 평균 메모리 레이턴시를 산출하고, 그 평균 거리에 의거하여 최적 배분, 즉 평균 거리가 최소로 되는 리소스 조합을 선택하게 된다.
배분 수단(34)은, 각 파티션(P1, P2)에 대한 리소스 배분 상태가 산출 수단(33)에 의해 산출된 최적 배분의 상태로 되도록, 각 파티션 관리부(21, 22)를 통해서 각 파티션(P1, P2)에 대하여 CPU(Cik) 및 메모리(Mn)를 배분하는 것이다. 이 때, 배분 수단(34)은, 각 파티션 관리부(21, 22)에 대하여 최적 배분에 관한 정보를 통지하고, 각 파티션 관리부(21, 22)에 있어서의, 각 파티션(P1, P2)에 관한 조건 테이블의 내용을 재기입하여 변경한다. 여기에서, 배분 수단(34)으로부터 각 파티션 관리부(21, 22)에 통지되는 최적 배분에 관한 정보는, 각 파티션(P1, P2)에 포함되어야 할 CPU(Cik) 및 메모리(Mn)를 지정하는 정보이다.
이 배분 수단(34)에 의한 배분 변경 처리는, 심야 등, 시스템(1)의 사용 빈도가 낮은 시간대에, 변경 대상 리소스가 속하는 노드를 포함하는 보드의 전원을 내린 뒤에 실행된다. 그 배분 변경 처리시에는, 각 파티션 관리부(21, 22)에 있어서의 조건 테이블의 재기입이 행해짐과 함께, 변경 대상의 CPU 내 데이터나 메모리의 기억 데이터를 변경 후의 CPU나 메모리로 이동하는 처리가 실행된다. 이것에 의해, 각 파티션(P1, P2) 내의 리소스의 구성이 최적인 파티션 구성으로 변경된다. 단, 본 발명은, 이러한 배분 변경 처리에 한정되는 것이 아니며, 보드의 활성 교환 등에 의해 배분 변경 처리를 행해도 된다.
이 배분 수단(34)에 의한 리소스 배분 변경은, 현상(現狀)의 파티션 구성에서의 평균 거리보다 작은 평균 거리의 파티션 구성이 존재할 경우에 실행된다. 특히, 그 때, 배분 변경 후의 파티션 구성에 의해, 현상, 즉 배분 변경 전의 파티션 구성보다 소정 기준 이상의 성능 개선이 얻어지는 경우에 리소스 배분 변경이 실행된다. 보다 구체적으로는, 상술과 같이 산출되는 성능 개선율 [배분 변경 후의 평균 거리]/[배분 변경 전의 평균 거리]가 소정값 이하로 될 경우에, 상기 리소스 배분 변경을 실행하는 것이 바람직하다.
또한, 상술한 산출 수단(33) 및 배분 수단(34)에 의한 처리는, 예를 들면, 신규 파티션 추가, 소정 시간 경과, 유저(서버 관리자)의 리퀘스트 등을 트리거로 해서, 심야 등의 시스템(1)의 사용 빈도가 낮은 시간대에 실행된다.
또한, 산출 수단(33)은, 최적 배분으로 되는 리소스 조합이 복수 존재할 경우에는, 후술하는 배분 수단(34)에 의한 리소스 배분을 행할 때에 리소스 배분 변경량이 가장 적어지는, 리소스 조합을, 최적 배분으로서 선택하는 것이 바람직하다. 이것에 의해, 리소스 배분 변경에 따라, 각 파티션 관리부(21, 22)에 있어서의 조건 테이블의 재기입 변경이나, CPU/메모리에 있어서의 데이터 이동 등의 처리를 최소한으로 억제하여, 효율적으로 배분 변경을 행할 수 있다.
다음으로, 도 4에 나타내는 플로우차트(스텝 S1~S8)에 따라, 상술과 같이 구성된 본 실시형태의 멀티프로세서 시스템(1)(서버 관리 장치(30))의 동작에 대해서, 도 5 및 도 6을 참조하면서 설명한다. 또한, 도 5 및 도 6은, 모두, 도 1에 나타내는 시스템(1)에 있어서의 파티션 분할의 구체적인 최적화 동작예를 설명하기 위한 것으로, 도 5는 시스템(1)의 최적화 전의 상태를 나타내는 도면, 도 6은 시스템(1)의 최적화 후의 상태를 나타내는 도면이다.
여기에서, 각각의 파티션이 동일한 양의 리소스를 사용하고 있었다고 해도, 각 파티션(P1, P2)에 있어서의 리소스의 조합에 따라서는, 시스템(1)의 성능은 크게 다르다. 그래서, 본 실시형태에서는, 각 파티션(P1, P2)에 대하여 리소스를 재배분하여, 시스템(1)의 처리 성능을 최적화한다.
도 5에 나타내는 예에서는, 8개의 CPU(C11, C12, C13, C14, C21, C22, C51, C52) 및 2개의 메모리(M1, M5)가 파티션(P1)에 속하고, 4개의 CPU(C23, C24, C61, C62) 및 1개의 메모리(M2)가 파티션(P2)에 속해 있다. 즉, 파티션(P1)에 속하는 CPU는 3개의 노드(N1, N2, N5)에 분산 배치되고, 파티션(P1)에 속하는 메모리(M1, M5)는 2개의 노드(N1, N5)에 분산 배치되어 있다. 또한, 파티션(P2)에 속하는 CPU는 2개의 노드(N2, N6)에 분산 배치되어 있다. 이렇게 동일 파티션에 있어서의 CPU와 메모리가 상이한 노드에 분산 배치되어 있으면, 노드간 통신을 행할 필요가 있어, 메모리 레이턴시가 악화하게 된다. 예를 들면, 노드(N6)에 속하는 CPU(C61)는, 다른 노드(N2)에 있어서의 메모리(M2)에 액세스할 필요가 있어, 메모리 레이턴시가 악화하게 된다.
이것에 대하여, 도 6에 나타내는 예는, 도 5에 나타내는 바와 같이 배분된 리소스에 대하여, 서버 관리 장치(30)가, 예를 들면 도 2나 도 3에 나타내는 액세스 레이턴시 테이블(31a)이나, 리소스간 데이터 이동 빈도 테이블(31b)을 이용하여 도 4에 나타내는 순서로 최적화 처리를 행한 결과 얻어진, 최적화 후의 상태이다. 이 도 6에 나타내는 예에서는, 8개의 CPU(C11, C12, C13, C14, C21, C22, C23, C24) 및 2개의 메모리(M1, M2)가 파티션(P1)에 속하고, 4개의 CPU(C61, C62, C63, C64) 및 1개의 메모리(M6)가 파티션(P2)에 속해 있다.
이렇게 재배분을 행함으로써, 파티션(P2)에 속하는 CPU 및 메모리는 1개의 노드(N6) 내에 배치된다. 따라서, CPU가 메모리 액세스를 행할 때에는, 반드시 자기(自) 노드(N6)의 메모리(M6)에 액세스하게 되어, 메모리 레이턴시는 최소가 된다.
또한, 파티션(P1)에 속하는 CPU 및 메모리는, 동일한 크로스바 스위치(CB1)에 수용된 2개의 노드(N1, N2) 내에 배치된다. 따라서, 이 경우도, CPU가 메모리 액세스를 행할 때에는, 자기 노드의 메모리 혹은 동일 크로스바 스위치(CB1)에 수용된 다른 노드의 메모리에 액세스하게 되어, 메모리 레이턴시는 최소가 된다.
그런데, 본 실시형태의 서버 관리 장치(30)가 동작을 개시하면, 도 4에 나타내는 바와 같이, 우선, 액세스 레이턴시 테이블(31a)을 초기화하고 나서(스텝 S1), 시스템(1)의 운용을 개시한다(스텝 S2). 또한, 액세스 레이턴시 테이블(31a)의 초기화에서는, 본 시스템(1)의 리소스 그룹(10)에 대응하는 액세스 레이턴시 테이블(31a)이 기억부(31)에 등록 저장된다. 또한, 동작 개시시의 초기화시에는, 각 노드(Ni)에 있어서의 테이블(Ti)의 초기화(클리어)도 행해진다.
이 후, 수집 수단(32)에 의해, 리소스간의 데이터 이동 정보의 수집이 개시된다(스텝 S3). 이 수집 처리에서는, 각 노드(Ni)에 있어서의 테이블(Ti)에 기록된 데이터 이동 정보가, 버스(B1, B2)를 통해서 각 테이블(Ti)로부터 수집되고, 리소스간 데이터 이동 빈도 테이블(31b)에 등록된다. 이것에 의해, 리소스간 데이터 이동 빈도 테이블(31b)에는, 리소스 그룹(10)에 있어서, 어느 CPU가 어느 메모리에 대하여, 몇 회, 리퀘스트를 발행했는지에 관한 정보, 즉 통신 횟수/데이터 이동 횟수/리드 액세스 횟수 등이, 데이터 이동 빈도로서 등록된다. 정보 분석의 트리거가 발생할 때까지는, 상술한 바와 같은 리소스간의 데이터 이동 정보의 수집이 계속된다(스텝 S4의 NO 루트).
그리고, 예를 들면, 신규 파티션 추가, 소정 시간 경과, 유저(서버 관리자)의 리퀘스트 등의 어떠한 트리거가 발생하면(스텝 S4의 YES 루트), 산출 수단(33)에 의해, 액세스 레이턴시 테이블(31a)의 거리 정보, 즉 액세스 레이턴시/메모리 레이턴시와 리소스간 데이터 이동 빈도 테이블(31b)의 데이터 이동 빈도에 의거하여, 각 파티션(P1, P2)에 대한, 리소스의 최적 배분이 산출된다(스텝 S5). 즉, 산출 수단(33)에 의해, 상술한 바와 같이, 모든 리소스의 조합에 대하여 평균 거리가 산출되고, 그 평균 거리를 최소로 하는 리소스 조합이, 최적인 파티션 구성(최적 배분)으로서 구해진다.
이 후, 서버 관리 장치(30)에서는, 산출 수단(33)에 의해 얻어진 최적인 파티션 구성(최적 배분)에 대해서, 상술한 바와 같은 성능 개선율 [배분 변경 후의 평균 거리]/[배분 변경 전의 평균 거리]가 산출된다. 그리고, 그 성능 개선율이 소정값 이하인지의 여부가 판단된다(스텝 S6).
성능 개선율이 소정값을 초과해 있을 경우, 현상의 파티션 구성보다 좋은 파티션 구성이 존재하지 않는다고 판단되어(스텝 S6의 NO 루트), 현상의 파티션 구성이 유지된다. 즉, 서버 관리 장치(30)는, 리소스간의 데이터 이동 정보의 수집을 계속하고, 스텝 S4의 처리로 이행한다.
한편, 성능 개선율이 소정값 이하일 경우, 현상의 파티션 구성보다 좋은 파티션 구성이 존재한다고 판단되어(스텝 S6의 YES 루트), 배분 수단(34)에 의한 배분 변경 처리가 실행된다(스텝 S7).
그 때, 예를 들면 도 5에 나타내는 파티션 구성으로부터 도 6에 나타내는 파티션 구성으로 배분 변경할 경우에는, 변경 대상으로 되는 노드(N1, N2, N5, N6)의 동작이 정지된다. 그리고, 배분 수단(34)에 의해, 각 파티션 관리부(21, 22)에 있어서의, 각 파티션(P1, P2)에 대한 조건 테이블의 내용이 재기입됨과 함께, 변경 대상의 CPU 내 데이터나 메모리의 기억 데이터가 변경 후의 CPU나 메모리로 이동된다. 이 때, 메모리(M2)의 기억 데이터가 메모리(M6)로 이동됨과 함께, CPU(C23, C24)의 내부 데이터가 CPU(C63, C64)로 이동된다. 그 후, 메모리(M5)의 기억 데이터가 메모리(M2)로 이동됨과 함께, CPU(C51, C52)의 내부 데이터가 CPU(C23, C24)로 이동된다. 이러한 데이터 이동 처리를 행하고 나서, 노드(N1, N2, N5, N6)의 전원이 투입되어, 각 파티션(P1, P2) 내의 리소스의 구성이 최적인 파티션 구성(최적 배분)으로 변경된다.
파티션 구성의 변경을 종료하면, 리소스간 데이터 이동 빈도 테이블(31b)이나 테이블(T1, T2, T5, T6)에 있어서, 변경 대상으로 된 리소스에 관련되는 데이터 이동 빈도나 데이터 이동 정보 등의 정보가 클리어되어(스텝 S8), 서버 관리 장치(30)는 스텝 S3의 처리로 이행한다.
이렇게, 본 발명의 일 실시형태로서의 멀티프로세서 시스템(1)이나 서버 관리 장치(30)에 따르면, 멀티프로세서 시스템(1) 내의 리소스간의 거리 정보와 데이터 이동 빈도에 의거하여, 각 파티션에 대한 리소스의 최적 배분이 통계적으로 산출되어, 그 최적 배분에 따른 리소스 배분이 행해진다. 이것에 의해, 시스템(1)의 특성을 의식한 리소스 배분이 실현되어, 파티션 분할, 즉 파티션에의 리소스의 할당이 최적화되어, 시스템 전체의 처리 성능이 대폭 향상한다. 즉, 시스템(1)의 NUMA 특성을 고려한 리소스의 재배치를 행함으로써, 동일 리소스를 사용했을 경우의 처리 성능을 최대화할 수 있다.
또한, 본 발명은 상술한 실시형태에 한정되는 것은 아니며, 본 발명의 취지를 일탈하지 않는 범위에서 다양하게 변형하여 실시할 수 있다.
또한, 상술한 기억부(제 1 테이블 기억 수단, 제 2 테이블 기억 수단)(31), 수집 수단(32), 산출 수단(33) 및 배분 수단(34)으로서의 기능(각 수단의 전부 혹은 일부의 기능)은, 컴퓨터(CPU, 정보 처리 장치, 각종 단말을 포함)가 소정의 애플리케이션 프로그램(멀티프로세서 시스템용 관리 프로그램)을 실행함으로써 실현된다.
그 프로그램은, 예를 들면 플렉시블 디스크, CD(CD-ROM, CD-R, CD-RW 등), DVD(DVD-ROM, DVD-RAM, DVD-R, DVD-RW, DVD+R, DVD+RW, 블루레이 디스크 등) 등의 컴퓨터 판독 가능한 기록 매체에 기록된 형태로 제공된다. 이 경우, 컴퓨터는 그 기록 매체로부터 멀티프로세서 시스템용 관리 프로그램을 판독하여 내부 기억 장치 또는 외부 기억 장치에 전송하여 저장해서 이용한다. 또한, 그 프로그램을, 예를 들면 자기 디스크, 광 디스크, 광자기 디스크 등의 기억 장치(기록 매체)에 기록해 두고, 그 기억 장치로부터 통신 회선을 통해서 컴퓨터에 제공하도록 해도 된다.
여기에서, 컴퓨터란, 하드웨어와 OS(오퍼레이팅 시스템)를 포함하는 개념이며, OS의 제어 하에서 동작하는 하드웨어를 의미하고 있다. 또한, OS가 불필요하여 애플리케이션 프로그램 단독으로 하드웨어를 동작시키는 바와 같은 경우에는, 그 하드웨어 자체가 컴퓨터에 상당한다. 하드웨어는, 적어도, CPU 등의 마이크로 프로세서와, 기록 매체에 기록된 프로그램을 판독하기 위한 수단을 구비하고 있다. 상기 분산형 스토리지 시스템용 제어 프로그램으로서의 애플리케이션 프로그램은, 상술한 바와 같은 컴퓨터에, 수단(31~34)으로서의 기능을 실현시키는 프로그램 코드를 포함하고 있다. 또한, 그 기능의 일부는, 애플리케이션 프로그램이 아니라 OS에 의해 실현되어도 된다.
또한, 본 실시형태에 있어서의 기록 매체로서는, 상술한 플렉시블 디스크, CD, DVD, 자기 디스크, 광 디스크, 광자기 디스크 외에, IC 카드, ROM 카트리지, 자기 테이프, 펀치 카드, 컴퓨터의 내부 기억 장치(RAM이나 ROM 등의 메모리), 외부 기억 장치 등이나, 바코드 등의 부호가 인쇄된 인쇄물 등의, 컴퓨터 판독 가능한 다양한 매체를 이용할 수도 있다.
1 : 서버(멀티프로세서 시스템)
10 : 리소스 그룹
21, 22 : 파티션 관리부
30 : 서버 관리 장치(멀티프로세서 시스템용 관리 장치, 시스템 관리부)
31 : 기억부(제 1 테이블 기억 수단, 제 2 테이블 기억 수단)
31a : 액세스 레이턴시 테이블(제 1 테이블, 노드간 거리 테이블)
31b : 리소스간 데이터 이동 빈도 테이블(제 2 테이블)
32 : 수집 수단
33 : 산출 수단
34 : 배분 수단
N1~N8 : 노드
CB1, CB2 : 크로스바 스위치
Ci1~Ci14(i=1~8) : CPU(연산 처리부; 리소스)
Mi(i=1~8) : 메모리(리소스)
MCi(i=1~8) : 메모리 컨트롤러(수집 수단)
Ti(i=1~8) : 데이터 이동 정보 수집용 테이블(수집 수단)
B1, B2 : 리소스간 데이터 이동 정보 수집용 버스(수집 수단)
P1, P2 : 파티션

Claims (17)

  1. 복수의 파티션 중 어느 하나에 대하여 단독으로 할당 가능한, 복수의 리소스와,
    상기 복수의 파티션의 각각에 속하는 리소스를 관리하는 복수의 파티션 관리부와,
    상기 복수의 리소스 및 상기 복수의 파티션 관리부를 관리하는 시스템 관리부를 갖고,
    상기 시스템 관리부는,
    상기 복수의 리소스 상호간의 거리에 관련되는 거리 정보를 정의하는 제 1 테이블을 기억하는 제 1 테이블 기억 수단과,
    상기 복수의 리소스 상호간의 데이터 이동 정보를 수집하는 수집 수단과,
    상기 수집 수단에 의해 수집된 상기 데이터 이동 정보에 의거하는 상기 복수의 리소스 상호간의 데이터 이동 빈도를 유지하는 제 2 테이블을 기억하는 제 2 테이블 기억 수단과,
    상기 제 1 테이블의 거리 정보와 상기 제 2 테이블의 데이터 이동 빈도에 의거하여, 각 파티션에 대한, 상기 복수의 리소스의 최적 배분을 산출하는 산출 수단과,
    상기 복수의 파티션에 대한 상기 복수의 리소스의 배분 상태가 상기 산출 수단에 의해 산출된 상기 최적 배분의 상태로 되도록, 상기 복수의 파티션 관리부를 통해서 상기 복수의 파티션에 상기 복수의 리소스를 배분하는 배분 수단을 갖고 있는 것을 특징으로 하는, 멀티프로세서 시스템.
  2. 제 1 항에 있어서,
    상기 제 1 테이블에서의 상기 거리 정보로서, 각 리소스가 속하는 노드간의 액세스 레이턴시가 정의되어 있는 것을 특징으로 하는, 멀티프로세서 시스템.
  3. 제 1 항에 있어서,
    상기 제 2 테이블에서의 상기 데이터 이동 빈도로서, 상기 복수의 리소스 상호간의 데이터 이동 횟수가 기록 갱신되는 것을 특징으로 하는, 멀티프로세서 시스템.
  4. 제 3 항에 있어서,
    상기 복수의 리소스로서 복수의 연산 처리부와 복수의 메모리가 포함되고, 상기 데이터 이동 횟수로서 각 연산 처리부와 각 메모리 사이의 통신 횟수가 기록 갱신되는 것을 특징으로 하는, 멀티프로세서 시스템.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 산출 수단은, 상기 제 1 테이블의 거리 정보와 상기 제 2 테이블의 데이터 이동 빈도에 의거하여, 각 파티션에 할당되는 상기 복수의 리소스의 모든 조합의 각각에 대해서 평균 거리를 산출하고, 당해 평균 거리가 최소로 되는 리소스의 조합을 상기 최적 배분으로서 선택하는 것을 특징으로 하는, 멀티프로세서 시스템.
  6. 제 5 항에 있어서,
    상기 산출 수단은, 상기 최적 배분으로서 복수의 조합이 존재할 경우에는, 상기 배분 수단에 의한 리소스 배분을 행할 때에 배분 변경량이 가장 적은 조합을 상기 최적 배분으로서 선택하는 것을 특징으로 하는, 멀티프로세서 시스템.
  7. 제 5 항에 있어서,
    상기 복수의 리소스로서 복수의 연산 처리부와 복수의 메모리가 포함되고,
    상기 산출 수단은, 상기 조합마다, 상기 제 2 테이블에 상기 데이터 이동 빈도로서 기록된 각 메모리에 대한 각 연산 처리부의 액세스 횟수와, 상기 제 1 테이블에 상기 거리 정보로서 정의된 대응 메모리 레이턴시의 적(積)의 총합을 산출하고, 당해 적의 총합을 상기 액세스 횟수의 총합으로 제산(除算)한 값을, 당해 조합에 대한 상기 평균 거리로서 산출하는 것을 특징으로 하는, 멀티프로세서 시스템.
  8. 복수의 파티션 중 어느 하나에 대하여 단독으로 할당 가능한, 복수의 리소스와, 상기 복수의 파티션의 각각에 속하는 리소스를 관리하는 복수의 파티션 관리부를 갖는 멀티프로세서 시스템에서, 상기 복수의 리소스 및 상기 복수의 파티션 관리부를 관리하는 멀티프로세서 시스템용 관리 장치로서,
    상기 복수의 리소스 상호간의 거리에 관련되는 거리 정보를 정의하는 제 1 테이블을 기억하는 제 1 테이블 기억 수단과,
    상기 복수의 리소스 상호간의 데이터 이동 정보를 수집하는 수집 수단과,
    상기 수집 수단에 의해 수집된 상기 데이터 이동 정보에 의거하는 상기 복수의 리소스 상호간의 데이터 이동 빈도를 유지하는 제 2 테이블을 기억하는 제 2 테이블 기억 수단과,
    상기 제 1 테이블의 거리 정보와 상기 제 2 테이블의 데이터 이동 빈도에 의거하여, 각 파티션에 대한, 상기 복수의 리소스의 최적 배분을 산출하는 산출 수단과,
    상기 복수의 파티션에 대한 상기 복수의 리소스의 배분 상태가 상기 산출 수단에 의해 산출된 상기 최적 배분의 상태로 되도록, 상기 복수의 파티션 관리부를 통해서 상기 복수의 파티션에 상기 복수의 리소스를 배분하는 배분 수단을 갖고 있는 것을 특징으로 하는, 멀티프로세서 시스템용 관리 장치.
  9. 복수의 파티션 중 어느 하나에 대하여 단독으로 할당 가능한, 복수의 리소스와, 상기 복수의 파티션의 각각에 속하는 리소스를 관리하는 복수의 파티션 관리부를 갖는 멀티프로세서 시스템에서, 상기 복수의 리소스 및 상기 복수의 파티션 관리부를 관리하는 멀티프로세서 시스템용 관리 장치로서, 컴퓨터를 기능시키는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체로서,
    상기 프로그램은,
    상기 복수의 리소스 상호간의 거리에 관련되는 거리 정보를 정의하는 제 1 테이블을 기억하는 제 1 테이블 기억 수단,
    상기 복수의 리소스 상호간의 데이터 이동 정보를 수집하는 수집 수단,
    상기 수집 수단에 의해 수집된 상기 데이터 이동 정보에 의거하는 상기 복수의 리소스 상호간의 데이터 이동 빈도를 유지하는 제 2 테이블을 기억하는 제 2 테이블 기억 수단,
    상기 제 1 테이블의 거리 정보와 상기 제 2 테이블의 데이터 이동 빈도에 의거하여, 각 파티션에 대한, 상기 복수의 리소스의 최적 배분을 산출하는 산출 수단, 및,
    상기 복수의 파티션에 대한 상기 복수의 리소스의 배분 상태가 상기 산출 수단에 의해 산출된 상기 최적 배분의 상태로 되도록, 상기 복수의 파티션 관리부를 통해서 상기 복수의 파티션에 상기 복수의 리소스를 배분하는 배분 수단으로서, 상기 컴퓨터를 기능시키는 것을 특징으로 하는, 멀티프로세서 시스템용 관리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
KR1020117003109A 2008-08-04 2008-08-04 멀티프로세서 시스템, 멀티프로세서 시스템용 관리 장치 및 멀티프로세서 시스템용 관리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 KR101180763B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2008/063977 WO2010016104A1 (ja) 2008-08-04 2008-08-04 マルチプロセッサシステム,マルチプロセッサシステム用管理装置およびマルチプロセッサシステム用管理プログラムを記録したコンピュータ読取可能な記録媒体

Publications (2)

Publication Number Publication Date
KR20110034666A KR20110034666A (ko) 2011-04-05
KR101180763B1 true KR101180763B1 (ko) 2012-09-07

Family

ID=41663334

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117003109A KR101180763B1 (ko) 2008-08-04 2008-08-04 멀티프로세서 시스템, 멀티프로세서 시스템용 관리 장치 및 멀티프로세서 시스템용 관리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체

Country Status (6)

Country Link
US (1) US8490106B2 (ko)
EP (1) EP2323036A4 (ko)
JP (1) JP5327224B2 (ko)
KR (1) KR101180763B1 (ko)
CN (1) CN102112967B (ko)
WO (1) WO2010016104A1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5765427B2 (ja) 2011-09-15 2015-08-19 富士通株式会社 仮想マシン管理装置、仮想マシン移動制御プログラムおよび仮想マシン移動制御方法
WO2012163024A1 (zh) * 2011-10-27 2012-12-06 华为技术有限公司 针对多步长非一致性内存访问numa架构的内存管理方法及装置
US8830716B2 (en) * 2012-09-29 2014-09-09 Intel Corporation Intelligent far memory bandwith scaling
US9372907B2 (en) * 2013-11-26 2016-06-21 Sap Se Table placement in distributed databases
US9830346B2 (en) * 2013-11-26 2017-11-28 Sap Se Table redistribution in distributed databases
DE112013006634T5 (de) * 2013-11-28 2015-10-29 Hitachi, Ltd. Computersystem und Computersystemsteuerverfahren
US10523585B2 (en) 2014-12-19 2019-12-31 Amazon Technologies, Inc. System on a chip comprising multiple compute sub-systems
US10459768B2 (en) 2015-01-07 2019-10-29 Hitachi, Ltd. Computer system, management system, and resource management method
US9588921B2 (en) * 2015-02-17 2017-03-07 Amazon Technologies, Inc. System on a chip comprising an I/O steering engine
US10715460B2 (en) 2015-03-09 2020-07-14 Amazon Technologies, Inc. Opportunistic resource migration to optimize resource placement
US10721181B1 (en) 2015-03-10 2020-07-21 Amazon Technologies, Inc. Network locality-based throttling for automated resource migration
US11336519B1 (en) 2015-03-10 2022-05-17 Amazon Technologies, Inc. Evaluating placement configurations for distributed resource placement
US10616134B1 (en) 2015-03-18 2020-04-07 Amazon Technologies, Inc. Prioritizing resource hosts for resource placement
CN104778077B (zh) * 2015-04-27 2018-03-27 华中科技大学 基于随机和连续磁盘访问的高速核外图处理方法及系统
KR101637830B1 (ko) 2015-04-30 2016-07-07 서울시립대학교 산학협력단 헬름홀츠 공명을 이용한 청진기, 그 제어방법 및 그 제조방법
EP3420450A1 (en) * 2016-02-23 2019-01-02 Telefonaktiebolaget LM Ericsson (publ) Methods and modules relating to allocation of host machines
US11075801B2 (en) * 2018-04-17 2021-07-27 Hewlett Packard Enterprise Development Lp Systems and methods for reconfiguration control using capabilities
US11556756B2 (en) * 2019-04-25 2023-01-17 Alibaba Group Holding Limited Computation graph mapping in heterogeneous computer system
WO2023157199A1 (ja) * 2022-02-17 2023-08-24 楽天モバイル株式会社 妥当性検証システム及び妥当性検証方法
CN116820687B (zh) * 2023-08-29 2023-12-05 银河麒麟软件(长沙)有限公司 基于kubelet的NUMA架构资源分配方法及系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6691146B1 (en) * 1999-05-19 2004-02-10 International Business Machines Corporation Logical partition manager and method
JP2002202959A (ja) * 2000-12-28 2002-07-19 Hitachi Ltd 動的な資源分配をする仮想計算機システム
US7143412B2 (en) * 2002-07-25 2006-11-28 Hewlett-Packard Development Company, L.P. Method and apparatus for optimizing performance in a multi-processing system
JP4119239B2 (ja) * 2002-12-20 2008-07-16 株式会社日立製作所 計算機資源割当方法、それを実行するための資源管理サーバおよび計算機システム
US7472246B2 (en) * 2003-04-30 2008-12-30 International Business Machines Corporation Method and system for automated memory reallocating and optimization between logical partitions
JP4679167B2 (ja) * 2004-03-05 2011-04-27 株式会社東芝 コンピュータシステム解析装置
JP4535784B2 (ja) * 2004-06-15 2010-09-01 日本電気株式会社 プロセス配置装置、プロセス配置方法及びプロセス配置プログラム
JP4982971B2 (ja) 2004-09-29 2012-07-25 ソニー株式会社 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム
US7673114B2 (en) 2006-01-19 2010-03-02 International Business Machines Corporation Dynamically improving memory affinity of logical partitions
JP4702127B2 (ja) * 2006-03-22 2011-06-15 日本電気株式会社 仮想計算機システム及びその物理リソース再構成方法並びにプログラム

Also Published As

Publication number Publication date
CN102112967A (zh) 2011-06-29
WO2010016104A1 (ja) 2010-02-11
JP5327224B2 (ja) 2013-10-30
KR20110034666A (ko) 2011-04-05
EP2323036A1 (en) 2011-05-18
US8490106B2 (en) 2013-07-16
EP2323036A4 (en) 2011-11-23
CN102112967B (zh) 2014-04-30
US20110145831A1 (en) 2011-06-16
JPWO2010016104A1 (ja) 2012-01-12

Similar Documents

Publication Publication Date Title
KR101180763B1 (ko) 멀티프로세서 시스템, 멀티프로세서 시스템용 관리 장치 및 멀티프로세서 시스템용 관리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
JP6667629B2 (ja) 記憶システムおよびソリッドステートディスク
US8230432B2 (en) Defragmenting blocks in a clustered or distributed computing system
JP5228988B2 (ja) 割当制御プログラム及び割当制御装置
CN107943421A (zh) 一种基于分布式存储系统的分区划分方法及装置
CN110209490B (zh) 一种内存管理方法及相关设备
CN102082692A (zh) 基于网络数据流向的虚拟机迁移方法、设备和集群系统
CN108959111B (zh) 数据存储装置和用于流管理的方法
US7099814B2 (en) I/O velocity projection for bridge attached channel
CN103384877A (zh) 包括闪存的存储系统和存储控制方法
JP5104855B2 (ja) 負荷分散プログラム、負荷分散方法、及びストレージ管理装置
JP6056856B2 (ja) ストレージ制御装置、情報処理装置、ストレージ制御プログラム、及びストレージ制御方法
CN109032533B (zh) 一种数据存储方法、装置和设备
CN107203330A (zh) 一种面向读写数据流的闪存数据分布方法
JP6269140B2 (ja) アクセス制御プログラム、アクセス制御方法、およびアクセス制御装置
US20160301754A1 (en) Distributed file system using torus network and method for configuring and operating distributed file system using torus network
CN117608856A (zh) NVMe加速卡内存扩展方法、系统、终端及存储介质
JP2014232348A (ja) ストレージシステム、情報処理装置の制御プログラム、およびストレージシステムの制御方法
US20080170080A1 (en) Method and Apparatus for Processing Object Collision
CN115344358A (zh) 资源调度方法、装置和管理节点
CN115712594B (zh) 一种通道分配方法、装置、一种存储系统及设备和介质
CN111400046A (zh) 数据库资源管理方法、装置、资源管理设备及存储介质
CN110308865A (zh) 存储器系统、计算系统及其操作方法
CN110879748A (zh) 一种共享资源分配方法、装置和设备
CN112988696B (zh) 文件整理方法、装置及相关设备

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: 20150730

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160818

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170818

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee