Parallel computing

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 5. oktober 2014; checks kræver 12 redigeringer .

Parallel computing  er en måde at organisere computer computing på, hvor programmer udvikles som et sæt af interagerende computerprocesser, der arbejder parallelt (samtidigt). Udtrykket omfatter alle spørgsmålene om parallelitet i programmering , såvel som skabelsen af ​​effektive hardwareimplementeringer . Teorien om parallel computing er en del af den anvendte teori om algoritmer [1] .

Der er forskellige måder at implementere parallel computing på. For eksempel kan hver computerproces implementeres som en operativsystemproces , eller databehandlingsprocesser kan være et sæt udførelsestråde inden for en enkelt OS-proces. Parallelle programmer kan udføres fysisk enten sekventielt på en enkelt processor  - alternerende på skift af eksekveringstrinene i hver beregningsproces, eller parallelt - ved at allokere en eller flere processorer (placeret i nærheden eller distribueret i et computernetværk ) til hver beregningsproces.

Den største vanskelighed ved at designe parallelle programmer er at sikre den korrekte sekvens af interaktioner mellem forskellige computerprocesser, samt koordineringen af ​​ressourcer, der deles mellem processer.

Måder at synkronisere parallel kommunikation

I nogle samtidige programmeringssystemer er overførslen af ​​data mellem komponenter skjult for programmøren (for eksempel ved at bruge løftemekanismen ), mens det i andre skal angives eksplicit. Eksplicitte interaktioner kan opdeles i to typer:

Messaging-baserede parallelle systemer er ofte lettere at forstå end systemer med delt hukommelse og betragtes generelt som en overlegen metode til parallel programmering. Der er en bred vifte af matematiske teorier til undersøgelse og analyse af systemer til videregivelse af beskeder, herunder aktørmodellen og forskellige former for procesregning . Beskeder kan effektivt implementeres på symmetriske multiprocessorer både med delt sammenhængende hukommelse og uden.

Distribueret hukommelsesparallelisme og meddelelsespasserparallelisme har forskellige præstationskarakteristika. Normalt (men ikke altid) er overheaden af ​​proceshukommelse og opgaveskiftetid lavere for systemer med meddelelsesoverførsel, men selve meddelelsen, der passerer, er mere overhead end procedurekald. Disse forskelle tilsidesættes ofte af andre faktorer, der påvirker ydeevnen.

I et sådant system er det naturligvis også muligt udelukkende at bruge meddelelsesoverførselsmetoden, det vil sige at køre en separat proces på hver processor i hver knude. I dette tilfælde vil antallet af processer (og tråde) være lig med antallet af processorer på alle noder. Denne metode er enklere (i et parallelt program behøver du kun at øge antallet af processer), men den er mindre effektiv, da processorerne i den samme node vil udveksle beskeder med hinanden, som om de var på forskellige maskiner [5] .

Typiske opgaver, der tillader parallel databehandling

Samtidig softwareværktøjer

Se også

Noter

  1. Mikhalevich, 1989 , s. en.
  2. RedBook, 1999 , s. en.
  3. RedBook, 1999 , s. 2.
  4. RedBook, 1999 , s. 5.
  5. RedBook, 1999 , s. fire.

Litteratur

Links