슈퍼컴퓨터의 분류

인쇄

현재의 모든 슈퍼컴퓨터는 다수의 프로세서를 사용한다.
프로세서 하나가 독자적으로 메모리를 사용하는 전통적인 폰 노이만 방식의 컴퓨터가 아니라 다수의 프로세서와 메모리를 사용함으로 인해서
슈퍼컴퓨터를 분류하는 데는 여러 다른 방법이 존재하 며, 모든 슈퍼컴퓨터를 명확하게 분류할 수 있는 단일 구분 방법은 없다.
다만, 구분의 기준을 무엇으로 하는가에 따라서 다음 과 같은 방식으로 구분해 볼 수 있다.

1프로세서에 의한 구분 방법
  • 스칼라 프로세서

: 일반적으로 주변에서 쉽게 접할 수 있는 범용 프로세서이며, 규모의 경제성 측면에서 보면 벡터 프로세서에 비해 상대적 으로 많이 사용되기 때문에 저가의 프로세서이다.
스칼라 프로세서도 그 명령어의 동작 방식에 따라 크게 CISC, RISC 두 가지로 분류된다.

- CISC(Complex Instruction Set Computer)

: 한 프로세서 명령어에 메모리 접근, 수치 연산, 기억장치 주소 계산 등 다수의 저 수준 연산을 수행하는 명령어들로 동작하는 프로세서이다.

- RISC(Reduced Instruction Set Computer)

: CISC의 기능에 따른 복잡하고 많은 명령어들 대신 빠르게 실행될 수 있는 단순한 명령어들 다수의 조합으로 동작하는 프로세서이다.

  • 벡터 프로세서

: 벡터 프로세서는 벡터 데이터 혹은 배열 데이터의 고속 수치연산을 위해 개발된 전용 프로세서이며, 규모의 경제성 측면 에서 보면 스칼라 프로세서에 비해 상대적으로 매우
고가의 프로세서이다. 벡터 프로세서는 한 명령어에 벡터 데이터를 한꺼번에 동시 처리하는 벡터 프로세싱이 가능하며, Cray vector 프로세서가 이 범주에 속한다.

2메모리 접근 방식에 따른 구분

- 다수의 프로세서들이 주기억 장치를 공유하는지 공유하지 않는지의 메모리 접근 방식에 따른 구분 방법이다.

  • 공유 메모리 시스템

: 다수의 프로세서들이 하나의 주기억 장치를 공유해서 메모리를 접근하는 방식의 시스템이며, 주기억 장치가 물리적으로 하나인지 논리적으로 하나인지에 따라 UMA와 NUMA로 나뉘어진다.

- UMA(Uniform Memory Access)

: 전형적으로 SMP(Symmetric Multiprocessor) 시스템들이 이 분류에 속하며, 물리적으로나 논리적으로나 하나의 메모리를 다수의 프로세서들이 공유한다. 시스템 내에서 모든 프로세서들이 메모리를 접근하는 속도가 일정하지만, 기술적인 한계 때문에 프로세서 수의 확장성에 한계가 있다.

- NUMA(Non Uniform Memory Access)

: CC-NUMA(Cache Coherent NUMA)라고도 불리며, UMA의 확장성 한계를 극복하기 위한 모델이다. 물리적으로 다수의 시스템에 분산된 메모리들을 논리적으로 하나의 공유메모리처럼 사용하며, 프로세서 입장에서 물리적으로 동일 시스템 내에 있는 지역메모리인지 다른 시스템에 있는 원격메모리인지의 여부에 따라 접근 속도가 다르게 된다. 하지만, 사용자 입장에서는 논리적으로 하나의 공유메모리를 사용하는 것으로 보이게 되며, 지역메모리 혹은 원격메모리의 여부는 OS 차원에서 처리되게 된다.

  • 분산 메모리 시스템

: 프로세서 하나가 독자적으로 메모리를 점유하는 폰 노이만 방식의 컴퓨터들을 네트워크로 연결해서 다수의 프로세서들이 서로 네트워크 통신으로 분산된 메모리들을 접근할 수 있는 방식의 시스템이다. 이런 방식의 시스템을 전통적인 분산 메모리 시스템 혹은 MPP(Massively Parallel Processor) 시스템이라고 한다.

  • 분산 공유 메모리 시스템

: UMA 공유메모리 방식의 SMP 시스템들을 네트워크로 연결해서 전체 시스템을 구성한 시스템을 말한다. 전체 시스템을 구성하는 각각의 단일 시스템인 SMP 노드 내에서는 UMA 공유메모리 방식으로 동작할 수 있고, 전체 노드들 간에는 분산메모리 방식으로 동작할 수 있다. 이런 유형의 시스템을 SMP 클러스터 시스템이라고도 한다. 언뜻 보면 NUMA 와 유사하지만 노드들 간에는 메모리가 공유되지 않기 때문에, 사용자 입장에서도 분산 메모리 시스템으로 보인다는 것이 다르다.

공유 메모리 시스템(SMP) / 분산 메모리 시스템(MPP)
3Flynn의 구분

- 다수의 프로세서들이 주기억 장치를 공유하는지 공유하지 않는지의 메모리 접근 방식에 따른 구분 방법이다.

  • SISD(Single Instruction Single Data) : 단일 명령어가 단일 데이터 처리
  • SIMD(Single Instruction Multiple Data) : 단일 명령어가 다수의 데이터 처리
  • MISD(Multiple Instruction Single Data) : 다수의 명령어가 단일 데이터 처리, 실 적용 예 없음
  • MIMD(Multiple Instruction Multiple Data) : 다수의 명령어가 다수의 데이터 처리
Flynn의 구분