Rinnakkaisohjelmointi

Antsawikistä
Siirry navigaatioon Siirry hakuun
Ohjelmointiparadigmat
Deklaratiivinen ohjelmointi
Epärakenteellinen ohjelmointi
Funktionaalinen ohjelmointi
Geneerinen ohjelmointi
Imperatiivinen ohjelmointi
Logiikkapohjainen ohjelmointi
Olio-ohjelmointi
Proseduraalinen ohjelmointi
Prototyyppipohjainen ohjelmointi
Reaktiivinen ohjelmointi
Rinnakkaisohjelmointi
Strukturoitu ohjelmointi

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 | muokkaa wikitekstiä]

Lähteet[muokkaa | muokkaa wikitekstiä]

  1. Plan 9 from Bell Labs plan9.bell-labs.com. 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. Viitattu 20.2.2017.
Tämä tietotekniikkaan liittyvä artikkeli on tynkä. Voit auttaa Antsawikiä laajentamalla artikkelia.