Rinnakkaisohjelmointi

ohjelmointikielen tukea rinnakkaisuudelle hyödyntävä ohjelmointiparadigma; laskenta tietokoneella, jossa laskennat tapahtuvat yhtäaikaisesti samalla aikavälillä

Rinnakkaisohjelmointi on ohjelmointiparadigma, joka pyrkii hyödyntämään ohjelmointikielen tukea rinnakkaisuudelle.

Esimerkki rinnakkaisohjelmointiin tarkoitetuista ohjelmointikielistä on Alef, joka kehitettiin Plan 9 -käyttöjärjestelmän kanssa Bell Labs:ssa.[1][2] Alef-kieli osoittautui liian vaikeaksi ylläpitää eri alustojen välillä, mutta sen tekijät ottivat siitä opiksi C-kielen säiekirjastoon.[3]

Paradigman toteuttavia ohjelmointikieliä ovat muun muassa Googlen Go (golang), Limbo sekä Occam.

C-kielestä on kehitetty murteita rinnakkaisohjelmointiin kuten Unified Parallel C (UPC), joka käyttää SPMD-mallin suoritusta.

Rinnakkaisohjelmoinnin (parallel) lisäksi on yhtäaikainen (concurrent) ohjelmointi, joka käyttää yhtä aikaa suoritettavia prosesseja ja säikeitä.

Yleiskäyttöisten rinnakkaisohjelmointialgoritmien kehittäminen on vaikeampaa kuin yleiskäyttöisien sarjamuotoisten algoritmien.[4]

Neljä tärkeintä MIMD-tyyppiseen rinnakkaisohjelmointiin käytettäviä paradigmoja ovat:[5]

  • compute-aggregate-broadcast
  • divide-and-conquer
  • pipelining
  • reduction

Katso myös muokkaa

Lähteet muokkaa

  1. Plan 9 from Bell Labs plan9.bell-labs.com. Arkistoitu 5.2.2015. Viitattu 15.2.2017.
  2. Winterbottom, Phil: Alef Language Reference Manual doc.cat-v.org. Viitattu 15.2.2017.
  3. Pike, Rob: Rio: Design of a Concurrent Window System doc.cat-v.org. Viitattu 20.2.2017.
  4. Blelloch, Guy E. & Maggs, Bruce M.: Parallel Algorithms cs.cmu.edu. Viitattu 21.2.2017.
  5. Nelson, Philip Arne: Parallel Programming Paradigms dtic.mil. Arkistoitu 17.2.2017. Viitattu 20.2.2017.
Tämä tietotekniikkaan liittyvä artikkeli on tynkä. Voit auttaa Wikipediaa laajentamalla artikkelia.