Johdatus rinnakkaislaskentaan Markus Inkeroinen Optimointiryhmän seminaari

Koko: px
Aloita esitys sivulta:

Download "Johdatus rinnakkaislaskentaan Markus Inkeroinen Optimointiryhmän seminaari"

Transkriptio

1 Johdatus rinnakkaislaskentaan Markus Inkeroinen Optimointiryhmän seminaari

2 MITÄ ON RINNAKKAISLASKENTA? 1

3 A parallel computer is a set of processors that are albe to work cooperatively to solve a computational problem, Ian T. Foster. Rinnakkaisohjelmoinnin avulla voidaan laskentatehtävä jakaa useammaksi osatehtäväksi suoritettavaksi usealla prosessorilla. Näin laskutehtävän ratkaisemiseen kuluvaa seinäkelloaikaa voidaan usein merkittävästi lyhentää, Juha Haataja, Jari Järvinen ja Yrjö Leino (CSC). "Sequential programming is only the expression of our inability to transfer the natural parallelism of the world to a machine," Craig C. Douglas, Gundolf Haase and Ulrich Langer. 2

4 MIHIN RINNAKKAISLASKENTAA KÄYTETÄÄN? 3

5 -Sää- ja ilmastomallit -Teollisuusprosessien simuloiminen -Mekaniikka ( törmäyskokeet ) -Kuvankäsittely, viihdeteollisuus -Suurien tietomäärien käsittely (data mining) -Laskennallinen tiede (molekyylimallit, virtauslaskenta,...) -Keinotodellisuus... 4

6 MIKSI RINNAKKAISLASKENTAA KÄYTETÄÄN? 5

7 -Laskut kestävät muuten hyvin kauan -Laskut kestävät liian kauan -Tarvitaan paljon muistia -Helpompi, halvempi? 6

8 RINNAKKAISKONEIDEN LUOKITTELU 7

9 Luokittelu muistin mukaan -Karkealla jaolla on kahdenlaisia rinnakkaiskoneita -SMP-tietokone (symmetric multiprocessor): prosessoreilla yhteinen keskusmuisti. (Shared Memory, jaetun muistin koneet, yhteisen muistin koneet.) -MPP-tietokone (massively parallel prosessors): prosessoreilla omat hajautetut keskusmuistit. (Distributet Memory, hajautetun muistin koneet.) 8

10 SMP-tietokone 9

11 -Prosessoreilla yhteinen muisti SMP-tietokone -Prosessoreja yleensä vähän (Josefissa 8 prosessoria) -Kommunikointi muistin välityksellä -Helppo ohjelmoida -Helppo tehdä ei-determististä koodia -Peräkkäisohjelma (sequential code) helppo rinnakkaistaa askel askeleelta -Skaalautuu hyvin pienillä prosessorimäärillä, suurilla muistin käyttö pullonkaulana -Kallista tekniikkaa 10

12 SMP-tietokone UMA (Uniform Memory Access): Kaikki prosessorit käyttävät (lukevat/kirjoittavat) koko muistia yhtä nopeasti. (Välimuistia ei huomioida.) NUMA( Non Uniform Memory Access): Muistin käyttöön kuluva aika riippuu prosessorin sijainnista. DMS (Distributed Shared Memory), Virtual Shared Memory: Koko muisti hajautettu fyysisesti prosessorien kesken, mutta sitä voidaan käyttää kuten yhteistä muistia. esim. Cray T3D 11

13 MMP-tietokone -Jokaisella prosessorilla oma muisti -Kommunikointi viestinvälityksen avulla -Mahdollisuus hyvin skaalautuviin ohjelmiin (parempi kuin SMP-koneissa) -Peräkkäisohjelman rinnakkaistaminen hankalaa (ei asteittain) -Laskennan ja kommunikoinnin välinen suhde merkittävä - Halpaa tekniikkaa 12

14 MPP-tietokone 13

15 Klusteriarkkitehtuuri Prosessorit muodostavat solmuja (node), joissa yhteinen muisti. Solmut kommunikoivat viestinvälityksen avulla. esim. IBM SP 10 solmua, jokaisessa 4 prosessoria, (Agora). IBM SC 16 solmua, jokaisessa 32 prosessoria. Solmuissa sisäinen rakenne, (CSC, Espoo). Terascale GRID Computers Laskentakeskukset muodostavat jättimäisen laskentaverkon. Nopeat yhteydet. Tietosuojaongelmat? 14

16 Rinnakkaisohjelmoinnin mallit 15

17 Ohjelmointimallit ja standardit: (Ville Savolainen, CSC) -Viestinvälitys (MPI-kirjasto) -Yhteisen muistin mallit (OpenMP) -Hajautetun ja yhteisen muistin hybridimalli (MPI ja OpenMP) -Datarinnakkainen malli (HPF) -Yksisuuntainen datanvälitys (SHMEM) -Säikeet(pthreads) - OpenMP käyttää Lähde: 16

18 Viestinvälitys -Nykyisin yleisin rinnakkaisohjelmointimalli -Tavallisesti ohjelma standardia FORTRAN 77, Fortran 90/95 tai C/C++ -koodia -Jokaisella prosessilla omat yksityiset muuttujansa -Kommunikointi kutsumalla viestinvälityskirjaston aliohjelmia -Yleensä jokainen prosessori ajaa samaa ohjelmaa, SPMD-malli (Single Program Multiple Data) -Käyttämällä prosessien tunnisteita (identifier, ID, whoami) saadaan eri prosessit ajamaan eri osia yhteisestä ohjelmakoodista 17

19 Yhteisen muistin malli (Shared memory) -Kaikilla tehtävillä yhteinen muistiavaruus -Kommunikointi muistin kautta -Jako yhteisiin (shared) ja yksityisiin muuttujiin (private) -Muistinkäytön hallinta (lukot ja direktiivit OpenMP:ssä) -Helppo ohjelmoida, helppo tehdä virheitä 18

20 Datarinakkainen malli (Data parallel) -Käytetään omaa ohjelmointikieltä, yleensä Fortranin tai C-kielen laajennus. -Kommunikointi ja suorituksen koordinointi eivät näy ohjelmoijalle (ei pääse vaikuttamaan). -Monesti ohjelmoijalle jää pelkästään datanjako, helppo ohjelmoida. 19

21 Rinnakkaisohjelman suunnittelu Lähde: Designing and Building Parallel Programs, Ian T. Foster. 20

22 Hyvältä rinnakkaisalgoritmilta ja -ohjelmalta vaadittavia ominaisuuksia: - Rinnakkaistuvuus (concurrency). Tehtäviä on pystyttävä suorittamaan yhtäaikaisesti. - Skaalautuvuus (scalability). Algoritmin/ohjelman tulee skaalautua automaattisesti prosessorimäärän muuttuessa. - Lokaalisuus (locality). Prosessien tulee käyttää mahdollisimman paljon lokaalia (omaa) muistia ja vähän etäistä (remote) muistia. - Modulaarisuus (modularity). Ohjelma tulisi pystyä jakamaan pienempiin osiin. HUOM! Hyvä peräkkäisalgoritmi ja hyvä rinnakkaisalgoritmi samalle tehtävälle voivat olla hyvinkin erilaisia. 21

23 PCAM-malli 1. Laskentatehtävän jakaminen (alkeis)tehtäviin (task) (Partitioning). - Laskentatehtävä ja/tai siihen käytettävä data jaetaa suureeen määrään osatehtäviä. - Pyritään mahdollisimman suureen rinnakkaistuvuuteen. 2. Viestintä (Communication). - Määritellään tehtävien suorittamiseen vaadittava tehtävien välinen viestintä ja sen rakenne. 3. Yhteenliittäminen (Agglomeration). - Tarkastelu siirtyy tehokkuuden saavuttamiseen kohdassa luotuja osatehtäviä kasataan yhteen paremman tehokkuuden saavuttamiseksi. 22

24 4. Tehtävien jakaminen prosesoreille (Mapping). - Tehtävät jaetaan prosessorien kesken mahdollismman tehokkaalla tavalla. HUOM. Yleensä SPMD-ohjelmat antavat luoda vain yhden prosessin prosessoria kohden, joten tämä on huomioitava kohdassa 3. Kohdissa 1 ja 2 pyritään rinnakkaistuvuuteen ja skaalautuvuuteen. Kohdissa 3 ja 4 tavoitteena on tehokkuuden lisääminen esim. lisäämällä lokaalisuutta. Mallia ei tule käsittää lineaariseksi. 23

25 TYÖNJAKAMINEN 24

26 Trivial Parallelism, nolo rinnakkaistaminen - Yksinkertaisin työnjakamismenetelmä. - Ajetaan samaa peräkkäiskoodia usealla prosessorilla samanaikaisesti. Parametrien lähtöarvot erilaiset. - Ei tarvita prosessorien välistä viestintää. - Ei auta isoissa tehtävissä. 25

27 Functional Decomposition 26

28 Functional Decomposition - Pitää varmistaa, että osatehtävät ovat yhtä isoja. - Startup ja shutdown -kustannukset. - Huono skaalautuvuus. - Yleensä helppo määritellä tarvittava viestintä. - Sopii vain osalle tehtäviä. 27

29 Isäntä-renki malli (Master Slave, Task Farms) 28

30 Isäntä-renki malli - Helppo ohjelmoida. - Dynaaminen -> kuormantasaus helppoa. - Laskennan lopettamisessa voi olla tyhjäkäyntiä. - Osatehtävien pitää olla toisistaan riippumattomia. - Isäntä voi muodostua pullonkaulaksi. - Vaatii paljon viestintää. 29

31 Aluejakomenetelmä (Domain Decomposition) 30

32 Aluejakomenetelmä - Jaetaan osa-alueet prosessorien kesken. - Voidaan hyödyntää virtuaalitopologiaa. - Jaon ei tarvitse olla säännöllinen. - Vaatii usein tiedon vaihtamista (naapuri)prosessorien kesken. - Viestinnän suunnittelu voi olla hankalaa. 31

33 Aluejakomenetelmä DO WHILE(.NOT.convergent) DO j=1,n DO i=1,n B(i,j)=0.25*( A(i-1,j)+A(i+1,j)+A(i,j-1)+A(i,j+1) ) END DO END DO DO j=1,n DO i=1,n A(i,j)=B(i,j) END DO END DO! convegence test END DO 32

34 Aluejakomenetelmä 33

35 VIESTINTÄ 34

36 Kahden välinen viestintä, (Point-to-Point) Kun vaihdetaa dataa kahden prosessin välillä niin viestintään kuluu aikaa arviolta t com = t s + mt w, missä t s on latenssiaika (startup time), m on viestin pituus, t w on sanaa kohti tarvittava aika. 35

37 Kollektiivinen viestintä Esim. One-to-All Brodcast t com = (t s + mt w ) log 2 p, p on prosessorien lukumäärä. 36

38 TEHOKKUUS 37

39 Relative Parallel Speedup S p (n) = T (n, 1) T (n, p), missä n=tehtävän koko, p=prosessorien lukumäärä, T (n, p)=p:llä prosessorilla tehtävän suorittamiseen kuluva aika. CSC:n vaatimus: Nopeuden pitää kasvaa 50% kun prosessorien lukumäärä kaksinkertaistuu. 38

40 Total (absolute) Speedup S p (n) = T best(n, 1) T (n, p), missä T best (n, 1) on parhaan tiedossa olevan peräkkäisohjelman suoritusaika. Parallel Relative Efficiency E p (n) = S p(n) p = T (n, 1) pt (n, p). 39

41 Suoritusaika (s): MPI:llä rinnakkaistettu liittogradienttimenetelmä n/p Speedup: n/p

42 41

43 Message Passing Interface - MPI 42

44 MPI - Viestinvälityskirjasto. - SPMD-ohjelmointitapa. - Suosituin työkalu tieteellisessä laskennassa. - Sovittu standardi. - Toimii heterogeenisessa ympäristössä. - Versiot MPI-1 ja MPI-2. - Kielenä C/C++ tai Fortran. 43

45 MPI:n ominaisuuksia - Monipuolinen kahdenvälinen viestintä. - Paljon kollektiivisia operaatioita. - Ryhmäviestintä on joustavaa ja nopeaa ohjelmoida. - Laskentatopologoita voi luoda tarpeen mukaan. - Omia tyyppejä voi määritellä ja välittää. 44

46 MPI MPI-1 sisältää yli 120 rutiinia, mutta kuudella voi ohjelmoida (melkein) kaiken. MPI_INIT MPI_COMM_SIZE MPI_COMM_RANK MPI_SEND MPI_RECV MPI_FINALIZE Rinnakkaisohjelmointi MPI:llä on helppoa. Kannattaa kokeilla! 45

47 OpenMP -Open Multi Processing 46

48 OpenMP - Jaetun muistin koneiden teollisuusstandardi. - Koostuu kääntäjädirekdiiveistä, kirjastorutiineista ja ympäristömuuttujista. - Direktiiveihin voidaan lisätä tarkentimia (clauses). - Kielenä C/C++ tai Fortran. - Mahdollistaa sekä suurijakoisen (coarce grain ) että hienojakoisen (fine grain ) rinnakkaistamisen. - On mahdollista kirjoittaa koodi siten, että se toimii sekä rinnakkaisohjelmana että peräkkäissohjelmana ilman OpenMP:tä. - Mahdollistaa astettaisen rinnakkaistamisen. 47

49 OpenMP - Direktiivin tunniste:!$omp - Ehdollisen kääntämisen tunniste:!$ - Rinnakkaisalue muodostetaan direktiiviparilla!$omp PARALLEL!$OMP END PARALLEL. - Ennen ja jälkeen rinnakkaisaluetta ohjelmaa suorittaa yksi säie. - Rinnakkaisalueen alussa muodostetaan ryhmä säikeitä. - Muuttujat joko yhteisiä (shared) tai säikeen yksityisiä (private). (- OpenMP-koodin testaaminen syö hermoja. :) 48

50 OpenMP 49

51 Materiaalia Efficient and Accurate Parallel Genetic Algorithms, by Erick Cantu- Paz. A tutorial on Elliptic PDE Solvers and their Parallelization, by Douglas, Haase and Langer. TOP500 SUPERCOMPUTER SITES: Introduction to Parallel Computing, by Ananth Grama, Anshul Gupta, George Karypis ja Vipin Kumar. Designing and Building Parallel Programs, by Ian Foster. 50

52 EPCC Edinburgh Parallel Computing Centre Message Passing Interface Forum Rinnakkaisohjelmointi MPI:llä,Juha Haataja ja Kaj Mustikkamäki. MPI: The Complete Reference, by Marc Snir, Steve Otto, Steven Huss- Lederman, David Walker, and Jack Dongarra. Parallel Programming with MPI, by Peter Pacheco. Using MPI, by William Gropp, Ewing Lusk and Anthony Skjellum. 51

53 Using MPI-2,by William Gropp, Ewing Lusk and Rajeev Thakur. Official OpenMP Specifications. Parallel Programming in Fortran 95 using OpenMP, by Miguel Hermanns. Parallel Programming in OpenMP, by Rohit Chandra, Ramesh Menon, Leo Dagum, David Kohr, Dror Maydan and Jeff McDonald. 52

Numeriikan kirjastoja

Numeriikan kirjastoja Numeriikan kirjastoja + Säästää aikaa, hikeä ja kyyneleitä + Aliohjelmat testattuja ja luotettavia + Tehokkuus optimoitu - Ei aina sovellu kovin hyvin omaan tehtävään - Kaupallisista kirjastoista ei saa

Lisätiedot

S-114.240 Rinnakkaislaskenta laskennallisessa tieteessä:

S-114.240 Rinnakkaislaskenta laskennallisessa tieteessä: S-114.240 Rinnakkaislaskenta laskennallisessa tieteessä: MPI ja työasemaklusterit: Beowulf Risto Virkkala Laskennallisen tekniikan laboratorio 5.5.1999 Muokattu: 5.7.1999 (testit 16 koneen Beowulf klusterilla)

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

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

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

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

Samanaikaisuuden hallinta

Samanaikaisuuden hallinta Samanaikaisuuden hallinta TIES542 Ohjelmointikielten periaatteet, kevät 2007 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 20. maaliskuuta 2007 Samanaikaisuus engl. concurrency useampaa

Lisätiedot

Datahajautettu klusterointi. ITKC35 Rinnakkaislaskenta Harjoitustyö. Sami Äyrämö

Datahajautettu klusterointi. ITKC35 Rinnakkaislaskenta Harjoitustyö. Sami Äyrämö Datahajautettu klusterointi ITKC35 Rinnakkaislaskenta Harjoitustyö Sami Äyrämö JYVÄSKYLÄN YLIOPISTO Informaatioteknologian tiedekunta Tietotekniikan laitos syksy 2003 Sisältö 1 Johdanto 1 2 Tutkimussuunnitelma

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

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

Rinnakkaisalgoritmit ja rinnakkaistietokoneet

Rinnakkaisalgoritmit ja rinnakkaistietokoneet Tietojenkäsittelytiede 26 Heinäkuu 2007 sivut 9 21 Toimittaja: Antti Valmari c kirjoittaja(t) Rinnakkaisalgoritmit ja rinnakkaistietokoneet Martti Penttonen Kuopion yliopisto Tietojenkäsittelytieteen laitos

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

GPU-laskennan optimointi

GPU-laskennan optimointi Jari Isohanni GPU-laskennan optimointi Tietotekniikan pro gradu tutkielma Mobiilijärjestelmät 16. marraskuuta 2013 Jyväskylän yliopisto Tietotekniikan laitos Kokkolan yliopistokeskus Chydenius Tekijä:

Lisätiedot

Intel Threading Building Blocks

Intel Threading Building Blocks Intel Threading Building Blocks Markku Vajaranta Esko Pekkarinen TBB Pähkinänkuoressa C++ luokkamallinen rinnakkaisuus Abstrahoi rinnakkaisuutta korkean tason tehtävät (tasks) ja niiden skedulointi suuri

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

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

TIE Tietorakenteet ja algoritmit 1. TIE Tietorakenteet ja algoritmit

TIE Tietorakenteet ja algoritmit 1. TIE Tietorakenteet ja algoritmit TIE-20100 Tietorakenteet ja algoritmit 1 TIE-20100 Tietorakenteet ja algoritmit TIE-20100 Tietorakenteet ja algoritmit 2 Lähteet Luentomoniste pohjautuu vahvasti prof. Antti Valmarin vanhaan luentomonisteeseen

Lisätiedot

Makrojen mystinen maailma lyhyt oppimäärä

Makrojen mystinen maailma lyhyt oppimäärä Makrojen mystinen maailma lyhyt oppimäärä Makrot osana SAS-teknologiaa Yleiskuva Jouni Javanainen Aureolis lyhyesti Aureolis on jatkuvia Business Intelligence -palveluita tuottava asiantuntijaorganisaatio

Lisätiedot

Hajautettujen sovellusten muodostamistekniikat, TKO_2014 Johdatus kurssiin

Hajautettujen sovellusten muodostamistekniikat, TKO_2014 Johdatus kurssiin Hajautettujen sovellusten muodostamistekniikat, TKO_2014 Johdatus kurssiin Ville Leppänen HSMT, c Ville Leppänen, IT, Turun yliopisto, 2009 p.1/15 HSMT (Java-kielellä) Aineopintotasoinen kurssi, 5op. Luennot:

Lisätiedot

Rinnakkaisuus. parallel tietokoneissa rinnakkaisia laskentayksiköitä concurrent asioita tapahtuu yhtaikaa. TTY Ohjelmistotekniikka

Rinnakkaisuus. parallel tietokoneissa rinnakkaisia laskentayksiköitä concurrent asioita tapahtuu yhtaikaa. TTY Ohjelmistotekniikka Rinnakkaisuus parallel tietokoneissa rinnakkaisia laskentayksiköitä concurrent asioita tapahtuu yhtaikaa Rinnakkaisuuden etuja: laskennan nopeutuminen (sarjoittuvat operaatiojonot) ilmaisuvoima (ongelman

Lisätiedot

Johdatus f90/95 ohjelmointiin. H, R & R luvut 1-3

Johdatus f90/95 ohjelmointiin. H, R & R luvut 1-3 Johdatus f90/95 ohjelmointiin H, R & R luvut 1-3 Fortran-kieli ( 3.1-3) IBM 1954, FORmula TRANslator ISO/ANSI standardit f90, f95, f2003 tieteellinen & teknillinen laskenta rinnakkaislaskenta (HPF, openmp)

Lisätiedot

TEKNIIKKA JA LIIKENNE. Tietotekniikka. Ohjelmistotekniikka INSINÖÖRITYÖ RINNAKKAISLASKENTA MPI-YMPÄRISTÖSSÄ

TEKNIIKKA JA LIIKENNE. Tietotekniikka. Ohjelmistotekniikka INSINÖÖRITYÖ RINNAKKAISLASKENTA MPI-YMPÄRISTÖSSÄ TEKNIIKKA JA LIIKENNE Tietotekniikka Ohjelmistotekniikka INSINÖÖRITYÖ RINNAKKAISLASKENTA MPI-YMPÄRISTÖSSÄ Työn tekijä: Juha Katajisto Työn ohjaajat: Miikka Mäki-Uuro Simo Silander Työ hyväksytty:.. 2009

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 3 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten muuttujiin liittyvät kysymykset. Tehtävä 1. Määritä muuttujien max_num, lista,

Lisätiedot

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä?

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä? Miksi moniprosessorijärjestelmä? Laskentaa voidaan hajauttaa useammille prosessoreille nopeuden, modulaarisuuden ja luotettavuuden vaatimuksesta tai hajauttaminen voi helpottaa ohjelmointia. Voi olla järkevää

Lisätiedot

Tietokonearkkitehtuuri 2 TKT-3201 (5 op)

Tietokonearkkitehtuuri 2 TKT-3201 (5 op) Tietokonearkkitehtuuri 2 (5 op) syksyllä 2012 periodit I & II (viikot 35-41 & 43-49) luennot tiistaisin klo 14-16 (periodi I: sali S4, periodi II: sali TB109) Kurssin tavoite Käydään läpi tietokoneen toimintaa

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

Tietokoneet täh++eteessä

Tietokoneet täh++eteessä Tietokoneet täh++eteessä Peter Johansson Fysiikan laitos, Helsingin yliopisto PC- käy:äjät ry kevätkokous 2014 Helsinki 23.3.2014 1. Miksi +etokoneita tarvitaan täh++eteessä ja mikä on niiden rooli modernissa

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 Tietokone

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

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

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

automaattisen tietotyypin tunnistamisen osalta, minkä Smith koki olevan avaintekijä onnistuneen rinnakkaisen ohjelmointikielen toteuttamisessa.

automaattisen tietotyypin tunnistamisen osalta, minkä Smith koki olevan avaintekijä onnistuneen rinnakkaisen ohjelmointikielen toteuttamisessa. Chapel Group 15 Chapel on korkean asteen abstraktiotason ohjelmointikieli, joka on tarkoitettu pääasiassa rinnakkaisuuden (engl. parallelism) ohjelmoimiseen korkean tuotannon ympäristöissä suuren kokoluokan

Lisätiedot

Jaetun muistin muuntaminen viestin välitykseksi. 15. lokakuuta 2007

Jaetun muistin muuntaminen viestin välitykseksi. 15. lokakuuta 2007 Jaetun muistin muuntaminen viestin välitykseksi Otto Räsänen 15. lokakuuta 2007 1 Motivaatio 2 Valtuuden välitys Peruskäsitteitä 3 Kolme algoritmia Valtuuden välitys käyttäen laskuria ilman ylärajaa Valtuuden

Lisätiedot

TK081001 Palvelinympäristö

TK081001 Palvelinympäristö TK081001 Palvelinympäristö 5 opintopistettä!! Petri Nuutinen! 8 opintopistettä!! Petri Nuutinen! RAID RAID = Redundant Array of Independent Disks Useasta fyysisestä kiintolevystä muodostetaan yhteinen

Lisätiedot

Graafisen käyttöliittymän ohjelmointi Syksy 2013

Graafisen käyttöliittymän ohjelmointi Syksy 2013 TIE-11300 Tietotekniikan vaihtuva-alainen kurssi Graafisen käyttöliittymän ohjelmointi Syksy 2013 Luento 10 Rinnakkaisuus käyttöliittymäohjelmoinnissa Juha-Matti Vanhatupa Rinnakkaisuus ja käyttöliittymäohjelmointi

Lisätiedot

Efficiency change over time

Efficiency change over time Efficiency change over time Heikki Tikanmäki Optimointiopin seminaari 14.11.2007 Contents Introduction (11.1) Window analysis (11.2) Example, application, analysis Malmquist index (11.3) Dealing with panel

Lisätiedot

Rinnakkaisuuden hyväksikäyttö tietokonepeleissä

Rinnakkaisuuden hyväksikäyttö tietokonepeleissä Rinnakkaisuuden hyväksikäyttö tietokonepeleissä Paula Kemppi Helsinki 1.5.2008 Ohjelmistotuotanto ja tietokonepelit -seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Sisältö i 1 Johdanto 1

Lisätiedot

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Esimerkki otteluvoiton todennäköisyys A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Yksittäisessä pelissä A voittaa todennäköisyydellä p ja B todennäköisyydellä q =

Lisätiedot

4. Lausekielinen ohjelmointi 4.1

4. Lausekielinen ohjelmointi 4.1 4. Lausekielinen ohjelmointi 4.1 Sisällys Konekieli, symbolinen konekieli ja lausekieli. Lausekielestä konekieleksi: - Lähdekoodi, tekstitiedosto ja tekstieditorit. - Kääntäminen ja tulkinta. - Kääntäminen,

Lisätiedot

Dynaaminen ohjelmointi ja vaikutuskaaviot

Dynaaminen ohjelmointi ja vaikutuskaaviot Dynaaminen ohjelmointi ja vaikutuskaaviot. Taustaa 2. Vaikutuskaaviot ja superarvosolmut 3. Vaikutuskaavion ratkaiseminen 4. Vaikutuskaavio ja dynaaminen ohjelmointi: 5. Yhteenveto Esitelmän sisältö Optimointiopin

Lisätiedot

Computing Curricula 2001 -raportin vertailu kolmeen suomalaiseen koulutusohjelmaan

Computing Curricula 2001 -raportin vertailu kolmeen suomalaiseen koulutusohjelmaan Computing Curricula 2001 -raportin vertailu kolmeen suomalaiseen koulutusohjelmaan CC1991:n ja CC2001:n vertailu Tutkintovaatimukset (degree requirements) Kahden ensimmäisen vuoden opinnot Ohjelmistotekniikan

Lisätiedot

CT50A2602 Käyttöjärjestelmät Seminaarityö. Tietokoneen muisti nyt ja tulevaisuudessa

CT50A2602 Käyttöjärjestelmät Seminaarityö. Tietokoneen muisti nyt ja tulevaisuudessa CT50A2602 Käyttöjärjestelmät Seminaarityö Tietokoneen muisti nyt ja tulevaisuudessa Jyrki Eurén Raimo Asikainen Janne Laitinen Teppo Lapinkoski Manu Toivanen Pasi Ruuth Johdanto Taustaa Työn taustana ryhmän

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

Käännös, linkitys ja lataus

Käännös, linkitys ja lataus Luento 10 (verkkoluento 10) Käännös, linkitys ja lataus Ohjelmasta prosessiin Käännösyksikkö Kääntämisen vaiheet Makrot, literaalit Staattinen ja dynaaminen linkitys Nimien sidonta Lausekielestä suoritukseen

Lisätiedot

Älysopimusten kehittäminen. Sopimus suuntautunut ohjelmointi

Älysopimusten kehittäminen. Sopimus suuntautunut ohjelmointi Älysopimusten kehittäminen Sopimus suuntautunut ohjelmointi There are currently 5,000 blockchain developers. By 2020, we project a global need for over 500,000 - ConsenSys Älysopimus alustat q Ethereum

Lisätiedot

Koulutuksen digitalisaatio Tulevaisuutta kohti

Koulutuksen digitalisaatio Tulevaisuutta kohti Koulutuksen digitalisaatio Tulevaisuutta kohti Omnia 26.9.2014 P a s i S i l a n d e r Kuva:Finavia Korkeakoulut - Yliopistot - AMKit Sähköiset ylioppilaskirjoitukset Uudet OPSit Tietoyhteiskuntataidot

Lisätiedot

Scheduling of Genetic Analysis Workflows on Grid Environments (valmiin työn esittely) Arttu Voutilainen

Scheduling of Genetic Analysis Workflows on Grid Environments (valmiin työn esittely) Arttu Voutilainen Scheduling of Genetic Analysis Workflows on Grid Environments (valmiin työn esittely) Arttu Voutilainen 20.4.2015 Ohjaaja: FT Lauri Eronen (Biocomputing Platforms Ltd.) Valvoja: Prof. Harri Ehtamo Työn

Lisätiedot

TEEMU ROOS (KALVOT MUOKATTU PATRIK HOYERIN LUENTOMATERIAALISTA)

TEEMU ROOS (KALVOT MUOKATTU PATRIK HOYERIN LUENTOMATERIAALISTA) JOHDATUS TEKOÄLYYN TEEMU ROOS (KALVOT MUOKATTU PATRIK HOYERIN LUENTOMATERIAALISTA) KONEOPPIMISEN LAJIT OHJATTU OPPIMINEN: - ESIMERKIT OVAT PAREJA (X, Y), TAVOITTEENA ON OPPIA ENNUSTAMAAN Y ANNETTUNA X.

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

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen, tommi.mikkonen@tut.fi

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen, tommi.mikkonen@tut.fi 5. Luento: Rinnakkaisuus ja reaaliaika Tommi Mikkonen, tommi.mikkonen@tut.fi Agenda Perusongelmat Jako prosesseihin Reaaliaika Rinnakkaisuus Rinnakkaisuus tarkoittaa tässä yhteydessä useamman kuin yhden

Lisätiedot

SEPA päiväkirja. BetaTeam. Juho Mäkinen, 57796V, Jari Leppä, 42710V, Versio Pvm Tekijä Kuvaus

SEPA päiväkirja. BetaTeam. Juho Mäkinen, 57796V, Jari Leppä, 42710V, Versio Pvm Tekijä Kuvaus SEPA päiväkirja BetaTeam Juho Mäkinen, 57796V, jvmakine@cc.hut.fi Jari Leppä, 42710V, jleppa@cc.hut.fi Versio Pvm Tekijä Kuvaus 0.1 10.11.2005 Juho Mäkinen Johdanto 1. 0.2 11.11.2005 J.Mäkinen, Käytäntöön

Lisätiedot

C++11 seminaari, kevät Johannes Koskinen

C++11 seminaari, kevät Johannes Koskinen C++11 seminaari, kevät 2012 Johannes Koskinen Sisältö Mikä onkaan ongelma? Standardidraftin luku 29: Atomiset tyypit Muistimalli Rinnakkaisuus On multicore systems, when a thread writes a value to memory,

Lisätiedot

Sovellusarkkitehtuurit

Sovellusarkkitehtuurit HELIA TiKo-05 1 (9) Sovellusarkkitehtuurit ODBC (Open Database Connectivity)... 2 JDBC (Java Database Connectivity)... 5 Middleware... 6 Middleware luokittelu... 7 Tietokanta -middleware... 8 Tapahtumamonitorit

Lisätiedot

Esimerkkejä vaativuusluokista

Esimerkkejä vaativuusluokista Esimerkkejä vaativuusluokista Seuraaville kalvoille on poimittu joitain esimerkkejä havainnollistamaan algoritmien aikavaativuusluokkia. Esimerkit on valittu melko mielivaltaisesti laitoksella tehtävään

Lisätiedot

Pertti Pennanen DOKUMENTTI 1 (5) EDUPOLI ICTPro1 29.10.2013

Pertti Pennanen DOKUMENTTI 1 (5) EDUPOLI ICTPro1 29.10.2013 Virtualisointi Pertti Pennanen DOKUMENTTI 1 (5) SISÄLLYSLUETTELO Virtualisointi... 2 Virtualisointiohjelmia... 2 Virtualisointitapoja... 2 Verkkovirtualisointi... 2 Pertti Pennanen DOKUMENTTI 2 (5) Virtualisointi

Lisätiedot

11/20: Konepelti auki

11/20: Konepelti auki Ohjelmointi 1 / syksy 2007 11/20: Konepelti auki Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/11 Tämän luennon

Lisätiedot

Rinnakkaistietokoneet luento S

Rinnakkaistietokoneet luento S Rinnakkaistietokoneet luento 4 521475S Rinnakkaiset ei-numeeriset algoritmit: transitiivisulkeuma (transitive closure) Oletetaan suunnattu graafi G = (V,E) ja halutaan tietää onko olemassa kahta pistettä

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

Page 1 of 9. Ryhmä/group: L = luento, lecture H = harjoitus, exercises A, ATK = atk-harjoitukset, computer exercises

Page 1 of 9. Ryhmä/group: L = luento, lecture H = harjoitus, exercises A, ATK = atk-harjoitukset, computer exercises Tietotekniikan tarjoama opetus syksyllä 2016 23.5.2016 CS course schedule in autumn 2016 Sari Salmisuo I periodi / period I 12.9. 21.10.2016 viikot/weeks 37-42 II periodi / period II 31.10. 9.12.2016 viikot/weeks

Lisätiedot

JOHDATUS TEKOÄLYYN TEEMU ROOS

JOHDATUS TEKOÄLYYN TEEMU ROOS JOHDATUS TEKOÄLYYN TEEMU ROOS KUINKA RIKASTUA NAIVI BAYES FROM: "MARGARETTA NITA" SUBJECT: SPECIAL OFFER : VIAGRA ON SALE AT $1.38!!! X-BOGOSITY: YES, TESTS=BOGOFILTER, SPAMICITY=0.99993752,

Lisätiedot

8/20: Luokat, oliot ja APIt

8/20: Luokat, oliot ja APIt Ohjelmointi 1 / syksy 2007 8/20: Luokat, oliot ja APIt Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/8 Kohti

Lisätiedot

Väylät. Prosessorin tie ulkomaailmaan Pienissä järjestelmissä vain yksi väylä. Osoite, data ja ohjaussignaalit Prosessori ainoa herra (master)

Väylät. Prosessorin tie ulkomaailmaan Pienissä järjestelmissä vain yksi väylä. Osoite, data ja ohjaussignaalit Prosessori ainoa herra (master) Prosessorin tie ulkomaailmaan Pienissä järjestelmissä vain yksi väylä Prosessoriväylä Osoite, data ja ohjaussignaalit Prosessori ainoa herra (master) Suuremmissa erillisiä väyliä Muistiväylä Oheislaiteväylät

Lisätiedot

Käyttöjärjestelmien historia. Joni Herttuainen Henri Jantunen Markus Maijanen Timo Saksholm Johanna Tjäder Eetu Turunen

Käyttöjärjestelmien historia. Joni Herttuainen Henri Jantunen Markus Maijanen Timo Saksholm Johanna Tjäder Eetu Turunen Käyttöjärjestelmien historia Joni Herttuainen Henri Jantunen Markus Maijanen Timo Saksholm Johanna Tjäder Eetu Turunen Käyttöjärjestelmien jaottelu Voidaan jaotella erilaisin menetelmin Aikajana (määrä,

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta HELIA 1 (14) Luento Transaktion / Tapahtuman hallinta... 2 Taustaa... 3 Tapahtuman käsite... 5 ACID-ominaisuudet... 7 Samanaikaisuuden hallinta... 8 Lukitukset... 9 Toipuminen... 10 Loki-tiedosto... 11

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

HOJ J2EE & EJB & SOAP &...

HOJ J2EE & EJB & SOAP &... HOJ J2EE & EJB & SOAP &... Ville Leppänen HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/18 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista

Lisätiedot

S Rinnakkaislaskenta laskennallisessa tieteessä: Matriisilaskenta. Mika Prunnila S T

S Rinnakkaislaskenta laskennallisessa tieteessä: Matriisilaskenta. Mika Prunnila S T S-114.240 Rinnakkaislaskenta laskennallisessa tieteessä: Matriisilaskenta Mika Prunnila S4 44608T Sisältö 1. Johdanto 2 2. Rinnakkais ohjelmointi ja rinnakkaiskoneet 2 3. Matriisien ja vektoreiden lohkominen

Lisätiedot

THM-MALLIN NUMERIIKKA. Antti Niemistö, Janne Martikainen Numerola oy

THM-MALLIN NUMERIIKKA. Antti Niemistö, Janne Martikainen Numerola oy THM-MALLIN NUMERIIKKA Antti Niemistö, Janne Martikainen Numerola oy 1 THM-mallin Numerrin-toteutus pohjana Petri Jussilan väitöstyössä esitetty THM-malli 3D toteutus Numerrin4 mallinnusalustalle numeerisen

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 4 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 4 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 4 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten lauseisiin, lausekkeisiin ja aliohjelmiin liittyvät kysymykset. Tehtävä 1. Mitä

Lisätiedot

Web-palvelu voidaan ajatella jaettavaksi kahteen erilliseen kokonaisuuteen: itse palvelun toiminnallisuuden toteuttava osa ja osa, joka mahdollistaa k

Web-palvelu voidaan ajatella jaettavaksi kahteen erilliseen kokonaisuuteen: itse palvelun toiminnallisuuden toteuttava osa ja osa, joka mahdollistaa k 1 Web-palvelu voidaan ajatella jaettavaksi kahteen erilliseen kokonaisuuteen: itse palvelun toiminnallisuuden toteuttava osa ja osa, joka mahdollistaa ko. toiminnallisuuden hyödyntämisen Web-palveluna.

Lisätiedot

PC-LAITTEEN TESTAAMINEN

PC-LAITTEEN TESTAAMINEN PC-LAITTEEN TESTAAMINEN PC-Check-ohjelma Kun laite on koottu, on perusteltua testata sen toiminta ennen käyttöönottoa. Tätä varten on luotu erilaisia ohjelmia, joilla voi laitteen eri osat testata. Yksi

Lisätiedot

Tietokoneverkot. T Tietokoneverkot (4 op) viimeistä kertaa CSE-C2400 Tietokoneverkot (5 op) ensimmäistä kertaa

Tietokoneverkot. T Tietokoneverkot (4 op) viimeistä kertaa CSE-C2400 Tietokoneverkot (5 op) ensimmäistä kertaa Tietokoneverkot T-110.4100 Tietokoneverkot (4 op) viimeistä kertaa CSE-C2400 Tietokoneverkot (5 op) ensimmäistä kertaa ja Matti Siekkinen Tietokoneverkot 2014 sanna.suoranta@aalto.fi Kurssista kaksi versiota

Lisätiedot

Solidity älysopimus ohjelmointi. Sopimus suuntautunut ohjelmointi

Solidity älysopimus ohjelmointi. Sopimus suuntautunut ohjelmointi Solidity älysopimus ohjelmointi Sopimus suuntautunut ohjelmointi Merkle puu Kertausta eiliseltä Solidity on korkean tason älysopimus ohjelmointikieli Muistuttaa olio-ohjelmointia Javalla Sopimuskoodi on

Lisätiedot

24.9.2015. Työasema- ja palvelinarkkitehtuurit (IC130301) Apumuistit. Kiintolevyt. 5 opintopistettä. Petri Nuutinen

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,

Lisätiedot

Kon Konepajojen tuotannonohjaus: ILOG CPLEX Studion käyttö

Kon Konepajojen tuotannonohjaus: ILOG CPLEX Studion käyttö Kon-15.4199 Konepajojen tuotannonohjaus: ILOG CPLEX Studion käyttö 22.1.2016 Harjoituksessa 1. Varmistetaan että kaikilla on pari! Ilmoittautukaa oodissa etukäteen! 2. Tutustutaan ensimmäiseen tehtävään

Lisätiedot

Sisältöä SÄIKEET, SMP

Sisältöä SÄIKEET, SMP LUENTO 5 Sisältöä SÄIKEET, SMP Stallings, Luku 4 Prosessi vs. säie Miksi säikeitä? ULT: Käyttäjätason säikeet KLT: Säikeiden toteutus ytimessä SMP Windowsin säikeet 1 2 Säikeet (multithreading) Prosessi

Lisätiedot

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä Ohjelmoinnin peruskurssien laaja oppimäärä Luento 10: Aliohjelmat, foreign function interface Riku Saikkonen (osa kalvoista on suoraan ei-laajan kurssin luennoista) 25. 3. 2013 Sisältö 1 Aliohjelmien käyttäminen

Lisätiedot

Skedulerisimulaattorin implementointi fysiikkatöille ja sen matemaattinen validointi

Skedulerisimulaattorin implementointi fysiikkatöille ja sen matemaattinen validointi Skedulerisimulaattorin implementointi fysiikkatöille ja sen matemaattinen validointi 24.01.2011 Ohjaaja: Tapio Niemi Valvoja: Harri Ehtamo Tausta ja työn tavoite Työ tehtiin Helsinki Institute of Physics:ille,

Lisätiedot

ASCII-taidetta. Intro: Python

ASCII-taidetta. Intro: Python Python 1 ASCII-taidetta All Code Clubs must be registered. Registered clubs appear on the map at codeclubworld.org - if your club is not on the map then visit jumpto.cc/18cplpy to find out what to do.

Lisätiedot

Other approaches to restrict multipliers

Other approaches to restrict multipliers Other approaches to restrict multipliers Heikki Tikanmäki Optimointiopin seminaari 10.10.2007 Contents Short revision (6.2) Another Assurance Region Model (6.3) Cone-Ratio Method (6.4) An Application of

Lisätiedot

Use of spatial data in the new production environment and in a data warehouse

Use of spatial data in the new production environment and in a data warehouse Use of spatial data in the new production environment and in a data warehouse Nordic Forum for Geostatistics 2007 Session 3, GI infrastructure and use of spatial database Statistics Finland, Population

Lisätiedot

JOHDATUS TEKOÄLYYN TEEMU ROOS

JOHDATUS TEKOÄLYYN TEEMU ROOS JOHDATUS TEKOÄLYYN TEEMU ROOS KUINKA RIKASTUA NAIVI BAYES FROM: "MARGARETTA NITA" SUBJECT: SPECIAL OFFER : VIAGRA ON SALE AT $1.38!!! X-BOGOSITY: YES, TESTS=BOGOFILTER, SPAMICITY=0.99993752,

Lisätiedot

MUISTIPIIRIT H. Honkanen

MUISTIPIIRIT H. Honkanen MUISTIPIIRIT H. Honkanen Puolijohdemuistit voidaan jaotella käyttötarkoituksensa mukaisesti: Puolijohdemuistit Luku- ja kirjoitusmuistit RAM, Random Access Memory - Käytetään ohjelman suorituksen aikaisen

Lisätiedot

Tietorakenteet ja algoritmit

Tietorakenteet ja algoritmit Tietorakenteet ja algoritmit Taulukon edut Taulukon haitat Taulukon haittojen välttäminen Dynaamisesti linkattu lista Linkatun listan solmun määrittelytavat Lineaarisen listan toteutus dynaamisesti linkattuna

Lisätiedot

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

Esimerkkejä polynomisista ja ei-polynomisista ongelmista Esimerkkejä polynomisista ja ei-polynomisista ongelmista Ennen yleisempiä teoriatarkasteluja katsotaan joitain tyypillisiä esimerkkejä ongelmista ja niiden vaativuudesta kaikki nämä ongelmat ratkeavia

Lisätiedot

ELM GROUP 04. Teemu Laakso Henrik Talarmo

ELM GROUP 04. Teemu Laakso Henrik Talarmo ELM GROUP 04 Teemu Laakso Henrik Talarmo 23. marraskuuta 2017 Sisältö 1 Johdanto 1 2 Ominaisuuksia 2 2.1 Muuttujat ja tietorakenteet...................... 2 2.2 Funktiot................................

Lisätiedot

Luento 1 (verkkoluento 1) Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus

Luento 1 (verkkoluento 1) Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus Luento 1 (verkkoluento 1) Tietokonejärjestelmä Järjestelmän e eri tasot Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus 1 Tietokone- järjestelmäj ä Käyttäjä Tietokonelaitteisto Oheislaitteet

Lisätiedot

4. Luento: Prosessit ja säikeets. Tommi Mikkonen, tommi.mikkonen@tut.fi

4. Luento: Prosessit ja säikeets. Tommi Mikkonen, tommi.mikkonen@tut.fi 4. Luento: Prosessit ja säikeets Tommi Mikkonen, tommi.mikkonen@tut.fi Agenda Prosessi Säikeet Keskeytykset Keskeytyskäsittely Käyttöjärjestelmäkutsut Prosessielementti Prosessin hallinta Suunnittelunäkökohtia

Lisätiedot

Test-Driven Development

Test-Driven Development Test-Driven Development Ohjelmistotuotanto syksy 2006 Jyväskylän yliopisto Test-Driven Development Testilähtöinen ohjelmistojen kehitystapa. Tehdään ensin testi, sitten vasta koodi. Tarkoituksena ei ole

Lisätiedot

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä Ohjelmoinnin peruskurssien laaja oppimäärä Luento 19: Rinnakkaisuus Riku Saikkonen (merkityt ei-laajan kurssin kalvot: Otto Seppälä) 24. 3. 2011 Sisältö 1 Säikeet 2 Lukot 3 Monitorit 4 Muuta säikeisiin

Lisätiedot

Rinnakkaistietokoneet luento S

Rinnakkaistietokoneet luento S Rinnakkaistietokoneet luento 3 521475S Rinnakkaiset Numeeriset Algoritmit Silmukattomat algoritmit Eivät sisällä silmukka lauseita kuten DO,FOR tai WHILE Nopea suorittaa Yleisimmässä muodossa koostuu peräkkäisistä

Lisätiedot

.NET ajoympäristö. Juha Järvensivu 2007

.NET ajoympäristö. Juha Järvensivu 2007 .NET ajoympäristö Juha Järvensivu juha.jarvensivu@tut.fi 2007 Käännösprosessi C# lähdekoodi C# kääntäjä CILtavukoodi JITkäännös Ajettava natiivikoodi Kehitysympäristössä ohjelmoijan toimesta Ajonaikana.NET

Lisätiedot

Integrointialgoritmit molekyylidynamiikassa

Integrointialgoritmit molekyylidynamiikassa Integrointialgoritmit molekyylidynamiikassa Markus Ovaska 28.11.2008 Esitelmän kulku MD-simulaatiot yleisesti Integrointialgoritmit: mitä integroidaan ja miten? Esimerkkejä eri algoritmeista Hyvän algoritmin

Lisätiedot

Moniydinsuorittimien rinnakkaisohjelmointi

Moniydinsuorittimien rinnakkaisohjelmointi Moniydinsuorittimien rinnakkaisohjelmointi Turun yliopisto Informaatioteknologian laitos Tietojenkäsittelytiede Pro gradu -tutkielma Jari-Matti Mäkelä Maaliskuu 2011 TURUN YLIOPISTO Informaatioteknologian

Lisätiedot

Ohjelmistoarkkitehtuurit

Ohjelmistoarkkitehtuurit Ohjelmistoarkkitehtuurit Konnektorit ohjelmistoarkkitehtuurissa 18.9.2012 1 Konnektorit (connectors) Konnektori (connector) (liitos) Arkkitehtuurielementti, jonka tehtävänä on mahdollistaa ja hallita komponenttien

Lisätiedot

RINNAKKAINEN OHJELMOINTI A,

RINNAKKAINEN OHJELMOINTI A, RINNAKKAINEN OHJELMOINTI 815301A, 18.6.2005 1. Vastaa lyhyesti (2p kustakin): a) Mitkä ovat rinnakkaisen ohjelman oikeellisuuskriteerit? b) Mitä tarkoittaa laiska säikeen luominen? c) Mitä ovat kohtaaminen

Lisätiedot

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

Luento 1 (verkkoluento 1) Tietokonejärjestelmä Luento 1 (verkkoluento 1) Tietokonejärjestelmä Järjestelmän eri tasot Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä This image cannot currently be displayed.

Lisätiedot

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 811122P (5 op.) 12.12.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan

Lisätiedot

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 5: Python

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 5: Python Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 5: Python 7. helmikuuta 2009 Ohjelmoinnista Ohjelman peruselementtejä Koodin kommentointi Lohkorakenne Ohjausrakenteet If For While Try Funktiot Käyttö

Lisätiedot