Multiprocessor

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 29. april 2016; checks kræver 16 redigeringer .

En multiprocessor (fra engelsk  multiprocessor, multiprocessing [1] ) er en underklasse af multiprocessor -computersystemer, hvor der er flere processorer og ét adresserum , synligt for alle processorer. I Flynns taksonomi hører multiprocessorer til klassen af ​​SM-MIMD- maskiner. Multiprocessoren kører én kopi af operativsystemet med ét sæt tabeller, inklusive dem, der holder styr på, hvilke hukommelsessider der er ledige.

Klassifikation

I henhold til de roller, som processorer spiller i et multiprocessorsystem, skelner de mellem: symmetriske multiprocessorer (SMP) - alle processorer spiller den samme rolle og har samme adgang til hukommelse og periferiudstyr, og asymmetriske multiprocessorer (AMP) - processorer spiller forskellige roller eller få adgang til ydre enheder forskelligt. AMP-teknologi var kun en overgangsperiode i 60'erne, indtil SMP-teknologien blev udviklet.

Der er flere typer multiprocessorer i henhold til metoden til adressering af hukommelse, herunder: UMA (Uniform Memory Access), NUMA (Non Uniform Memory Access) og COMA (Cache Only Memory Access).

Derudover kan multiprocessorer være af en homogen type, når alle processorer i systemet er ens, eller af en heterogen type, når processorerne i systemet er af forskellig type.

Programmering

Ved programmering af multiprocessorer kan der bruges to programmeringsmodeller : multithreading , hvor en udførelsestråd lanceres på hver processor, og de udveksler data med hinanden gennem delte variable i en delt hukommelse, eller (mere kompleks) meddelelsesoverførsel , når en separat proces lanceres på hver processor, og de kommunikerer med hinanden ved at udveksle beskeder. Multithreading bruges enten eksplicit (i kompilerede programmeringssprog via system- API'er (f.eks. i C / C++ via POSIX Threads , og via boost::thread eller std::thread i C++ siden C++11-standarden), i fortolkede sprog ​​( Java og C# ) ved hjælp af sprogkonstruktioner), enten implicit ( deklarativt ved hjælp af compiler-direktiver ( OpenMP ) eller automatisk af compileren selv ( High Performance Fortran )).

Historie

Multiprocessor-maskiner (SMP/UMA) blev introduceret til markedet tidligt i slutningen af ​​1980'erne og begyndelsen af ​​1990'erne, først som mini-supercomputere ( f.eks. produkter fra Alliant , Convex , Sequent , Encore og Synapse ) . ) , derefter som databehandling . servere og vandt hurtigt popularitet på serverhardwaremarkedet . De første multiprocessorer med x86- arkitektur baseret på Intel 80386- og Intel 486-processorer var Compaq SystemPro-servere, som kom på markedet i slutningen af ​​1989 - begyndelsen af ​​1990. Væksten i tilbud på x86 -multiprocessorservermarkedet førte til, at Intel skabte MultiProcessor Specification [2] , som blev de facto-standarden for x86 SMP-maskiner i mange år .

Eksempler på SMP/UMA-systemer i 1998 [3]
System CPU Maksimalt antal processorer
SGI Power Challenge MIPS R10.000 36
DEC AlphaServer 8400 Alpha 21164 fjorten
Sun E6000 UltraSPARC II tredive
Søn E10000 UltraSPARC II 64
HP/konveks eksemplar PA-8000 16
Cray-T90 Cray vektor 32

De første multiprocessorer af ccNUMA- typen var Kendall Square Researchs KSR1- computer og Denelcors Denelcor HEP i midten af ​​1980'erne.

Eksempler på ccNUMA-systemer i 1998 [4]
System CPU Processorer pr. node Maksimalt antal processorer
Data Generelt AV-20000 Pentium fire 32
Sequent NUMA-Q 2000 Pentium fire 32
SGI Origin 2000 MIPS R10.000 2 128
HP Exemplar X-Class PA-8000 16 256
HP 9000 V-klasse

Multiprocessorer uden cache-kohærens (nccNUMA) blev også oprettet:

Eksempler på nccNUMA-systemer i 1998 [5]
System CPU Processorer pr. node Maksimalt antal processorer
Cray-T3E Alpha 21164 2 2048
BBN TC-2000 Motorola MC88100 en 256
BBN TC-2000 Motorola 604 2 512

Udviklingen af ​​miniaturisering i computerelektronik gjorde det muligt at placere flere processorer i en pakke eller på en chip (engelsk chip-level multiprocessing, CMP), hvilket skabte multi-core processorer . Dette gjorde det muligt at øge ydeevnen af ​​processorer ved blot at øge antallet af beregningsmæssige kerner af simpelt design, i stedet for de traditionelle forsøg på at øge clock-hastigheden eller komplicere den beregningsmæssige pipeline af en single-core processor. Samtidig bruger multi-core processorer hukommelse mere effektivt, arbejder med multi-threaded applikationer, bruger lidt strøm og spreder ikke meget strøm, hvilket er ideelt til at skalere datacentre.

Siden omkring 2005 er alle processorer til forbrugercomputermarkedet blevet frigivet i en multi-core version , det vil sige, at de i det væsentlige er miniature multiprocessorer (mere præcist, SMP-maskiner med UMA-hukommelsesadgang, med nogle forbehold). Yderligere udvikling af denne retning førte til fremkomsten af ​​multi-core multiprocessorer - systemer, hvor der er flere processorer, og disse processorer indeholder igen flere kerner. Den mest almindelige version af servere i datacentre for 2016 er en server med to 8-core Intel Xeon , Oracle SPARC eller IBM POWER klasse processorer , som også understøtter samtidig udførelse af flere tråde i hardware .

Se også

Litteratur

Noter

  1. "1930–35; multi- + proces + -ing 1 " - Dictionary.com Unabridged: " multiprocessor Arkiveret 26. december 2015 på Wayback Machine "
  2. Multiprocessor-specifikation . Hentet 17. oktober 2013. Arkiveret fra originalen 9. januar 2017.
  3. Severance_Dowd, 1998 , s. 260.
  4. Severance_Dowd, 1998 , s. 263.
  5. Severance_Dowd, 1998 , s. 264.

Links