MIMD

С Википедије, слободне енциклопедије
Флинова подела
  Једноструке инструкције Вишеструке инструкције
Једноструки подаци SISD MISD
Вишеструки подаци SIMD MIMD

У рачунарству, MIMD (вишеструке инструкције, вишеструки подаци (енгл. multiple instruction, multiple data)) је техника која се користи да би се постигао паралелизам. Машине које користе MIMD имају број процесора који функционишу асинхроно и независно. У било ком тренутку времена, различити процесори могу извршавати различите инструкције над различитим деловима података. MIMD архитектуре се могу користити у бројним апликацијским подручјима, као што су CAD/CAM (computer-aided design/computer-aided manufacturing), рачунарска симулација, научно моделовање итд. MIMD машине могу бити, или у категорији дељене меморије или у категорији дистрибуиране меморије. Ове класификације су базиране на томе како MIMD процесори приступају меморији. Машине са дељеном меморијом могу бити базиране на магистрали, проширене или хијерархијског типа. Машине дистрибуиранажом меморијом могу имати хиперкоцке или меш шеме интерконекција.

Примери[уреди | уреди извор]

Пример MIMD система је „Intel Larrabee“.[1] Ови процесори имају више језгара (4 у случају i7 од 2013.) која могу извршавати различите инструкције над различитим подацима.

Већина рачунара са паралелном обрадом, од 2013., су MIMD системи.[2]

Модел са дељеном меморијом[уреди | уреди извор]

Процесор ису сви повезани у меморији које је "глобално доступна“. Повезани су или преко софтвера или преко хардвера. Оперативни систем обично одр+ава своју кохеренцију меморије.[3]

Из угла програмера, овај модел је боље разумеван него модел са дистрибуираном меморијом. Још једна предност је да кохеренцију меморије одржава оперативни систем а не писани програм. Две познате мане су: скалабилност изван тридесет два процесора је тешко и модел дељене меморије је мање флексибилан од модела са дистрибуираном меморијом.[3]

Постоји више примера мултипроцесора дељене меморије: UMA (енгл. Uniform Memory Access), COMA (Cache Only Memory Access) и NUMA (Non-Uniform Memory Access).[4]

Базиран на магистрали[уреди | уреди извор]

MIMD машине са дељеном меморијом имају процесоре које деле цестралну меморију. У најједноставнијој форми, сви процесори су повезани на магистралу која их повезује са меморијом. Ово значи да свака машина са дељеном меморијом дели специфичан CM.

Хијерархијски[уреди | уреди извор]

MIMD машине са хијерархијском дељеном меморијом користе хијерархију магистрала да би дале процесорима приступ меморији осталих процесора. Процесори на различитим плочама могу комуницирати међусобно преко магистрала изеђу чворова. Магистрале подржавају комуникацију између плоча. Са овим типом архитектуре, машине могу подржати на хиљаде процесора.

Дистрибуирана меморија[уреди | уреди извор]

У MIMD машинама са дистрибуираном меморијом, сваки процесор има своју меморијску локацију. Сваки процесор нема дирекно знање о меморијама других процесора. За податке који се деле, морају бити прослеђени са једног процесора на други као порука. Пошто не постоји дељена меморија, "препирка" око података није велики проблем. Није економично извести велики број процесора директно једне ка другима. Начин да се избегне ово мноштво директних конекција је да се сваки процесор повеже на само пар других. Овај дизајн може бити неефикасан зато што се повећава време које је потребно да се проследи порука од једног процесора до другог. Време које је потребно да се проследи једна порука је битно. Системи су дизајнирани да смање овај губитак времена и две од најпопуларнијих шема за то су хиперкоцке и меш.

Примери дистрибуиране моеморије: MPP (енгл massively parallel processors) и COW (Clusters of Workstations). први је комплексан и скуп: много суперрачунара умрежених заједно преко "broad-band" мреже. Примери: хиперкоцке и меш интерконекције. COW је "домаћа" верзија за део цене.[4]

Интерконекцијска мрежа хиперкоцки[уреди | уреди извор]

У MIMD дистрибуираној меморији, машине са системом интерконекцијских мрежа хиперкоцкi које садрже 4 процесора, процесор и меморијски модул су смечтени у сваку највишу тачку квадрата. Пречник система је минималан број корака којих је потребно да један процесор направи да би послао поруку неком другом најдаљем процесору. Тако, на пример, пречник двокоцке (енгл. 2-cube) је 1. У систему хиперкоцки са 8 процесора, када су сви процесори и сви меморијски модули смештени у највишу тачку коцке, пречник је 3. Генерелно, систем који садржи 2^N прицесора где је сваки процесор директно повезан са осталих N процесора, пречник је N. Један недостатак система хиперкоцки је да систем мора бити конфигурисан у степену двојке, тако да машина мора бити направљена да може потенцијално имати много више процесора него што је стварно потребно за апликацију.

Интерконекцијска мрежа мешева[уреди | уреди извор]

У MIMD машини са дистрибуираном меморијом и са интерконекцијском мрежом мешева, процесори се смештају у дводимензионалну мрежу. Сваки процесор је спојен са својим 4 непосредним комшијама. Обмотана конекције се може омогућити на ивицама меша. Једна предност интерконекцијске мреже мешева у односу на хиперкоцке је да меш систем не треба да буде конфигурисан у степену двојке. Недостатак је да је пречник меш мреже, за системе са више од 4 процесора, већи него код оног код хиперкоцки.

Види још[уреди | уреди извор]

Референце[уреди | уреди извор]

  1. ^ The Perils of Parallel: Larrabee vs. Nvidia, MIMD vs. SIMD
  2. ^ MIMD
  3. ^ а б Ibaroudene, Djaffer. "Parallel Processing, EG6370G: Chapter 1, Motivation and History." Lecture Slides. St Mary's University, San Antonio, Texas. Spring 2008.
  4. ^ а б Andrew S. Tanenbaum (1997). Structured Computer Organization (4 изд.). Prentice-Hall. стр. 559—585. ISBN 978-0130959904. Архивирано из оригинала 01. 12. 2013. г. Приступљено 23. 12. 2013.