Hyppää sisältöön
    • Suomeksi
    • In English
Trepo
  • Suomeksi
  • In English
  • Kirjaudu
Näytä viite 
  •   Etusivu
  • Trepo
  • Kandidaatintutkielmat
  • Näytä viite
  •   Etusivu
  • Trepo
  • Kandidaatintutkielmat
  • Näytä viite
JavaScript is disabled for your browser. Some features of this site may not work without it.

Rinnakkaisuuden vertailu: C++ ja Python: Toteutuksen ja nopeutuksen tarkastelu

Irri, Viljami (2023)

 
Avaa tiedosto
IrriViljami.pdf (479.1Kt)
Lataukset: 



Irri, Viljami
2023

Tieto- ja sähkötekniikan kandidaattiohjelma - Bachelor's Programme in Computing and Electrical Engineering
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2023-05-04
Näytä kaikki kuvailutiedot
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202304294878
Tiivistelmä
Rinnakkaista suoritusta esiintyy lähes kaikkialla nykypäivänä, esimerkiksi tieteen ja teollisuuden aloilla, pelialalla ja sisällöntuotannossa. Rinnakkaisissa sovelluksissa pyritään tavallisesti mahdollisimman korkeaan suorituskykyyn, mikä auttaa alati kasvavien datamäärien käsittelynopeudessa. Rinnakkaisuuden merkityksellisyys
on myös nähtävissä suoritinmarkkinoilla - suorittimien ydinmäärät ovat nousseet erityisesti viime vuosina.

Rinnakkaisuuden toteutustavat riippuvat käytetystä ohjelmointikielestä. Tässä työssä tarkastellaan Python- ja C++-kieliä. Python-kieli on tarkoitettu aloittelijaystävälliseksi ja helposti luettavaksi skriptikieleksi, joka hyödyntää monenlaisia kirjastoja joustavuuden takaamiseksi. Pythonohjelmat ajetaan virtuaaliympäristössä, joka tekee niistä alustariippumattomia. C++-kieli on tunnetusti hankala ohjelmointikieli, joka antaa ohjelmoijalle paljon vapautta matalan tason ohjelmointiin liittyen ja on suunniteltu suorituskyky- ja tehokkuuspainotteiseksi. Työssä vertaillaan näiden kahden ohjelmointikielen rinnakkaisia ohjelmatoteutuksia. Työn tarkoituksena on selvittää kielten rinnakkaisuuden toteutustapoja ja tehokkuutta.

Tutkielmassa tutustutaan rinnakkaisuuden teoreettiseen taustaan keskittyen rinnakkaisuuden toteutustapoihin, haasteisiin, tehokkuuteen vaikuttaviin asioihin sekä suorituskyvyn erilaisiin näkökulmiin. Työssä tarkasteltavia ohjelmointikieliä vertailtiin kirjoittamalla vastaavat ohjelmatoteutukset ja vertailemalla ohjelmatoteutuksien suorituskykyä keskittyen erityisesti rinnakkaisuudesta saatuun nopeutukseen. Ohjelmatoteutuksien rinnakkainen osuus oli matriisin kertolaskualgoritmi. Valitut eri sarakemitan matriisit ajettiin ohjelmatoteutuksilla, ja mittaustuloksia valikoitiin Best-K-metodin avulla. Tulokset herättivät pohdintaa muun muassa prosessien ja säikeiden yleiskustannusten erosta ja mahdollisesta jatkotutkimuksesta.

Mittausten perusteella tehokkuuden ero on merkittävä tarkasteltavien ohjelmointikielten välillä. Eroon vaikuttaa eniten Pythonin tulkkaus, joka hidastaa toteutetun ohjelman suorituskykyä verrattuna C++:n vastaavaan ohjelmatoteutukseen, joka on käännetty ennen ohjelman ajoa. Kielten skaalautuvuus on hyvin samankaltainen rinnakkaisessa kontekstissa. Tehokkuuseroa voidaan pienentää Pythonissa sovelluskehysten avulla.
Kokoelmat
  • Kandidaatintutkielmat [9896]
Kalevantie 5
PL 617
33014 Tampereen yliopisto
oa[@]tuni.fi | Tietosuoja | Saavutettavuusseloste
 

 

Selaa kokoelmaa

TekijätNimekkeetTiedekunta (2019 -)Tiedekunta (- 2018)Tutkinto-ohjelmat ja opintosuunnatAvainsanatJulkaisuajatKokoelmat

Omat tiedot

Kirjaudu sisäänRekisteröidy
Kalevantie 5
PL 617
33014 Tampereen yliopisto
oa[@]tuni.fi | Tietosuoja | Saavutettavuusseloste