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]