Our website is made possible by displaying online advertisements to our visitors.
Please consider supporting us by disabling your ad blocker.

Responsive image


Rinnakkaisohjelmointi

Ohjelmointiparadigmat
Deklaratiivinen ohjelmointi
Epärakenteellinen ohjelmointi
Funktionaalinen ohjelmointi
Geneerinen ohjelmointi
Imperatiivinen ohjelmointi
Logiikkapohjainen ohjelmointi
Olio-ohjelmointi
Proseduraalinen ohjelmointi
Rakenteinen ohjelmointi
Reaktiivinen ohjelmointi
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
  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.

Previous Page Next Page