MIMD

S Vikipedije, slobodne enciklopedije
Flinova podela
  Jednostruke instrukcije Višestruke instrukcije
Jednostruki podaci SISD MISD
Višestruki podaci SIMD MIMD

U računarstvu, MIMD (višestruke instrukcije, višestruki podaci (engl. multiple instruction, multiple data)) je tehnika koja se koristi da bi se postigao paralelizam. Mašine koje koriste MIMD imaju broj procesora koji funkcionišu asinhrono i nezavisno. U bilo kom trenutku vremena, različiti procesori mogu izvršavati različite instrukcije nad različitim delovima podataka. MIMD arhitekture se mogu koristiti u brojnim aplikacijskim područjima, kao što su CAD/CAM (computer-aided design/computer-aided manufacturing), računarska simulacija, naučno modelovanje itd. MIMD mašine mogu biti, ili u kategoriji deljene memorije ili u kategoriji distribuirane memorije. Ove klasifikacije su bazirane na tome kako MIMD procesori pristupaju memoriji. Mašine sa deljenom memorijom mogu biti bazirane na magistrali, proširene ili hijerarhijskog tipa. Mašine distribuiranažom memorijom mogu imati hiperkocke ili meš šeme interkonekcija.

Primeri[uredi | uredi izvor]

Primer MIMD sistema je „Intel Larrabee“.[1] Ovi procesori imaju više jezgara (4 u slučaju i7 od 2013.) koja mogu izvršavati različite instrukcije nad različitim podacima.

Većina računara sa paralelnom obradom, od 2013., su MIMD sistemi.[2]

Model sa deljenom memorijom[uredi | uredi izvor]

Procesor isu svi povezani u memoriji koje je "globalno dostupna“. Povezani su ili preko softvera ili preko hardvera. Operativni sistem obično odr+ava svoju koherenciju memorije.[3]

Iz ugla programera, ovaj model je bolje razumevan nego model sa distribuiranom memorijom. Još jedna prednost je da koherenciju memorije održava operativni sistem a ne pisani program. Dve poznate mane su: skalabilnost izvan trideset dva procesora je teško i model deljene memorije je manje fleksibilan od modela sa distribuiranom memorijom.[3]

Postoji više primera multiprocesora deljene memorije: UMA (engl. Uniform Memory Access), COMA (Cache Only Memory Access) i NUMA (Non-Uniform Memory Access).[4]

Baziran na magistrali[uredi | uredi izvor]

MIMD mašine sa deljenom memorijom imaju procesore koje dele cestralnu memoriju. U najjednostavnijoj formi, svi procesori su povezani na magistralu koja ih povezuje sa memorijom. Ovo znači da svaka mašina sa deljenom memorijom deli specifičan CM.

Hijerarhijski[uredi | uredi izvor]

MIMD mašine sa hijerarhijskom deljenom memorijom koriste hijerarhiju magistrala da bi dale procesorima pristup memoriji ostalih procesora. Procesori na različitim pločama mogu komunicirati međusobno preko magistrala izeđu čvorova. Magistrale podržavaju komunikaciju između ploča. Sa ovim tipom arhitekture, mašine mogu podržati na hiljade procesora.

Distribuirana memorija[uredi | uredi izvor]

U MIMD mašinama sa distribuiranom memorijom, svaki procesor ima svoju memorijsku lokaciju. Svaki procesor nema direkno znanje o memorijama drugih procesora. Za podatke koji se dele, moraju biti prosleđeni sa jednog procesora na drugi kao poruka. Pošto ne postoji deljena memorija, "prepirka" oko podataka nije veliki problem. Nije ekonomično izvesti veliki broj procesora direktno jedne ka drugima. Način da se izbegne ovo mnoštvo direktnih konekcija je da se svaki procesor poveže na samo par drugih. Ovaj dizajn može biti neefikasan zato što se povećava vreme koje je potrebno da se prosledi poruka od jednog procesora do drugog. Vreme koje je potrebno da se prosledi jedna poruka je bitno. Sistemi su dizajnirani da smanje ovaj gubitak vremena i dve od najpopularnijih šema za to su hiperkocke i meš.

Primeri distribuirane moemorije: MPP (engl massively parallel processors) i COW (Clusters of Workstations). prvi je kompleksan i skup: mnogo superračunara umreženih zajedno preko "broad-band" mreže. Primeri: hiperkocke i meš interkonekcije. COW je "domaća" verzija za deo cene.[4]

Interkonekcijska mreža hiperkocki[uredi | uredi izvor]

U MIMD distribuiranoj memoriji, mašine sa sistemom interkonekcijskih mreža hiperkocki koje sadrže 4 procesora, procesor i memorijski modul su smečteni u svaku najvišu tačku kvadrata. Prečnik sistema je minimalan broj koraka kojih je potrebno da jedan procesor napravi da bi poslao poruku nekom drugom najdaljem procesoru. Tako, na primer, prečnik dvokocke (engl. 2-cube) je 1. U sistemu hiperkocki sa 8 procesora, kada su svi procesori i svi memorijski moduli smešteni u najvišu tačku kocke, prečnik je 3. Generelno, sistem koji sadrži 2^N pricesora gde je svaki procesor direktno povezan sa ostalih N procesora, prečnik je N. Jedan nedostatak sistema hiperkocki je da sistem mora biti konfigurisan u stepenu dvojke, tako da mašina mora biti napravljena da može potencijalno imati mnogo više procesora nego što je stvarno potrebno za aplikaciju.

Interkonekcijska mreža meševa[uredi | uredi izvor]

U MIMD mašini sa distribuiranom memorijom i sa interkonekcijskom mrežom meševa, procesori se smeštaju u dvodimenzionalnu mrežu. Svaki procesor je spojen sa svojim 4 neposrednim komšijama. Obmotana konekcije se može omogućiti na ivicama meša. Jedna prednost interkonekcijske mreže meševa u odnosu na hiperkocke je da meš sistem ne treba da bude konfigurisan u stepenu dvojke. Nedostatak je da je prečnik meš mreže, za sisteme sa više od 4 procesora, veći nego kod onog kod hiperkocki.

Vidi još[uredi | uredi izvor]

Reference[uredi | uredi izvor]

  1. ^ The Perils of Parallel: Larrabee vs. Nvidia, MIMD vs. SIMD
  2. ^ MIMD
  3. ^ a b Ibaroudene, Djaffer. "Parallel Processing, EG6370G: Chapter 1, Motivation and History." Lecture Slides. St Mary's University, San Antonio, Texas. Spring 2008.
  4. ^ a b Andrew S. Tanenbaum (1997). Structured Computer Organization (4 izd.). Prentice-Hall. str. 559—585. ISBN 978-0130959904. Arhivirano iz originala 01. 12. 2013. g. Pristupljeno 23. 12. 2013.