Rinnakkaisprosessointi

Rinnakkaisprosessointi tarkoittaa kahden tai useamman suorittimen käyttämistä tietokonejärjestelmässä. Rinnakkaisprosessointi tarkoittaa myös kykyä jakaa tehtävä useamman eri suorittimen kesken. Toisinsanoen se on kontrolloitu ja koordinoitu laskentaprosessi, joka hyödyntää useita laskentaresursseja määrätyn algoritmisen ongelman ratkaisemiseksi.

Kaavio rinnakkaisprosessoinnista

Jotta laskennallinen ongelma hyötyisi rinnakkaislaskennasta, sen algoritmien luonteen pitää olla jaettavissa ja suorittavissa erillisissä prosesseissa, jotka ovat samanaikaisesti ratkaistavissa. Kun kukin prosessori on suorittanut määrätyn osansa suoritettavasta prosessista, muodostuu vastauksista kokonaisuus ja ongelma on ratkaistu. Lisäksi tällainen rinnakkainen tietojenkäsittely on suoritettava lyhyemmässä ajassa, tehokkaammin useiden laskentaresurssien avulla, sen yhden prosessorin prosessoimisen sijaan.

Rinnakkainen laskentalaitteisto on tyypillisesti joko yksittäinen tietokone, jolla on useita prosessoreita, laskentatoimintaan keskittyneitä ytimiä tai määrätty määrä verkottuneita tietokoneita. Kuuluisimpia rinnakkaislaskentalaitteita ovat maailman supertietokoneet, joiden voidaan käsittää olevan laskennallisen suorituskyvyn ja kapasiteetin maksimoivia laitteistoklustereita.

Rinnakkaisprosessoinnin edut

muokkaa

Haasteelliset ja suuret laskentaprosessit sekä niihin liittyvät ongelmat voidaan usein jakaa pienempiin osiin eli suorittaa osina, jotka voidaan ratkaista samanaikaisesti. Tällainen rinnakkaisuus on pitkään ollut käytössä korkean suorituskyvyn laskennassa, pääkehystietokoneissa (main frame computers) sekä suurteholaskentaan keskittyneissä supertietokoneissa, mutta kiinnostus ja tarve siihen on kasvanut laajemmin laskentaprosesseihin kohdistuvien fyysisten rajoitusten takia, jotka estävät laskennan tehon nostamisen tietokoneiden kellojen taajuusskaalauksen kautta. Viime vuosikymmenen aikana tietokoneiden energiankulutus ja sen sivuvaikutuksena tapahtuva lämmöntuotanto on aiheuttanut koneiden toimintaan konkreettisia haasteita ja rakenteellisia kehitystarpeita. Tämän vuoksi rinnakkaisprosessointi voidaan käsittää olevan arkkitehtuurisessa mielessä hallitseva paradigma tietokoneiden rakenteessa, mikä on pääasiallisesti toteutunut usean ytimen omaavien moniprosessoreiden tuotannon muodossa. Tänä päivänä suurin osa markkinoilla olevista tietokoneista voidaan luokitella systeemityypiltään moniprosessoriseksi.

Laitteiston näkökulmasta tietokoneen toimintaa tarkasteltaessa lähes koko laskennan voidaan katsoa olevan luonteeltaan rinnakkaislaskennallista, koska useimmilla tietokoneilla on useita samanaikaisesti aktiivisia toiminnallisia toimintoja ja yksiköitä, kuten L1- ja L2-välimuistit, esihaku, dekoodaus ja grafiikan käsittely (GPU) sekä liukulukuaritmetiikka, joiden lisäksi niissä on myös useita käsittely-ytimiä ja laitteistosäikeitä.

Prosessorien jaottelu

muokkaa

Tietokoneiden rinnakkaisprosessointi voidaan luokitella sen mukaan, missä kyseinen laitteisto tukee tai missä siinä esiintyy toiminnallista rinnakkaisuutta.

Kiinteä jako

muokkaa

Moniydintietokoneissa emolevyynon kiinnitetty prosessori joka sisältää useita ytimiä, eli useita suoritukseen keskittyneitä käsittelyelementtejä yhdessä koneessa. Nämä ytimet on liitetty toisiinsa väylätasolla ja sen ansiosti toiminta on oikein toteutettuna erittäin sulavaa ja nopeaa. Suoritettavan prosessin on kuitenkin tuettava kyseistä suoritustapaa, jotta siitä olisi jotain etua. Intelin Xeon - sarjan prosessoreita pidetään hallitsevana mallina moniydinprosessoreiden saralla.

Rinnakkaisprosessoinnissa käytettävän prosessorin moniydin arkkitehtuuri voi olla rakenteeltaan homogeeninen tai heterogeeninen. Homogeenisessa arkkitehtuurissa kaikki prosessorin ytimet ovat arkkitehtuuriltaan identtisiä keskenään, kun puolestaan heterogeenisessa erilaisia ytimiä on vähintään kahdenlaisia. Heterogeenisella arkkitehtuurilla voidaan saavuttaa suoritettavasta tehtävästä riippuen homogeeniseen arkkitehtuuriin verrattuna selviä etuja, kuten parempi tehon- ja energiankulutuksen hyötysuhde.

Suoritusteho on viety äärimmilleen tietokoneissa, joiden emolevy mahdollistaa kahden prosessorin samanaikaisen asennuksen ja näin se pystyy hyödyntämään useampaa ydintä samassa tietokoneessa.

Väljä jako

muokkaa

Väljästi jaetut modiydinprosessit (klusterit) taas hyödyntävät useaa erillistä tietokonetta saman prosessin toteuttamiseen. Tietokoneet on yhdistetty toisiinsa niin että tieto kulkee laitteiden välillä hyvin nopeasti esimerkiksi gigabit ethernet yhteydellä. Massiiviset rinnakkaisprosessorit (MPP - massively parallel processors) pystyvät toteuttamaan saman prosessin etenemällä yhtenäisesti. Tällaista usean tietokoneen yhdistettyä järjestelmää sanotaan grid- verkoksi.

Pilvilaskenta ja rinnakkaisprosessointi

muokkaa

Tämän lisäksi rinnakkaisprosessointiin erikoistuneita tietokonearkkitehtuureja hyödynnetään myös perinteisten prosessoreiden rinnalla tiettyjen tehtävien suorittamisen nopeuttamiseksi. Esimerkkinä tästä on pilvilaskenta, joka on rinnakkaisen ja hajautetun järjestelmätietotekniikan muoto, jota toteutetaan toisiinsa yhdistettyjen ja virtuaalisoitujen tietokoneiden kautta, jotka ovat dynaamisesti järjestetty yhdeksi tai useammaksi yhtenäiseksi tietojenkäsittelyresurssiksi, jota tarjotaan asiakkaille tietyn palvelutasosopimuksen perusteella.Pilvilaskenta kuvaa uutta tietoteknisten palveluiden tuottamisen, käyttämisen ja toimittamisen mallia, johon liittyy internetin yli palveluna tarjottuja dynaamisesti skaalautuvia ja virtuaalisia resursseja [1]. Rinnakkaisprosessoinnissa samaa tehtävää suorittaa samanaikaisesti lukuisia suorittimia. Pilvipalveluiden laskutusperiaatteella yhden prosessorin käyttö sadan tunnin ajan maksaa yhtäpaljon kuin sadan prosessorin käyttö yhden tunnin. Rinnakkaisprosessointi mahdollistaa tehtävän suorittamisen muutamassa tunnissa, joka veisi yhdeltä prosessorilta viikkoja. [2]

Rinnakkaisohjelmointi

muokkaa

Rinnakkaisohjelmoinnissa pyritään hyödyntämään rinnakkaisprosessointiarkkitehtuurin suomat suorituskykyedut. Vaikka tämä ohjelmoinnin viitekehys onkin sarjamuotoiseen tietojen käsittelyarkkitehtuuriin tarkoitettuun ohjelmointiin verrattuna haastavampaa, se tuo mukanaan useita etuja. Laskentatehoa tai suuria datamassoja käsittelevässä laskennassa rinnakkaisohjelmoinnin avulla pystytään ratkaisemaan haastavia tehtäviä nopeasti ja kustannustehokkaasti. Rinnakkaisohjelmointi toimii prosessori-, muisti- ja muuta laitteistoarkkitehtuuria korkeammalla abstraktiotasolla. Rinnakkaisohjelmoinnin mallit jaetaan sen mukaan, kuinka ohjelmoidut prosessit ovat vuorovaikutuksessa ja millainen lähestymistapa ongelmanratkaisuun on valittu.


Muita aiheeseen liittyviä sivuja:

Lähteet

muokkaa

Salo, I (2010) Cloud Computing- palvelut verkossa. Jyväskylä: WSOY - Docendo.

Stallings, W. (2016) Computer Organization and Architecture: Designing for Performance. 10th Global edition. New York: Pearson, 2016. Embeddded Intel Solutions: www.embeddedintel.com. http://www.embeddedintel.com/technology_applications.php?article=53

Wikipedia. Pilvilaskenta. https://fi.wikipedia.org/wiki/Pilvilaskenta

Wikipedia. Klusteri. https://fi.wikipedia.org/wiki/Klusteri_(tietotekniikka)

wikipedia. Multiprocessing. https://en.wikipedia.org/wiki/Multiprocessing

wikipedia. Grid network. https://en.wikipedia.org/wiki/Grid_network

https://fi.wikipedia.org/wiki/Ethernet

Viitteet

muokkaa
  1. Wikipedia
  2. Salo 2010