Rinnakkaisohjelmointi
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
muokkaaLähteet
muokkaa- ↑ Plan 9 from Bell Labs plan9.bell-labs.com. Arkistoitu 5.2.2015. Viitattu 15.2.2017.
- ↑ Winterbottom, Phil: Alef Language Reference Manual doc.cat-v.org. Viitattu 15.2.2017.
- ↑ Pike, Rob: Rio: Design of a Concurrent Window System doc.cat-v.org. Viitattu 20.2.2017.
- ↑ Blelloch, Guy E. & Maggs, Bruce M.: Parallel Algorithms cs.cmu.edu. Viitattu 21.2.2017.
- ↑ Nelson, Philip Arne: Parallel Programming Paradigms dtic.mil. Arkistoitu 17.2.2017. Viitattu 20.2.2017.