search query: @keyword parallelism / total: 5
reference: 4 / 5
« previous | next »
Author:Pirilä, Vesa
Title:Improving performance in large legacy software
Suorituskyvyn parannus laajassa, vanhassa ohjelmistossa
Publication type:Master's thesis
Publication year:2009
Pages:(9) + 72 s.      Language:   eng
Department/School:Tietotekniikan laitos
Main subject:Ohjelmistotekniikka   (T-106)
Supervisor:Saikkonen, Heikki
Instructor:Salonen, Mika
Digitized copy: https://aaltodoc.aalto.fi/handle/123456789/96291
OEVS:
Digitized archive copy is available in Aaltodoc
Location:P1 Ark Aalto  8581   | Archive
Keywords:performance analysis
performance tuning
OpenMP
TBB
MPI
RapidMind
SMP
parallelism
legacy
BIM software
multi-core
suorituskykyanalyysi
suorituskyvyn parannus
rinnakkaisuus
BIM-ohjelmisto
moniydinprosessori
Abstract (fin): Vuoteen 2003 asti prosessorien kellotaajuus kaksinkertaistui noin 1,5-2 vuoden välein.
Ohjelmistojen suoritus nopeutui vastaavasti ilman erillistä panosta kehittäjiltä.
Vuoden 2003 jälkeen kellotaajuudet eivät ole käytännössä kasvaneet lainkaan, prosessorivalmistajat ovat sen sijaan ruvenneet laittamaan useita ytimiä prosessoreihinsa.
Yhtä säiettä voi suorittaa vain yhdessä ytimessä kerrallaan, joten yksisäikeisten ohjelmien suoritus ei ole nopeutunut lainkaan samaa tahtia kuin aiemmin.
Jotta ohjelmistot pystyvät hyötymään uusista ytimistä, niiden suoritus täytyy jakaa useampaan säikeeseen.
Vanhoja ohjelmistoja ei kuitenkaan useimmiten ole suunniteltu rinnakkaisuutta ajatellen, joten siirtyminen useampaan säikeeseen tuottaa erityisiä haasteita.

Tässä työssä etsittiin tapoja vanhan ohjelmiston rinnakkaistamiseen, tutkittiin esiintyviä haasteita ja esitettiin niihin ratkaisuja.
Kirjallisuustutkimuksessa perehdyttiin erityisesti erilaisiin rinnakkaistamista tukeviin ohjelmistokehyksiin, kuten OpenMP:hen, Threading Building Blocksiin, MPI:hin ja RapidMindiin.
Tapaustutkimuksen kohteena on Tekla Structures rakennussuunnitteluohjelmiston visualisointialgoritmi, jolla määritellään esitystapa jokaiselle rakennuksen osalle sen suunnitellun asennuspäivän ja käyttäjän asetusten perusteella.
Algoritmia saatiin nopeutettua noin 85% pelkästään yksisäikeisen koodin optimoinnilla.
Optimoinnin askeleet on kuvattu työssä, kategorisoitu, ja niiden vaikutus mitattu.
Algoritmin rinnakkaistaminen onnistui OpenMP:tä käyttäen, mutta algoritmin suorituskyky ei parantunut rinnakkaistaessa säieturvallisuusongelmien takia.
Analyysiosiossa tehdään ehdotus säieturvallisuuden parantamiseksi muun muassa tietokantakirjastossa ja työkalukirjastoissa.

Säieturvallisuus ja arkkitehtuurin heikkeneminen ovat suuria ongelmia vanhojen ohjelmistojen rinnakkaistamisessa.
Niiden kimppuun täytyy käydä mahdollisimman pian, jotta suoritus voidaan jakaa useampaan säikeeseen tulevina vuosina.
Kokonaisten ohjelmistojen muuttaminen suoraan rinnakkaiseen suoritukseen on mahdotonta, mutta onneksi muun muassa OpenMP tarjoaa mahdollisuuden rinnakkaistaa ohjelman vähitellen osina.
Suurin osa yhteen vanhojen ohjelmien suorituksesta jää luultavasti lähitulevaisuudessakin yhteen säikeeseen, mutta tiettyjen suorituskykykriittisien osien rinnakkaistaminen tulee olemaan tärkeä haaste tulevina vuosina.
ED:2009-03-31
INSSI record number: 37247
+ add basket
« previous | next »
INSSI