Rinnakkaislaskenta

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 5. lokakuuta 2014 tarkistetusta versiosta . tarkastukset vaativat 12 muokkausta .

Rinnakkaislaskenta  on tapa järjestää tietokonelaskentaa , jossa ohjelmia kehitetään vuorovaikutteisten laskentaprosessien joukoksi, jotka toimivat rinnakkain (samanaikaisesti). Termi kattaa kaikki ohjelmoinnin rinnakkaiskysymykset sekä tehokkaiden laitteistototeutusten luomisen . Rinnakkaislaskennan teoria on osa sovellettua algoritmien teoriaa [1] .

On olemassa useita tapoja toteuttaa rinnakkaislaskentaa. Esimerkiksi kukin laskentaprosessi voidaan toteuttaa käyttöjärjestelmäprosessina tai laskentaprosessit voivat olla sarja suoritussäikeitä yhdessä käyttöjärjestelmäprosessissa. Rinnakkaisohjelmat voidaan suorittaa fyysisesti joko peräkkäin yhdellä prosessorilla  - vuorotellen kunkin laskentaprosessin suoritusvaiheita tai rinnakkain - allokoimalla yksi tai useampi prosessori (sijaitsee lähellä tai jaettu tietokoneverkkoon ) kullekin laskentaprosessille.

Suurin vaikeus rinnakkaisten ohjelmien suunnittelussa on varmistaa oikea vuorovaikutusjärjestys eri laskentaprosessien välillä sekä prosessien kesken jaettujen resurssien koordinointi.

Tapoja synkronoida rinnakkaisviestintä

Joissakin samanaikaisissa ohjelmointijärjestelmissä tietojen siirto komponenttien välillä on piilotettu ohjelmoijalta (esimerkiksi lupausmekanismin avulla ), kun taas toisissa se on määriteltävä erikseen. Eksplisiittiset vuorovaikutukset voidaan jakaa kahteen tyyppiin:

Viestintäpohjaiset rinnakkaisjärjestelmät ovat usein helpompia ymmärtää kuin jaetun muistin järjestelmät, ja niitä pidetään yleensä ylivertaisena rinnakkaisohjelmointimenetelmänä. Viestinvälitysjärjestelmien tutkimiseen ja analysointiin on olemassa laaja valikoima matemaattisia teorioita, mukaan lukien toimijamalli ja erilaiset prosessilaskenta . Viestintä voidaan toteuttaa tehokkaasti symmetrisillä moniprosessoreilla sekä jaetulla koherentilla muistilla että ilman sitä.

Hajautetun muistin rinnakkaisuudella ja viestien välitysrinnakkaisuudella on erilaiset suorituskykyominaisuudet. Yleensä (mutta ei aina) prosessimuistin ja tehtävien vaihtoajan yläraja on pienempi järjestelmissä, joissa sanoma välitetään, mutta itse sanoman välitys on enemmän ylimääräistä kuin prosessikutsut. Muut suorituskykyyn vaikuttavat tekijät ohittavat usein nämä erot.

Tietysti tällaisessa järjestelmässä on myös mahdollista käyttää yksinomaan sanomanvälitysmenetelmää, eli ajaa erillinen prosessi kunkin solmun jokaisella prosessorilla. Tässä tapauksessa prosessien (ja säikeiden) määrä on sama kuin prosessorien lukumäärä kaikissa solmuissa. Tämä menetelmä on yksinkertaisempi (rinnakkaisohjelmassa sinun tarvitsee vain lisätä prosessien määrää), mutta se on vähemmän tehokas, koska saman solmun prosessorit vaihtavat viestejä keskenään ikään kuin ne olisivat eri koneissa [5] .

Tyypillisiä tehtäviä, jotka mahdollistavat rinnakkaislaskennan

Concurrency Software Tools

Katso myös

Muistiinpanot

  1. Mihalevitš, 1989 , s. yksi.
  2. RedBook, 1999 , s. yksi.
  3. RedBook, 1999 , s. 2.
  4. RedBook, 1999 , s. 5.
  5. RedBook, 1999 , s. neljä.

Kirjallisuus

Linkit