Parallelle computersystemer

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 15. marts 2021; checks kræver 8 redigeringer .

Parallelle computersystemer  er fysiske computersystemer, såvel som softwaresystemer, der på en eller anden måde implementerer parallel databehandling på mange computerknudepunkter. [en]

For hurtigt at sortere et array på en maskine med to processorer kan du f.eks. dele arrayet i to og sortere hver halvdel på en separat processor. Sortering af hver halvdel kan tage forskellig tid, så synkronisering er nødvendig .

Ideen om parallellisering af beregninger er baseret på, at de fleste opgaver kan opdeles i et sæt af mindre opgaver, der kan løses samtidigt. Normalt kræver parallel computing koordinering af handlinger. Parallel computing kommer i flere former: parallelitet på bitniveau, parallelitet på instruktionsniveau, dataparallelisme og opgaveparallelisme. Parallel computing har været brugt i mange år hovedsageligt i højtydende computing, men på det seneste har der været en stigning i interessen på grund af eksistensen af ​​fysiske restriktioner på stigningen i processorernes klokfrekvens. Parallel computing er blevet det dominerende paradigme inden for computerarkitektur , for det meste i form af multi-core processorer . [2]

At skrive programmer til parallelle systemer er vanskeligere end for sekventielle systemer [3] , da ressourcestrid repræsenterer en ny klasse af potentielle softwarefejl ( bugs ), blandt hvilke racetilstanden er den mest almindelige. Kommunikation og synkronisering mellem processer udgør en stor barriere for at opnå høj ydeevne i parallelle systemer. I de senere år er spørgsmålet om strømforbrug af parallelle computere også begyndt at blive overvejet. [4] Karakteren af ​​stigningen i programmets hastighed som følge af parallelisering er forklaret af lovene fra Amdahl og Gustavson .

Typer af parallelisme

Parallelisme på bitniveau

Denne form for parallelisme er baseret på at øge størrelsen af ​​et maskinord . Forøgelse af maskinordstørrelsen reducerer antallet af operationer, som kræves af processoren for at operere på variabler, hvis størrelse er større end maskinordstørrelsen. For eksempel: på en 8-bit processor skal du tilføje to 16-bit heltal. For at gøre dette skal du først tilføje de nederste 8 bits af tallene, derefter tilføje de højere 8 bits og tilføje værdien af ​​bæreflaget til resultatet af deres tilføjelse . I alt 3 instruktioner. Med en 16-bit processor kan du udføre denne handling med en enkelt instruktion.

Historisk set blev 4-bit mikroprocessorer erstattet af 8-bit, derefter dukkede 16-bit og 32-bit op. 32-bit processorer har længe været standarden i hverdagscomputere. Med fremkomsten af ​​x86-64 -teknologi begyndte 64-bit-processorer at blive brugt til disse formål.

Instruktionsniveau parallelisme

Et computerprogram er i bund og grund en strøm af instruktioner, der udføres af en processor. Men du kan ændre rækkefølgen af ​​disse instruktioner, fordele dem i grupper, der vil blive udført parallelt, uden at ændre resultatet af hele programmet. Denne teknik er kendt som parallelisme på instruktionsniveau. Fremskridt i udviklingen af ​​parallelisme på instruktionsniveau i computerarkitektur skete fra midten af ​​1980'erne til midten af ​​1990'erne.

Moderne processorer har en flertrins instruktionspipeline . Hvert trin i pipelinen svarer til en bestemt handling udført af processoren i denne instruktion på dette trin. En processor med N pipeline-trin kan samtidigt have op til N forskellige instruktioner på forskellige niveauer af fuldstændighed. Et klassisk eksempel på en pipelinet processor er en RISC-processor med 5 trin: Hentning af en instruktion fra hukommelsen (IF), afkodning af en instruktion (ID), eksekvering af en instruktion (EX), adgang til hukommelse (MEM), skrivning af resultat til registre (WB) ). Pentium 4-processoren har en pipeline på 31 trin [5] .

Nogle processorer har, udover at bruge pipelines, evnen til at udføre flere instruktioner på samme tid, hvilket giver yderligere parallelitet på instruktionsniveauet. Det er muligt at implementere denne metode ved hjælp af superscalar , når instruktioner kan grupperes sammen til parallel udførelse (hvis de ikke har dataafhængigheder (dataafhængigheder)). Implementeringer ved hjælp af eksplicit parallelisme på instruktionsniveau er også mulige: VLIW og EPIC .

Dataparallelisme

Hovedideen med tilgangen baseret på dataparallelisme er, at én operation udføres umiddelbart på alle elementer i dataarrayet. Forskellige fragmenter af et sådant array behandles på en vektorprocessor eller på forskellige processorer i en parallel maskine. Programmet er ansvarlig for distributionen af ​​data mellem databehandlerne. Vektorisering eller parallelisering i dette tilfælde udføres oftest allerede på kompileringsstadiet - oversættelsen af ​​programmets kildekode til maskininstruktioner. Programmørens rolle i dette tilfælde kommer normalt til at indstille compilerens vektor- eller parallelle optimeringsindstillinger , parallelle kompileringsdirektiver og brugen af ​​specialiserede sprog til parallel computing.

Opgaveparallelisme

En programmeringsstil baseret på opgaveparallelisme indebærer, at en beregningsopgave er opdelt i flere relativt uafhængige underopgaver, og hver processor indlæses af sin egen underopgave.

Distribuerede operativsystemer

Et distribueret OS, ved dynamisk og automatisk at allokere arbejde til forskellige maskiner i systemet til behandling, tvinger et sæt netværksforbundne maskiner til at behandle information parallelt. Brugeren af ​​et distribueret OS har generelt ikke kendskab til den maskine, hvorpå hans arbejde udføres. [6]

Et distribueret OS eksisterer som et enkelt operativsystem på tværs af et computersystem. Hver computer på et netværk, der kører et distribueret OS, udfører en del af funktionerne i dette globale OS. Et distribueret OS forener alle computere på et netværk i den forstand, at de arbejder tæt sammen med hinanden for effektivt at bruge alle ressourcerne i et computernetværk.

Historie

Arbejdet i retning af at skabe parallelle computersystemer i USA og USSR har været intensivt siden 1960'erne . Udviklingen af ​​parallel databehandlingsteknologi og skabelsen af ​​parallelle elektroniske computersystemer i USA efter ordre fra US Defense Advanced Research Projects Agency blev udført af forskningsafdelinger i virksomheder og universiteter: [7]

Arbejdet blev overvåget af ARPA Computing and Information Processing Bureau ved Pentagon , Virginia , og US Air Force Research Center i Rom , New York .

I Sovjetunionen blev arbejde af lignende karakter udført af institutioner inden for Statskomitéen for Radioelektronik (senere omdannet til Ministeriet for Radioindustri ), Forsvarsministeriet og USSR's Videnskabsakademi : [8]

Den biologiske hjerne som en massivt parallel computer

I begyndelsen af ​​1970'erne, på MIT's Artificial Intelligence Laboratory, begyndte Marvin Minsky og Seymour Papert at udvikle en teori, de kaldte " Society of Mind ", der så den biologiske hjerne som en massivt parallel computermaskine . I 1986 udgav Minsky den populære bog The Society of Mind, hvori han argumenterer for, at "hjernens sind er dannet af mange små agenter, der ikke har deres eget sind." [9] Teorien har forsøgt at forklare, hvordan det, vi kalder intelligens, kan være et produkt af samspillet mellem simple dele kaldet agenter, som i sig selv er uintelligente. Minsky hævdede, at den største kilde til ideer om "society of mind"-teorien var hans arbejde med at bygge en maskine, der kunne samle babyblokke ved hjælp af en robotarm, et videokamera og en computer. [10] Society of Mind-teoribogen blev skrevet til den brede offentlighed, i modsætning til det meste af Minskys tidligere offentliggjorte værker.

Lignende modeller (som også betragter den biologiske hjerne som en massivt parallel computermaskine, dvs. betragter hjernen som bestående af mange uafhængige eller semi-uafhængige agenter) er også beskrevet:

Se også

Noter

  1. Almasi, GS og A. Gottlieb (1989). Meget parallel computing . Benjamin-Cummings forlag, Redwood City, CA.
  2. Krste Asanovic et al. The Landscape of Parallel Computing Research: A View from Berkeley Arkiveret 29. februar 2008 på Wayback Machine . University of California, Berkeley. Teknisk rapport nr. UCB/EECS-2006-183. 18. december 2006: "Gammel [konventionel visdom]: Forøgelse af clock-frekvensen er den primære metode til at forbedre processorydelsen. Ny [konventionel visdom]: Øget parallelisme er den primære metode til at forbedre processorens ydeevne... Selv repræsentanter fra Intel, et firma, der generelt er forbundet med positionen "højere clock-speed is better", advarede om, at traditionelle tilgange til at maksimere ydeevnen gennem maksimering af clock-hastigheden har blevet presset til deres grænse."
  3. David A. Patterson og John L. Hennessy . Computerorganisation og design (anden udgave) Morgan Kaufmann Publishers, 1998. ISBN 1-55860-428-6 , s. 715
  4. Asanovic et al: Gammel [konventionel visdom]: Strøm er gratis, men transistorer er dyre. Ny [konventionel visdom] er [at] strøm er dyrt, men transistorer er "gratis".
  5. KEND INTUIT | Foredrag | Pipeline-organisation af mikroprocessoren . Hentet 27. juni 2017. Arkiveret fra originalen 28. maj 2017.
  6. Andrew Tanenbaum , Martin van Steen. distribuerede systemer. Principper og paradigmer = Andrew S. Tanenbaum, Maarten van Steen. "Destribuerede systemer. Principper og paradigmer". - St. Petersborg: Piter, 2003. - 877 s. — (Klassikere inden for datalogi). - ISBN 5-272-00053-6 .
  7. Udtalelse fra Dr. Stephen J. Lukasik, direktør, Advanced Research Projects Agency . / Forsvarsministeriets bevillinger for regnskabsåret 1972. - 30. april 1971. - S. 741 - 1090 s.
  8. Tikhonov S. G. Forsvarsvirksomheder i USSR og Rusland: i 2 bind  - M .  : TOM, 2010. - T. 2. - S. 47-48, 82-83. — 608 s. - 1000 eksemplarer.  - 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 Ud over det bevidste sind. Låse op for selvets hemmeligheder  (engelsk) . - 1996. - S.  6 -7.
  12. Gazzaniga, Michael ; LeDoux, Joseph Det integrerede sind  (neopr.) . - 1978. - S.  132 -161.
  13. Gazzaniga, Michael . Den sociale hjerne. Opdagelse af  sindets netværk . - 1985. - S.  77 -79.
  14. Ornstein, Robert Bevidsthedsudvikling: Oprindelsen af ​​den måde, vi tænker på  (engelsk) . - 1992. - S.  2 .
  15. Hilgard, ErnestDelt bevidsthed: flere kontroller i menneskelig tanke og handling . - New York: Wiley, 1977. - ISBN 978-0-471-39602-4 .
  16. Hilgard, ErnestDelt bevidsthed: flere kontroller i menneskelig tanke og handling (udvidet udgave)  (engelsk) . - New York: Wiley, 1986. - ISBN 0-471-80572-6 .
  17. Kaku, Michio . Sindets fremtid: Den videnskabelige søgen efter at forstå, styrke og styrke  sindet . – 2014.
  18. Uspensky, Peter . Kapitel 3 // På jagt efter det mirakuløse. Brudstykker af den ukendte lære . - 1992. - S. 72-83.
  19. Officiel hjemmeside for Neurocluster Model of the Brain . Hentet 22. juli 2017. Arkiveret fra originalen 21. juli 2017.

Links