Välimuistitietoiset puskurit.
|
|
- Lauri Heikkilä
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 hyväksymispäivä arvosana arvostelija Välimuistitietoiset puskurit. Markus Montonen Helsinki HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
2 HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta Fakultet Faculty Laitos Institution Department Matemaattis-luonnontieteellinen tiedekunta Tekijä Författare Author Tietojenkäsittelytieteen laitos Markus Montonen Työn nimi Arbetets titel Title Välimuistitietoiset puskurit. Oppiaine Läroämne Subject Tietojenkäsittelytiede Työn laji Arbetets art Level Semiaariraportti Tiivistelmä Referat Abstract Aika Datum Month and year Sivumäärä Sidoantal Number of pages 12 sivua Keskusmuistin kasvaessa, koko tietokanta saattaa mahtua sinne. Pullonkaulaksi on muodostunut sen ja prosessorin välinen tiedonkulku. Hutiosumat prosessorin L1- ja L2-välimuisteissa heikentävät kyselyiden suoritusta. Tässä raportissa käsittelee molempien välimuistien hutiosumien ongelmaa, ja niiden vähentämistä. L1-välimuistin hutiosumia pyritään vähentämään optimoijalla, joka tietyssä tilanteessa otetaan käyttöön. Optimoija on uusi operaatio, joka lisätään kyselyiden väliin ennen suoritusta. Se muuntaa suoritusjärjestystä hutiosumia vähentävään suuntaan. Raportissa on myös kokeellisesti todettu optimoijan parantavan suorituskykyä. L2-välimuistin hutiosumiin ratkaisuksi ehdotetaan prosessorien omistautumista tiettyyn tehtävään kerrallaan, ja tarpeeksi suuria aikaviipaleita koko tehtävän suorittamiseksi kerralla. Puskurit sijoitetaan kyselyiden väliin tehtävässä nopeuttaakseen tehtävän suoritusta rinnakkain. ACM Computing Classification System (CCS): B.3.2 Design Styles B.3.3 Performance Analysis and Design Aids Avainsanat Nyckelord Keywords prosessorin välimuistit, puskurit, hutiosumien vähentäminen Säilytyspaikka Förvaringställe Where deposited Muita tietoja Övriga uppgifter Additional information
3 Sisältö 1 Johdanto 1 2 L1-välimuistin puskuroinnin ongelma 2 3 L1-välimuistin puskuroinnin kokeelliset tulokset 3 4 L2-välimuistin puskurointi 6 5 L2-välimuistin puskuroinnin kokeelliset tulokset 8 6 Yhteenveto 11 Lähteet 12
4 1 1 Johdanto Keskusmuistien hintojen lasku on mahdollistanut suurten keskusmuistien käytön. Käyttäjät pystyvät suorittamaan suuria tietokantaoperaatioita kokonaan keskusmuistissa. Keskusmuistissa suorittaminen on tehokkaampaa kuin levyltä luettaessa, koska tieto on lähempänä tiedon prosessointi paikkaa eli prosessoria. Prosessorit ovat hyvin nopeita, ja pullonkaulaksi tietokantaoperaatioiden suorittamisessa on muodostunut muistin ja prosessorin välinen tiedonvälitys. Keskusmuistia nopeampi tiedon säilytyspaikka on prosessorin oma välimuisti, mutta se ei ole niin suuri kuin keskusmuisti. Ongelman ratkaisuksi tutkijat ovat suunnitelleet tietokantaoperaatioista välimuistitietoisia, jolloin ne osaavat käyttää prosessorin sisäistä välimuistia tehokkaasti hyväksi lataamalla usein tarvittavat tiedot välimuistiin operaation suorituksen ajaksi. Cieslewicz ja kumppanit artikkelissaan [CMR09] tuovat esiin ongelman, jossa useampi eri operaatio suorittaa laskentaa prosessorilla tai prosessoreilla käyttäen jaettua välimuistia (shared cache). Tällöin välimuistin hutiosumat (cache miss) lisääntyvät, koska aikaviipaleen (time slice) käytettyään operaation käyttämä välimuisti on toisen operaation käytössä. Ensimmäisen operaation jatkaessa, joutuu se hakemaan tiedot uudestaan keskusmuistista asti. Ongelma ilmenee vaikka molemmat operaatiot olisivat suunniteltu välimuistitietoiseksi eristyksessä, mutta operaatioiden yhteistyö ei toimi tehokkaasti. Välimuistin hutiosumia lisäksi tapahtuu, koska välimuistit ovat liian pieniä tietokantaoperaatioiden tiedoille. Varsinkin L1-välimuistissa, joka on lähempänä prosessoria kuin suurempi L2-välimuisti ja mahdollinen L3-välimuisti. Prosessori tutkii ensin L1- välimuistin tietoja tai ohjeita (instructions) hakiessaan tietoa. Jos se epäonnistuu, tietoja yritetään hakea L2-välimuistista ja sitten L3-välimuistista tai keskusmuistista. Tiedon haun kustannus keskusmuistista on kymmenkertainen verrattuna L2- tai L3-välimuistia [ZhR04]. Zhou ja Ross artikkelissaan [ZhR04] ehdottavat L1-välimuistin ongelman ratkaisuksi puskurointioperaatioita, joka muuttaa tietokantaoperaatioiden suoritusjärjestystä. Tsuji ja kumppanit artikkelissaan [TKT10] ovat huomanneet, että puskurointioperaatio vähentää L1-välimuistin hutiosumia vain tietyissä tilanteissa ja jopa lisää niitä toisissa. He esittelevät Zhoun ja Rossin esityksen pohjalta uuden algoritmin, joka valitsee oikean optimoinnin tietokantaoperaatioille riippuen tilanteesta. Loppu raportti etenee seuraavasti: Luvussa kaksi esittelen L1-välimuistin puskuroinnin
5 2 ongelman, ja miksi se pitää ratkaista. Luvussa kolme käsittelen Tsujin ja kumppanien ratkaisuehdotuksen ongelmaan. Luvussa neljä esittelen L2-välimuistin ongelmaa sekä Cieslewiczin ja kumppanien ratkaisuehdotuksen. Luvussa viisi käsittelen Cieslewiczin ja kumppanien ratkaisuehdotuksen kokeellisia tuloksia. Luvussa kuusi on yhteenveto raportista. 2 L1-välimuistin puskuroinnin ongelma Prosessoria lähemmän eli L1-välimuistin hutiosumien haitta on pienempi kuin L2- välimuistin, mutta niiden tapahtuminen on yleisempää [TKT10]. Zhou ja Ross artikkelissaan [ZhR04] ehdottaa ratkaisuksi puskurointioperaatioita, joka asetetaan kahden tietokantaoperaation väliin. Puskurointioperaatio on toteutettu PostgreSQLjärjestelmälle. Oikealle tietokantajärjestelmälle toteutettu ratkaisu ei ole järkevä, koska operaatio parantaa suoritusta vain osassa tapauksia [TKT10]. Puskurointioperaatio perustuu tietoon, että L1-välimuistin koko ei riitä aina kyselyn prosessoinnille. Kun näin tapahtuu, tapahtuu hutiosuma. Esimerkiksi kysely: SELECT COUNT(*) FROM item, tarvitsee kaksi tietokantaoperaatiota, selauksen (tablescan) ja koosteen (aggregation). Jokaisella koostamiskäsittelyllä operaatio hakee monikon selausoperaatiolta. Koostamis- ja selausoperaatiolla on vanhempi-lapsi-suhde, missä koostamisoperaatio on selauksen vanhempi. Merkitään koosteoperaatiota kirjaimella P ja selausoperaatioita kirjaimella C. Kahdeksan operaation suorituksen jälkeen järjestys on seuraava: PCPCPCPCPCPCPCPC. Jos yhden operaatioparin PC kokonaiskoko on suurempi kuin L1-välimuistin koko, molemmat operaatiot synnyttävät hutiosuman. Zhoun ja Rossin [ZhR04] ehdotuksessa puskurointioperaatio puskuroi osoittimen (pointer) jälkimmäisen operaation tietoon, jolloin välimuistissa tarvittava tieto pienenee. Puskurointi ei vaikuta normaalien operaatioiden suoritukseen, ja ne pystyvät operoimaan keskeytyksettä. Nyt kahdeksan operaation suorituksen jälkeen järjestys on: PCCCCCCCCPPPPPPP. Sama operaatio suoritetaan peräjälkeen, ja sen tiedosta tallennetaan välimuistiin vain osoitin. Puskurointioperaation hyöty tulee esiin vain, jos operaatiot P ja C ovat liian suuria yhdessä välimuistiin, muussa tapauksessa operaatio heikentää suoritusaikaa [TKT10]. Jotta puskurioperaatiosta saadaan täysi hyöty, tarvitsee se kyselyn optimoijan. Optimoijan tulee valita kyselyä suorittaessa tarvitaanko puskurointioperaatiota käyttää vai ei
6 3 perustuen kyselyyn. Optimoijan kehittämisellä on kaksi ongelmaa, jotka tulee ratkaista. 1. Optimoijan tulee tehdä syvä puskurioperaation käyttäytymisanalyysi. Optimoijan tulee tietää milloin puskurioperaation käyttö on hyödyllistä ja milloin ei. Rajat tulee selvittää useilla eri attribuuteilla. 2. Kyselyn optimoijan realisointi puskurioperaatiolla tulee perustua syväanalyysiin. Tsuji ja kumppanit artikkelissaan [TKT10] ratkaisevat nämä ongelmat PostgreSQLjärjestelmään. He toteuttavat puskurioperaation uutena operaationa, joten järjestelmän omat operaatiot eivät ole muuttuneet. Puskurioperaation suorittaa käynnistäjämoduuli (executor module), ja se toimii kuten perinteiset tietokantaoperaatiot. Puskurioperaatio on Zhoun ja Rossin [ZhR04] kehittämän operaation kaltainen. Puskurioperaatiolla on taulukko (array), joka eroaa Zhoun ja Rossin toteutuksesta siten ettei se ole määrätyn mittainen vaan optimoijan määräämä. PostgreSQL-rajapinta tarjoaa open-next-closefunktiot. Next-funktio toimii ilman puskurioperaatioita niin, että lapsioperaatioita suoritetaan kunnes taulukko on täysi tai lapsioperaatio ei palauta monikkoa. Funktio asettaa taulukkoon osoittimet lapsioperaation monikoihin. Jos taulukko ei ole tyhjä, nextfunktio antaa osoittimet vanhempioperaatiolle. Puskurioperaatiolla lisättynä nextfunktio tyhjän taulukon tapauksessa suorittaa lapsioperaatioita keskeytymättä. Jos sen sijaan taulukko ei ole tyhjä, suoritetaan vanhempioperaatiota jatkuvasti. Molemmissa tapauksissa L1-välimuistin hutiosumia ei esiinny, koska välimuisti on kokoajan pelkästään yhden operaation käytettävissä. 3 L1-välimuistin puskuroinnin kokeelliset tulokset Tsuji ja kumppanit [TKT10] analysoivat puskurioperaation tuloksia Pentium 4 prosessorilla varustetussa Linux-tietokoneessa, jossa keskusmuistia oli 1GB. L1- välimuistin ohjeille tilaa oli 8KB-16KB, L1-tietovälimuistia oli 8KB ja L2-välimuistia 512KB. Tutkijat tarkastelivat puskurioperaation toimintaa kolmella eri tutkimuksella. 1. Vanhempi- ja lapsioperaation kokonaistilan tarve, 2. puskurointioperaatioiden määrä L2-välimuistissa, 3. puskurointioperaatioiden suoritusten määrä. Tutkijat suorittivat ensimmäisen tutkimuksen useilla eri kyselyillä, ja he tutkivat olosuhteita missä puskurointioperaatio on hyödyllinen. Vain vanhempi- ja lapsioperaatioiden
7 4 kokojen yhteen lisääminen ei riitä, koska operaatioiden koot kääntämisen jälkeen riippuvat laitteistosta, sekä eri operaatioiden moduulit voivat jakaa samoja funktioita. Ensimmäisen tutkimuksen ensimmäisessä vaiheessa tutkijat käyttivät suurikokoisia operaatioita varmistuakseen, että välimuistin hutiosumia tapahtuu ja puskurioperaatio on hyödyllinen kun suoritettavien operaatioiden yhteiskoko ylittää L1-välimuistin koon. Tutkimuksessa Tsuji ja kumppanit [TKT10] vertasivat kooste- ja järjestämisoperaatioiden suoritusaikoja. He käyttivät kahdeksaa eri kyselyä, jotka ovat esitetty kuvassa 1. Kuva 1. Ensimmäisessä tutkimuksessa käytetyt kyselyt [TKT10]. Kuva 2. Ensimmäisen tutkimuksen tulokset [TKT10]. Kuvassa 2 on esitetty palkeilla jokaisen kuvassa 1 esitetyn kyselyn suoritusaika ilman puskurioperaatiota ja sen kanssa. Koosteoperaation kokoon vaikuttaa sen monimutkaisuus, ja tutkijat ovat valinneet kyselyiksi erikokoisia koosteoperaatioita. Tulosten johtopäätökset ovat seuraavat: Puskurioperaatiosta on hyötyä kun kyselyssä on kolme tai enemmän koosteoperaatioita sisältäen keskiarvon ja summan koostamisen tai laskettiin vain viiden tai enemmän monikon keskiarvoa tai summaa. Puskurioperaatiosta oli vain joskus hyötyä, kun laskettiin keskiarvoa ja summaa. Järjestysoperaation tutkimiseen Tsuji ja kumppanit [TKT10] käyttivät kyselyä:
8 SELECT * FROM points WHERE id < AND point >= ORDER BY point DESC. 5 Kyselyn alkuperäinen suoritusaika oli sekuntia, ja vastaava puskurioperaatiolla sekuntia. Puskurioperaation tuottama hyöty oli siis 0.76 %. Kun järjestysoperaatio oli lapsioperaationa, suoritusaika kasvoi. Tutkijat käyttivät pienikokoisten operaatioiden tutkimiseen seuraavaa kyselyä: SELECT * FROM names n, (SELECT COUNT(*) FROM points GROUP BY point) AS t WHERE t.count = n.id. Kyselyn alkuperäinen suoritusaika oli sekuntia, ja puskurioperaatiolla sekuntia. Puskurioperaation käyttäminen heikensi suorituskykyä 1.25 %. Toinen Tsujin ja kumppanien [TKT10] tekemä tutkimus käsitteli puskurioperaatioiden määrää L2-välimuistissa. Puskurioperaatioiden lisääntyessä L1-välimuistin hutiosumat vähentyvät, mutta jos puskurioperaatio ei mahdu L2-välimuistiin tapahtuu siellä hutiosuma. Tutkijat testasivat puskurioperaatioiden määrän vaikuttamista suorituskykyyn lisäämällä ensin yhden ja sen jälkeen useita puskurioperaatioita suunnitelmapuuhun (plan tree). Yhden puskurioperaation tapauksessa tutkijat lisäsivät kyselyyn neljä koosteoperaatiota, jotta L1-välimuisti täyttyisi. Kyselyn suoritusaika parani kun puskurinkoko oli yli sata ja alle L1-välimuistin hutiosumat vähentyivät puskurikoon lisääntyessä, ja L2-välimuistin hutiosumat lisääntyivät kun puskurikoko kasvoi yli tuhannen. Useiden puskurioperaatioiden tapauksessa tutkijat käyttivät kyselyä, jossa oli kaksi liitosoperaatioita (join operator). Kyselyn suorituskyky parani, kun puskurikoko ylitti sadan. Kolmannessa tutkimuksessaan Tsuji ja kumppanit [TKT10] tutkivat puskurioperaatioiden suoritusten määrää. Vaikka puskurioperaatio on tehokas, sen käyttäminen kuluttaa resursseja. L1-välimuistin hutiosumien vähentäminen pitäisi tapahtua kohtuullisella kustannuksella. Tutkimuksen kysely oli: SELECT COUNT (*) FROM item. Tuloksista selviää, että kun laskettavien monikoiden määrä ylittää 600, alkuperäisen kyselyn suorituskyky laskee. L1-välimuistin hutiosumat puskurioperaatiolla vähenivät verrattuna alkuperäiseen suunnitelmaan kun laskettavien monikoiden määrä ylitti 300, ja L2-välimuistin hutiosumat alkoivat vähentyä monikoiden ylittäessä 500. Saaduista tuloksista Tsuji ja kumppanit ehdottavat kyselyn optimoijaa, joka lisää pusku-
9 6 rioperaation suunnittelupuuhun kun sen käyttö on hyödyllistä. Se on hyödyllistä vain silloin kun käsiteltäviä monikoita on yli 500 ja ainakin yksi seuraavista ehdoista pätee: a) vanhempisolmu (parent node) sisältää enemmän kuin kolmen tyyppisiä koosteoperaatioita, ja lapsisolmu (child node) on päämoduuli poislukien järjestysoperaatio, b) vanhempisolmu on liitosoperaatio, ja lapsisolmut ovat päämoduuleja poislukien järjestysoperaatio, c) vanhempisolmu on järjestysoperaatio, ja lapsisolmu on päämoduuli. 4 L2-välimuistin puskurointi Cieslewicz ja kumppanit artikkelissaan [CMR09] tutkivat L2-välimuistin hutiosumia erityisesti kun useampi kuin yksi operaatio on suorituksessa. Yksittäiset operaatiot ovat hiottu käyttämään välimuistia tehokkaasti, mutta usean operaation tapauksessa yhteistyö ei toimi. Esimerkiksi suoritetaan operaatiot A ja B. Molemmat operaatiot tarvitsevat suuren tietorakenteen, kuten hajautustaulun. Jos operaation A tietorakenne mahtuu välimuistiin, muutaman suorituksen jälkeen sen tietoa pidetään siellä pysyvästi. Se parantaa suorituskykyä, koska tiedon haku ei kestä niin kauan kuin keskusmuistista. Mutta jos operaation B suoritus lomittaa operaation A suorituksen, B:n tietorakenne vie välimuistista A:n tietorakenteen tilan, ja hutiosumia esiintyy. Tietokantaoperaation hutiosumien määrä on sen aliprosessien hutiosumien kooste. Esimerkiksi järjestämisoperaatio lukee syötteen, suorittaa järjestelyn ja kirjoittaa tulosteen. Jokainen operaation vaihe käyttää omaa tietorakennetta, ja niillä on eri hutiosumat. Operaation suorituksen kuluessa sen tietoja jätetään välimuistiin hakuajan pienentämiseksi. Hutiosumien esiintyvyys on joko nopeasti häviävää, hitaasti häviävää tai ne eivät häviä ollenkaan. Nopeasti häviävä on pieni tietorakenne, hitaasti on suuri välimuistiin mahtuva tietorakenne ja häviämättömällä ei ole väliaikaista sijaintia toisin sanoen se ei mahdu välimuistiin ollenkaan. Kaikkien operaatioiden tulee saada aikaviipale reilusti ja kohtuullisella viiveellä. Aikataulualgoritmit voivat tasapainottaa viivettä ja suoritustehoa tarpeeksi pienillä aikaviipaleilla [CMR09]. Käyttöjärjestelmissä aikaviipale on yleisesti ms [SGG03], mutta Cieslewicz ja kumppanit [CMR09] käyttävät pienempiä aikaviipaleita operaatioille. Esimerkiksi nopeasti ja hitaasti häviävät hutiosumat suoritetaan tarpeeksi pitkässä aikaviipaleessa, jotta hutiosumien määrä häviää suurimmassa
10 7 osassa monikoita. Liian lyhyellä aikaviipaleella hutiosumia esiintyy aina uudestaan ja uudestaan samoilla monikoilla. Cieslewicz ja kumppanit [CMR09] esittävät ratkaisuksi tarpeeksi suuria suoritusjoukkoja (batch of work), jotta sama operaatio ehtii suorittamaan mahdollisesti koko kyselynsä. Tutkijat lisäävät kyselysuunnitelmaan (query plan) puskureita, joihin talletetaan tuloksia käytettäväksi operaation syötteenä. Estämättömille (nonblocking) eli lukkimattomille operaatioille puskuriin tallennetaan myös operaation tulostus. Jokainen operaatio aikataulutetaan suorittamaan sen koko syötepuskuri kerralla. Moniytimisellä prosessorilla kaikki säikeet suorittavat samaa operaatioita aikaviipaleen ajan, jotta säikeet voivat käyttää jaettua L2-välimuistia kokonaisuudessaan. Esimerkiksi kysely, joka suorittaa viiteavaimen perusteella hajautusliitoksia (hash join) taulun F, D1 ja D2 kanssa. F on faktataulu (fact table) ja D1 sekä D2 ovat dimensiotauluja. Kysely tarvitsee kaksi liitosta ja koosteen. Ensimmäiseen liitokseen ei tarvita puskuria, koska F on kantarelaatio (base relation). Liitoksessa on tulostepuskuri B1, jota käytetään toisen liitoksen syötepuskurina. Toisen liitoksen tulostepuskuri B2 toimii koosteen syötepuskurina. Kuvassa 3 on esitetty tiedon kulku esimerkki kyselyssä. Kuva 3. Kyselysuunnitelma puskureilla. Ensimmäisen liitoksen tehokkuus riippuu puskurin B1 koosta, ja kuinka hyvin se pystyy
11 8 vähentämään taulusta D1 lukemisen kustannusta. Toisen liitoksen tehokkuus riippuu molemmista puskureiden B1 ja B2 koista. Kooltaan pienempi puskuri on rajoite kuinka monta kertaa operaatioita voi ajaa yhdessä suorituksessa. Koosteen tehokkuus riippuu puskurin B2 koosta, ja miten hyvin se pystyy vähentämään hakukustannuksia hajautustaulun avaimiin ja arvoihin. Jotta kokonaissuoritus olisi tehokasta, pitää ainakin yhden operaation olla aina valmiina aikataulutukseen. Operaatio on valmiina aikataulutukseen, kun sen käyttämä syötepuskuri (jos olemassa) on ainakin puoliksi täynnä, ja sen käyttämä tulostepuskuri (jos olemassa) on ainakin puoliksi tyhjä. Monen operaattorin ketjussa kuten kuvassa 3, tämä on aina voimassa koska: Jos ensimmäinen operaatio ei ole valmis on sen tulostepuskuri ainakin puoliksi täynnä. Induktiolla saadaan, että jos jokin operaatio O i ei ole valmis, on sen tulostepuskuri B i+1 ainakin puoliksi täynnä (i = 1,.,n- 1). Jos siis tulostepuskuri B n on enemmän kuin puoliksi täynnä on sitä seuraava operaatio O n valmis aikataulutukseen. Tästä seuraa, että joukkosuoritus voi olla suuri, eikä sen sisällä tapahdu odottelua. 5 L2-välimuistin puskuroinnin kokeelliset tulokset Cieslewicz ja kumppanit [CMR09] tutkivat puskurin toimintaa L2-välimuistin hutiosumien määrän avulla niin sanotulla musta laatikko -tyylillä (black-box fashion), jolloin ulospäin ei näy miten hutiosumat tapahtuvat. He käyttivät tutkimiseen Sunin T1000 palvelinta, jossa on 32 säiettä neljällä UltraSPARC T1 prosessorilla. Yksi säie vastaa operaatioiden aikataulutuksesta sekä tilastojen keräämisestä. Muut 31 säiettä ovat omistettuina aikataulutetulle operaatioille kokonaan. Operaatio suoritetaan rinnakkain, jotta säikeet voivat käyttää tehokkaasti yhteistä jaettua L2-välimuistia. Operaation suoritus ei myöskään riipu muista järjestelmän tapahtumista. Tutkijat tarkastelivat kooste- ja hajautusliitosoperaatioita (hashjoin) neljässä eri kokeessa. Ensimmäisessä kokeessa he testasivat hutiosumien esiintymisen välimuistissa kahden yhtä aikaa ajettavan operaation aikana, toisessa puskurin koon vaikutusta hutiosumiin, kolmannessa operaation syötteen eri jakautumista välimuistiin ja neljännessä hajautusliitoksen hutiosumien määrää. Ensimmäisessä kokeessa tutkijat käyttivät 2 24 (noin 16 miljoonaa) monikkoa syötteenä kahdeksalle samanlaiselle koostekyselylle. Prosessointi jaettiin viipaleihin, joiden koko oli monikoiden määrä jaettuna puskurin koolla. 31 säiettä oli omistettu yhdelle viipaleelle kerrallaan. Ensimmäisellä kerralla kaikki viipaleet käsiteltiin yksi kerrallaan lop-
12 9 puun asti ennen seuraavaan siirtymistä. Toisella kerralla viipaleiden suorituksien annettiin olla päällekkäisiä. Ensimmäisen kerran tapauksessa välimuistiin haetut tiedot olivat samoja, jos viipaleet kuuluivat samaan kyselyyn. Toisen kerran tapauksessa välimuistissa ei todennäköisesti ole valmiina oikeita tietoja, koska päällekkäiset suoritukset sekoittavat tietoa välimuistissa. Tutkimuksessa mitattiin suoritusaika ja hutiosumat. Kuvassa 4 on esitetty tulokset tutkimuksesta. Neliöllä varustetut viivat ovat peräkkäin suoritetut viipaleet ja kolmiolla päällekkäin suoritetut. Tutkimuksessa käytettiin eri määriä monikoita yhdessä viipaleessa, ja ne on kuvattu eri väreillä. Suurilla puskurikooilla ei eroa synny, mutta pienemmillä hutiosumien määrä ja suorituskyky kasvavat päällekkäisillä kyselyillä. Varsinkin kun monikoita oli 1024 (kuvassa keltainen), ero on huomattava. Kuva 4. Viipaleiden määrän vaikutus suorituskykyyn ja hutiosumiin [CMR09].
13 10 Toisessa kokeessa tutkijat halusivat katsoa onko toiset operaatiot herkempiä puskurin koolle kuin toiset. Kokeessa käytettiin kymmentä 64 monikon ja kymmentä 1024 monikon koostekyselyä. Edellisen kokeen perusteella 64 monikon kyselyt ovat tehokkaita riippumatta puskurinkoosta, kun sen sijaan puskurinkoko vaikuttaa suuresti 1024 monikon kyselyihin. Tutkijat antavat 64 monikon kyselyille 8192 monikon puskurikoon, joka on pienin mahdollinen hyötyä antava koko. Loppu muisti annetaan 1024 monikon kyselyille. Tämä paransi kokonaissuoritusta 3.3 % %. Jos kaikki kyselyt tarvitsevat muistia, on tasajako toimiva ratkaisu. Jos vain osa tarvitsee muistia, on se suorituskykyä heikentävää antaa sitä kaikille. Kokeen johtopäätös on että tasajako on hyvä lähtökohta, mutta 8.4 % lisähyöty on saavutettavissa jakamalla muistia sitä tarvitseville. Kolmannessa kokeessa Cieslewicz ja kumppanit [CMR09] tutkivat kyselyn syötteen jakautumisen vaikuttamista operaatioon. Esimerkiksi jos koostekyselyn arvot ovat yleisiä, tarvitsee kysely enemmän väliaikaista paikallisuutta (temporal locality) eli välimuistia saavuttaakseen parhaan tehokkuuden. Tutkijat suorittivat koostealgoritmin eri jakeluilla, jotka on kuvattu Cieslewiczin ja Rossin aikaisemmassa artikkelissa [CiR07]. He mittasivat hutiosumat ja suorituskyvyn eri puskurikoilla. Tulokset kertovat, että päällekkäin suoritetuissa kyselyissä esiintyy huomattavasti enemmän hutiosumia kun viipaleiden määrä ylittää sadan kaikilla muilla kuin aivan pienillä monikon määrillä. Hutiosumien esiintyminen sen sijaan vaikuttaa suorituskykyyn alentavasti, ja päällekkäin suoritettujen kyselyiden suoritusajat ovat sadan viipaleen jälkeen heikompia. Neljännessä ja viimeisessä kokeessa tutkijat tarkastelivat hajautusliitosoperaatioita. Käytetty kysely on viiteavaimen mukainen liitos, jossa liittävä monikko liittyy vain ja ainoastaan yhteen monikkoon liitettävässä taulussa. Liittävän taulun kokoa muutettiin, mutta liitettävä taulu oli tasan liitettävien monikoiden kokoinen. Hajautustaulu, jossa on noin monikkoa, mahtuu juuri L2-välimuistiin. Kokeen tuloksena liitos vahvisti koostekokeen tuloksen. Suorituskyky parani keskisuurilla monikko määrillä, kun aikaviipaleita oli yli sata. Vaikka liitoskokeessa hutiosumien määrä pieneni, ei se vaikuttanut niin suuresti suorituskykyyn. Välimuistiin mahtuva tietorakenne on tehokkaampi puskurioperaatiolla vain, jos se mahtuu välimuistiin ja se prosessoi tarpeeksi montaa monikkoa. Pienillä monikko määrillä ei puskuroinnilla ole vaikutusta, koska kaikki tieto mahtuu välimuistiin.
14 6 Yhteenveto 11 Prosessorien L1- ja L2-välimuistien hutiosumat kasvattavat suoritettavan kyselyn suoritusaikaa, koska tiedon hakuun kestää enemmän aikaa. Tsuji ja kumppanit artikkelissaan [TKT10] esittävät ongelman L1-välimuistin hutiosumista. He esittelevät Zhoun ja Rossin optimoijaan [ZhR04] parannuksia, sekä kokeellisesti testaavat sitä. Testien perusteella he esittelevät oman optimoijan, joka toisin kuin Zhoun ja Rossin optimoija, ei ole käytössä joka kyselyllä. Heidän optimoijalla on tutkimukseen perustuvia ehtoja, joiden perusteella käyttöönotto valitaan. Cieslewicz ja kumppanit artikkelissaan [CMR09] keskittyvät sen sijaan L2-välimuistin hutiosumiin. He kiinnittävät huomiota kyselyiden päällekkäiseen suoritukseen, milloin kyselyiden tietoalkiot ovat samassa välimuistissa. Tällöin välimuistissa ei aina ole yhden kyselyn tarvitsemia tietoja ja syntyy hutiosuma. Vaikka kyselyt ovat optimoitu käyttämään välimuistia tehokkaasti eristyksissä, ei suoritus ole tehokasta useamman kyselyn ollessa suorituksessa rinnakkain. Cieslewicz ja kumppanit [CMR09] ratkaisevat ongelman puskuroinnilla kyselyiden välissä, sekä tarpeeksi suurilla aikaviipaleilla jotta yksi kysely ehtii suorittamaan itsensä loppuun. Tällöin kaikki mahdolliset prosessorit suorittavat vain yhtä tehtävää, ja jaettu välimuisti on kokonaan tämän tehtävän käytettävissä. Koska jaetussa välimuistissa on vain yhden tehtävän tietoja, siellä on todennäköisemmin tehtävän tarvitsemia tietoja. Se tarkoittaa vähemmän hutiosumia. Molempien välimuistien hutiosumien vähentäminen kokeiden perusteella lisäsi tehokkuutta muutamia prosentteja, ja siten helpotti pullonkaulaa joksi keskusmuistin ja prosessorin välinen tiedonkulku on muodostunut [CMR09].
15 12 Lähteet CiR07 CMR09 SGG03 TKT10 ZhR04 John Cieslewicz ja Kenneth A. Ross: Adaptive Aggregation on Chip Multiprocessors. VLDB 2007, sivut John Cieslewicz, William Mee ja Kenneth A. Ross: Cache-Conscious Buffering for Database Operators with State. Damon 2009, sivut Abraham Silberschatz, Peter Baer Galvin ja Greg Gagne: Operationg System Concepts. John Wiley & Sons, Inc., 6. painos, Yoshishige Tsuji, Hideyuki Kawashima ja Ikuo Takeuchi: Optimization of Query Processing with Cahce Conscious Buffering Operatior. DNIS 2010, sivut Zhou, J. Ross, K.A: Buffering Database Operations for Enhanced Instruction Cache Performance. SIGMOD 2004, sivut
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
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
Selainpelien pelimoottorit
Selainpelien pelimoottorit Teemu Salminen Helsinki 28.10.2017 Seminaaritutkielma Helsingin yliopisto Tietojenkäsittelytiede ! 1 HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta
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
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
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
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
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
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
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,
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
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
Katsaus korruption vaikutuksesta Venäjän alueelliseen talouskasvuun ja suoriin ulkomaisiin investointeihin
INSTITUUTIOTTALOUSKASVUNEDELLYTYKSENÄ KatsauskorruptionvaikutuksestaVenäjänalueelliseentalouskasvuunjasuoriin ulkomaisiininvestointeihin2000 2010 AshekMohamedTarikHossain HelsinginYliopisto Valtiotieteellinentiedekunta
! #! %! & #!!!!! ()) +
! #! %! & #!!!!! ()) + Tiedekunta/Osasto Fakultet/Sektion Faculty Humanistinen tiedekunta Laitos Institution Department Taiteiden tutkimuksen laitos Tekijä Författare Author Matti Pesonen Työn nimi Arbetets
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
CSE-A1200 Tietokannat
CSE-A1200 Tietokannat 22.3.2016 CSE-A1200 Tietokannat 22.3.2016 1 / 35 Oppimistavoitteet: tämän luennon jälkeen Osaat tehdä SQL:llä kyselyitä, jotka käyttävät hyväkseen toisen kyselyn tuloksia (alikyselyt).
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
Tietokannan kyselyoptimointi moniydinprosessorilla
hyväksymispäivä arvosana arvostelija Tietokannan kyselyoptimointi moniydinprosessorilla Mikko Kuusinen Helsinki 23.10.2009 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS
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
Koht dialogia? Organisaation toimintaympäristön teemojen hallinta dynaamisessa julkisuudessa tarkastelussa toiminta sosiaalisessa mediassa
Kohtdialogia? Organisaationtoimintaympäristönteemojenhallinta dynaamisessajulkisuudessatarkastelussatoiminta sosiaalisessamediassa SatuMariaPusa Helsinginyliopisto Valtiotieteellinentiedekunta Sosiaalitieteidenlaitos
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
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
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
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
Algoritmit 1. Luento 2 Ke Timo Männikkö
Algoritmit 1 Luento 2 Ke 11.1.2017 Timo Männikkö Luento 2 Algoritmin esitys Algoritmien analysointi Suoritusaika Asymptoottinen kertaluokka Peruskertaluokkia NP-täydelliset ongelmat Algoritmit 1 Kevät
Algoritmit 2. Luento 6 To Timo Männikkö
Algoritmit 2 Luento 6 To 28.3.2019 Timo Männikkö Luento 6 B-puun operaatiot Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2019 Luento 6 To 28.3.2019 2/30 B-puu 40 60 80 130 90 100
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...
TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences
TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 11 TU00AA48-2002 TU10S1E Hannu Markkanen 22.11.2011 9/10/12 Helsinki Metropolia University of Applied Sciences 1 Indeksit Indeksit Taulun
Käyttöjärjestelmät: prosessit
Käyttöjärjestelmät: prosessit 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 Käyttöjärjestelmä
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
Tietorakenteet ja algoritmit
Tietorakenteet ja algoritmit Rekursio Rekursion käyttötapauksia Rekursio määritelmissä Rekursio ongelmanratkaisussa ja ohjelmointitekniikkana Esimerkkejä taulukolla Esimerkkejä linkatulla listalla Hanoin
CSE-A1200 Tietokannat
CSE-A1200 Tietokannat 23.2.2016 CSE-A1200 Tietokannat 23.2.2016 1 / 36 Oppimistavoitteet: tämän luennon jälkeen Tunnet SQL:n perusteet ja osaat tehdä yksinkertaisia SQL-kyselyitä, esimerkiksi hakea relaatiosta
SQL - STRUCTURED QUERY LANGUAGE
SQL Peruskomentoja SQL - STRUCTURED QUERY LANGUAGE SQL on tietokantojen käsittelyyn kehitetty kieli Esimerkkejä kielellä hoidettavistaa toiminnoista: Tietokannan rakenteen määrittely ja muuttaminen Kyselyt
Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, , H.Laine
Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, 3.5.2007, H.Laine Kirjoita kuhunkin erilliseen vastauspaperiin kurssin nimi, oma nimesi, syntymäaikasi ja nimikirjoituksesi
Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa
Tietojen tallennusrakenteet Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa tiedot tiedostoon kuuluvista lohkoista esim. taulukkona, joka voi muodostua ketjutetuista
HELIA 1 (15) Outi Virkki Tiedonhallinta
HELIA 1 (15) Luento Suorituskyvyn optimointi... 2 Tiedonhallintajärjestelmän rakenne... 3 Suunnittele... 4 SQL-komentojen viritys... 5 Tekninen ympäristö... 6 Fyysisen tason ratkaisut... 7 Indeksit...
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
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ä
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
TIEDONHALLINTA - SYKSY Luento 10. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences
TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 10 TU00AA48-2002 TU10S1E Hannu Markkanen 14.-15.11.2011 9/10/12 Helsinki Metropolia University of Applied Sciences 1 SQL: Monen taulun kyselyt
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
FROM-lausekkeessa voidaan määritellä useampi kuin yksi taulu, josta tietoja haetaan: Tuloksena on taululistassa lueteltujen taulujen rivien
Monen taulun kyselyt FROM-lausekkeessa voidaan määritellä useampi kuin yksi taulu, josta tietoja haetaan: SELECT FROM Tuloksena on taululistassa lueteltujen taulujen rivien karteesinen
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
A274101 TIETORAKENTEET JA ALGORITMIT
A274101 TIETORAKENTEET JA ALGORITMIT PUURAKENTEET, BINÄÄRIPUU, TASAPAINOTETUT PUUT MIKÄ ON PUUTIETORAKENNE? Esim. Viereinen kuva esittää erästä puuta. Tietojenkäsittelytieteessä puut kasvavat alaspäin.
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
Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto
Harri Laine Helsingin yliopisto Suosion syy? Yksinkertaisuus vähän käsitteitä helppo hahmottaa Selkeä matemaattinen perusta ei tulkintaongelmia kuten esim. UML:ssä teoria käytäntö kaavio: R(A 1 :D 1, A
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);
Asuntojen neliöhinnan vaihtelu Helsingissä (1997-2010)
hyväksymispäivä arvosana arvostelija Asuntojen neliöhinnan vaihtelu Helsingissä (1997-2010) Tuomas Puikkonen Helsinki 8.1.2010 Geoinformatiikan menetelmät ja kirjallisuus -kurssin harjoitustyö HELSINGIN
Hallintomallit Suomen valtionhallinnon tietohallintostrategioissa
Hallintomallit Suomen valtionhallinnon tietohallintostrategioissa Lauri Eloranta Helsingin yliopisto Valtiotieteellinen tiedekunta Viestintä Pro gradu -tutkielma, 2014 Hallintomallit)Suomen)valtionhallinnon)tietohallintostrategioissa
Dominointianalyysi. Teppo Niinimäki. Helsinki Approksimointialgoritmit HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Dominointianalyysi Teppo Niinimäki Helsinki 10.5.2010 Approksimointialgoritmit HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta
Algoritmit 2. Luento 6 Ke Timo Männikkö
Algoritmit 2 Luento 6 Ke 29.3.2017 Timo Männikkö Luento 6 B-puun operaatiot B-puun muunnelmia Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2017 Luento 6 Ke 29.3.2017 2/31 B-puu
SELECT-lauseen perusmuoto
SQL: Tiedonhaku SELECT-lauseen perusmuoto SELECT FROM WHERE ; määrittää ne sarakkeet, joiden halutaan näkyvän kyselyn vastauksessa sisältää
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
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
HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät
HAAGA-HELIA Heti-09 1 (12) Näkymät Näkymät... 2 Eri tyyppisiä relaatioita... 2 Taulu - Tallennettu relaatio... 2 Tulosrelaatio - Kyselyn tulos... 2 Näkymä - Virtuaalirelaatio... 2 Näkymien määrittely...
Tiedostorakenteet. R&G Chapter Tietokannan hallinta, kevät 2006, Jan 1
Tiedostorakenteet R&G Chapter 9 16.02.06 Tietokannan hallinta, kevät 2006, Jan 1 Tiedostorakenteet Tiedostojen tehokkuutta yhtä kyselyä kohti arvioidaan usein tarvittavien levyhakujen määrällä. kuten levykäsittelyn
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
TIEDONHALLINTA - SYKSY Luento 8. Saapumisryhmä: Pasi Ranne /9/13 Helsinki Metropolia University of Applied Sciences
TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 8 XX00AA79-3013 TU12S2 Pasi Ranne 25.9.2013 25/9/13 Helsinki Metropolia University of Applied Sciences 1 Harjoitustyö Harjoitustöiden tilanne
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
POWER analytiikka-alustana
POWER analytiikka-alustana Teppo Seesto Solution Architect Infrastructure matters SAPS/core 5000 4000 SAP 2-tier SD-benchmark SAP ERP 6.0 3765 3000 2000 2204 70% nopeampi 1000 Intel IvyBridge E7-4890v2
Fyysinen suunnittelu
Informaatioteknologian instituutti IIO30100 Tietokantojen suunnittelu Fyysinen suunnittelu kirjan Hovi, Huotari, Lahdenmäki: Tietokantojen suunnittelu & indeksointi, Docendo (2003, 2005) luvusta 9 Jouni
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
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
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 Tietokone
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
Hakukyselyt: SELECT * FROM taulu WHERE sarake1 = Malli Nimi [WHERE sarake1 LIKE M% ] [WHERE BETWEEN ehto1 AND ehto2] [WHERE sarake1 IN/= (alikysely)]
Tällä viikolla Kertaus SQL-asioista jatketaan SQL-tekstifuntio-harjoituksia tehdään pelifirman tietokannasta ER-malli MySQL:llä, tarkastellaan mallin toimivuutta ja korjataan, jos korjattavaa löytyy, tehdään
Esimerkkejä vaativuusluokista
Esimerkkejä vaativuusluokista Seuraaville kalvoille on poimittu joitain esimerkkejä havainnollistamaan algoritmien aikavaativuusluokkia. Esimerkit on valittu melko mielivaltaisesti laitoksella tehtävään
HAAGA-HELIA Heti-09 1 (17) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Suorituskyky
HAAGA-HELIA Heti-09 1 (17) Suorituskyky Suorituskyky... 2 Suorituskyvyn mittareita... 2 Tekninen ympäristö... 3 Suorituskyvyn optimointi... 4 Optimoinnin kohteet... 5 Fyysisen tason ratkaisut... 6 Indeksointi...
Kuva 7.2 vastaustaulu harjoitukseen 7.2
Harjoitus 7. Lataa tiedosto http://users.metropolia.fi/~pasitr/opas/ran13b/data/ran13b.zip levylle Z: ja pura se. Kun olet tehnyt kaikki seuraavat 17 tehtävää palauta Tuubiin harjoituksen 7 vastauksena
Oppimateriaalin kokoaminen ja paketointi
Oppimateriaalin kokoaminen ja paketointi Pekka Simola Helsinki 14.4.2004 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto
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
Konsensusongelma hajautetuissa järjestelmissä. Niko Välimäki Hajautetut algoritmit -seminaari
Konsensusongelma hajautetuissa järjestelmissä Niko Välimäki 30.11.2007 Hajautetut algoritmit -seminaari Konsensusongelma Päätöksen muodostaminen hajautetussa järjestelmässä Prosessien välinen viestintä
Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot)
SQL sisältää operaatiot tietokannan sisällön muodostamiseen ja ylläpitoon: insert - uusien rivien vienti tauluun delete - rivien poisto update - rivien muutos 1 Insert lauseella on kaksi muotoa: insert
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
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
HELIA 1 (14) Outi Virkki Tiedonhallinta
HELIA 1 (14) Luento Näkymät... 2 Relaatiotyypit... 2 Taulu - Tallennettu relaatio... 3 Näkymä - Virtuaalirelaatio... 3 Tulosrelaatio - Kyselyn tulos... 3 Otetaulut - Tauluun tallennettu kyselyn tulos...
Käyttöjärjestelmät. Teemu Saarelainen Tietotekniikka teemu.saarelainen@kyamk.fi
Käyttöjärjestelmät 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 Kurssin sisältö Johdanto, historiaa
oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja
Tietokantojen hakemistorakenteet Hakemistorakenteiden (indeksien) tarkoituksena on nopeuttaa tietojen hakua tietokannasta. Hakemisto voi olla ylimääräinen oheishakemisto (secondary index), esimerkiksi
Suoritusten seuranta ja opiskelijan edistyminen
Suoritusten seuranta ja opiskelijan edistyminen Opettaja voi halutessaan ottaa käyttöön toiminnon, jossa hän määrittelee etenemispolun opintojaksolle. Hän voi jokaisen aktiviteetin kohdalla määritellä
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
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
24.9.2015. Työasema- ja palvelinarkkitehtuurit (IC130301) Apumuistit. Kiintolevyt. 5 opintopistettä. Petri Nuutinen
Työasema- ja palvelinarkkitehtuurit (IC130301) 5 opintopistettä Petri Nuutinen 5 opintopistettä Petri Nuutinen Apumuistit Tarvitaan ohjelmien ja dokumenttien tallentamiseen, kiintolevyjen varmuuskopiointiin,
KANSILEHDEN MALLISIVU
Teknisiä ohjeita pro gradu -tutkielmalle Teologian osasto 12.11.2013 Tässä annettavat ohjeet ovat suosituksia. Viime kädessä seurataan tutkielman ohjaajan antamia ohjeita! Tutkielman kansilehdelle asetellaan
FYYSINEN SUUNNITTELU
IIO30100 TIETOKANTOJEN SUUNNITTELU JA IIO30200 TIETOKANNAN HALLINTA FYYSINEN SUUNNITTELU KIRJAN HOVI, HUOTARI, LAHDENMÄKI: TIETOKANTOJEN SUUNNITTELU & INDEKSOINTI, DOCENDO (2003, 2005), LUKU 9 JOUNI HUOTARI,
monitavoitteisissa päätöspuissa (Valmiin työn esittely) Mio Parmi Ohjaaja: Prof. Kai Virtanen Valvoja: Prof.
Epätäydellisen preferenssiinformaation hyödyntäminen monitavoitteisissa päätöspuissa (Valmiin työn esittely) Mio Parmi 15.1.2018 Ohjaaja: Prof. Kai Virtanen Valvoja: Prof. Kai Virtanen Tausta Päätöspuu
Laskennallinen yhteiskuntatiede
Laskennallinen yhteiskuntatiede Matti Nelimarkka Helsinki 5.5.2011 LuK tutkielma HELSINGIN YLIOPISTO Tietojenkasittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta
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ätään avainarvo 1, joka mahtuu lehtitasolle:
Helsingin Yliopisto, Tietojenkäsittelytieteen laitos Tietokannan hallinta, kurssikoe 14.5.2004, J. Lindström Ratkaisuehdotuksia 1. Hakemistorakenteet, 15p. Tutkitaan tyhjää B+-puuta, jossa jokaiselle hakemistosivulle
Määrittelydokumentti
Määrittelydokumentti Aineopintojen harjoitustyö: Tietorakenteet ja algoritmit (alkukesä) Sami Korhonen 014021868 sami.korhonen@helsinki. Tietojenkäsittelytieteen laitos Helsingin yliopisto 23. kesäkuuta
Yhtälönratkaisusta. Johanna Rämö, Helsingin yliopisto. 22. syyskuuta 2014
Yhtälönratkaisusta Johanna Rämö, Helsingin yliopisto 22. syyskuuta 2014 Yhtälönratkaisu on koulusta tuttua, mutta usein sitä tehdään mekaanisesti sen kummempia ajattelematta. Jotta pystytään ratkaisemaan
1. Keskusyksikön rakenne
1. Keskusyksikön rakenne Kuvassa on esitelty TTK-91 esimerkkikoneen keskusyksikkö. Oikeiden tietokoneiden keskusyksiköt ovat luonnollisesti monimutkaisempia, mutta tämä riittää oikein mainiosti asian havainnollistamiseen.
FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL
FinFamily PostgreSQL 1 Sisällys / Contents FinFamily PostgreSQL... 1 1. Asenna PostgreSQL tietokanta / Install PostgreSQL database... 3 1.1. PostgreSQL tietokannasta / About the PostgreSQL database...
(5) Tentin maksimipistemaara on 40 pistetta. Kaikki vastaukset naihin tehtavapapereihin.
(5) VAASAN YLIOPISTO (TITE,1021) Tentti 10.1.2013 Teemu Saari Nimi: Opiskelijanumero: Pisteet: + + + Yiit: /40 Arv. Tentin maksimipistemaara on 40 pistetta. Kaikki vastaukset naihin tehtavapapereihin.
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
CS-A1150 Tietokannat CS-A1150 Tietokannat / 39
CS-A1150 Tietokannat 20.2.2018 CS-A1150 Tietokannat 20.2.2018 1 / 39 Oppimistavoitteet: tämän luennon jälkeen Tunnet SQL:n perusteet ja osaat tehdä yksinkertaisia SQL-kyselyitä, esimerkiksi hakea relaatiosta
2. Haet työntekijöiden tiedot etunimen mukaan nousevasti järjestettyinä. (ORDER BY) SELECT * FROM employees ORDER BY firstname ASC;
Tällä viikolla Kotitehtävien läpikäynti SQL-harjoituksia, osa 1 Jatketaan Pelifirman tietovaraston suunnittelua: tietotyyppien kertaus, taulun luonti ER-kaavioon, taulun luonti kaavion avulla tietokantaan,
Tietokantojen suunnittelu, relaatiokantojen perusteita
Tietokantojen suunnittelu, relaatiokantojen perusteita A277, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin
Kirjoita kuhunkin erilliseen vastauspaperiin kurssin nimi, tentin päiväys, oma nimesi, syntymäaikasi ja nimikirjoituksesi.
Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, kurssikoe 4.3.2015, H. Laine Tehtävien mukana jaetaan sql-syntaksin tiivistelmä. Kirjoita kuhunkin erilliseen vastauspaperiin
Kuva 1: J+-puun rakenne [HXS09].
Johdanto Tietotekniikka on kehittynyt viime vuosikymmenten aikana nopeata vauhtia. Tämä on näkynyt niin tietokoneiden tehoissa kuin myös hinnoissa. Myös tietokoneiden keskusmuistit ovat kasvaneet ja ovat
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ä