다중 명령, 다중 데이터
Multiple instruction, multiple data플린의 분류법 |
---|
단일 데이터 스트림 |
다중 데이터 스트림 |
SIMD 서브 카테고리[1] |
「 」를 참조해 주세요. |
컴퓨팅에서 다중 명령 다중 데이터(MIMD)는 병렬 처리를 달성하기 위해 사용되는 기술입니다.MIMD를 사용하는 머신에는 비동기적으로 독립적으로 동작하는 다수의 프로세서가 있습니다.다른 프로세서가 다른 데이터에 대해 다른 명령을 실행할 수 있습니다.
MIMD 아키텍처는 컴퓨터 지원 설계/컴퓨터 지원 제조, 시뮬레이션, 모델링 및 통신 스위치와 같은 많은 응용 분야에서 사용될 수 있습니다.MIMD 시스템은 공유 메모리 또는 분산 메모리 범주 중 하나입니다.이러한 분류는, MIMD 프로세서가 메모리에 액세스 하는 방법에 근거하고 있습니다.공유 메모리 머신은 버스 기반, 확장 또는 계층 유형일 수 있습니다.분산 메모리 시스템에는 하이퍼큐브 또는 메시 상호 연결 스키마가 있을 수 있습니다.
예
MIMD 시스템의 예로는 Larrabee 마이크로아키텍처의 후예인 인텔 [2]Xeon Phi가 있습니다.이러한 프로세서에는 여러 개의 프로세싱 코어(2015년 기준 최대 61개)가 있어 서로 다른 데이터에 대해 서로 다른 명령을 실행할 수 있습니다.
2013년 현재 대부분의 병렬 컴퓨터는 MIMD [3]시스템입니다.
공유 메모리 모델에서 프로세서는 모두 소프트웨어 또는 하드웨어 수단을 통해 "글로벌하게 사용 가능한" 메모리에 연결됩니다.통상, operating system은 메모리의 [4]일관성을 유지합니다.
프로그래머의 관점에서 이 메모리 모델은 분산 메모리 모델보다 더 잘 이해됩니다.또 다른 장점은 메모리의 일관성이 기록된 프로그램이 아닌 운영체제에 의해 관리된다는 것입니다.알려진 두 가지 단점은 32 프로세서를 초과하는 확장성이 어렵고 공유 메모리 모델이 [4]분산 메모리 모델보다 유연성이 떨어진다는 것입니다.
공유 메모리(멀티프로세서)에는 다음과 같은 많은 예가 있습니다.UMA(Uniform Memory Access), COMA(Cache-only Memory Access).[5]
버스 베이스
공유 메모리가 있는 MIMD 머신에는 공통의 중앙 메모리를 공유하는 프로세서가 있습니다.가장 간단한 형태에서는 모든 프로세서가 메모리에 연결되는 버스에 연결되어 있습니다.즉, 공유 메모리를 탑재한 모든 머신이 모든 클라이언트에 대해 특정 CM, 공통 버스 시스템을 공유합니다.
예를 들어 클라이언트 A, B, C가 한쪽에서 접속되어 있고 P, Q, R이 반대쪽에서 접속되어 있는 버스를 고려했을 경우, 클라이언트 중 하나가 버스인터페이스를 사용하여 다른 쪽과 통신합니다.
계층적
계층형 공유 메모리를 갖춘 MIMD 머신은, 예를 들면, 「팻 트리」의 버스의 계층을 사용해 프로세서가 서로의 메모리에 액세스 할 수 있도록 합니다.다른 보드의 프로세서는 노드간 버스를 통해 통신할 수 있습니다.버스는 보드 간 통신을 지원합니다.이러한 아키텍처에서는 9,000개 이상의 프로세서를 지원할 수 있습니다.
분산 메모리
분산 메모리 MIMD(복수의 명령, 복수의 데이터) 머신에서는, 각 프로세서는 독자적인 메모리 위치를 가지고 있습니다.각 프로세서는 다른 프로세서의 메모리에 대해 직접 인식하지 않습니다.데이터를 공유하려면 하나의 프로세서에서 다른 프로세서로 메시지로 전달해야 합니다.공유 메모리가 없기 때문에, 이러한 머신에서는 경합이 큰 문제가 되지 않습니다.다수의 프로세서를 서로 직접 접속하는 것은 경제적으로 실현 가능하지 않습니다.이렇게 많은 직접 접속을 회피하는 방법은 각 프로세서를 몇 개만 다른 프로세서에 연결하는 것입니다.이러한 유형의 설계는 메시지 경로를 따라 어떤 프로세서에서 다른 프로세서로 메시지를 전달하는 데 시간이 걸리기 때문에 비효율적일 수 있습니다.프로세서가 단순한 메시지라우팅을 실행하는 데 걸리는 시간은 상당할 수 있습니다.시스템은 이 시간 손실을 줄이도록 설계되었으며 하이퍼큐브와 메쉬가 두 가지 인기 있는 상호 연결 방식 중 하나입니다.
분산 메모리(복수 컴퓨터)의 예로는 MPP(대량 병렬 프로세서), COW(워크스테이션 클러스터), NUMA(비균일한 메모리 액세스) 등이 있습니다.전자는 복잡하고 비용이 많이 듭니다.광대역 네트워크에 의해 결합된 많은 슈퍼 컴퓨터.예를 들어 하이퍼큐브와 메쉬 인터커넥션 등이 있습니다.COW는 매우 저렴한 가격의 "[5]홈메이드" 버전입니다.
하이퍼큐브 상호접속 네트워크
4개의 프로세서를 포함한 하이퍼큐브 시스템 상호접속 네트워크를 갖춘 MIMD 분산 메모리 머신에서 프로세서와 메모리 모듈이 정사각형의 각 정점에 배치된다.시스템의 직경은 1개의 프로세서가 가장 멀리 있는 프로세서에 메시지를 보내기 위해 필요한 최소 단계 수입니다.예를 들어, 2-입방체의 지름은 2입니다.8개의 프로세서와 각 프로세서와 메모리 모듈을 큐브의 정점에 배치하는 하이퍼큐브 시스템에서 직경은 3이다.일반적으로 각 프로세서가 N개의 다른 프로세서에 직접 접속된 2^N 프로세서를 포함하는 시스템으로서 시스템의 직경은 N이다.하이퍼큐브 시스템의 단점 중 하나는 2의 세기로 구성해야 하기 때문에 애플리케이션에 실제로 필요한 것보다 더 많은 프로세서를 탑재할 수 있는 머신을 구축해야 한다는 것입니다.
메시 상호접속망
메쉬 상호접속 네트워크를 갖춘 MIMD 분산 메모리 머신에서 프로세서는 2차원 그리드에 배치된다.각 프로세서는 4개의 인접 프로세서에 접속되어 있습니다.메쉬의 가장자리에 랩 어라운드 연결부를 설치할 수 있습니다.하이퍼큐브에 비해 메쉬 상호접속 네트워크의 장점 중 하나는 메쉬 시스템을 2배 단위로 설정할 필요가 없다는 것입니다.단점은 메쉬 네트워크의 직경이 프로세서가 4개 이상인 시스템의 하이퍼큐브보다 크다는 것입니다.
「 」를 참조해 주세요.
레퍼런스
- ^ Flynn, Michael J. (September 1972). "Some Computer Organizations and Their Effectiveness" (PDF). IEEE Transactions on Computers. C-21 (9): 948–960. doi:10.1109/TC.1972.5009071.
- ^ "The Perils of Parallel: Larrabee vs. Nvidia, MIMD vs. SIMD". 19 September 2008.
- ^ "Archived copy". Archived from the original on 2013-10-16. Retrieved 2013-10-16.
{{cite web}}
: CS1 maint: 제목으로 아카이브된 복사(링크) - ^ a b 이바루딘, 제퍼"Parallel Processing, EG6370G: 제1장 동기 부여와 역사"강의 슬라이드텍사스 주 샌안토니오에 있는 세인트 메리 대학이요2008년 봄
- ^ a b Andrew S. Tanenbaum (1997). Structured Computer Organization (4 ed.). Prentice-Hall. pp. 559–585. ISBN 978-0130959904. Archived from the original on 2013-12-01. Retrieved 2013-03-15.