Rinnakkaiskäyttöinen kone

Vuonna tietojenkäsittelytiede, rinnakkainen hajasaantikone tai vaunut lyhyitä , on kone analysointiin rinnakkaisten algoritmien . Se on rekisterikone, jota on laajennettu käsittämään komennot samanaikaisesti. Kuten kaikissa rekisterikoneiden malleissa, PRAM: issa on erilaisia ​​muunnelmia. Kaikille malleille yhteinen idea on, että useat rekisterit voivat suorittaa laskutoimituksia samanaikaisesti ja tallentaa tuloksen muistisoluihin . PRAM palvelee muun muassa. vuonna vaativuusteoriassa määrittelemään luokkaan NC tehokkaasti rinnakkain ratkeava ongelmia.

Esimerkki toteutuksesta

Vaikka suppeammassa merkityksessä olevat rekisterikoneet tukevat vain hyvin yksinkertaisia käskyjä , voidaan määritellä vastaavat rekisterikoneet , joiden ohjelmat voidaan määrittää korkean tason ohjelmointikielellä . Komennojen rinnakkainen käsittely voidaan nyt tehdä ottamalla käyttöön uusi lause, joka näyttää tältä:

varten <ehto> pardo <ohjeet>

pardo tarkoittaa rinnakkain tekemistä . Esimerkki:

i = 1-100 pardo x i  : = 0

Tämä ohje alustaa 100 muistipaikkaa arvolla 0 samanaikaisesti. Esimerkiksi x voidaan ajatella matriisina, jonka kentät on indeksoitu 1: stä 100: een. Yleisempi merkintätapa x i ei sisällä tällaisia toteutuksen yksityiskohtia . Annetulla esimerkillä ei tietenkään ole erityisen suurta käytännön merkitystä. Siksi tässä on hyödyllisempi esimerkki, joka osoittaa PRAMin kyvyt hyvin:

Annetaan luettelo n eri arvosta, jotka tallennetaan lajittelemattomina muistisoluihin x 1 - x n . Etsimme sitä x i: tä, joka sisältää suurimman arvon. Yllättäen tämä haku voidaan suorittaa rinnakkain PRIORITY-CRCW-PRAM-laitteella (katso alla), joka ei vaadi prosessoreiden aktivointia, minkä tahansa kokoiselle n: lle koko vakiona :

for i=1 to n pardo
    bi := 1
for i,j=1 to n pardo
    if xj > xi
    then
        bi := 0
    fi
for i=1 to n pardo
    if bi = 1
    then
        m := i
    fi

Toisen silmukan jälkeen bi: llä on arvo 1 vain, jos x i on suurin. Kaikilla muilla b j: llä j with i on arvo 0. I, jolla on b i = 1, on siis haettu indeksi ja löytyy ohjelman suorittamisen jälkeen m. Suurin käytettäessä lajittelemattoman luettelo kaikista pituus on n voidaan näin ollen laskea jatkuvasti vaivaa, eli O (1) aika.

Eri PRAM-mallit

SIMD- ja MIMD-rattaat

Edellä kuvattu pardo-käsky mahdollistaa tietyn käskyn samanaikaisen suorittamisen eri muuttujilla ajanjakson sisällä . Tällaisia ​​rinnakkaismalleja kutsutaan lyhytaikaisesti yhden käskyn monidatamalleiksi tai SIMD: ksi . Jos eri komennot ovat sallittuja sisällä aikajakso, tätä kutsutaan usean käskyn useita tietoja mallin ( MIMD ). Pardon lausunto on liian suppeasti määritelty tällaiselle mallille.

Samanaikainen luku- ja kirjoitusoikeus samanlaisille muistisoluille

On määriteltävä, sallitaanko samanaikaisen luku- ja kirjoitusoikeuden samanlaisille muistisoluille vai ei. Edellä oleva maksimihakualgoritmi vaatii molempia: Toisessa pardo-käskyssä eri prosessorit käyttävät samanlaisia ​​muistisoluja x i samanaikaisesti , jotta niitä voidaan verrata toisiinsa, ja muistisolua b i käytetään samanaikaisesti kirjoittamista varten . Et aina halua sallia tällaisia ​​vapauksia. Sen vuoksi tehdään ero:

  • CRCW PRAM: samanaikainen lukeminen, samanaikainen kirjoittaminen - samanaikainen luku- ja kirjoitusoikeus mahdollista
  • CREW PRAM: Samanaikainen luku, yksinomainen kirjoitus - samanaikainen lukuoikeus, mutta vain yksinomainen kirjoitusoikeus sallittu
  • EREW PRAM: Yksinomainen luku-, kirjoitus- - vain yksinoikeus luku- ja kirjoitusoikeus sallittu

Esimerkiksi EREW: n tapauksessa vain yhdellä prosessorilla voi olla luku- tai kirjoitusoikeus tiettyyn muistisoluun. Muuten ohjelma lopetetaan .

Kirjoitusoikeus CRCW-tiedostoihin

CRCW PRAM: n tapauksessa on vielä selvitettävä, mitä tapahtuisi samanaikaisen kirjoitusoikeuden tapauksessa, kun eri prosessorit haluavat kirjoittaa erilaisia ​​arvoja muistisolulle. On 3 tilaa:

  • common: Vain identtisten arvojen kirjoittaminen on sallittua.
  • mielivaltainen: Satunnaisarvo valitaan ja kirjoitetaan.
  • prioriteetti: Prosessori, jolla on pienin osoite, saa kirjoitusoikeuden.

Erityisillä algoritmeilla PRAM: n eri muunnelmat johtavat erilaisiin resurssien kulutuksen monimutkaisuuteen . Esimerkiksi edellä mainittu maksimihakualgoritmi riippuu samanaikaisesta luku- ja kirjoitusoikeudesta, so. CRCW PRAM: sta, kuten on kuvattu. Ratkaisu vakiona ei olisi mahdollista PRAM: lla, joka ei salli tätä. Mikä PRAM-malli valitset tiettyä tutkimusta varten, riippuu siis analyysitavoitteista, joita tavoitat sillä.


Yksittäiset todisteet

  1. Jaja, J.: Johdatus rinnakkaisalgoritmeihin . S. 14-15 ( utah.edu [PDF]).