Rinnakkaistamisen automatisointi kääntäjällä : Systemaattinen kirjallisuuskatsaus
Hytönen, Tiina (2024)
Hytönen, Tiina
2024
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ä
2024-11-14
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-2024111110086
https://urn.fi/URN:NBN:fi:tuni-2024111110086
Tiivistelmä
Tämä työ on systemaattinen kirjallisuuskatsaus työn aloituksen aikaan viimeisimmistä tutkimustuloksista kääntäjän tekemän rinnakkaistamisen lisäämiseksi. Ohjelman rinnakkainen suoritus on yksi ratkaisu suoritustehokkuuden kasvattamiseksi tietokoneissa, mutta vaatii ohjelmoijalta tietoa ja taitoa rinnakkaisen ohjelman kehittämisestä. Myös ohjelmoijan työmäärä kasvaa, kun ohjelmaa kehitetään rinnakkaiseksi.
Kirjallisuuskatsaukseen aineisto haettiin kahdesta tietokannasta systemaattisesti ennalta-asetetuilla hakusanoilla. Hakusanoilla saatiin 174 viitettä. Näistä viitteistä kokonaan luettiin 59. Lopulta asetettujen kriteerien perusteella työn alkuperäistutkimuksiksi valittiin viitteistä 37. Alkuperäistutkimuksista etsittiin tehdyn tutkimuksen tuloksen eli työkalun käyttötarkoitus, työkalun tyyppi, käytetty ohjelmointikieli, rinnakkaisuuden tyyppi, käytetyt työkalut ja saavutetun rinnakkaistamisen vaikutukset tehokkuuteen. Kerätty data yhdistettiin taulukkoon, joka löytyy työn liitteenä A.
Kerättyä dataa analysoitiin ja vertailtiin keskenään. Alkuperäistutkimusten tuloksia tehtiin hyvin monenlaisiin käyttötarkoituksiin, eikä yhtä yleisintä käyttötarkoitusta voida sanoa. Sen sijaan työkalun tyypeistä yleisimmät olivat laajennos jo olemassaolevaan työkaluun ja tekniikka. Alkuperäistutkimusten tulosten käytetyimmät ohjelmointikielet olivat C ja C++, kun käytetty kieli oli alkuperäistutkimuksessa kerrottu. Rinnakkaisuuden tyypeistä yleisin oli datarinnakkaisuus, jos rinnakkaisuuden tyyppi oli mainittu alkuperäistutkimuksessa. Tuloksissa käytetyistä työkaluista käytetyimmät olivat OpenMP ja LLVM-kääntäjä. Alkuperäistutkimusten tulosten moninaisuuden takia tutkimuksissa kerrottuja mahdollisia tehokkuuden kasvuja ei ole mielekästä vertailla keskenään. Tehokkuus kasvoi kuitenkin useissa alkuperäistutkimuksissa jonkin tutkimuksen osoittaman vertailukohteen suhteen.
Systemaattisen kirjallisuuskatsauksen johtopäätöksenä kääntäjän tekemän rinnakkaistamisen lisäämiseksi on kehitelty monenlaisia ratkaisuja, joista useimmat on kehitetty tiettyyn käyttötarkoitukseen. Koskaan tuskin tullaan kehittämään universaalia rinnakkaistavaa kääntäjää, joka sopisi jokaiseen käyttökohteeseen, käyttökieleen ja rinnakkaistamistarpeeseen.
Kirjallisuuskatsaukseen aineisto haettiin kahdesta tietokannasta systemaattisesti ennalta-asetetuilla hakusanoilla. Hakusanoilla saatiin 174 viitettä. Näistä viitteistä kokonaan luettiin 59. Lopulta asetettujen kriteerien perusteella työn alkuperäistutkimuksiksi valittiin viitteistä 37. Alkuperäistutkimuksista etsittiin tehdyn tutkimuksen tuloksen eli työkalun käyttötarkoitus, työkalun tyyppi, käytetty ohjelmointikieli, rinnakkaisuuden tyyppi, käytetyt työkalut ja saavutetun rinnakkaistamisen vaikutukset tehokkuuteen. Kerätty data yhdistettiin taulukkoon, joka löytyy työn liitteenä A.
Kerättyä dataa analysoitiin ja vertailtiin keskenään. Alkuperäistutkimusten tuloksia tehtiin hyvin monenlaisiin käyttötarkoituksiin, eikä yhtä yleisintä käyttötarkoitusta voida sanoa. Sen sijaan työkalun tyypeistä yleisimmät olivat laajennos jo olemassaolevaan työkaluun ja tekniikka. Alkuperäistutkimusten tulosten käytetyimmät ohjelmointikielet olivat C ja C++, kun käytetty kieli oli alkuperäistutkimuksessa kerrottu. Rinnakkaisuuden tyypeistä yleisin oli datarinnakkaisuus, jos rinnakkaisuuden tyyppi oli mainittu alkuperäistutkimuksessa. Tuloksissa käytetyistä työkaluista käytetyimmät olivat OpenMP ja LLVM-kääntäjä. Alkuperäistutkimusten tulosten moninaisuuden takia tutkimuksissa kerrottuja mahdollisia tehokkuuden kasvuja ei ole mielekästä vertailla keskenään. Tehokkuus kasvoi kuitenkin useissa alkuperäistutkimuksissa jonkin tutkimuksen osoittaman vertailukohteen suhteen.
Systemaattisen kirjallisuuskatsauksen johtopäätöksenä kääntäjän tekemän rinnakkaistamisen lisäämiseksi on kehitelty monenlaisia ratkaisuja, joista useimmat on kehitetty tiettyyn käyttötarkoitukseen. Koskaan tuskin tullaan kehittämään universaalia rinnakkaistavaa kääntäjää, joka sopisi jokaiseen käyttökohteeseen, käyttökieleen ja rinnakkaistamistarpeeseen.
Kokoelmat
- Kandidaatintutkielmat [8918]