Tietokannan kyselyoptimointi moniydinprosessorilla

Koko: px
Aloita esitys sivulta:

Download "Tietokannan kyselyoptimointi moniydinprosessorilla"

Transkriptio

1 hyväksymispäivä arvosana arvostelija Tietokannan kyselyoptimointi moniydinprosessorilla Mikko Kuusinen Helsinki HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

2 HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto Fakultet/Sektion Faculty/Section Laitos Institution Department Matemaattis-luonnontieteellinen tiedekunta Tekijä Författare Author Tietojenkäsittelytieteen laitos Mikko Kuusinen Työn nimi Arbetets titel Title Tietokannan kyselyoptimointi moniydinprosessorilla Oppiaine Läroämne Subject Tietojenkäsittelytiede Työn laji Arbetets art Level Aika Datum Month and year Sivumäärä Sidoantal Number of pages 15 sivua Seminaarityö Tiivistelmä Referat Abstract Työn tavoitteena on selvittää kuinka moniydinprosessoreilla saadaan hyviä tuloksia tietokantakyselyjä suoritettaessa. Tuloksina kolmea erilaista ratkaisua vertailtaessa saadaan, että nopeushyöty on suuri monissa hidastavissa tekijöissä, kuten välimuistin hukkaiskuissa (cache miss ) ja prosessorin pysähtymisissä (processor stall), mutta lopulliset hyödyt kyselyjen suorituksissa ovat pienemmät. Työssä myös selvitetään hieman sitä, mihin aika kuluu tietokantahakua prosessorilla laskettaessa. ACM Computing Classification System (CSS): D.4.1[Process Management] H.2 [Database Management] Avainsanat Nyckelord Keywords Tietokanta, moniydin, säie Säilytyspaikka Förvaringställe Where deposite Muuta

3 ii Sisältö 1 Johdanto 1 2 Prosessoria hidastavat tekijät Mihin aika kuluu Nopeutta useasta ytimestä Säikeet Apuydin ASYNC -operaattori Tulosten läpikäynti Yhteenveto 13 Lähteet 14

4 1 1 Johdanto Tietokantojen koon kasvaessa niiden vaatimat resurssit kasvavat samalla. Jotta tiedon määrä olisi hallittavissa ja tiedonhaku tästä määrästä olisi edelleen nopeaa, joudutaan laitteistoa ja ohjelmistoja päivittämään. Siinä missä ohjelmistojen algoritmeja ja toimintaperiaatteita voidaan kehittää yhä paremmaksi, niin voidaan kehittää myös laitteistoa. Siitä lähtien, kun laitteisto on sallinut useamman prosessorin toimia järjestelmässä, on sitä yritetty hyödyntää kaikin mahdollisin tavoin. Tänä päivänä usean prosessorin toiminta samalla alustalla on suurelta osin vaihtunut useamman ytimen sisältäviin prosessoreihin. Ratkaisut eroavat toisistaan muun muassa siten, että moniydinprosessoreilla on yhteinen välimuisti verrattuna usean yksiytimisen prosessorin toimintaan, joilla kaikilla on oma välimuistinsa. Nykyään moniydinprosessoreja löytyy lähes jokaisesta kodista ja työpaikalta, joten on itsestään selvää, että niitä täytyy myös pystyä hyödyntämään kunnolla. Tietokantojen yhteydessä moniydinprosessorien tuomaa hyötyä on selvitetty jo vähintään kymmenen vuoden ajan. Ensimmäinen mielestäni työni aiheeseen hyvin kuuluva julkaisu on Ailamakin ja kumppaneiden [ADH99] tutkimus siitä, mihin aika modernilla prosessorilla kuluu, kun prosessorilla ajetaan tietokannanhallintajärjestelmää. Tulokset ovat varmasti vielä vertailtavissa nykypäivän uusimpiin moniydinprosessoreihin, joten julkaisu on kymmenen vuoden iästään vielä hyvin paikkansa pitävä. Moniydinprosessoreita alettiin siis valjastaa tietokantojen käyttöön jo useita vuosia sitten. Nykyään moniydin prosessoreiden lisäksi on olemassa prosessoreita, jotka kykenevät ajamaan useaa säiettä yhtä aikaa. Myös tätä ominaisuutta on tutkittu tietokannanhallintajärjestelmien nopeuttamiseksi. Zhoun ja kumppanien [ZCR05] julkaisu tutkii kuinka Pentium 4 prosessorin samanaikainen säikeiden ajo voisi parantaa tietokantajärjestelmän nopeutta. Todennäköisesti tietokantojen suorituskykyä parantavia moniydinprosessoreita käsittelen kahden eri julkaisun muodossa. Kumpikin julkaisuista on viime vuodelta, joten niiden käsittelemät aiheet ja menetelmät ovat lähes uusinta, mitä alalla on julkaistu. Ensimmäisenä esittelen Papadopulosin ja kumppaneiden Apuydin (HelperCore DB ) ratkaisun [PST08]. Apuytimen ideana on, että ydin jolla ei ole muuta tekemistä voi pyytää välimuistiin muiden ytimien lähitulevaisuudessa tarvitsemaa tietoa. Toisena esittelen Ackerin ja kumppaneiden ratkaisun [ARB08], jolle he eivät ole antaneet mitään tiettyä

5 2 nimeä. Kutsun ratkaisua kuitenkin tästä lähtien nimellä ASYNC -operaattori (ASYNC operator), koska tekijät mallintavat rinnakkaisuutta uudella ASYNC operaattorilla kyselysuunnitelmassa. Ottaen huomioon julkaisujen erilaiset lähestymistavat tietokannan suorituskyvyn parantamiseksi, on mielenkiintoista nähdä mitkä lopulliset tulokset kummasakin tapauksessa ovat. Työssä käyn ensin läpi luvussa 2, mikä vie aikaa nykyisissä prosessoreissa tietokantojen hakuja laskettaessa. Luvussa 3 käyn läpi kolme tapaa, joilla moniydinprosessoreiden on tarkoitus parantaa suorituskykyä ja näiden tapojen testauksien tulokset. 2 Prosessoria hidastavat tekijät Riippuen sitä minkälaista ohjelmaa prosessorilla ajetaan sitä kuormitetaan eri lailla. Oli kyseessä sitten peli tai tietokannanhallintajärjestelmä, niin aina löytyy pullonkaula jostain järjestelmän arkkitehtuurista. Käyn tässä luvussa läpi syitä miksi tietokantakyselyt vaativat niin paljon järjestelmältä ja kuinka aika jakautuu prosessorilla tietokantahakua laskettaessa. 2.1 Mihin aika kuluu Prosessorit ovat kehittyneet viime vuosina suuresti ja kymmenen vuotta sitten ei tavallisella käyttäjällä ollut mahdollista saada sellaista laskentatehoa, mikä löytyy nykyään melkein jokaisesta tavallisesta pöytäkoneesta. Kuitenkin laitteistosta on aina yritetty ottaa irti kaikki mahdollinen hyöty. Näin oli myös kymmenen vuotta sitten kun Ailamaki ja kumppanit [ADH99] alkoivat tutkia mihinkä aika kuluu prosessorilla, kun tietokannanhallintajärjestelmä saa suoritettavakseen kyselyn. Heidän alustanaan toimi Pentium 2 prosessori ja käyttöjärjestelmänä Windows NT. Aikaisempien tutkimusten perusteella kirjoittajat olettavat, että suurin syy mikä aiheuttaa hidastumista on laskennan pysähtyminen jostain syystä. Prosessorilla on kuitenkin seuraavanlaisia operaatioita, joita se voi suorittaa sillä välin kun se odottaa, että laskenta voi jatkua: Ei-eristävä välimuisti, eli muita muistipyyntöjä voidaan suorittaa samalla kun yhtä muistipyyntöä odotetaan. Sekalaisen järjestyksen salliva suoritus, eli jos käsky x:n suoritus pysähtyy voidaan siirtyä suorittamaan käskyä y, jos y:n tulos ei riipu x:stä.

6 Haarautuvuuden ennustus, eli algoritmi yrittää arvata mikä olisi seuraava predikaatti ja laskee sen mukaan tuloksen [ADH99]. 3 Ailamaki ja kumppanit esittävät seuraavan kaavan kyselyyn kuluvalle ajalle T Q T Q =T C T M T B T R T OVL. Kaavassa T C on laskutoimitukseen kuluva hyödyllinen laskenta-aika, T M on aika, joka kuluu pysähdyksiin muistipyynnön takia, T B on aika, joka kuluu väärin menneisiin haarautuvuuden ennustuksiin, T R on aika, joka kuluu resurssien puutteesta johtuviin pysähdyksiin, ja T OVL on aika, joka vähennetään päällekkäin tapahtuneiden pysähdysten takia. Näistä muistipyyntöihin kuluva aika jaetaan julkaisussa vielä useaan pienempään osaan, mitkä voidaan jakaa muun muassa tason 1 ja 2 välimuistin harhaiskuihin (T L1D ja T L2D ). Myös resurssien puute voi johtua monesta syystä. Ailamaki ja kumppanit jakavat resurssien puutteen kolmeen osaan: funktionaalista yksikköä ei ole vapaana, käskyjen välillä on riippuvuuksia ja alusta riippuvaiset ominaisuudet [ADH99]. Kuluvan ajan testaukseen Ailamaki ja kumppanit [ADH99] käyttivät tietokantaa, jonka relaatiossa on 1,2 miljoonaa sadan tavun tietuetta. Testiajot suoritettiin peräkkäisellä välin valinnalla, indeksoidulla välin valinnalla ja peräkkäisellä liitoksella. Testit suoritettiin 400Mhz Pentium 2 prosessorilla, jolla oli tason 1 välimuistia 16KB tiedolle ja käskyille kummallekin ja tason 2 välimuistia 512KB. Vertailukohtana voin sanoa, että nykyaikaisesta Core Duo prosessorista löytyy kummallekin prosessorille 32KB tason 1 välimuistia sekä tiedolle että käskyille, 2MB tason 2 välimuistia ja kellotaajuus on yli 2Ghz. Testit suoritettiin neljälle eri tietokannanhallintajärjestelmälle, joidenka nimet

7 4 esitettiin julkaisussa vain A, B, C ja D kirjaimilla. Kuvassa 1. on testien tulokset jaettuna neljään komponenttiin T C, T M, T B ja T R. Laskenta-aika T C on jokaisessa alle puolet kyselyn suoritusajasta, eli prosessori käyttää yli puolet ajasta pysähtyneessä tilassa. Ailamaki ja kumppanit [ADH99] olivat kymmenen vuotta sitten sitä mieltä, että tilanne ei tule tulevaisuudessakaan tästä parantumaan, sillä vaikka prosessorien nopeus kasvaa ei muistin nopeus kasva samalla tahdilla. He olivatkin oikeassa, sillä uudemmissa artikkeleissa nimen omaan muistista haku mainitaan edelleen pahimpana pullonkaulana tietokantojen suorituskyvyssä [PST08, ZCR05]. Kuvasta myös huomataan, että ajan jakautuminen riippuu enemmän suoritettavasta kyselystä, kuin tietokannanhallintajärjestelmästä. Julkaisussa todetaan lisäksi, että eri tietokannanhallintajärjestelmien välillä on erilaisia optimointeja alusta kohtaisesti, mutta tietyn asian optimointi yleensä vahvistaa jonkin muun alueen pullonkaulaa. Täten optimoinnissa pitäisi aina keskittyä jokaiseen kolmeen hidastavaan tekijään. Kaikkiaan julkaisu vaikutti asialliselta ja siihen viitataan yhä paljon iästä huolimatta. Olisi erittäin mielenkiintoista mikäli testit saataisiin toteutettua uudelleen nykypäivän prosessorilla. Itse kuvittelisin, että muistiviive on nykyään vielä suuremaassa osassa, koska prosessorien nopeudet ovat kasvaneet hurjasti verrattuna muistin ja kiintolevyn nopeuksiin [ADH99]. 3 Nopeutta useasta ytimestä Koska yhden prosessorin suorituskykyä voidaan nostaa nykyisellään huomattavasti hitaammin kuin vielä vuotta sitten, on siis vain luonnollista, että prosessorien määrää on lisätty. Suorituskyvyn nostaminen ei kuitenkaan ole helppoa ohjelmistoissa, sillä usean ytimen käyttö vaatii ohjelmistollisia muutoksia ja aina useampaa ydintä ei yksinkertaisesti voi tehtävässä hyödyntää. Esittelen luvussa kolme eri tapaa, joilla tietokannanhallintajärjestelmien nopeutta yritetään parantaa. 3.1 Säikeet Otin Zhoun ja kumppaneiden julkaisun [ZCR05] tietokannanhallintajärjestelmien nopeuttamisesta yhtäaikaisella monisäikeisyydellä mukaan, koska mielestäni on mielenkiintoista nähdä kuinka pelkästään usean säikeen suorittaminen yhtä aikaa nopeuttaa, verrattuna kokonaan toisen prosessorin lisäämiseen. Monisäikeisyys eroaa toisen prosessorin lisäämisestä siten, että eri säikeet jakavat monia resursseja, mukaan

8 5 lukien prosessorin muistikaistan ja välimuistit. Tämän takia usean säikeen ajaminen yhtä aikaa on olennaisesti hitaampi kuin fyysisen prosessorin lisääminen. Zhou ja kumppanit tutkivat kolmea eri tapaa käyttää monisäikeisyyttä hyväksi. Ensimmäinen ja yksinkertaisin näistä on ajatella monisäikeisyyteen kykenevää prosessoria, siten kuin säikeitä ajaisi kokonaan oma fyysinen prosessori. Tämä ratkaisu vaatii tekijöiden mukaan vähiten vaivaa koodin muuttamisessa tietokannanhallintajärjestelmässä, jota yleensä voidaan ajaa moniydinprosessoreilla. Ratkaisu ei kuitenkaan ota huomioon resurssien jakamista loogisten prosessorien välillä. Toinen vaihtoehto on toteuttaa jokainen tietokantaoperaatio monisäikeisyyden vaatimalla tavalla. Tekijät kutsuvat tätä nimellä Kaksoissäikeistys (Bi-threaded). Ratkaisun haaste on päättää, kuinka jakaa työmäärä ja kuinka yhdistää tulokset eri säikeiltä. Kolmas ja samalla tekijöiden ehdottama uusi tapa on käyttää yhtä säiettä apuna tiedon aggressiiviseen ennalta hakuun. Jos tiedon ennalta haku tapahtuu tekijöiden mukaan optimaalisesti, niin pääsäie löytää tarvitsemansa tiedon välimuistista useammin. Lähes samaa ideaa, mutta kokonaan omalla ytimellä, käyttävät Papadopoulos ja kumppanit Apuydin ratkaisullaan aliluvussa 3.2 [PST08, ZCR05]. Zhoun ja kumppanien [ZCR05] ehdottamassa uudessa ratkaisussa he määrittävät Etukäteistyöskentelykokoelma (Work-ahead-set) tietorakenteen, mikä on jaettu pää- ja apusäikeen välillä, kuten kuvasta 2. ilmenee. Pääsäie syöttää tietorakenteeseen muistiviittauksia tiedosta, jota se tulee tarvitsemaan lähitulevaisuudessa, ja apusäie noutaa muistiviittausten mukaan tietoa välimuistiin. Apusäie siis vain lukee tietorakenteesta, joten tiedon oikeellisuus pääsäikeelle on taattu. Tekijät ovat sitä mieltä, että lisääntyvä koodin monimutkaisuus on kohtuullinen ja vaivan arvoinen, kun paremmat tulokset näkyvät mittauksissa. Etukäteistyöskentelykokoelma koostuu pareista (p,s), jossa p on muistiosoite ja s on tila, mikä ilmoittaa pääsäikeen laskennan tilan muistiosoitteessa. Koska tekijät halusivat tietorakenteesta mahdollisimman tehokkaan ja yksinkertaisen on se tietyn mittainen kehätaulukko. Järjestelmän suorituskykyyn vaikuttaa neljä eri asetusta. Tietorakenteen alkioihin voi olla useita tai vain yksi osoitin, tietorakenteen kokoa voi vaihtaa, apusäie voi liikkua tietorakenteessa joko eteenpäin tai taaksepäin ja apusäie voi jäädä tai olla jäämättä kiertosilmukkaan (spin-loop), kun se huomaa saman muistiosoitteen annetussa alkiossa. Mielestäni on kahtiajakoinen asia, että ratkaisussa on monta muuttujaa, joita voidaan vaihtaa. Muuttujille voidaan löytää hyvin toimivat oikeat arvot, mutta niiden löytyminen saattaa kestää. Mikäli arvoja ei säädetä voi hyöty jäädä pienek-

9 6 si tai pahimmassa tapauksessa tietokannan suorituskyky saattaa huonontua [ZCR05]. 3.2 Apuydin Apuydin lähestymistapa, kuten Papadopoulos ja kumppanit [PST08] kutsuvat omaa ratkaisuaan, perustuu siihen, että kaikilla ytimillä ei suoriteta samaa koodia. Ratkaisussa osa ytimistä suorittaa koodia, jonka suoritus epäsuorasti hyödyttää ohjelmaa. Toteutus keskittyy ratkaisemaan yhden pahimmista ongelmista tietokantaohjelmissa, eli muistiviiveen, suorittamalla tehokasta tiedon esinoutoa. Esinoudon suorittaa apuydin ja tiedon käyttää jokin muu ydin. Ainoa vaatimus laitteistotasolla on, että kumpikin ydin jakaa jonkin tason muistihierarkiasta. Apuydin vaatii tekijöiden mukaan minimaalisia muutoksia alkuperäiseen tietokannanhallintajärjestelmän koodiin ja heidän mukaansa se toimii kaikilla moniydinratkaisuilla. He kirjoittavat, että tehokas tapaa käyttää rinnakkaisuutta tietokannoissa on antaa kyselyt eri prosessorien suoritettavaksi. Tätä käytetäänkin muun muassa PostgreSQL 1 ja MySQL 2 järjestelmissä ja kutsutaan kyselyväliseksi (inter-query) samanaikaisuudeksi. Nämä järjestelmät eivät kuitenkaan tue kyselysisäistä (intra-query) samanaikaisuutta eli kyselyn jakoa useiksi samanaikaisiksi tehtäviksi. Kyselyvälisestä samanaikaisuudesta voi olla hyötyä tiettyyn pisteeseen asti kuten Papadopoulos ja kumppanit esittävät. He tekivät simuloidun kokeen jossa kahdeksalla ytimellä ajettiin testi siitä, kuinka monta ydintä on kannattavaa olla käytössä

10 7 Kokeen tuloksena oli, että kuuden samanaikaisen ytimen käytön jälkeen muistihauista johtuva viive oli niin suuri, että osa prosessoreista joutui vain odottamaan, eikä voinut suorittaa laskentaa. Tässä siis kaksi yli jäävää ydintä olisivat hyvin voineet olla kirjoittajien mukaan Apuytimiä [PST08]. Ollakseen tehokas Papadopoulos ja kumppanit esittivät Apuytimelle seuraavat kriteerit: 1) sen täytyy olla yksinkertainen liittää nykyisin tietokannanhallintajärjestelmiin, 2) sen täytyy hakea tieto muistista ennen kuin tietoa tarvitaan, mutta vasta niin myöhään, ettei tieto katoa ennen käyttöä ja 3) vaikka Apuytimen ja tietokantasäikeiden välille tarvitaan synkronointi, niin siitä täytyy seurata vain vähän kustannuksia. Tekijöiden mukaan kodat 1) ja 3) täyttyvät, koska Apuydin noutaa muistista muistin puskurin kokoisia osia ja työsäikeen tarvitsee kommunikoida Apuytimen kanssa vain seuraavaksi tarvittavasta lohkosta. Kohta 2) täyttyy tapauskohtaisesti, sillä etukäteen haettavien lohkojen määrä riippuu tilanteesta. Tekijät kirjoittavat, että ihannetilanteessa noudettavien lohkojen määrä riippuisi suoritettavasta kyselystä. Itse en aivan ymmärrä miksi nimen omaan näillä ratkaisuilla liittäminen nykyisiin järjestelmiin on vaivatonta. Tekijät myös myöntävät kohdasta 2), että he itsekään eivät tiedä mikä arvo lohkojen noudolle on sopiva ja lupaavat palata asiaan. Tämä tuo mielestäni suurta epävarmuutta ratkaisun lopullisesta suorituskyvystä [PST08]. Kuvassa 3. on pseudokoodi työsäikeelle ja Apuytimelle. Apuytimen puolella on yksinkertainen silmukka, joka tarkistaa ilmoitusta joltain työsäikeeltä. Esimerkiksi jos jokin työsäie pyytää uutta lohkoa, jota ei ole esinoudettu, niin apuydin alkaa noutaa tietolohkoja. Sen tehtävä on noutaa d kappaletta lohkoja alkaen pyydetystä lohkosta. Kuvan 3.

11 8 ratkaisussa on käytetty aktiivista odotusta (busy-wait) synkronoinnissa, koska tekijöiden mukaan se vähentää työsäikeen ylimääräistä työtä ja Apuytimellä on kuitenkin oma prosessori käytössä, joten aika ei ole muusta laskennasta pois. Ratkaisu ei ole kaikkein paras esimerkiksi energian säästön kannalta, minkä tekijät itsekin myöntävät. On mielestäni lisäksi kyseenalaista halutaanko prosessorin vain pyörittävän tyhjäkäynnillä silmukkaa, jos hyödyllistäkin työtä olisi mahdollista tehdä [PST08]. 3.3 ASYNC -operaattori Ackerin ja kumppaneiden [ARB08] lähestymistapa tiivistää epäsynkronisen relaatiokyselyn suorituksen läpinäkyväksi relaatio-operaattoriksi. Kaikki toteutus on piilotettuna tämän operaattorin sisälle ja sen käyttö asettaa tekijöiden mukaan minimaalisesti vaatimuksia toisille relaatio-operaattoreille. Operaattori tukee aikaisemmista ratkaisuista poiketen luonnostaan kyselysisäistä samanaikaisuutta ja ratkaisee järjestyksen säilyttämisen ongelman. Tekijät tiivistävät samanaikaisuuden toteutuksen kaksivaiheiseen kyselyn suunnittelun optimointiin. Ensimmäisessä vaiheessa optimointia suunnitellaan kuinka kysely pitäisi suorittaa samanaikaisena. Toinen vaihe dynaamisesti jalostaa kyselysuunnitelman suoritusvaiheessa uudelleen tasapainottamalla suorittavat säikeet tasapainoon, joka takaa parhaan mahdollisen samanaikaisuuden rajatuille resursseille. Tekijät jakavat resurssit, jotka ratkaisu ottaa huomioon, muuan muassa seuraaviksi: väylä tai prosessori riippuvuus, monikon koko, monikkojen määrä sivua kohti ja tehtävään arviolta kuluva aika. Hitaita tehtäviä nopeutetaan määräämällä niille useampia säikeitä ja nopeat tehtävät voivat samalla odottaa sisäänmenopuskureissa [ARB08]. Tekijät mallintavat samanaikaisuuden uutena ASYNC operaattorina kyselynsuunnittelussa. Tämä operaattori on abstraktio säikeiden rajoista operaattoripuussa. Toisin sanoen tieto, joka kulkee ASYNC solmun läpi kulkeutuu säikeeltä toiselle. Solmu voi olla minkä tahansa kahden operaattorin välissä peräkkäisessä kyselynsuunnittelussa. Monikoiden vaihto säikeiden välillä tapahtuu puskurin välityksellä, joka on kapseloitu ja ohjattu jokaisella ASYNC operaattorilla. Puskuriin pääsy on synkronoitu ja se muistuttaa klassista tuottajat-kuluttajat ongelmaa. Kyselyvälinen samanaikaisuus mallinnetaan yksinkertaisesti lisäämällä ASYNC solmuja operaattoripuuhun. Kuvassa 4. tämä on kohta (c). Kyselysisäinen samanaikaisuus mallinnetaan tunnistamalla operaattoripuun sisällä kanavan osia, jotka ovat sopivia samanaikaiseen suoritukseen.

12 9 Kuinka tunnistaminen oikein tapahtuu jää julkaisussa selvittämättä. Kuvassa 4. on esimerkki kyselysisäisestä toteutuksesta (d). Tässä alempi ASYNC solmu toimii tiedon jakajana eli jakaa sisään tulevan tiedon kanavien sisäänmenopuskureihin ja ylempi solmu yhdistää tulokset kanavien ulostulopuskureista [ARB08]. Julkaisussa on todella paljon asiaa sen takia, että kaikki käydään hyvin perusteellisesti läpi. Itse sain sellaisen kuvan, että ASYNC operaattoria voidaan ja pitääkin säätää kokoajan ajon aikana riippuen lähes kaikesta mahdollisesta, kuten operaattorin asetuksista ja suoritettavasta kyselystä. Ratkaisu tuntuu operaattorin sisällä lopulta hyvin monimutkaiselta ja tekijät toteavatkin muutamassa kohtaa, että he olettavat, että tietyt asiat ovat tai menevät aina optimaalisesti. 3.4 Tulosten läpikäynti Zhoun ja kumppanien [ZCR05] julkaisun tuloksissa otettiin huomioon vain tason 2 välimuistin harhaosumat ja prosessorin kanavan tyhjennys, mikä saattaa johtua esimerkiksi väärässä järjestyksessä muistista lukemisen takia. Nämä kaksi valittiin siksi, koska ne olivat heidän testiensä mukaan selkeästi suurimmat hidastavat tekijät. Kuvassa 5. ja 6. on vasemmalla ensin yhden ja kahden säikeen testien tulokset. Kolmantena ja neljäntenä tulevat säikeet joihin on lisätty etukäteistyöskentelykokoelman vaatima lavastettu operaattori (staged operator). Viidentenä ja kuudentena ovat Kaksoissäikeistykset, jotka osittavat sisään tulevan tiedon ja laskevat sen lomittain. Lopulta viimeisenä kuvassa 5. on Etukäteistyöskentelykokoelman tulos ja kuvassa 6. sekä pääsäikeen että apusäikeen

13 10 tulokset [ZCR05]. Mielestäni kuvasta 5. voi nähdä, että suoritusteho kasvaa huomattavasti kun järjestelmään lisätään yksi säie lisää. Mitään valtavaa hyötyä ei kuitenkaan Zhoun ja kumppanien [ZCR05] Etukäteistyöskentelykokoelmasta ole tähän verrattuna. Tekijät laskivat, että kahteen säikeeseen verrattuna heidän ratkaisunsa kävi CSB+ puun tapauksessa parhaimmillaan 10% ja liitoksessa 4,3% enemmän monikkoja läpi sekunnissa. Kuvan 6. tuloksista nähdään kuitenkin, että tekijöiden perusidea Etukäteistyöskentelykokoelmassa toimii todella hyvin. Pääsäikeen välimuistin hukkaiskut ovat selkeästi vähemmät kuin minkään muun. Mielestäni tekijöiden ratkaisu toimii siis nimen oman niin kuin he ajattelivatkin: pääsäie laskee ja apusäie suorittaa muistista haun. Harmi sinänsä, että tästä ratkaisusta ei ole olennaisesti parempaa hyötyä verrattuna kahteen säikeen perustoteutukseen. Luulen myös, että on helpompaa toteuttaa tietokannanhal-

14 lintajärjestelmä tukemaan kahta säiettä perinteisesti, kuin käyttää toteutuksessa Etukäteistyöskentelykokoelmaa [ZCR05]. 11 Papadopoulos ja kumppanit [PST08] ovat samalla linjalla Zhoun ja kumppanien [ZCR05] kanssa siinä, että tuloksissa otetaan huomioon vain kaksi eniten vaikuttavaa tekijää. He pitävät eniten suorituskykyyn vaikuttavina tekijöinä tason 2 välimuistin harhaosumia ja prosessorin pysähtyneisyyttä. Kuvassa 7. on esillä kohdassa (a) kuinka paljon Apuytimen käyttö vähentää prosessorin pysähdyksiä tietyillä kyselyillä. 22 kyselystä pysähdykset vähenivät yli 40% kahdeksassa tapauksessa ja 19 tapauksessa vähennys oli yli 20%. Kohdassa (b) on tason 2 harhaiskujen väheneminen käytettäessä Apuydintä. Kuvasta näkee, että 21 tapauksessa harhaiskut vähenivät yli 60%. Tekijöiden mielestä on tärkeä mainita, että heidän testeissä käyttämänsä Core Duo prosessori sisältää laitteistotason ennalta noudon. Tästä huolimatta heidän mukaansa Apuydin auttaa tämän ominaisuuden päälle poistaen vielä puolet harhaiskujen määrästä. Teoreettisella tasolla Apuydin mielestäni on erittäin vaikuttava ja lukujen mukaan nopeutus kyselyjä suoritettaessa pitäisi olla huomattava [PST08]. Kuvassa 8. on Papadopouloksen ja kumppanien [PST08] tulokset Apuytimelle suoritettaessa 22 kyselyä, samat kuin kuvassa 7., eri kokoisille tietokannoille ja laskettaessa kuinka paljon suoritusaika lyhenee. Kyselystä riippuen huomataan, että parhaimmillaan hyöty on noin 20% verrattuna pelkkään kahden prosessoin käyttöön, mutta yleensä nopeushyöty jää viiden ja vajaan 15 prosentin väliin. Tuloksista voi lukea myös sen, että hyöty ei skaalaudu lineaarisesti tietokannan koon kasvaessa. 50MB kokoiseen tietokantaan asti hyöty näyttää kasvavan, mutta 100MB tietokannalla hyöty on yleensä joko

15 hieman parempi tai huonompi kuin 50MB tietokannalla. Mielestäni Apuytimen käytöstä on selkeästi hyötyä tietokantojen suorituskykyyn, vaikkei nopeutus aina olekaan suuri. 12 Julkaisussa ei myöskään tullut ilmi mitään miksi ratkaisun liittäminen tietokannanhallintajärjestelmään olisi hankalaa ja testit suoritettiinkin Apuydin liitettynä PostgreSQL tietokantaan. Vertailtaessa Apuydintä Etukäteistyöskentelykokoelmaan voin sanoa, että idea on kummassakin oikea, mutta Etukäteistyöskentelykokoelman toteutus säikeille ei ole yhtä hyödyllinen. Sen hyödyllisyys kärsii, koska kahden säikeen samanaikainen ajaminen ei vain korvaa kokonaan toista prosessoria. On harmi, ettei Apuytimen testituloksissa ollut mukana yhden prosessorin ratkaisua, sillä tuloksia olisi ollut mielenkiintoista vertailla [PST08, ZCR05]. ASYNC -operaattorin testaukseen Acker ja kumppanit [ARB08] käyttivät 387 kyselyn kyselysarjaa. Kuvassa 9. ovat näille kyselyille suoritettujen testiajojen tulokset. Lyhyiden kyselyjen sarjassa (1-219) kyselyt kestävät alta 10ms, joten mahdollinen hyöty samanaikaisuudesta on tekijöiden mukaan olematon. Enin aika tässä sarjassa kuluu asiakkaan ja palvelijan välisessä kommunikaatiossa, eikä suorittimen nopeuksista ole siten hyötyä. Keskipitkät kyselyt ( ) kestävät ms ja niissä osassa ASYNC -operaattorista on hyötyä ja osassa taas ei. Tekijöiden mukaa ASYNC -operaattorista aiheutuvat kustannukset ovat näille kyselyille kolmen prosentin luokkaa, mikä toisaalta

16 13 tarkoittaa sitä, ettei hyötykään ole kovin suuri. Pitkissä kyselyissä ( ), jotka kestävät yli 600ms hyöty taas on selkeästi havaittavissa. Tekijöiden mukaan jopa niin hyvin, että suoritus on lähellä arvioitua optimi hyötyä. Kaiken kaikkiaan samanaikaisuus vähentää kokonaisuudessa kuluvaa aikaa alle 70%. Siinä missä pelkällä kahden suorittimen käytöllä tekijät saivat kyselyjen suoritusajaksi 226,5 sekuntia, niin ASYNC -operaattorilla aikaa kului 156 sekuntia [ARB08]. Mielestäni ASYNC -operaattorin tulokset ovat varsinkin pitempään kestävillä kyselyillä huomattavat. Toisaalta taas operaattorista aiheutuva lisäys laskentaan saattaa aiheuttaa suoritusajan pitenemisen lyhyemmille kyselyille. Ikävästi kuvat tuloksista ovat pienenpuoleisia ja niihin on laitettu mielestäni liikaa asiaa ja liian vähän selittäviä tekijöitä, joten tulosten tulkinta vaikeutuu. Esimerkiksi kaikkien muiden tässä käsittelemieni artikkelien taulukot ja testitulokset ovat huomattavasti helpommin tulkittavissa. Testitulosten valossa, niin kuin niitä parhaiten voi tulkita, pidän kuitenkin ASYNC -operaattorin käyttöä hyödyllisenä vaihtoehtona. Varsinkin jos sen liittäminen järjestelmään on yhtä vaivatonta, kuin tekijät itse antavat ymmärtää. 4 Yhteenveto Kävin työssä ensin läpi mihin aika prosessorilla kuluu tietokantakyselyä suoritettaessa. Ailamakin ja kumppaneiden [ADH99] julkaisusta kävi varsin selkeästi selville, kuinka muistista haut ja resurssien puute ovat suurin hidaste kyselyn tuloksen valmistumiselle. Mielestäni oli jopa hälyttävää, että prosessorin laskenta-aikaa käytettiin alle puolet kyselyn suoritusajasta. Julkaisun perusteella voi siis päätellä, että tarvetta paremmalle

17 14 tiedon ennalta hauelle löytyy todella paljon. Nimen omaan tiedon ennalta haun ideaan perustuvakin Zhoun ja kumppaneiden [ZCR05] sekä Papadopouloksen ja kumppaneiden [PST08] ratkaisut. Kummassakin pyritään parantamaan suorituskykyä samalla idealla: yksi ydin tai säie noutaa tietoa, mitä muut tulevat tarvitsemaan. Säikeiden tapauksessa hyöty jää lopulta pieneksi, mutta ytimien tapauksessa hyöty on kohtalaisen suurta. Acker ja kumppanit [ARB08] ovat tässä eri linjalla ja heidän ratkaisuna on jakaa yhden kyselyn suoritus tasaisesti usealle säikeelle. Ratkaisu vaatii laskenta-aikaa prosessorilta koko ajan, joten lyhyet ja keskipitkät kyselyt kärsivät tästä. Pidempään kestäville kyselyille hyöty taas on suuri. Minusta kiinnostavina yksityiskohtina voin mainita myös, että Zhoun ja kumppaneiden [ZCR05] testien tuloksista voi päätellä, että pelkästään samanaikaisesti suoritettavien säikeiden lisäys parantaa huomattavasti kyselyjen suoritusta. Lisäksi Papadopouloksen ja kumppaneiden [PST08] testistä voi päätellä, että pelkästään ytimien lisääminen johtaa lopulta muistikaistan tukkeutumiseen ja täten prosessorin ytimien pysähtymisiin. Ratkaisua jossa moniydinprosessoreita siis käytetään älykkäästi, eli jokainen ydin ei aina laske vain yhtä kyselyä, tarvitaan kipeästi. Julkaisujen perusteella ratkaisuja on onneksi keksitty, nyt kun vain ne pääsisivät käyttöön asti. Lähteet ADH99 ARB08 PST08 ZCR05 A. Ailamaki, D. J. DeWitt, M. D. Hill ja D. A. Wood. DBMSs On A Modern Processor: Where Does Time Go? In Proceedings of the Very Large Data Bases (VLDB'99), Morgan Kaufmann, Edinburgh, Scotland, UK, 1999, sivut R. Acker, C. Roth ja R. Bayer. Parallel Query Processing in Databases on Multicore Architectures. Algorithms and Architectures for Parallel Processing, 5022:2 13. Springer Berlin / Heidelberg, K. Papadopoulos, K. Stavrou ja P. Trancoso. HelperCore DB : Exploiting Multicore Technology to Improve Database Performance. In Proceedings of the Parallel and Distributed Processing (IPDPS'08), IEEE International Symposium, Miami, Florida, USA, 2008, sivut J. Zhou, J. Cieslewicz, K. A. Ross ja M. Shah. Improving Database Per-

18 15 formance on Simultaneous Multithreading Processors. In Proceedings of the Very Large Data Bases (VLDB'05), ACM, Trondheim, Norway, 2005, sivut

arvostelija OSDA ja UDDI palveluhakemistoina.

arvostelija OSDA ja UDDI palveluhakemistoina. Hyväksymispäivä Arvosana arvostelija OSDA ja UDDI palveluhakemistoina. HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto Fakultet/Sektion Faculty/Section Laitos Institution

Lisätiedot

Rinnakkaisuuden hyväksikäyttö peleissä. Paula Kemppi

Rinnakkaisuuden hyväksikäyttö peleissä. Paula Kemppi Rinnakkaisuuden hyväksikäyttö peleissä Paula Kemppi 24.4.2008 Esityksen rakenne Johdantoa Rinnakkaisuus Pelimoottorien rinnakkaisuuden mallit Funktionaalisen rinnakkaisuuden malli Rinnakkaisen tiedon malli

Lisätiedot

VÄLIMUISTITIETOISET PUSKURIT. Markus Montonen

VÄLIMUISTITIETOISET PUSKURIT. Markus Montonen VÄLIMUISTITIETOISET PUSKURIT Markus Montonen Sisällys 1. Johdanto 2. L1-välimuistin puskuroinnin ongelma ja ratkaisuehdotus 3. L1-välimuistin puskurioperaation kokeellinen tutkiminen 4. L2-välimuistin

Lisätiedot

Algoritmit 1. Luento 3 Ti Timo Männikkö

Algoritmit 1. Luento 3 Ti Timo Männikkö Algoritmit 1 Luento 3 Ti 17.1.2017 Timo Männikkö Luento 3 Algoritmin analysointi Rekursio Lomituslajittelu Aikavaativuus Tietorakenteet Pino Algoritmit 1 Kevät 2017 Luento 3 Ti 17.1.2017 2/27 Algoritmien

Lisätiedot

Selainpelien pelimoottorit

Selainpelien pelimoottorit Selainpelien pelimoottorit Teemu Salminen Helsinki 28.10.2017 Seminaaritutkielma Helsingin yliopisto Tietojenkäsittelytiede ! 1 HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta

Lisätiedot

Aika/Datum Month and year Kesäkuu 2012

Aika/Datum Month and year Kesäkuu 2012 Tiedekunta/Osasto Fakultet/Sektion Faculty Laitos/Institution Department Filosofian, historian, kulttuurin ja taiteiden tutkimuksen laitos Humanistinen tiedekunta Tekijä/Författare Author Veera Lahtinen

Lisätiedot

Koht dialogia? Organisaation toimintaympäristön teemojen hallinta dynaamisessa julkisuudessa tarkastelussa toiminta sosiaalisessa mediassa

Koht dialogia? Organisaation toimintaympäristön teemojen hallinta dynaamisessa julkisuudessa tarkastelussa toiminta sosiaalisessa mediassa Kohtdialogia? Organisaationtoimintaympäristönteemojenhallinta dynaamisessajulkisuudessatarkastelussatoiminta sosiaalisessamediassa SatuMariaPusa Helsinginyliopisto Valtiotieteellinentiedekunta Sosiaalitieteidenlaitos

Lisätiedot

Välimuistitietoiset puskurit.

Välimuistitietoiset puskurit. hyväksymispäivä arvosana arvostelija Välimuistitietoiset puskurit. Markus Montonen Helsinki 02.03.2011 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY

Lisätiedot

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo Concurrency - Rinnakkaisuus Group: 9 Joni Laine Juho Vähätalo Sisällysluettelo 1. Johdanto... 3 2. C++ thread... 4 3. Python multiprocessing... 6 4. Java ExecutorService... 8 5. Yhteenveto... 9 6. Lähteet...

Lisätiedot

Tietorakenteet ja algoritmit - syksy 2015 1

Tietorakenteet ja algoritmit - syksy 2015 1 Tietorakenteet ja algoritmit - syksy 2015 1 Tietorakenteet ja algoritmit - syksy 2015 2 Tietorakenteet ja algoritmit Johdanto Ari Korhonen Tietorakenteet ja algoritmit - syksy 2015 1. JOHDANTO 1.1 Määritelmiä

Lisätiedot

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2 TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos TKT-3200 Tietokonetekniikka I Harjoitustyö 4: Cache, osa 2.. 2010 Ryhmä Nimi Op.num. 1 Valmistautuminen Cache-työn toisessa osassa

Lisätiedot

CUDA. Moniydinohjelmointi 17.4.2012 Mikko Honkonen

CUDA. Moniydinohjelmointi 17.4.2012 Mikko Honkonen CUDA Moniydinohjelmointi 17.4.2012 Mikko Honkonen Yleisesti Compute Unified Device Architecture Ideana GPGPU eli grafiikkaprosessorin käyttö yleiseen laskentaan. Nvidian täysin suljetusti kehittämä. Vuoden

Lisätiedot

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari 1 1. JOHDANTO 1.1 Määritelmiä 1.2 Tietorakenteen ja algoritmin valinta 1.3 Algoritmit ja tiedon määrä 1.4 Tietorakenteet ja toiminnot 1.5 Esimerkki:

Lisätiedot

Seminaari: Keskusmuistitietokannat. Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen

Seminaari: Keskusmuistitietokannat. Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen Seminaari: Keskusmuistitietokannat Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen Sisältö Johdanto Esiteltävien menetelmien taustoja Hajautetun tietokannan spekuloiva samanaikaisuuden

Lisätiedot

Pro gradu -tutkielma Meteorologia SUOMESSA ESIINTYVIEN LÄMPÖTILAN ÄÄRIARVOJEN MALLINTAMINEN YKSIDIMENSIOISILLA ILMAKEHÄMALLEILLA. Karoliina Ljungberg

Pro gradu -tutkielma Meteorologia SUOMESSA ESIINTYVIEN LÄMPÖTILAN ÄÄRIARVOJEN MALLINTAMINEN YKSIDIMENSIOISILLA ILMAKEHÄMALLEILLA. Karoliina Ljungberg Pro gradu -tutkielma Meteorologia SUOMESSA ESIINTYVIEN LÄMPÖTILAN ÄÄRIARVOJEN MALLINTAMINEN YKSIDIMENSIOISILLA ILMAKEHÄMALLEILLA Karoliina Ljungberg 16.04.2009 Ohjaajat: Ari Venäläinen, Jouni Räisänen

Lisätiedot

Algoritmit 1. Luento 1 Ti Timo Männikkö

Algoritmit 1. Luento 1 Ti Timo Männikkö Algoritmit 1 Luento 1 Ti 10.1.2017 Timo Männikkö Luento 1 Algoritmi Algoritmin toteutus Ongelman ratkaiseminen Algoritmin tehokkuus Algoritmin suoritusaika Algoritmin analysointi Algoritmit 1 Kevät 2017

Lisätiedot

811312A Tietorakenteet ja algoritmit, , Harjoitus 3, Ratkaisu

811312A Tietorakenteet ja algoritmit, , Harjoitus 3, Ratkaisu 811312A Tietorakenteet ja algoritmit, 2018-2019, Harjoitus 3, Ratkaisu Harjoituksessa käsitellään algoritmien aikakompleksisuutta. Tehtävä 3.1 Kuvitteelliset algoritmit A ja B lajittelevat syötteenään

Lisätiedot

Käyttöjärjestelmät: poissulkeminen ja synkronointi

Käyttöjärjestelmät: poissulkeminen ja synkronointi Käyttöjärjestelmät: poissulkeminen ja synkronointi Teemu Saarelainen Tietotekniikka teemu.saarelainen@kyamk.fi Lähteet Stallings, W. Operating Systems Haikala, Järvinen, Käyttöjärjestelmät Eri Web-lähteet

Lisätiedot

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen Tietojärjestelmä tuotantoympäristössä Tausta ja tavoitteet Tausta Kurssilla on opiskeltu suunnittelemaan ja toteuttamaan tietokanta, joka on pieni perustuu selkeisiin vaatimuksiin on (yleensä) yhden samanaikaisen

Lisätiedot

Tietokoneen muisti nyt ja tulevaisuudessa. Ryhmä: Mikko Haavisto Ilari Pihlajisto Marko Vesala Joona Hasu

Tietokoneen muisti nyt ja tulevaisuudessa. Ryhmä: Mikko Haavisto Ilari Pihlajisto Marko Vesala Joona Hasu Tietokoneen muisti nyt ja tulevaisuudessa Ryhmä: Mikko Haavisto Ilari Pihlajisto Marko Vesala Joona Hasu Yleisesti Muisti on yksi keskeisimmistä tietokoneen komponenteista Random Access Memory on yleistynyt

Lisätiedot

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

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet A271117, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin

Lisätiedot

Työn laji Arbetets art Level Aika Datum Month and year Sivumäärä Sidoantal Number of pages

Työn laji Arbetets art Level Aika Datum Month and year Sivumäärä Sidoantal Number of pages Tiedekunta/Osasto Fakultet/Sektion Faculty Laitos Institution Department Tekijä Författare Author Työn nimi Arbetets titel Title Oppiaine Läroämne Subject Työn laji Arbetets art Level Aika Datum Month

Lisätiedot

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä hyväksymispäivä arvosana arvostelija Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä Tuomas Husu Helsinki 20.2.2010 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Sisältö i 1 Johdanto

Lisätiedot

MEMS-muisti relaatiotietokannoissa

MEMS-muisti relaatiotietokannoissa MEMS-muisti relaatiotietokannoissa Antti Tikka Espoo 28.2.2009 Seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto

Lisätiedot

jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja

jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja Tietokanta Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja mikä tahansa tietokokoelma? --> erityispiirteitä Tietokanta vs. tiedosto 1

Lisätiedot

Tietokanta (database)

Tietokanta (database) Tietokanta Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja 1 Tiedosto Ohjelmointikielissä apumuistiin tallennettuja tietoja käsitellään

Lisätiedot

Tietorakenteet, laskuharjoitus 7, ratkaisuja

Tietorakenteet, laskuharjoitus 7, ratkaisuja Tietorakenteet, laskuharjoitus, ratkaisuja. Seuraava kuvasarja näyttää B + -puun muutokset lisäysten jälkeen. Avaimet ja 5 mahtuvat lehtisolmuihin, joten niiden lisäys ei muuta puun rakennetta. Avain 9

Lisätiedot

Grafiikkasuorittimen käyttö keskusmuistitietokannoissa

Grafiikkasuorittimen käyttö keskusmuistitietokannoissa Grafiikkasuorittimen käyttö keskusmuistitietokannoissa Matti Nauha Helsinki 9.3.2012 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI

Lisätiedot

PN-puu. Helsinki Seminaari: Tietokannat nyt HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

PN-puu. Helsinki Seminaari: Tietokannat nyt HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos PN-puu Erno Härkönen Helsinki 24.10.2006 Seminaari: Tietokannat nyt HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto

Lisätiedot

Maailman muutosta tallentamassa Marko Vuokolan The Seventh Wave -valokuvasarja avauksena taidevalokuvan aikaan

Maailman muutosta tallentamassa Marko Vuokolan The Seventh Wave -valokuvasarja avauksena taidevalokuvan aikaan Maailman muutosta tallentamassa Marko Vuokolan The Seventh Wave -valokuvasarja avauksena taidevalokuvan aikaan Pro gradu -tutkielma 31.1.2012 Helsingin yliopisto Humanistinen tiedekunta Filosofian, historian,

Lisätiedot

Hallintomallit Suomen valtionhallinnon tietohallintostrategioissa

Hallintomallit Suomen valtionhallinnon tietohallintostrategioissa Hallintomallit Suomen valtionhallinnon tietohallintostrategioissa Lauri Eloranta Helsingin yliopisto Valtiotieteellinen tiedekunta Viestintä Pro gradu -tutkielma, 2014 Hallintomallit)Suomen)valtionhallinnon)tietohallintostrategioissa

Lisätiedot

Rinnakkaistietokoneet luento S

Rinnakkaistietokoneet luento S Rinnakkaistietokoneet luento 5 521475S Silmukalliset ohjelmat Silmukat joissa ei ole riippuvuussyklejä voidaan vektoroida eli suorittaa silmukan vektorointi Jokainen yksittäinen käsky silmukan rungossa

Lisätiedot

Katsaus korruption vaikutuksesta Venäjän alueelliseen talouskasvuun ja suoriin ulkomaisiin investointeihin

Katsaus korruption vaikutuksesta Venäjän alueelliseen talouskasvuun ja suoriin ulkomaisiin investointeihin INSTITUUTIOTTALOUSKASVUNEDELLYTYKSENÄ KatsauskorruptionvaikutuksestaVenäjänalueelliseentalouskasvuunjasuoriin ulkomaisiininvestointeihin2000 2010 AshekMohamedTarikHossain HelsinginYliopisto Valtiotieteellinentiedekunta

Lisätiedot

811312A Tietorakenteet ja algoritmit 2015-2016. I Johdanto

811312A Tietorakenteet ja algoritmit 2015-2016. I Johdanto 811312A Tietorakenteet ja algoritmit 2015-2016 I Johdanto Sisältö 1. Algoritmeista ja tietorakenteista 2. Algoritmien analyysistä 811312A TRA, Johdanto 2 I.1. Algoritmeista ja tietorakenteista I.1.1. Algoritmien

Lisätiedot

PRINCIPLES OF PROGRAMMING LANGUAGES - DEBUGGER

PRINCIPLES OF PROGRAMMING LANGUAGES - DEBUGGER PRINCIPLES OF PROGRAMMING LANGUAGES - DEBUGGER Group 16 Ville Laatu Henri Myllyoja - i SISÄLLYSLUETTELO 1. DEBUGGERI YLEISESTI... II 1.1 Debuggerin käyttämien... ii 1.2 Debuggerin käynnistäminen... ii

Lisätiedot

! #! %! & #!!!!! ()) +

! #! %! & #!!!!! ()) + ! #! %! & #!!!!! ()) + Tiedekunta/Osasto Fakultet/Sektion Faculty Humanistinen tiedekunta Laitos Institution Department Taiteiden tutkimuksen laitos Tekijä Författare Author Matti Pesonen Työn nimi Arbetets

Lisätiedot

Arkkitehtuurinen reflektio

Arkkitehtuurinen reflektio Arkkitehtuurinen reflektio Toni Ruokolainen Toni.Ruokolainen@cs.helsinki.fi Helsinki 6.10.2003 Tiivistelmä HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET

Lisätiedot

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto Tietokanta Tiedosto Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja Ohjelmointikielissä apumuistiin tallennettuja tietoja käsitellään

Lisätiedot

2 Konekieli, aliohjelmat, keskeytykset

2 Konekieli, aliohjelmat, keskeytykset ITK145 Käyttöjärjestelmät, kesä 2005 Tenttitärppejä Tässä on lueteltu suurin piirtein kaikki vuosina 2003-2005 kurssin tenteissä kysytyt kysymykset, ja mukana on myös muutama uusi. Jokaisessa kysymyksessä

Lisätiedot

AVL-puut. eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta

AVL-puut. eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta AVL-puut eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta pohjana jo esitetyt binäärihakupuiden operaatiot tasapainotus vie pahimmillaan lisäajan lisäys- ja

Lisätiedot

Liite 1. Projektin tulokset (Semaforit Javassa) Jukka Hyvärinen Aleksanteri Aaltonen

Liite 1. Projektin tulokset (Semaforit Javassa) Jukka Hyvärinen Aleksanteri Aaltonen Helsingin Yliopisto, tietojenkäsittelytieteen laitos Rinnakkaisohjelmointi (syksy 2006) Liite 1. Projektin tulokset (Semaforit Javassa) Jukka Hyvärinen Aleksanteri Aaltonen a. Käyttötarkoitus ja sovellusalue

Lisätiedot

Luku 8. Aluekyselyt. 8.1 Summataulukko

Luku 8. Aluekyselyt. 8.1 Summataulukko Luku 8 Aluekyselyt Aluekysely on tiettyä taulukon väliä koskeva kysely. Tyypillisiä aluekyselyitä ovat, mikä on taulukon välin lukujen summa tai pienin luku välillä. Esimerkiksi seuraavassa taulukossa

Lisätiedot

Tietokoneen toiminta, K Tavoitteet (4)

Tietokoneen toiminta, K Tavoitteet (4) Jakso 12 Yhteenveto Keskeiset asiat 1 Tavoitteet (4) Ymmärtää tietokonejärjestelmän keskeiset piirteet sillä suoritettavan ohjelman näkökulmasta Miten tietokonejärjestelmä suorittaa sille annettua ohjelmaa?

Lisätiedot

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000 Jakso 12 Yhteenveto Keskeiset asiat 1 Tavoitteet (4) Ymmärtää tietokonejärjestelmän keskeiset piirteet sillä suoritettavan ohjelman näkökulmasta Miten tietokonejärjestelmä suorittaa sille annettua ohjelmaa?

Lisätiedot

58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut

58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut 58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut 1. Palautetaan vielä mieleen O-notaation määritelmä. Olkoon f ja g funktioita luonnollisilta luvuilta positiivisille

Lisätiedot

D B. Tietokannan hallinta kertaus

D B. Tietokannan hallinta kertaus TKHJ:n pääkomponentit metadata TKHJ:ssä Tiedostojen käsittely puskurien rooli tiedostokäsittelyssä levymuistin rakenne ja käsittely mistä tekijöistä hakuaika muodostuu jonotus jos useita samanaikaisia

Lisätiedot

Kontrollipolkujen määrä

Kontrollipolkujen määrä Testaus Yleistä Testaus on suunnitelmallista virheiden etsimistä Tuotantoprosessissa ohjelmaan jää aina virheitä, käytettävistä menetelmistä huolimatta Hyvät menetelmät, kuten katselmoinnit pienentävät

Lisätiedot

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

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14 Arkkitehtuurikuvaus Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy Ryhmä 14 Muutoshistoria Versio Pvm Päivittäjä Muutos 0.4 1.11.2007 Matti Eerola 0.3 18.10.2007 Matti Eerola 0.2

Lisätiedot

Kahden virtualisointiohjelmiston suorituskyvyn testaus (valmiin työn esittely)

Kahden virtualisointiohjelmiston suorituskyvyn testaus (valmiin työn esittely) Kahden virtualisointiohjelmiston suorituskyvyn testaus (valmiin työn esittely) Jani Laine 31.10.2017 Ohjaaja: DI Jimmy Kjällman Valvoja: Prof. Kai Virtanen Työn saa tallentaa ja julkistaa Aalto-yliopiston

Lisätiedot

Algoritmit 1. Luento 10 Ke Timo Männikkö

Algoritmit 1. Luento 10 Ke Timo Männikkö Algoritmit 1 Luento 10 Ke 14.2.2018 Timo Männikkö Luento 10 Algoritminen ongelmanratkaisu Suunnittelumenetelmät Raaka voima Järjestäminen eli lajittelu Kuplalajittelu Lisäyslajittelu Valintalajittelu Permutaatiot

Lisätiedot

Tehtävä 2: Tietoliikenneprotokolla

Tehtävä 2: Tietoliikenneprotokolla Tehtävä 2: Tietoliikenneprotokolla Johdanto Tarkastellaan tilannetta, jossa tietokone A lähettää datapaketteja tietokoneelle tiedonsiirtovirheille alttiin kanavan kautta. Datapaketit ovat biteistä eli

Lisätiedot

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

1. a) Laadi suoraviivaisesti kyselyä vastaava optimoimaton kyselypuu. Helsingin yliopisto, Tietojenkäsittelytieteen laitos Kyselykielet, s 2006, Harjoitus 5 (7.12.2006) Tietokannassa on tietoa tavaroista ja niiden toimittajista: Supplier(sid,sname,city,address,phone,etc);

Lisätiedot

Graafin 3-värittyvyyden tutkinta T Graafiteoria, projektityö (eksakti algoritmi), kevät 2005

Graafin 3-värittyvyyden tutkinta T Graafiteoria, projektityö (eksakti algoritmi), kevät 2005 Graafin 3-värittyvyyden tutkinta T-79.165 Graafiteoria, projektityö (eksakti algoritmi), kevät 2005 Mikko Malinen, 36474R 29. maaliskuuta, 2005 Tiivistelmä Artikkelissa käydään läpi teoriaa, jonka avulla

Lisätiedot

4. Funktion arvioimisesta eli approksimoimisesta

4. Funktion arvioimisesta eli approksimoimisesta 4. Funktion arvioimisesta eli approksimoimisesta Vaikka nykyaikaiset laskimet osaavatkin melkein kaiken muun välttämättömän paitsi kahvinkeiton, niin joskus, milloin mistäkin syystä, löytää itsensä tilanteessa,

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2018-2019 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

Lisätiedot

Samanaikaisuuden hallinta Snapshot Isolationin avulla

Samanaikaisuuden hallinta Snapshot Isolationin avulla hyväksymispäivä arvosana arvostelija Samanaikaisuuden hallinta Snapshot Isolationin avulla Olli Korhonen Helsinki 4.3.2009 Seminaarityö HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO

Lisätiedot

Tutoriaaliläsnäoloista

Tutoriaaliläsnäoloista Tutoriaaliläsnäoloista Tutoriaaliläsnäolokierroksella voi nyt täyttää anomuksen läsnäolon merkitsemisestä Esim. tagi ei toiminut, korvavaltimon leikkaus, yms. Hyväksyn näitä omaa harkintaa käyttäen Tarkoitus

Lisätiedot

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

D B. Levykön rakenne. pyöriviä levyjä ura. lohko. Hakuvarsi. sektori. luku-/kirjoituspää Levyn rakenne Levykössä (disk drive) on useita samankeskisiä levyjä (disk) Levyissä on magneettinen pinta (disk surface) kummallakin puolella levyä Levyllä on osoitettavissa olevia uria (track), muutamasta

Lisätiedot

Luonnontieteiden popularisointi ja sen ideologia

Luonnontieteiden popularisointi ja sen ideologia Luonnontieteiden popularisointi ja sen ideologia Tapauksina Reino Tuokko ja Helsingin Sanomat 1960-luvulla Ahto Apajalahti Helsingin yliopisto Humanistinen tiedekunta Suomen ja Pohjoismaiden historia Pro

Lisätiedot

Johnson, A Theoretician's Guide to the Experimental Analysis of Algorithms.

Johnson, A Theoretician's Guide to the Experimental Analysis of Algorithms. Kokeellinen algoritmiikka (3 ov) syventäviä opintoja edeltävät opinnot: ainakin Tietorakenteet hyödyllisiä opintoja: ASA, Algoritmiohjelmointi suoritus harjoitustyöllä (ei tenttiä) Kirjallisuutta: Johnson,

Lisätiedot

5. Numeerisesta derivoinnista

5. Numeerisesta derivoinnista Funktion derivaatta ilmaisee riippumattoman muuttujan muutosnopeuden riippuvan muuttujan suteen. Esimerkiksi paikan derivaatta ajan suteen (paikan ensimmäinen aikaderivaatta) on nopeus, joka ilmaistaan

Lisätiedot

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu Liite 1: skenaariot ja PoC tulokset 1. Palvelun kehittäjän näkökulma Tilanne Vaatimus Ongelma jos vaatimus ei toteudu Palvelun uusi versio on Palveluiden kehittäminen voitava asentaa tuotantoon vaikeutuu

Lisätiedot

3 Raja-arvo ja jatkuvuus

3 Raja-arvo ja jatkuvuus 3 Raja-arvo ja jatkuvuus 3. Raja-arvon käsite Raja-arvo kuvaa funktion kättätmistä jonkin lähtöarvon läheisdessä. Raja-arvoa tarvitaan toisinaan siksi, että funktion arvoa ei voida laskea kseisellä lähtöarvolla

Lisätiedot

1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:

1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa: Tietorakenteet, laskuharjoitus 10, ratkaisuja 1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa: SamaLuku(T ) 2 for i = 1 to T.length 1 3 if T [i] == T [i + 1] 4 return True 5 return

Lisätiedot

Stabiloivat synkronoijat ja nimeäminen

Stabiloivat synkronoijat ja nimeäminen Stabiloivat synkronoijat ja nimeäminen Mikko Ajoviita 2.11.2007 Synkronoija Synkronoija on algoritmi, joka muuntaa synkronoidun algoritmin siten, että se voidaan suorittaa synkronoimattomassa järjestelmässä.

Lisätiedot

Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön?

Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön? Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön? 2013-2014 Lasse Lensu 2 Systeemiohjelmat ovat tietokoneen laitteistoa lähellä olevia ohjelmia,

Lisätiedot

Tietorakenteet ja algoritmit

Tietorakenteet ja algoritmit Tietorakenteet ja algoritmit Kurssin sisältö pääpiirteittäin Tarvittavat pohjatiedot Avainsanat Abstraktio Esimerkkiohjelman tehtäväkuvaus Abstraktion käyttö tehtävässä Abstrakti tietotyyppi Hyötyjä ADT:n

Lisätiedot

Intel Pentium Pro -prosessori. tietokonearkkitehtuurit, syksy -96 Ari Rantanen

Intel Pentium Pro -prosessori. tietokonearkkitehtuurit, syksy -96 Ari Rantanen Intel Pentium Pro -prosessori tietokonearkkitehtuurit, syksy -96 Ari Rantanen Tarkasteltavat aiheet Katsaus Pentium Pro:n ominaisuuksiin Käskyn suoritus Pentium Pro:n liukuhihnalla Pentium Pro:n suorituskyky

Lisätiedot

4 Tehokkuus ja algoritmien suunnittelu

4 Tehokkuus ja algoritmien suunnittelu TIE-20100 Tietorakenteet ja algoritmit 52 4 Tehokkuus ja algoritmien suunnittelu Tässä luvussa pohditaan tehokkuuden käsitettä ja esitellään kurssilla käytetty kertaluokkanotaatio, jolla kuvataan algoritmin

Lisätiedot

Algoritmit 2. Luento 13 Ti Timo Männikkö

Algoritmit 2. Luento 13 Ti Timo Männikkö Algoritmit 2 Luento 13 Ti 30.4.2019 Timo Männikkö Luento 13 Simuloitu jäähdytys Merkkijonon sovitus Horspoolin algoritmi Ositus ja rekursio Rekursion toteutus Algoritmit 2 Kevät 2019 Luento 13 Ti 30.4.2019

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta. Hajautuksen hyötyjä

Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta. Hajautuksen hyötyjä Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta Hajautettu tietokanta Jokainen hajautettu tietokanta muodostaa oman kokonaisuutensa Loogisesti yhtenäinen data on hajautettu tietokantoihin (eri

Lisätiedot

Puuhakemistoista flash-levyllä

Puuhakemistoista flash-levyllä Puuhakemistoista flash-levyllä Antti Tikka Espoo 23.10.2009 Seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto

Lisätiedot

Yleisen PSCR-menetelmän toteutus ohjelmoitavalla näytönoh

Yleisen PSCR-menetelmän toteutus ohjelmoitavalla näytönoh Yleisen n toteutus ohjelmoitavalla näytönohjaimella Mirko Myllykoski mirko.myllykoski@jyu.fi 15.2.2011 Mitä teen? Tarkoituksena toteuttaa (ja osin jo toteutettukin) stä versio ohjelmoitavalle näytönohjaimelle

Lisätiedot

Tiedekunta/Osasto Fakultet/Sektion Faculty Valtiotieteellinen tiedekunta

Tiedekunta/Osasto Fakultet/Sektion Faculty Valtiotieteellinen tiedekunta Tiedekunta/Osasto Fakultet/Sektion Faculty Valtiotieteellinen tiedekunta Laitos Institution Department Politiikan ja talouden tutkimuksen laitos Tekijä Författare Author Virta, Mikko Antero Työn nimi Arbetets

Lisätiedot

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Luento

Lisätiedot

Helsingin yliopisto/tktl Kyselykielet, s 2006 Optimointi Harri Laine 1. Kyselyn optimointi. Kyselyn optimointi

Helsingin yliopisto/tktl Kyselykielet, s 2006 Optimointi Harri Laine 1. Kyselyn optimointi. Kyselyn optimointi Miksi optimoidaan Relaatiotietokannan kyselyt esitetään käytännössä SQLkielellä. Kieli määrittää halutun tuloksen, ei sitä miten tulos muodostetaan (deklaratiivinen kyselykieli) Tietokannan käsittelyoperaatiot

Lisätiedot

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö Tekijät: Eemeli Honkonen Joni Metsälä Työ palautettu: SISÄLLYSLUETTELO: 1 SEMINAARITYÖN KUVAUS... 3 2 TIETOKANTA... 3 2.1 MITÄ TIETOKANNAT SITTEN OVAT?... 3

Lisätiedot

Matemaatiikan tukikurssi

Matemaatiikan tukikurssi Matemaatiikan tukikurssi Kurssikerta 1 1 Funktiot Funktion määritelmä Funktio on sääntö, joka liittää kahden eri joukon alkioita toisiinsa. Ollakseen funktio tämän säännön on liitettävä jokaiseen lähtöjoukon

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print

Lisätiedot

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

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Tietokone

Lisätiedot

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä Edistymisraportti v. T4 (Toteutus 4) Päivitetty 15.3.2001 klo 18:13 2 (8) Sisällys 1 PROJEKTIN TILA...3 2 SUORITETUT TEHTÄVÄT...6 3 KÄYTETYT MENETELMÄT...7 4 ONGELMAT...8 EDISTYMISRAPORTTI 2 3 (8) 1. Projektin

Lisätiedot

Oppimistavoitteet kurssilla Rinnakkaisohjelmointi

Oppimistavoitteet kurssilla Rinnakkaisohjelmointi 17.5.2006 1/5 Oppimistavoitteet kurssilla Rinnakkaisohjelmointi Rinnakkaisuus ja rinnakkaisuuden soveltaminen tietojenkäsittelyjärjestelmissä Kurssin Tietokoneen toiminta perusteella ymmärtää, miten ohjelman

Lisätiedot

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

58131 Tietorakenteet (kevät 2009) Harjoitus 6, ratkaisuja (Antti Laaksonen) 58131 Tietorakenteet (kevät 2009) Harjoitus 6, ratkaisuja (Antti Laaksonen) 1. Avaimet 1, 2, 3 ja 4 mahtuvat samaan lehtisolmuun. Tässä tapauksessa puussa on vain yksi solmu, joka on samaan aikaan juurisolmu

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 6 Vastaukset Harjoituksen aiheena on funktionaalinen ohjelmointi Scheme- ja Haskell-kielillä. Voit suorittaa ohjelmat osoitteessa https://ideone.com/

Lisätiedot

Software product lines

Software product lines Thomas Gustafsson, Henrik Heikkilä Software product lines Metropolia Ammattikorkeakoulu Insinööri (AMK) Tietotekniikan koulutusohjelma Asiantuntijateksti 17.11.2013 Sisällys 1 Johdanto 1 2 Software product

Lisätiedot

Demo 1: Simplex-menetelmä

Demo 1: Simplex-menetelmä MS-C2105 Optimoinnin perusteet Malliratkaisut 3 Ehtamo Demo 1: Simplex-menetelmä Muodosta lineaarisen tehtävän standardimuoto ja ratkaise tehtävä taulukkomuotoisella Simplex-algoritmilla. max 5x 1 + 4x

Lisätiedot

Testauksen tuki nopealle tuotekehitykselle. Antti Jääskeläinen Matti Vuori

Testauksen tuki nopealle tuotekehitykselle. Antti Jääskeläinen Matti Vuori Testauksen tuki nopealle tuotekehitykselle Antti Jääskeläinen Matti Vuori Mitä on nopeus? 11.11.2014 2 Jatkuva nopeus Läpäisyaste, throughput Saadaan valmiiksi tasaiseen, nopeaan tahtiin uusia tuotteita

Lisätiedot

Seminaari: HL7 versio 2

Seminaari: HL7 versio 2 hyväksymispäivä arvosana arvostelija Seminaari: HL7 versio 2 Markus Koski Helsinki 29.9.2014 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF

Lisätiedot

58131 Tietorakenteet ja algoritmit (syksy 2015) Toinen välikoe, malliratkaisut

58131 Tietorakenteet ja algoritmit (syksy 2015) Toinen välikoe, malliratkaisut Tietorakenteet ja algoritmit (syksy 0) Toinen välikoe, malliratkaisut. (a) Alussa puu näyttää tältä: Lisätään 4: 4 Tasapaino rikkoutuu solmussa. Tehdään kaksoiskierto ensin oikealle solmusta ja sitten

Lisätiedot

A271117 TIETOKANNAT, 3 op Syksy 2008 - TI07. Teemu Saarelainen, lehtori Tietotekniikka teemu.saarelainen@kyamk.fi

A271117 TIETOKANNAT, 3 op Syksy 2008 - TI07. Teemu Saarelainen, lehtori Tietotekniikka teemu.saarelainen@kyamk.fi A271117 TIETOKANNAT, 3 op Syksy 2008 - TI07 Teemu Saarelainen, lehtori Tietotekniikka teemu.saarelainen@kyamk.fi A271117 TIETOKANNAT Tavoitteet Oppia tietokantojen suunnitteluperiaatteet Osata käyttää

Lisätiedot

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit IDL - proseduurit 25. huhtikuuta 2017 Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

LIITE. asiakirjaan. komission delegoitu asetus

LIITE. asiakirjaan. komission delegoitu asetus EUROOPAN KOMISSIO Bryssel 12.10.2015 C(2015) 6823 final ANNEX 1 PART 6/11 LIITE asiakirjaan komission delegoitu asetus kaksikäyttötuotteiden vientiä, siirtoa, välitystä ja kauttakulkua koskevan yhteisön

Lisätiedot

Laita tietokone testipenkkiin

Laita tietokone testipenkkiin KUINKA TIETOKONEESI PÄRJÄÄ UUSIMPIA MALLEJA VASTAAN? Suoritin Laita tietokone testipenkkiin 2D-grafiikka Passmark Performance Test tutkii tietokoneen suorituskykyä lukuisten testien avulla. Tämän jälkeen

Lisätiedot

Satunnaisalgoritmit. Topi Paavilainen. Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Satunnaisalgoritmit. Topi Paavilainen. Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Satunnaisalgoritmit Topi Paavilainen Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Helsinki, 23. helmikuuta 2014 1 Johdanto Satunnaisalgoritmit ovat algoritmeja, joiden

Lisätiedot

KRYSP-rajapintojen suorituskykytestaukset. Jari Torvinen 12.2.2014

KRYSP-rajapintojen suorituskykytestaukset. Jari Torvinen 12.2.2014 KRYSP-rajapintojen suorituskykytestaukset Jari Torvinen 12.2.2014 1 Esityksen sisältö Rajapintojen käyttöönoton tilanne Kuopiossa Miksi suorituskykytestaus? Suorituskykytestauksen toteuttaminen Testaustulosten

Lisätiedot

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014 18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

TIETOJEN TUONTI TIETOKANNASTA + PIVOT-TAULUKON JA OLAP-KUUTION TEKO

TIETOJEN TUONTI TIETOKANNASTA + PIVOT-TAULUKON JA OLAP-KUUTION TEKO TIETOJEN TUONTI TIETOKANNASTA + PIVOT-TAULUKON JA OLAP-KUUTION TEKO JOUNI HUOTARI 2005-2010 OLAP-OHJETEKSTIT KOPIOITU MICROSOFTIN OHJATUN OLAP-KUUTION TEKO-OHJEESTA ESIMERKIN KUVAUS JA OLAP-MÄÄRITELMÄ

Lisätiedot

Joonas Haapala Ohjaaja: DI Heikki Puustinen Valvoja: Prof. Kai Virtanen

Joonas Haapala Ohjaaja: DI Heikki Puustinen Valvoja: Prof. Kai Virtanen Hävittäjälentokoneen reitin suunnittelussa käytettävän dynaamisen ja monitavoitteisen verkko-optimointitehtävän ratkaiseminen A*-algoritmilla (valmiin työn esittely) Joonas Haapala 8.6.2015 Ohjaaja: DI

Lisätiedot

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

JHS 180 Paikkatiedon sisältöpalvelut Liite 4 INSPIRE-palvelujen laadun testaus JHS 180 Paikkatiedon sisältöpalvelut Liite 4 INSPIRE-palvelujen laadun testaus Versio: 28.2.2013 Julkaistu: 28.2.2013 Voimassaoloaika: toistaiseksi Sisällys 1 Yleiset vaatimukset... 2 2 Latauspalvelun

Lisätiedot