Parallella datorsystem

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 15 mars 2021; kontroller kräver 8 redigeringar .

Parallella datorsystem  är fysiska datorsystem, såväl som mjukvarusystem som på ett eller annat sätt implementerar parallell databehandling på många datornoder. [ett]

Om du till exempel snabbt vill sortera en array på en tvåprocessormaskin kan du dela arrayen på mitten och sortera varje halva på en separat processor. Att sortera varje halva kan ta olika lång tid, så synkronisering är nödvändig .

Idén med parallellisering av beräkningar bygger på det faktum att de flesta uppgifter kan delas upp i en uppsättning mindre uppgifter som kan lösas samtidigt. Vanligtvis kräver parallell beräkning samordning av åtgärder. Parallell beräkning finns i flera former: parallellitet på bitnivå, parallellitet på instruktionsnivå, dataparallellism och uppgiftsparallellism. Parallell beräkning har använts i många år främst inom högpresterande beräkningar, men på senare tid har intresset ökat på grund av förekomsten av fysiska restriktioner för ökningen av klockfrekvensen hos processorer. Parallell beräkning har blivit det dominerande paradigmet inom datorarkitektur , mestadels i form av flerkärniga processorer . [2]

Att skriva program för parallella system är svårare än för sekventiella system [3] , eftersom resursstrider representerar en ny klass av potentiella programvarubuggar ( buggar ), bland vilka rastillståndet är det vanligaste. Kommunikation och synkronisering mellan processer utgör ett stort hinder för att uppnå hög prestanda i parallella system. På senare år har också frågan om strömförbrukning för parallella datorer börjat övervägas. [4] Karaktären av ökningen av programmets hastighet till följd av parallellisering förklaras av Amdahls och Gustavsons lagar .

Typer av parallellism

Parallellism på bitnivå

Denna form av parallellism bygger på att öka storleken på ett maskinord . Ökning av maskinordstorleken minskar antalet operationer som krävs av processorn för att arbeta på variabler vars storlek är större än maskinordstorleken. Till exempel: på en 8-bitars processor måste du lägga till två 16-bitars heltal. För att göra detta måste du först lägga till de lägre 8 bitarna av siffrorna, sedan lägga till de högre 8 bitarna och lägga till värdet på bärflaggan till resultatet av deras tillägg . Totalt 3 instruktioner. Med en 16-bitars processor kan du utföra denna operation med en enda instruktion.

Historiskt sett ersattes 4-bitars mikroprocessorer med 8-bitars, sedan dök 16-bitars och 32-bitars upp. 32-bitars processorer har länge varit standarden i daglig datoranvändning. Med tillkomsten av x86-64 -teknik började 64-bitarsprocessorer användas för dessa ändamål.

Instruktionsnivå parallellism

Ett datorprogram är i huvudsak en ström av instruktioner som exekveras av en processor. Men du kan ändra ordningen på dessa instruktioner, distribuera dem i grupper som kommer att köras parallellt, utan att ändra resultatet av hela programmet. Denna teknik är känd som parallellism på instruktionsnivå. Framsteg i utvecklingen av parallellism på instruktionsnivå inom datorarkitektur skedde från mitten av 1980-talet till mitten av 1990-talet.

Moderna processorer har en flerstegsinstruktionspipeline . Varje steg i pipelinen motsvarar en viss åtgärd som utförs av processorn i denna instruktion i detta skede. En processor med N pipelinesteg kan samtidigt ha upp till N olika instruktioner på olika nivåer av fullständighet. Ett klassiskt exempel på en pipelined processor är en RISC-processor med 5 steg: hämta en instruktion från minnet (IF), avkoda en instruktion (ID), exekvera en instruktion (EX), komma åt minnet (MEM), skriva resultat till register (WB) ) . Pentium 4-processorn har en pipeline med 31 steg [5] .

Vissa processorer har, förutom att använda pipelines, förmågan att utföra flera instruktioner samtidigt, vilket ger ytterligare parallellitet på instruktionsnivån. Det är möjligt att implementera denna metod med hjälp av superscalar , när instruktioner kan grupperas tillsammans för parallell exekvering (om de inte har databeroende (databeroende)). Implementeringar med explicit parallellitet på instruktionsnivå är också möjliga: VLIW och EPIC .

Dataparallellism

Huvudtanken med tillvägagångssättet baserat på dataparallellism är att en operation utförs omedelbart på alla element i datamatrisen. Olika fragment av en sådan array bearbetas på en vektorprocessor eller på olika processorer i en parallell maskin. Programmet ansvarar för distributionen av data mellan processorerna. Vektorisering eller parallellisering i detta fall utförs oftast redan vid kompileringsstadiet - översättningen av programmets källkod till maskininstruktioner. Programmerarens roll i det här fallet handlar vanligtvis om att ställa in kompilatorns vektor- eller parallella optimeringsinställningar , parallella kompileringsdirektiv och användningen av specialiserade språk för parallell beräkning.

Uppgift parallellism

En programmeringsstil baserad på uppgiftsparallellism innebär att en beräkningsuppgift är uppdelad i flera relativt oberoende deluppgifter och varje processor laddas av sin egen deluppgift.

Distribuerade operativsystem

Ett distribuerat OS, genom att dynamiskt och automatiskt allokera arbete till olika maskiner i systemet för bearbetning, tvingar en uppsättning nätverksanslutna maskiner att behandla information parallellt. Användaren av ett distribuerat OS har generellt sett ingen kunskap om den maskin på vilken hans arbete utförs. [6]

Ett distribuerat operativsystem existerar som ett enda operativsystem över ett datorsystem. Varje dator i ett nätverk som kör ett distribuerat operativsystem utför en del av funktionerna i detta globala operativsystem. Ett distribuerat operativsystem förenar alla datorer i ett nätverk i den meningen att de arbetar i nära samarbete med varandra för att effektivt använda alla resurser i ett datornätverk.

Historik

Arbetet med att skapa parallella datorsystem i USA och Sovjetunionen har varit intensivt sedan 1960 -talet . Utvecklingen av parallell databehandlingsteknologi och skapandet av parallella elektroniska datorsystem i USA på order av US Defense Advanced Research Projects Agency genomfördes av forskningsavdelningar vid företag och universitet: [7]

Arbetet övervakades av ARPA Computing and Information Processing Bureau vid Pentagon , Virginia , och US Air Force Research Center i Rome , New York .

I Sovjetunionen utfördes arbete av liknande karaktär av institutioner inom den statliga kommittén för radioelektronik (senare omvandlad till ministeriet för radioindustri ), försvarsministeriet och Sovjetunionens vetenskapsakademi : [8]

Den biologiska hjärnan som en massivt parallell dator

I början av 1970-talet, vid MIT:s laboratorium för artificiell intelligens, började Marvin Minsky och Seymour Papert utveckla en teori som de kallade " Society of Mind " som såg den biologiska hjärnan som en massivt parallell datormaskin . 1986 publicerade Minsky den populära boken The Society of Mind, där han hävdar att "hjärnans sinne bildas av många små agenter som inte har något eget sinne." [9] Teorin har försökt förklara hur det vi kallar intelligens kan vara produkten av samspelet mellan enkla delar som kallas agenter, som i sig är ointelligenta. Minsky hävdade att den största källan till idéer om "society of mind"-teorin var hans arbete med att försöka bygga en maskin som skulle sätta ihop babyblock med hjälp av en robotarm, en videokamera och en dator. [10] Teoriboken Society of Mind skrevs för allmänheten, till skillnad från de flesta av Minskys tidigare publicerade verk.

Liknande modeller (som också betraktar den biologiska hjärnan som en massivt parallell datormaskin, dvs. anser att hjärnan består av många oberoende eller halvoberoende agenter) beskrev också:

Se även

Anteckningar

  1. Almasi, GS och A. Gottlieb (1989). Mycket parallell beräkning . Benjamin-Cummings förlag, Redwood City, CA.
  2. Krste Asanovic et al. The Landscape of Parallel Computing Research: A View from Berkeley Arkiverad 29 februari 2008 vid Wayback Machine . University of California, Berkeley. Teknisk rapport nr. UCB/EECS-2006-183. 18 december 2006: "Gammal [konventionell visdom]: Ökad klockfrekvens är den primära metoden för att förbättra processorprestanda. Ny [konventionell visdom]: Ökad parallellitet är den primära metoden för att förbättra processorprestanda... Även representanter från Intel, ett företag som allmänt förknippas med positionen "högre klockhastighet är bättre", varnade för att traditionella metoder för att maximera prestanda genom att maximera klockhastigheten har har pressats till sin gräns."
  3. David A. Patterson och John L. Hennessy . Computer Organization and Design (andra upplagan) Morgan Kaufmann Publishers, 1998. ISBN 1-55860-428-6 , sid 715
  4. Asanovic et al: Gammal [konventionell visdom]: Ström är gratis, men transistorer är dyra. Ny [konventionell visdom] är [att] kraft är dyr, men transistorer är "gratis".
  5. KÄNNA INTUIT | Föreläsning | Pipelineorganisation av mikroprocessorn . Hämtad 27 juni 2017. Arkiverad från originalet 28 maj 2017.
  6. Andrew Tanenbaum , Martin van Steen. distribuerade system. Principer och paradigmer = Andrew S. Tanenbaum, Maarten van Steen. "Destribuerade system. Principer och paradigm". - St. Petersburg: Piter, 2003. - 877 s. — (Datavetenskapens klassiker). - ISBN 5-272-00053-6 .
  7. Uttalande av Dr. Stephen J. Lukasik, direktör, Advanced Research Projects Agency . / Försvarsdepartementets anslag för räkenskapsåret 1972. - 30 april 1971. - S. 741 - 1090 sid.
  8. Tikhonov S. G. Försvarsföretag i Sovjetunionen och Ryssland: i 2 volymer  - M .  : TOM, 2010. - T. 2. - S. 47-48, 82-83. — 608 sid. - 1000 exemplar.  - ISBN 978-5-903603-03-9 .
  9. Minsky, Marvin. The Society of Mind  (neopr.) . - New York: Simon & Schuster , 1986. - s  . 17 . - ISBN 0-671-60740-5 .
  10. Minsky, Marvin. The Society of Mind  (neopr.) . - New York: Simon & Schuster , 1986. - s  . 29 . - ISBN 0-671-60740-5 .
  11. Blakeslee, Thomas Bortom det medvetna sinnet. Unlocking the Secrets of the Self  (engelska) . - 1996. - S.  6 -7.
  12. Gazzaniga, Michael ; LeDoux, Joseph Det integrerade sinnet  (neopr.) . - 1978. - S.  132 -161.
  13. Gazzaniga, Michael . Den sociala hjärnan. Upptäcka  sinnets nätverk . - 1985. - S.  77 -79.
  14. Ornstein, Robert Evolution of Consciousness: The Origins of the Way We Think  (engelska) . - 1992. - P.  2 .
  15. Hilgard, ErnestDelat medvetande: flera kontroller i mänskligt tänkande och handlingar . - New York: Wiley, 1977. - ISBN 978-0-471-39602-4 .
  16. Hilgard, ErnestDelat medvetande: flera kontroller i mänskligt tänkande och handlingar (utökad upplaga)  (engelska) . - New York: Wiley, 1986. - ISBN 0-471-80572-6 .
  17. Kaku, Michio . The Future of the Mind: Den vetenskapliga strävan efter att förstå, förbättra och stärka  sinnet . — 2014.
  18. Uspensky, Peter . Kapitel 3 // In Search of the Miraculous. Fragment av den okända läran . - 1992. - S. 72-83.
  19. Officiell webbplats för Neurocluster Model of the Brain . Hämtad 22 juli 2017. Arkiverad från originalet 21 juli 2017.

Länkar