haku: @keyword OpenMP / yhteensä: 7
viite: 6 / 7
Tekijä:Pirilä, Vesa
Työn nimi:Improving performance in large legacy software
Suorituskyvyn parannus laajassa, vanhassa ohjelmistossa
Julkaisutyyppi:Diplomityö
Julkaisuvuosi:2009
Sivut:(9) + 72 s.      Kieli:   eng
Koulu/Laitos/Osasto:Tietotekniikan laitos
Oppiaine:Ohjelmistotekniikka   (T-106)
Valvoja:Saikkonen, Heikki
Ohjaaja:Salonen, Mika
Digitoitu julkaisu: https://aaltodoc.aalto.fi/handle/123456789/96291
OEVS:
Digitoitu arkistokappale on julkaistu Aaltodocissa
Sijainti:P1 Ark Aalto  8581   | Arkisto
Avainsanat:performance analysis
performance tuning
OpenMP
TBB
MPI
RapidMind
SMP
parallelism
legacy
BIM software
multi-core
suorituskykyanalyysi
suorituskyvyn parannus
rinnakkaisuus
BIM-ohjelmisto
moniydinprosessori
Tiivistelmä (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 tietueen numero: 37247
+ lisää koriin
INSSI