Esimerkki ohjemasuoritusmallien käytöstä

Samankaltaiset tiedostot
Ohjelmasuoritusmalli ja sen käyttö

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Suorituskyky ja ohjelmistokehitys Suorituskykymallit

Järjestelmätason mallit III

Suorituskykydatan kerääminen

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

Algoritmit 1. Luento 3 Ti Timo Männikkö

Suorituskykypatterneja

Rinnakkaistietokoneet luento S

Viestinvälitysarkkitehtuurit

Viestinvälitysarkkitehtuurit Lähtökohta:

Verkkosovellusten mallintaminen

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

UML- mallinnus: Tilakaavio

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

811312A Tietorakenteet ja algoritmit I Johdanto

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Algoritmit 1. Luento 10 Ke Timo Männikkö

811312A Tietorakenteet ja algoritmit, , Harjoitus 3, Ratkaisu

Ohjelmistojen suunnittelu

UML:n yleiskatsaus. UML:n osat:

CQRS, -ES, PACS, DICOM, WTF?

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Ohjelmiston suorituskyvyn mittaaminen

Algoritmit 1. Luento 1 Ti Timo Männikkö

Algoritmit 1. Luento 2 Ke Timo Männikkö

Tietorakenteet ja algoritmit - syksy

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

Olioiden yhteistyön mallintaminen

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Tietojenkäsittelyn perusteet 2. Lisää käyttöjärjestelmistä

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:

Tietorakenteet, laskuharjoitus 7, ratkaisuja

Ohjelmistojen suorituskyky, Kurssin tavoitteet

Lomalista-sovelluksen määrittely

58131 Tietorakenteet (kevät 2009) Harjoitus 6, ratkaisuja (Antti Laaksonen)

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

Ohjelmiston toteutussuunnitelma

Algoritmit 1. Luento 10 Ke Timo Männikkö

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

HELIA 1 (15) Outi Virkki Tiedonhallinta

Luento 1 Tietokonejärjestelmän rakenne

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton

Good Minton Sulkapalloliiton Kilpailujärjestelmä SEPA: Heuristinen arviointi

Järjestelmäarkkitehtuuri (TK081702)

JHS 180 Paikkatiedon sisältöpalvelut Liite 4 INSPIRE-palvelujen laadun testaus

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Visual Case 2. Miika Kasnio (C9767)

3. Käsiteanalyysi ja käsitekaavio

D B. Levykön rakenne. pyöriviä levyjä ura. lohko. Hakuvarsi. sektori. luku-/kirjoituspää

Paikantavan turvapuhelimen käyttöohje

Sisältöä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja TITO-kurssista. Tietokonejärjestelmä

Tietokonejärjestelmä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja. TITO-kurssista. John von Neumann ja EDVAC, 1949.

JWT 2016 luento 11. to klo Aulikki Hyrskykari. PinniB Aulikki Hyrskykari

1. a) Laadi suoraviivaisesti kyselyä vastaava optimoimaton kyselypuu.

11/20: Konepelti auki

Palveluperustaiset arkkitehtuurityylit

Algoritmit 2. Luento 14 Ke Timo Männikkö

Ohjelmistojen mallintaminen, sekvenssikaaviot

Arkkitehtuurien tutkimus Outi Räihä. OHJ-3200 Ohjelmistoarkkitehtuurit. Darwin-projekti. Johdanto

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen:

TKHJ:ssä on yleensä komento create index, jolla taululle voidaan luoda hakemisto

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Kehittyneet ominaisuudet

Yhteistoimintakaavio (Esimerkki)

Helsinki Testbedin säätuotteet tänään ja tulevaisuudessa

Tällä harjoituskerralla on tarkoituksena harjoitella käyttötapaus-, luokka- ja tapahtumasekvenssikaavioiden luontia.

Mukautuvat järjestämisalgoritmit

Ohjelmistoarkkitehtuurit kevät

Ohjelmistotekniikan menetelmät, UML

Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1

Nelli Tiedonhakuportaali Kemi-Tornion ammattikorkeakoulun elektronisiin aineistoihin. Onnistuneita hetkiä Nellin parissa!

FMC-Outlook-työkalu: HiPath-FMC-toimintojen käyttö matkapuhelimien kautta

Ohjelmistojen mallintaminen, mallintaminen ja UML

oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria

Luokka- ja oliokaaviot

Ohjelmistotekniikka - Luento 2

Hajautusrakenteet. R&G Chapter Tietokannan hallinta, kevät 2006, Jan 1

Algoritmit 2. Luento 13 Ti Timo Männikkö

Analyysi on tulkkaamista

2. Olio-ohjelmoinnin perusteita 2.1

Oppimistavoitteet kurssilla Rinnakkaisohjelmointi

Sisältö. 2. Taulukot. Yleistä. Yleistä

TESTIRAPORTTI - VYM JA KANTA Virtuaaliyhteisöjen muodostaminen Versio 1.0

HappyOrNot Service Canvas. Kuinka voit hyödyntää HappyOrNot-palvelua parhaiten

Teknillinen korkeakoulu T Tietojenkäsittelyopin ohjelmatyö. Testitapaukset - Koordinaattieditori

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

Suorituskyvyn pullonkaulojen löytäminen ja optimointi v 1.0. Ilkka Myllylä

Tietokantojen suunnittelu, relaatiokantojen perusteita

1. Tarkastellaan seuraavaa kaaviota

Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia.

Tiedostorakenteet. R&G Chapter Tietokannan hallinta, kevät 2006, Jan 1

JulkICT portaalin käyttöohje

Transkriptio:

Esimerkki ohjemasuoritusmallien käytöstä Luento 4 58153003 Ohjelmistojen suorituskyky 1 SEKVENSSIKAAVIOISTA SUORITUSVERKKOIHIN 58153003 Ohjelmistojen suorituskyky 2 Helsingin Yliopisto / Tktl 1

Sekvenssit suoritusverkoiksi Tarkoituksena on muuntaa jokaisen performanssiskenaarion sekvenssikaaviot kvantitatiivisesti (=numeroina) ratkaistavaksi ohjelmasuoritusmalliksi Itsenäisiä suoritussäikeitä ja hajautettuja objekteja sisältävien sekvenssien muuntaminen vaatii hieman enemmän vaivaa kuin yhdessä säikeessä tapahtuvan sekvenssin Prosessi on kuitenkin periaatteessa samanlainen molemmissa tapauksissa 58153003 Ohjelmistojen suorituskyky 3 Sekvenssit suoritusverkoiksi Sekvenssikaavioissa viestin vastaanottaminen liipaisee vastaanottajassa toiminnon, joka voi olla jokin operaatio tai tilamuutos Suoraviivainen tapa muuntaa sekvenssi suoritusverkoksi on seurata viestinuolia ja tehdä jokaisesta liipaistusta toiminnosta oma persussolmunsa Monessa tapauksessa yksittäiset toiminnot eivät niinkään ole mielenkiintoisia suorituskyvyn kannalta, vaan peräkkäisiä toimintoja voidaan yhdistää samaan perussolmuun Myös solmulaajennoksia voi käyttää hyväksi jakamalla yhteenkuuluvia toimintoja aliverkkoihin tarkempaa analyysiä varten 58153003 Ohjelmistojen suorituskyky 4 Helsingin Yliopisto / Tktl 2

Sekvenssit suoritusverkoiksi Toisto- ja valintarakenteet on helppo muuttaa vastaaviksi suoritusverkkorakenteiksi Jos esim. valintarakenteita ei ole käytetty sekvensseissä, pitää tarkastella saman skenaarion vaihtoehtoisia suorituksia kuvaavia sekvenssejä ja tunnistaa niistä vaihtoehtoiset toiminnot Sekvenssien muuntaminen verkoiksi vaatii luonnollisesti harjaantumista mallinnusmenetelmien käytössä sekä ymmärrystä suorituskykyyn vaikuttavista yleisistä tekijöistä sekä tiettyjen teknologioiden ominaisista tekijöistä Toistot, eri suorituspolut frekvensseineen, ohjelmistoresurssien käytön intensiivisyys, viestinnän ja toiminnan synkronoinnin aiheuttamat viiveet jne. Keskittyminen oleellisiin asioihin ja turhien yksityiskohtien karsiminen 58153003 Ohjelmistojen suorituskyky 5 ICAD CASE STUDY 58153003 Ohjelmistojen suorituskyky 6 Helsingin Yliopisto / Tktl 3

ICAD Seuraavassa läpikäytävä esimerkkitapaus perustuu CAD sovellukseen, jota suunnittelu-insinöörit käyttävät erilaisten fyysisten rakenteiden piirtämiseen ja evaluointiin (eli suunnitteluun) Sovellus tallettaa suunnitelmat tietokantaan ja tarjoaa rakenne-editorin suunnitelmien interaktiiviseen katselmointiin ja arviointiin Esimerkkitapauksessa käydään läpi erilaisia arkkitehtuurivaihtoehtoja ja näytetään, miten niiden suorituskykykä voidaan arvioida ohjelmasuoritusmalleilla 58153003 Ohjelmistojen suorituskyky 7 ICAD -piirrokset ICAD rakennepiirros koostuu elementeistä ja kulmapisteistä (nodes) Elementit voivat ovat palkkeja, kolmioita tai levyjä, jotka yhdistävät vastaavasti kahta, kolmea ja neljää tai useampaa kulmapistettä Elementteihin liittyy dataa, joka on merkityksellistä suunniteltavan rakenteen fysikaalisten ja muiden ominaisuuksien kannalta Kulmapisteellä on paikka kolmiulotteisessa avaruudessa sekä muita rakennemallien evaluoinnin kannalta tarpeellisia attribuutteja 58153003 Ohjelmistojen suorituskyky 8 Helsingin Yliopisto / Tktl 4

ICAD käyttötapaukset Sovelluksella on lukuisia käyttötapauksia, mutta tässä esimerkissä keskitytään Piirrä käyttötapaukseen ja sen yhteen skenaarioon nimeltä PiirräMalli, jossa sovellus piirtää tietokannasta ladattavan mallin näytölle Tyypillinen malli koostuu vain palkeista ja kulmapisteistä ja siinä on 2000 palkkia Vaatimuksena on piirtää tyypillinen malli 10 sekunnissa tai nopeammin 58153003 Ohjelmistojen suorituskyky 9 PiirräMalli -skenaario 58153003 Ohjelmistojen suorituskyky 10 Helsingin Yliopisto / Tktl 5

ICAD ARKKITEHTUURI 1 58153003 Ohjelmistojen suorituskyky 11 Arkkitehtuuri 1 ICAD-rakenteen esitys olioina Kaikilla objekteilla on myös oma tunniste (id -numero) Koostesuhde esitetään tietokannassa käyttäen tunnistetta viitteenä 58153003 Ohjelmistojen suorituskyky 12 Helsingin Yliopisto / Tktl 6

Arkkitehtuuri 1 PiirräMalli -skenaarion tarkennus 58153003 Ohjelmistojen suorituskyky 13 Arkkitehtuuri 1 Ajonaikaiset näkymät Prosessit Sijoittelu 58153003 Ohjelmistojen suorituskyky 14 Helsingin Yliopisto / Tktl 7

Arkkitehtuuri 1 Suoritusverkot initialize retrievebeam findbeams createbeam createmodel sortbeams each beam drawmod findnodes each node opendb drawbeam setupnode retrieve + create close drawnodes (a) Draw Model (b) initialize (c) drawbeam 58153003 Ohjelmistojen suorituskyky 15 Ohjelmistoresurssit EDMS kutsujen määrä tietokantaprosessiin CPU suoritettavien konekäskyjen määrä I/O levyhakujen määrä tietokantahakua kohti Get/Free muistinhallintaoperaatioiden määrä (muistin varaus/vapautus) Screen montako kertaa grafiikkaoperaatiot piirtävät näytölle 58153003 Ohjelmistojen suorituskyky 16 Helsingin Yliopisto / Tktl 8

PiirräMalli -verkon resurssikulutus (paras tapaus) Askel EDMS CPU I/O Get/Free Screen createmodel 0 2 0 0 0 drawmod 0 1 3 2 2 opendb 1 2.3 6 1 0 findbeams 1 346 7.08 0 0 sortbeams 1 339 42.28 2 0 close 1 1.5 2 1 0 retrievebeam 1 2 4.03 0 0 createbeam 0 2 0 0 0 findnodes 1 4.5 4.1 0 0 setupnode 1 4 4.02 0 0 drawnodes 0 0.55 0 0 1 58153003 Ohjelmistojen suorituskyky 17 Prosessointikustannukset Devices CPU Disk Display Quantity 1 2 1 Service Units K instr. Phys. I/O Units EDMS 0.253 0.002 CPU 1 I/O 0.1 1 Get/Free 0.1 Screen 0.05 1 Service Time 0.000005 0.03 0.001 58153003 Ohjelmistojen suorituskyky 18 Helsingin Yliopisto / Tktl 9

Ohjelmasuoritusmallin ratkaisu Lasketaan parhaan tapauksen suoritusaika: initialize 0.27s findbeams 0.21s 0.4837 s / iteraatio sortbeams drawbeam 1.27s each beam 967.48s Yhteensä 969.29 sek. Ei täytä 10 sekunnin tavoiteaikaa mallin (2000 palkkia) piirtämiselle! close 0.06s 58153003 Ohjelmistojen suorituskyky 19 ICAD ARKKITEHTUURI 2 58153003 Ohjelmistojen suorituskyky 20 Helsingin Yliopisto / Tktl 10

Uusi idea Arkkitehtuuri 1 on hyvin kaukana tavoitesuorituskyvystä Voisiko ongelma aiheutua siitä, että skenaariossa luodaan suuri joukko olioita? Jokaista palkkia ja kulmapistettä kohden luodaan oma olio, jolle pitää varata muistialue ja tehdä erilaisia alustustoimia (konstruointi) Muokataan oliorakennetta käyttäen Flyweight patternia 58153003 Ohjelmistojen suorituskyky 21 Arkkitehtuuri 2 Luodaan vain yksi ilmentymä elementtityypistä ja kulmapisteestä; ilmentymän sisäinen tila on sama kaikille piirroksen elementeille Palkin piirto-operaatio saa parametrina tietueen, joka sisältää kunkin piirroksen palkin muuttuvan tilan (kulmapisteitä kuvaavan datan yms.) 58153003 Ohjelmistojen suorituskyky 22 Helsingin Yliopisto / Tktl 11

Muutokset suoritusverkkoon Ohjelmasuoritusmallin muutokset ovat pieniä Olioiden create luontioperaatiot drawbeam osaverkosta siirtyvät osaksi initialize osaverkkoa Vastaava resurssikulutus siis poistuu 2000 kertaa suoritettavasta silmukasta mutta muokatun ohjelmasuoritusmallin ratkaisu ei näytä tilanteen juuri parantuneen: Suoritusaika pienee vain 60 ms 969.23 sekuntiin! 58153003 Ohjelmistojen suorituskyky 23 Johtopäätös Olioiden konstruktorien kutsut eivät siis aiheuta merkittävää lisäystä suoritusaikaan Huomaa kuitenkin, että toisenlaisessa suoritusympäristössä ja syviä perintähierarkioita sisältävässä ohjelmistossa tulos olisi voinut olla toinenkin Muita huomioita Ohjelmasuoritusmallin muuttaminen vaihtoehtojen vertailemiseksi on melko helppoa On tärkeää pyrkiä kvantifioimaan eri ratkaisuvaihtoehtojen ominaisuudet eikä vain seurata erilaisia ohjenuoria, jotka eivät sovikaan tilanteeseen 58153003 Ohjelmistojen suorituskyky 24 Helsingin Yliopisto / Tktl 12

Tulosten analyysi Ratkaistua ohjelmasuoritusmallia voidaan käyttää myös havaitun ongelman tarkempaan syyniin Kun tarkastellaan verkon solmujen suoritusajoiksi muutettuja resurssikäyttöä, huomataan levyliikenteen aiheuttavan ylivoimaisesti suurimman osan suoritusajasta 58153003 Ohjelmistojen suorituskyky 25 initialize Ratkaistut suoritusverkot ja niiden resurssien käyttö CPU 0.00 Disk 0.27 Display 0.00 retrievebeam CPU 0.0000 Disk 0.1210 Display 0.0000 findbeams CPU 0.00 Disk 0.21 Display 0.00 createbeam CPU 0.0000 Disk 0.0000 Display 0.0000 sortbeams each beam CPU 0.00 Disk 1.27 Display 0.00 findnodes each node CPU 0.0000 Disk 0.1204 Display 0.0000 drawbeam CPU 0.20 Disk 965.28 Display 2.00 setupnode CPU 0.0000 Disk 0.2413 Display 0.0000 CPU 0.00 CPU 0.0000 close Disk 0.06 drawnodes Disk 0.0000 Display 0.00 Display 0.0010 58153003 Ohjelmistojen suorituskyky 26 Helsingin Yliopisto / Tktl 13

Analyysi Levyn käyttö näyttää johtuvan tietokantahauista Levyn käyttö jakautuu drawbeam verkon solmujen retrievebeam ja setupnode solmujen kesken, joissa molemmissa haetaan tietokannasta dataa Flyweight patternin käyttö ei vaikuta tietokannan käyttöön, joten se ei auta tähän ongelmaan On siis kehitettävä uusi ratkaisu, jossa pyritään vähentämään tietokannan käytöstä seuraavan levyliikenteen aiheuttamia viiveitä 58153003 Ohjelmistojen suorituskyky 27 ICAD ARKKITEHTUURI 3 58153003 Ohjelmistojen suorituskyky 28 Helsingin Yliopisto / Tktl 14

3. Kerta toden sanoo? Päätämme kuitenkin säilyttää Flyweight patternin osana uuttakin ratkaisua, koska se todennäköisesti parantaa ratkaisun skaalautuvuutta huomattavasti suurempien rakennepiirrosten käsittelyssä 3. arkkitehtuurin ytimessä on nyt oivallus, että haemme kerralla tietokannasta suuren määrän dataa (piirrosobjekteja vastaavia tietueita) sen sijaan, että tekisimme haun joka objektille erikseen 58153003 Ohjelmistojen suorituskyky 29 retrieveblock Lisätään tietokantaliittymäämme operaatio retrieveblock Hakee yhdellä kertaa 20Kt dataa (64 palkkia ja 170 kulmapistettä) ja tallettaa datan Model-objektiin Kaikkien palkkien haku vaatii nyt 33 tietokantapyyntöä ja kulmapisteiden haku vaatii vain yhdeksän pyyntöä 58153003 Ohjelmistojen suorituskyky 30 Helsingin Yliopisto / Tktl 15

Uusi sekvenssikaavio 33 kertaa 9 kertaa Etsii palkin kulmapisteet omista kokoelmistaan 58153003 Ohjelmistojen suorituskyky 31 Uusi ratkaistu suoritusverkko initialize 0.4125 getdata 6.0389 each beam matchanddraw 2.0012 close 0.0601 Kokonaisaika: 8.5126 58153003 Ohjelmistojen suorituskyky 32 Helsingin Yliopisto / Tktl 16

Huomioita ICAD Esimerkki demonstroi ohjelmasuoritusmallien muodostamista arkkitehtuurisuunnitelmista ja eri vaihtoehtojen kvantitatiivista evaluointia mallien avulla Alustavien mallien luonti on melko helppoa ja niiden muuttaminen on suoraviivaista Yksinkertaisetkin mallit riittävät isoimpien ongelmien havaitsemiseen 58153003 Ohjelmistojen suorituskyky 33 Huomioita Monimutkaisempia mallejakin tarvitaan myöhemmin, kun halutaan analysoida työkuormien ja resurssikilpailun vaikutuksia systeemitasolla Näitä analyysejä varten tarvitaan arvioita kehitettävien uusien ohjelmien eri toimintojen suoritusajoista Ohjelmasuoritusmallit tuottavat näitä arvioita 58153003 Ohjelmistojen suorituskyky 34 Helsingin Yliopisto / Tktl 17

Mallinnusvinkkejä 1. Suorituskykymalliin ei tarvitse sisällyttää kaikkia ohjelmiston suorituksen kulun yksityiskohtia Malli on kehitettävän ohjelmiston abstraktio Pyri ottamaan mukaan vain detaljit, joilla arvioit olevan oleellista vaikutusta suorituskykyyn 2. Tee malleista hierarkisia Käytä laajennettuja solmuja pitämään yksityiskohtien määrä hallittavalla tasolla kussakin verkossa 58153003 Ohjelmistojen suorituskyky 35 Mallinnusvinkkejä 3. Ratkaise pahimman ja parhaimman tapauksen mallit epävarmuuden kompensoimiseksi Jos parhaimman tapauksen mallin evaluointi osoittaa ongelmia olevan, etsi parempi arkkitehtuuriratkaisu Jos pahimman tapauksen malli näyttää hyvää tulosta, kehitystyötä voidaan jatkaa tältä pohjalta Jos mallien evaluointien tulokset ovat jotain siltä väliltä, keskity eniten resursseja vaativiin prosessointiaskeleisiin ja pyri saamaan niille tarkemmat resurssikulutusarviot lisäanalyysejä varten 58153003 Ohjelmistojen suorituskyky 36 Helsingin Yliopisto / Tktl 18

Mallinnusvinkkejä 4. Tutki suorituskykyarvioiden (=mallien ratkaisujen) herkkyyttä käytetyille syötearvoille Jos pieni muutos jonkin askeleen resurssitarpeessa aiheuttaa suuren muutoksen koko skenaarion suoritusaikaan, ohjelmistosi on herkkä näille piirteille Olet löytänyt ohjelmiston toiminnan kannalta kriittisen resurssin 58153003 Ohjelmistojen suorituskyky 37 Mallinnusvinkkejä Herkkyyksien tyypillisiä syitä Laitteet, jotka toimivat korkealla käyttöasteella (utilization) pieni lisäys kuormassa voi aiheuttaa suuren lisäyksen vastausaikoihin (kts. Skaalautuvuus 1. luennolla) Pieni lisäys suoritusajoissa silmukan sisällä kertautuu silmukan suorituskertojen lukumäärällä koko skenaarion suoritusajassa Suorituspolkujen synkronoinnista ja resurssien jakamisesta aiheutuvat viiveet rinnakkain eteneville prosesseille 58153003 Ohjelmistojen suorituskyky 38 Helsingin Yliopisto / Tktl 19