맨위로가기

MIMD

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

MIMD(Multiple Instruction, Multiple Data)는 여러 개의 프로세서가 각기 다른 명령을 서로 다른 데이터에 대해 병렬적으로 처리하는 병렬 컴퓨팅 구조이다. MIMD 시스템은 공유 메모리 모델과 분산 메모리 모델로 나뉜다. 공유 메모리 모델은 여러 프로세서가 공통의 메모리를 공유하며, 버스 기반, 계층형 버스 기반, NUMA(Non-Uniform Memory Access) 방식이 있다. 분산 메모리 모델은 각 프로세서가 독립적인 메모리를 가지며, 메시지를 통해 데이터를 교환하며, 하이퍼큐브형 네트워크와 메시형 네트워크를 사용한다. 인텔 제온 파이는 MIMD 시스템의 예시이며, 2013년 이후 대부분의 병렬 컴퓨터가 MIMD 시스템을 기반으로 한다.

더 읽어볼만한 페이지

  • 플린 분류 - 폰 노이만 구조
    폰 노이만 구조는 CPU, 주소 지정 메모리, 버스를 핵심 요소로 하는 컴퓨터 아키텍처로, 프로그램 내장 방식을 통해 명령어와 데이터를 동일한 기억 장치에 저장하고 순차적으로 실행하는 특징을 가진다.
  • 플린 분류 - SIMD
    SIMD(Single Instruction, Multiple Data)는 단일 명령어로 여러 데이터를 처리하는 병렬 처리 기술로, 멀티미디어 처리 성능 향상에 기여했으며 이미지 처리, 오디오 DSP 등에서 활용되지만, 모든 알고리즘에 적용하기 어렵고 하드웨어 제약 등의 단점도 존재한다.
  • 병렬 컴퓨팅 - 슈퍼컴퓨터
    슈퍼컴퓨터는 일반 컴퓨터보다 훨씬 높은 성능을 가진 컴퓨터로, 복잡한 계산과 시뮬레이션을 수행하며, 프로세서, 메모리, 스토리지, 네트워크 등으로 구성되어 병렬 처리를 통해 높은 성능을 구현하고, 군사, 기상 예측, 과학 기술 분야, 인공지능 등 다양한 분야에서 활용되고 있다.
  • 병렬 컴퓨팅 - 컴퓨터 클러스터
    컴퓨터 클러스터는 여러 대의 상용 컴퓨터를 고속 네트워크로 연결하여 고성능 컴퓨팅 시스템을 구축하는 방식으로, 슈퍼컴퓨터를 포함한 다양한 분야에서 높은 가용성과 확장성을 제공하며, 클러스터 미들웨어를 통해 시스템 관리, 부하 분산, 통신 방식, 데이터 공유 등을 지원하고 노드 장애 관리를 위한 펜싱 기술을 활용한다.
  • 마이크로프로세서 - 중앙 처리 장치
    중앙 처리 장치(CPU)는 컴퓨터 시스템의 핵심 부품으로, 프로그램 명령어를 해석하고 실행하여 데이터를 처리하는 장치이다.
  • 마이크로프로세서 - ARM 아키텍처
    ARM 아키텍처는 저전력 설계로 모바일 기기에서 널리 쓰이는 RISC 기반 프로세서 아키텍처로서, IP 코어 라이선스 모델과 ARM Flexible Access를 통해 다양한 분야로 확장되고 있다.
MIMD
'정의'
'정의''다중 명령어 다중 데이터(Multiple Instruction, Multiple Data, MIMD)는 병렬 컴퓨팅에서 사용되는 기술'
'분류'
'분류''플린의 분류학에 따른 분류'
'특징'
'특징''여러 개의 프로세서가 독립적으로 다른 명령어 스트림을 실행하면서 다른 데이터에 대해 작동'
'구현 방식''공유 메모리 또는 분산 메모리 시스템 모두에서 구현 가능'
'구현 예시'
'종류''멀티 코어 프로세서'
'클러스터'
'분산 시스템'
'예시''개인용 컴퓨터'
'워크스테이션'
'서버'

2. 공유 메모리 모델

모든 프로세서가 소프트웨어나 하드웨어적으로 전역 메모리에 접근하여 데이터를 공유하는 방식이다. 운영 체제는 메모리 일관성을 유지한다.[5] 프로그래머 입장에서 이 모델은 분산 메모리 모델보다 이해하기 쉽고, 메모리 일관성을 운영체제가 관리한다는 장점이 있다. 하지만 32개 이상의 프로세서로 확장하기 어렵고, 분산 메모리 모델보다 유연성이 떨어진다는 단점이 있다.[5] UMA(Uniform Memory Access), COMA(Cached Only Memory Access), NUMA(Non-Uniform Memory Access) 등이 이러한 공유 메모리 모델에 속한다.[6]

2. 1. 버스 기반

모든 프로세서는 메모리를 연결하는 버스에 연결되어 있다. 이러한 배치를 버스 기반점(bus-base point)이라 하며, 버스에서 많은 충돌이 생기는 지점이다.[5] 공유 메모리를 가진 MIMD 머신은 프로세서가 공통의 중앙 메모리를 공유하며, 모든 클라이언트에 대해 특정 CM, 즉 공통 버스 시스템을 공유한다.

예를 들어, 클라이언트 A, B, C가 한쪽에 연결되고 P, Q, R이 반대쪽에 연결된 버스를 고려하면, 어떤 클라이언트든 버스 인터페이스를 통해 서로 통신한다. 메모리와 프로세서 그룹이 버스에 연결된 MIMD 머신은 단일 버스에 모든 것이 연결되는 가장 단순한 형태를 가진다. 버스가 병목 현상을 일으키기 쉬우므로 소규모 머신에서 자주 사용된다. 대칭형 멀티프로세싱의 많은 부분이 이 방식을 사용한다.

2. 2. 계층형 버스 기반

계층형 공유 메모리 구조의 MIMD 기계는 프로세서에게 각기 다른 메모리를 사용하게 하기 위해서 계층적 버스를 사용한다. 다른 보드에 있는 프로세서들은 내부 중심 버스들을 통해서 통신을 하게 된다. 버스들은 보드 간의 통신을 지원한다. 이러한 유형의 아키텍처를 통해 머신은 9천 개 이상의 프로세서를 지원할 수 있다.[5]

팻 트리와 같은 버스 계층 구조를 사용하여, 프로세서가 서로의 메모리에 접근할 수 있도록 한다. 서로 다른 보드의 프로세서는 노드 간 버스를 통해 통신할 수 있다. 이러한 유형의 아키텍처를 통해 머신은 9천 개 이상의 프로세서를 지원할 수 있다.[5]

버스 방식을 사용하는 MIMD 머신을 상위 버스로 상호 연결한 MIMD 머신이다. 하위 버스 내 메모리 접근과 상위 버스를 경유한 메모리 접근에서 접근 비용이 다른 NUMA형이다. NUMA 중에서도 비교적 소규모 머신에 많다.[5]

3. 분산 메모리 모델

분산 메모리 MIMD 기계에서는 각 프로세서가 자신만의 메모리 영역을 가지며, 다른 프로세서의 메모리에는 접근할 수 없다. 데이터를 공유하려면 메시지 전달 방식을 사용해야 한다. 이러한 기계는 공유 메모리가 없으므로 충돌 문제가 크지 않다. 많은 수의 프로세서를 직접 연결하는 것은 경제적으로 어렵기 때문에, 각 프로세서를 적은 수의 프로세서와 연결하는 방식을 사용한다. 그러나 이 방식은 메시지 전달에 추가 시간이 필요하여 비효율적일 수 있다. 이러한 시간 낭비를 줄이기 위해 하이퍼큐브나 메시 네트워크 등의 방법을 사용한다.

분산 메모리의 예로는 MPP(대규모 병렬 프로세서), COW(워크스테이션 클러스터), NUMA(비균일 메모리 접근)가 있다. MPP는 복잡하고 비싸며, 광대역 네트워크로 연결된 슈퍼컴퓨터(예: 하이퍼큐브, 메시 상호 연결)가 이에 해당한다. COW는 MPP보다 저렴한 방식이다.[4]

3. 1. 하이퍼큐브형 네트워크

하이퍼큐브형 네트워크는 프로세서와 메모리를 초입방체(하이퍼큐브)의 각 꼭짓점에 배치하여 연결하는 방식이다. 2N 개의 프로세서가 있을 때, 각 프로세서는 N 개의 다른 프로세서와 직접 연결되며, 최대 N 단계를 거쳐 다른 프로세서에 도달할 수 있다.[7] 예를 들어, 16개의 노드(프로세서)를 가진 하이퍼큐브에서 각 노드는 4개의 다른 노드와 직접 연결되며, 가장 멀리 떨어진 노드까지는 최대 4단계를 거쳐 도달한다.

nCUBE 등의 시스템이 하이퍼큐브형 네트워크를 사용한다.[7] 하이퍼큐브형 네트워크의 단점은 프로세서 수가 항상 2의 거듭제곱이어야 한다는 점이다. 따라서 실제 필요한 프로세서 수보다 더 많은 프로세서를 구성해야 할 수 있다.[7]

3. 2. 메시형 네트워크

프로세서와 메모리를 2차원 격자 형태로 배치하고, 각 프로세서를 인접한 4개의 프로세서와 연결하는 방식이다. 격자의 가장자리는 서로 연결되어 전체적으로 토러스 형태를 이루는 경우가 많다.[7] 하이퍼큐브형 네트워크에 비해 프로세서 수 제약이 덜하지만, 가장 멀리 떨어진 프로세서 간의 거리는 더 멀어질 수 있다.

4. MIMD 시스템의 예

인텔 제온 파이는 래러비 마이크로아키텍처에서 파생되었다.[1] 이 프로세서들은 서로 다른 데이터에 대해 서로 다른 명령을 실행할 수 있는 여러 개의 처리 코어(2015년 기준 최대 61개)를 가지고 있다. 2013년 현재, 대부분의 병렬 컴퓨터는 MIMD 시스템이다.[2]

참조

[1] 웹사이트 The Perils of Parallel: Larrabee vs. Nvidia, MIMD vs. SIMD http://perilsofparal[...] 2008-09-19
[2] 웹사이트 MIMD | Intel® Developer Zone https://web.archive.[...] 2013-10-16
[3] 강의자료 Parallel Processing, EG6370G: Chapter 1, Motivation and History St Mary's University 2008-03-01 # Spring 2008을 3월 1일로 가정
[4] 서적 Structured Computer Organization https://web.archive.[...] Prentice-Hall 2013-03-15
[5] 강의자료 Parallel Processing, EG6370G: Chapter 1, Motivation and History St Mary's University 2008-03-01 # Spring 2008을 3월 1일로 가정
[6] 서적 Organizacion de Computadoras Un Enfoque Estructurado
[7] 서적 Organizacion de Computadoras, Un Enfoque Estructurado



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com