Numeriikan kirjastoja
|
|
- Simo Keskinen
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 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 lähdekoodia, ei voi muuttaa eikä siirtää erilaiseen ympäristöön BLAS, Lapack ilmaisia, lähdekoodi vapaasti saatavissa ja levitettävissä. Nag, IMSL kaupallisia, saatavana useisiin eri ympäristöihin. Melko kalliita, yleensä vuosittainen lisenssimaksu. Suurten tietokoneiden valmistajilla usein omille laitteille viritettyjä kirjastoja. Netlib ( sisältää runsaasti eri alojen ilmaisia kirjastoja. CSC:n koneilla käytettävissä suuri määrä eri alojen kirjastoja ja ohjelmia. Verkkosivuilta ( löytyy lisää linkkejä.
2 Ilmaisia kirjastoja BLAS (Basic lineara algebra subprograms) Yksinkertaisia vektori- ja matriisioperaatioita: - BLAS 1: skalaaritulo, vektorin normi, yleistetty yhteenlasku (SAXPY, s = ax + y). - BLAS 2: matriisin ja vektorin tulo, yhtälöryhmän ratkaisu, kun kerroinmatriisi on ylä- tai alakolmiomuotoa. - BLAS 3: matriisien tulot Lapack - lineaarisen yhtälöryhmän ratkaisu - matriisin ominaisarvojen laskeminen - lineaarinen pienimmän neliösumman ratkaisu - erilaisten hajotelmien laskeminen Rutiinit reaali- ja kompleksiarvoisille matriiseille.
3 Kaupallisia kirjastoja Numerical Recipes Ohjelmien lähdekoodi useilla ohjelmointikielillä. IMSL ( Ainakin tuhatkunta rutiinia. - BLAS - interpolointi - epälineaaristen yhtälöiden ratkaisu - integrointi - differentiaaliyhtälön ratkaisu - optimointi - erikoisfunktiot - tilastolliset testit - varianssianalyysi - aikasarja-analyysi - faktorianalyysi - todennäköisyysjakaumat Nag ( Vielä laajempi kuin IMSL. Kirjaston mukana esimerkkiohjelma jokaisen aliohjelman käytöstä.
4 Rinnakkaislaskentaa Ohjelman toimintaa voidaan nopeuttaa suorittamalla useita asioita samanaikaisesti eri prosessoreilla. Tällaiseen laskentaan liittyy aivan omat ongelmansa, kuten eri prosessien synkronointi. Asian yksityiskohtainen käsittely ei kuulu tälle kurssille, sillä rinnakkaislaskennan tehokas käyttö edellyttää jo kohtalaista ohjelmointikokemusta. (Huonosti toteutettu rinnakkaistaminen voi jopa hidastaa ohjelman suoritusta!) Siksi tässä käsitelläänkin vain lyhyesti joitakin peruskäsitteitä. Monet peruskäsitteet liittyvät jo yhden prosessorin moniajoympäristöön, jossa eri prosessit saavat prosessorilta satunnaisia aikaviipaleita. Siksi seuraavassa ei erityisemmin erotella prosessia ja proasessoria. Algoritmisissa kielissa lauseiden suoritusjärjestys on tarkasti määrätty. Järjestyksellä ei kuitenkaan aina ole merkitystä. do i=1,100 a(i) = i end do Tässä silmukan kierrokset ovat toisistaan riippumattomia, joten ne voitaisiin suorittaa missä järjestyksessä tahansa. Toisistaan riippumattomat lauseet voidaan hajauttaa suoritettavaksi eri prosessoreilla. SISD = Single Instruction Single Data, perinteinen arkkitehtuuri SIMD = Single Instruction Multiple Data, suoritetaan sama ohjelman osa eri tiedoille (esimerkiksi taulukon alkioille, kuten vektoriprosessoreissa) MIMD = Multiple Instruction Multiple Data, Eri prosessorit voivat suorittaa eri ohjelmia eri datalle SMP = Symmetric MultiProcessor, Eri prosessoreilla on yhteinen keskusmuisti MMP = Massively Parallel Processor, Kullakin prosessorilla on oma muistinsa
5 Vaikeuksia Ohjelmointi on paljon mutkikkaampaa kuin yhden prosessorin tapauksessa. Rinnakkaisten osien suoritusjärjestys voi vaihdella satunnaisella tavalla. Suoritus synkronoitava tarvittaessa. Kaikkia eri järjestyksiä mahdotonta testata. Miten taata, ettei mikään suoritusjärjestys johda virhetilanteeseen? Varmistettava, ettei useampi prosessori yritä muuttaa samaa muuttujaa samaan aikaan. Eri prosessorit saattavat jäädä odottamaan toisiaan, jolloin ohjelma ei pääse jatkumaan (deadlock).
6 Amdahlin laki: suoritus nopeutuu kertoimella s = 1 1 v + v, k missä k on prosessorien määrä ja v rinnakkaistuvan koodin osuus. 10 s k = 10 5 k = V/T Vektoroitumaton / rinnakkaistumaton osa koodia vaikuttaa merkittävästi suoritusaikaan.
7 Vektoriprosessori ei ole moniprosessorikone. Laskutoimitus voidaan jakaa vaiheisiin. Eri vaiheita voidaan suorittaa eri luvuille samaan aikaan. Ensimmäisen laskutoimituksen laskeminen vie normaalin ajan, mutta sen jälkeen uusi tulos valmistuu joka kellojaksolla (liukuhihnoitus, pipelining). Esimerkiksi taulukko-operaatio c = a+b: a(1) b(1) a(2) b(2) a(3) b(3) a(4) b(4) a(5) b(5) a(6) b(6) c(1) c(2) aika
8 Monet peruskäsitteet liittyvät jo yhden prosessorin moniajoympäristöön, jossa eri prosessit saavat prosessorilta satunnaisia aikaviipaleita. Seuraavassa ei erityisemmin erotella prosessia ja proasessoria. ıkriittinen alue on ohjelman osa, jota vain yksi prosessi kerrallaan saa suorittaa. Esimerkiksi usea prosessi voi päivittää samaa tietorakennetta. Samanaikaiset päivitykset on estettävä. Esimerkiksi lukko, kokonaisluku (0=auki, 1=kiinni): LOCK(s) kriittinen alue UNLOCK(s) LOCK jää odottamaan, kunnes muuttuja on 0. Muuttujan arvon testaus ja asetus on toteutettava jakamattomana operaationa, jota ei voi keskeyttää. Konekielissä on yleensä tarkoitukseen sopiva käsky. Aktiivinen odotus: prosessi testaa lukkoa jatkuvasti, kunnes pääsee jatkamaan suoritusta.
9 Kriittinen alue voidaan suojata myös ısemaforilla. Semafori on tietorakenne, jossa on kokonaisluku ja jono suoritusta odottaville prosesseille. Semaforia voidaan käsitellä Dijkstran P- ja V-operaatioilla. P(sem): if (sem == 1) sem = 0 else jaa jonoon odottamaan V(sem): if (jonossa semaforia odottavia prosesseja) kaynnist jonosta seuraava prosessi else sem = 1 P ja V itse toteutettava jakamattomina operaatioina eli kriittisinä alueina. Odottamaan jäänyt prosessi ei kuluta prosessoriaikaa. Kun krittinen alue vapautuu, prosessi siirtyy ready-jonoon eli on valmiina jatkamaan suoritusta.
10 Synkronointi Moniprosesstoriarkkitehtuurissa ohjelman toisistaan riippumattomat osat voidaan suorittaa samaan aikaan eri prosessoreilla. a = sin(x) b = sqrt(x) c = a + b Kaksi ensimmäistä lausetta voidaan suorittaa samanaikaisesti. Kolmas lause voidaan suorittaa vasta, kun edellisten suoritus on päättynyt. Muuten tulos on satunnainen riippuen siitä, onko muuttujien a ja b arvot ja muutettu. Tarvitaan ısynkronointia, jolla varmistetaan, että hajautetun ohjelman haarat ovat päättyneet ennen niistä riippuvan ohjelman osan aloitusta.
11 Prosessit voivat kommunikoida keskenään lähettämällä viestejä. ohjelma 1: tuota dataa signal(valmista)... ohjelma 2:... wait(valmista) kuluta dataa... Ohjelma 2 jää odottamaan, kunnes se saa halutun viestin.
12 Riippuvuudet Ohjelman lauseiden väliset riippuvuudet rajoittavat rinnakkaistamista do i=2,100 a(i) = a(i-1)+1 end do Taulukon kukin alkio riippuu edellisellä kierroksella lasketusta. Kyseessä ırekursio, joka estää rinnakkaistamisen (ja vektoroinnin). Seuraava vektoroituu, koska silmukka ei riipu aikaisemmilla kierroksilla lasketuista tuloksista. do i=1,100 a(i) = a(i+1)+1 end do Rinnakkaistaminen ei onnistu ilman lisäehtoja. Seuraavassa ei ole mitään riippuvuutta: do i=1,100 a(i) = a(i+100)+1 end do
13 Kääntäjä pystyy havaitsemaan monet riippuvuudet automaattisesti. Mikäli riippuvuus on mahdollinen, silmukkaa ei vektoroida / rinnakkaisteta. Seuraavassa riippuvuutta ei voi päätellä, koska se riippuu muuttujan n arvosta: do i=1,100 a(i) = a(i+n)+1 end do Kääntäjälle voi kertoa direktiiveillä, että silmukan voi turvallisesti vektoroida / rinnakkaistaa. Direktiivit ovat tietyn muotoisia kommentteja, joten ne eivät vaikuta ohjelman kääntämiseen muissa ympäristöissä. Monilla laitevalmistajilla on omia kääntäjiä, joita ohjataan niiden omilla direktiiveillä. Tarkistettava erikseen kunkin kääntäjän manuaalista.
14 HPF High Performance Fortran on datarinnakkaiseen laskentaan (SIMD) tarkoitettu Fortranin laajennus. Itse kieleen liittyviä muutoksia (kuten forall-lause) on mukana jo F95:ssä. Mielivaltaisten ohjelman osien suorittaminen rinnakkain ei ole mahdollista. Toimintaa ohjataan direktiiveillä: real, dimension(1000):: a!hpf$ DISTRIBUTE a (BLOCK) do i=1,1000 a(i)=sqrt(i/1000.0) end do Tämä antaa ohjeen jakaa taulukko a samankokoisiin lohkoihin eri prosessoreille. Lohkon koko voidaan ilmoittaa:!hpf$ DISTRIBUTE (BLOCK(200)) :: a Taulukon alkiot voidaan jakaa myös syklisesti, jolloin präkkäiset alkiot joutuvat aina eri prosessoreille:!hpf$ DISTRIBUTE a (CYCLIC)
15 Prosessorien määrä voidaan määritellä direktiivillä PROCESSORS: real, dimension(1000) :: a!hpf$ PROCESSORS procs(10)!hpf$ DISTRIBUTE (BLOCK) ONTO procs :: a 10 prosessoria, joista procs(1):n muistiin talletetaan alkiot a(1:100) jne. Direktiivillä voidaan myös määritellä, miten prosessorit on kytketty toisiinsa (eli topologia).
16 Direktiivillä ALIGN voidaan varmistaa, että eri taulukot jaetaan samalla tavoin eri prosessorien kesken: real, dimension(1000) :: a, b, c, d!hpf$ DISTRIBUTE a(block)!hpf$ ALIGN WITH a :: b, c a = b+c!hpf$ ALIGN WITH a(1) :: d(10) d(10:1000) = a(1:991) Taulukot kannattaa kohdistaa niin, että laskutoimitukset operoivat samalla prosessorilla oleviin taulukoihin, jolloin ei tarvita tiedon siirtoa eri prosessorien muistien välillä.
17 Jos silmukassa on funktiokutsu, sillä saattaa olla sivuvaikutuksia, jolloin silmukkaa ei voi rinnakkaistaa: do i=1,100 a(i) = funk(b(i)) end do Funktiolle voidaan antaa määre pure, jolloin sillä ei saa olla sivuvaikutuksia, ja silmukan voi rinnakkaistaa. Mahdollinen F95:ssä. pure function funk(x) real, intent(in) :: x real :: funk funk = sqrt(sin(x)) end function Direktiivillä independent voidaan ilmoittaa, että silmukan kierrokset ovat toisistaan riippumattomia:!hpf$ INDEPENDENT do i=1,100 a(i) = a(i+n)+1 end do
18 MPI Message-Passing Interface on standardoitu viestinvälityskirjasto. Eri prosessoreilla toimivat ohjelmat välittävät toisilleen viestejä. Viesteillä voidaan siirtää dataa ja synkronoida ohjelmat. Seuraava esimerkki on CSC:n MPI-oppaasta. Samasta ohjelmasta käynnistetään kopiot useilla eri prosessoreilla. PROGRAM esimerkki IMPLICIT NONE INCLUDE mpif.h INTEGER, PARAMETER :: tag = 50 INTEGER :: id, ntasks, source_id, & dest_id, rc, i INTEGER, DIMENSION(MPI_STATUS_SIZE) :: status INTEGER, DIMENSION(2) :: msg CALL MPI_INIT(rc) IF (rc /= MPI_SUCCESS) THEN WRITE(*,*) MPI initialization failed STOP END IF CALL MPI_COMM_SIZE(MPI_COMM_WORLD, ntasks, rc) CALL MPI_COMM_RANK(MPI_COMM_WORLD, id, rc) IF (id /= 0) THEN msg(1) = id msg(2) = ntasks dest_id = 0 CALL MPI_SEND(msg, 2, MPI_INTEGER, dest_id, & tag, MPI_COMM_WORLD, rc) ELSE DO i = 1, ntasks-1 CALL MPI_RECV(msg, 2, MPI_INTEGER, & MPI_ANY_SOURCE, tag, & MPI_COMM_WORLD, status, rc) source_id = status(mpi_source) WRITE(*,*) message:, msg, sender:, source_id END DO END IF CALL MPI_FINALIZE(rc) END PROGRAM
19 Kaikissa kutsuissa viimeinen parametri (esimerkissä rc) on paluukoodi, joka ilmoittaa, onnistuiko toimenpide. Arvo on MPI SUCCESS, jos kaikki kunnossa. MPI INIT) alustaa rinnakkaistyön. MPI FINALIZE lopettaa rinnakkaisen osan. CALL MPI COMM SIZE ilmoittaa, kuinka monta prosessia työn käytössä on. CALL MPI COMM RANK ilmoittaa kutsuvan prosessin järjestysnumeron. MPI SEND lähettää viestin toiselle prosessille. MPI RECV odottaa, kunnes saa halutun viestin toiselta prosessilta. SEND ja RECV ovat pysähtyviä (blocking): aliohjelmakutsusta palataan jatkamaan suoritusta vasta, kun koko viesti on siirretty. On myös pysähtymättömät versiot, jolloin suoritus jatkuu välittömästi. Nopeampaa, mutta synkronoinnista on huolehdittava erikseen. Kahden prosessin välillä suoraan välitetyt viestit saapuvat aina samassa järjestyksessä kuin ne on lähetetty. Jos viesti kulkee useamman prosessin kautta, järjestys ei välttämättä säily.
20 MPI REDUCE kokoaa samanttyyppisen tiedon kaikilta prosesseilta ja suorittaa niille jonkin operaation. Esimerkiksi eri prosessir voivat laskea sarjakehitelmän palasia, jotka kootaan yhteen ja lasketaan niiden summa. MPI BCAST (broadcast) lähettää saman tiedon kaikille prosesseille. MPI SCATTER lähettää eri dataa eri prosesseille. Tyypillinen käyttö taulukon osien jakelu prosesseille. MPI GATHER edelliselle käänteinen operaatioa; esimerkiksi kerätään yhteen taulukon palaset eri prosesseilta. MPI BARRIER synkronointirutiini; prosessit jäävät odottamaan, kunnes kaikki niistä ovat päässeet tähän kohtaan.
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ätiedotRinnakkaisuus. 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ätiedotTIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne
Lisätiedot2) Aliohjelma, jonka toiminta perustuu sivuvaikutuksiin: aliohjelma muuttaa parametrejaan tai globaaleja muuttujia, tulostaa jotakin jne.
Proseduurit Proseduuri voi olla 1) Funktio, joka palauttaa jonkin arvon: real function sinc(x) real x sinc = sin(x)/x... y = sinc(1.5) 2) Aliohjelma, jonka toiminta perustuu sivuvaikutuksiin: aliohjelma
Lisätiedot2 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ätiedotIDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit
IDL - proseduurit 25. huhtikuuta 2017 Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,
LisätiedotATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014
18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,
LisätiedotJohdatus 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ätiedotFortran 90/95. + sopii erityisesti numeriikkaan:
Fortran 90/95 + sopii erityisesti numeriikkaan: + optimoivat kääntäjät tehokas koodi + mukana valmiiksi paljon varusfunktioita + kompleksiluvut + taulukko-operaatiot + operaattorit laajennettavissa myös
LisätiedotIT K 1 45 K ä yt t öj ä rj estelmät
IT K 1 45 K ä yt t öj ä rj estelmät Tenttikysymyksiä ja vastauksia Aliohjelman suoritusperiaate, ts. selvitä pinon käyttö ja paluuarvon välittäminen (3p) 1. Ennen aliohjelman aloittamista kutsuja tallettaa
LisätiedotYhtälön ratkaiseminen
Yhtälön ratkaiseminen Suora iterointi Kirjoitetaan yhtälö muotoon x = f(x). Ensin päätellään jollakin tavoin jokin alkuarvo x 0 ja sijoitetaan yhtälön oikealle puolelle, jolloin saadaan tarkennettu ratkaisu
LisätiedotRinnakkaisuuden 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ätiedotRinnakkaistietokoneet luento S
Rinnakkaistietokoneet luento 2 521475S Tietokonealgoritmien rinnakkaisuuden analysointi Algoritmi on proseduuri, joka koostuu äärellisestä joukosta yksiselitteisiä sääntöjä jotka muodostavat operaatiosekvenssin,
LisätiedotTIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne
LisätiedotJuha Merikoski. Jyväskylän yliopiston Fysiikan laitos Kevät 2009
FYSP120 FYSIIKAN NUMEERISET MENETELMÄT Juha Merikoski Jyväskylän yliopiston Fysiikan laitos Kevät 2009 1 Kurssin sisältö JOHDANTOA, KÄSITTEITÄ, VÄLINEITÄ [1A] Laskennallista fysiikkaa [1B] Matlabin alkeita
LisätiedotAlgoritmit 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ätiedotNumeeriset menetelmät
Numeeriset menetelmät Luento 3 Ti 13.9.2011 Timo Männikkö Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 1/37 p. 1/37 Epälineaariset yhtälöt Newtonin menetelmä: x n+1 = x n f(x n) f (x n ) Sekanttimenetelmä:
LisätiedotOngelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten,
Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten, että se pystyy suorittamaan kaikki mahdolliset algoritmit?
LisätiedotMatematiikka B2 - TUDI
Matematiikka B2 - TUDI Miika Tolonen 3. syyskuuta 2012 Miika Tolonen Matematiikka B2 - TUDI 1 Kurssin sisältö (1/2) Matriisit Laskutoimitukset Lineaariset yhtälöryhmät Gaussin eliminointi Lineaarinen riippumattomuus
LisätiedotBJ30A1000 Kemiantekniikan tietotekniikka Fortran
BJ30A1000 Kemiantekniikan tietotekniikka Fortran Kimmo Klemola 21.04.2008 April 18, 2008 Kimmo Klemola 1 Fortran johdatusta Fortran-ohjelmointiin Materiaalina käytetty mm. CSC:n Fortran 90/95 opasta (Haataja,
Lisätiedot815338A 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ätiedot5. 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ätiedotStrukturoitu ohjelmointi
Strukturoitu ohjelmointi - top-down -ohjelmointi - asteittainen tarkentaminen (stepwise refinement) - rajoitetut kontrollirakenteet - bottom up -ohjelmointi (Naur: action clusters), virtuaalikoneen idea:
LisätiedotConcurrency - 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ätiedot811120P Diskreetit rakenteet
811120P Diskreetit rakenteet 2018-2019 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen
LisätiedotMatematiikka B2 - Avoin yliopisto
6. elokuuta 2012 Opetusjärjestelyt Luennot 9:15-11:30 Harjoitukset 12:30-15:00 Tentti Kurssin sisältö (1/2) Matriisit Laskutoimitukset Lineaariset yhtälöryhmät Gaussin eliminointi Lineaarinen riippumattomuus
LisätiedotValitse ruudun yläosassa oleva painike Download Scilab.
Luku 1 Ohjeita ohjelmiston Scilab käyttöön 1.1 Ohjelmiston lataaminen Ohjeet ohjelmiston lataamiseen Windows-koneelle. Mene verkko-osoitteeseen www.scilab.org. Valitse ruudun yläosassa oleva painike Download
Lisätiedot811120P Diskreetit rakenteet
811120P Diskreetit rakenteet 2016-2017 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen
LisätiedotJaetun 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ätiedotD B. Levykön rakenne. pyöriviä levyjä ura. lohko. Hakuvarsi. sektori. luku-/kirjoituspää
Levyn rakenne Levykössä (disk drive) on useita samankeskisiä levyjä (disk) Levyissä on magneettinen pinta (disk surface) kummallakin puolella levyä Levyllä on osoitettavissa olevia uria (track), muutamasta
LisätiedotCUDA. 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ätiedotA 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ätiedotChapel. TIE Ryhmä 91. Joonas Eloranta Lari Valtonen
Chapel TIE-20306 Ryhmä 91 Joonas Eloranta Lari Valtonen Johdanto Chapel on Amerikkalaisen Cray Inc. yrityksen kehittämä avoimen lähdekoodin ohjelmointikieli. Chapel on rinnakkainen ohjelmointikieli, joka
LisätiedotLIITE. asiakirjaan. komission delegoitu asetus
EUROOPAN KOMISSIO Bryssel 12.10.2015 C(2015) 6823 final ANNEX 1 PART 6/11 LIITE asiakirjaan komission delegoitu asetus kaksikäyttötuotteiden vientiä, siirtoa, välitystä ja kauttakulkua koskevan yhteisön
LisätiedotTietorakenteet 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ätiedotInsinöörimatematiikka D
Insinöörimatematiikka D M. Hirvensalo mikhirve@utu.fi V. Junnila viljun@utu.fi A. Lepistö alepisto@utu.fi Matematiikan ja tilastotieteen laitos Turun yliopisto 2016 M. Hirvensalo V. Junnila A. Lepistö
LisätiedotRINNAKKAISOHJELMOINTI MPI:LLÄ
RINNAKKAISOHJELMOINTI MPI:LLÄ JUHA HAATAJA JA KAJ MUSTIKKAMÄKI CSC TIETEELLINEN LASKENTA OY Tämän teoksen tekijänoikeudet kuuluvat CSC Tieteellinen laskenta Oy:lle. Teoksen tai osia siitä voi kopioida
Lisätiedot815338A 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ätiedotTietorakenteet 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ätiedotOppimistavoitteet 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ätiedotTutoriaaliläsnäoloista
Tutoriaaliläsnäoloista Tutoriaaliläsnäolokierroksella voi nyt täyttää anomuksen läsnäolon merkitsemisestä Esim. tagi ei toiminut, korvavaltimon leikkaus, yms. Hyväksyn näitä omaa harkintaa käyttäen Tarkoitus
LisätiedotZeon PDF Driver Trial
Matlab-harjoitus 2: Kuvaajien piirto, skriptit ja funktiot. Matlabohjelmoinnin perusteita Numeerinen integrointi trapezoidaalimenetelmällä voidaan tehdä komennolla trapz. Esimerkki: Vaimenevan eksponentiaalin
LisätiedotSisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä
Sisällys 11. Javan toistorakenteet Laskuri- ja lippumuuttujat.. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin lopettaminen break-lauseella.
LisätiedotHieman linkkejä: http://cs.stadia.fi/~kuivanen/linux/kom.php, lyhyt ohje komentoriviohjelmointiin.
Linux-harjoitus 9 Linuxin mukana tulevat komentotulkit (mm. bash, tcsh, ksh, jne ) sisältävät ohjelmointikielen, joka on varsin tehokas ja ilmaisuvoimainen. Tähän yhdistettynä unix-maailmasta tutut tehokkaat
Lisätiedot1 Matriisit ja lineaariset yhtälöryhmät
1 Matriisit ja lineaariset yhtälöryhmät 11 Yhtälöryhmä matriisimuodossa m n-matriisi sisältää mn kpl reaali- tai kompleksilukuja, jotka on asetetettu suorakaiteen muotoiseksi kaavioksi: a 11 a 12 a 1n
LisätiedotMonitorit. Monitori Synkronointimenetelmiä Esimerkkejä. Andrews , Stallings 5.5
Monitorit Monitori Synkronointimenetelmiä Esimerkkejä Andrews 5.1-5.2, Stallings 5.5 Tavoite Minimoi virhemahdollisuuksia poissulkeminen ohjelmoijan vastuulla P():t ja V():t siellä, täällä ja tuolla -
LisätiedotMonitorit. Tavoite. Monitori Synkronointimenetelmiä Esimerkkejä. Andrews , Stallings 5.5. Minimoi virhemahdollisuuksia
Monitorit Monitori Synkronointimenetelmiä Esimerkkejä Andrews 5.1-5.2, Stallings 5.5 Tavoite Minimoi virhemahdollisuuksia poissulkeminen ohjelmoijan vastuulla P():t ja V():t siellä, täällä ja tuolla -
LisätiedotSisä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ätiedotMuuttujien roolit Kiintoarvo cin >> r;
Muuttujien roolit Muuttujilla on ohjelmissa eräitä tyypillisiä käyttötapoja, joita kutsutaan muuttujien rooleiksi. Esimerkiksi muuttuja, jonka arvoa ei muuteta enää kertaakaan muuttujan alustamisen jälkeen,
LisätiedotDatahajautettu 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ätiedotTAMPEREEN TEKNILLINEN YLIOPISTO
TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja Tietokonetekniikan laitos TKT-3200 Tietokonetekniikka ASSEMBLER: QSORT 11.08.2010 Ryhmä 00 nimi1 email1 opnro1 nimi2 email2 opnro2 nimi3 email3 opnro3 1. TEHTÄVÄ
LisätiedotOngelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön?
Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön? 2013-2014 Lasse Lensu 2 Systeemiohjelmat ovat tietokoneen laitteistoa lähellä olevia ohjelmia,
LisätiedotLineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus
Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus 1 / 51 Lineaarikombinaatio Johdattelua seuraavaan asiaan (ei tarkkoja määritelmiä): Millaisen kuvan muodostaa joukko {λv λ R, v R 3 }? Millaisen
LisätiedotStabiloivat synkronoijat ja nimeäminen
Stabiloivat synkronoijat ja nimeäminen Mikko Ajoviita 2.11.2007 Synkronoija Synkronoija on algoritmi, joka muuntaa synkronoidun algoritmin siten, että se voidaan suorittaa synkronoimattomassa järjestelmässä.
Lisätiedot3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä
1 3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä Lineaarinen m:n yhtälön yhtälöryhmä, jossa on n tuntematonta x 1,, x n on joukko yhtälöitä, jotka ovat muotoa a 11 x 1 + + a 1n x n = b 1 a
LisätiedotAlgoritmit 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ätiedot815338A Ohjelmointikielten periaatteet 2014-2015. Harjoitus 7 Vastaukset
815338A Ohjelmointikielten periaatteet 2014-2015. Harjoitus 7 Vastaukset Harjoituksen aiheena on funktionaalinen ohjelmointi Scheme- ja Haskell-kielillä. Voit suorittaa ohjelmat osoitteessa https://ideone.com/
LisätiedotLOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100
Tiedonsiirtokäskyt LOAD LOAD-käsky toimii jälkimmäisestä operandista ensimmäiseen. Ensimmäisen operandin pitää olla rekisteri, toinen voi olla rekisteri, vakio tai muistiosoite (myös muuttujat ovat muistiosoitteita).
LisätiedotMatriisilaskenta. Harjoitusten 3 ratkaisut (Kevät 2019) 1. Olkoot AB = ja 2. Osoitetaan, että matriisi B on matriisin A käänteismatriisi.
Matriisilaskenta Harjoitusten ratkaisut (Kevät 9). Olkoot ja A = B = 5. Osoitetaan, että matriisi B on matriisin A käänteismatriisi. Tapa Käänteismatriisin määritelmän nojalla riittää osoittaa, että AB
LisätiedotIntel 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ätiedotS Laskennallinen Neurotiede
S-114.3812 Laskennallinen Neurotiede Laskuharjoitus 3 8.12.2006 Heikki Hyyti 60451P Tehtävä 2 Tehtävässä 2 piti tehdä 100 hermosolun assosiatiivinen Hopfield-muistiverkko. Verkko on rakennettu Matlab-ohjelmaan
LisätiedotOhjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan.
Osoittimet Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan. Muistilohkon koko riippuu muuttujan tyypistä, eli kuinka suuria arvoja muuttujan
LisätiedotOhjelmien analysointi. ER-kaaviot
Ohjelmien analysointi Ohjelmien kuvaaminen kaavioilla ohjelmien ymmärtäminen kaavioiden avulla kaavioiden tuottaminen ohjelmasta Erilaisia kaaviotyyppejä: ER-kaaviot, tilakaaviot, UML-kaaviot tietohakemisto
Lisätiedot811120P Diskreetit rakenteet
811120P Diskreetit rakenteet 2016-2017 4. Joukot, relaatiot ja funktiot Osa 3: Funktiot 4.3 Funktiot Olkoot A ja B joukkoja. Funktio joukosta A joukkoon B on sääntö, joka liittää yksikäsitteisesti määrätyn
LisätiedotKiertokysely. Sulautetut järjestelmät Luku 2 Sivu 1 (??)
Sulautetut järjestelmät Luku 2 Sivu 1 (??) Kiertokysely Perinteiset ohjelmointikielet kuten C tukevat hyvin sekventiaalista ohjelmointia, jossa herätteisiin reagointi on helppoa toteuttaa pollauksella
LisätiedotKoottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.
2. Ohjausrakenteet Ohjausrakenteiden avulla ohjataan ohjelman suoritusta. peräkkäisyys valinta toisto Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet
LisätiedotBM20A0700, Matematiikka KoTiB2
BM20A0700, Matematiikka KoTiB2 Luennot: Matti Alatalo, Harjoitukset: Oppikirja: Kreyszig, E.: Advanced Engineering Mathematics, 8th Edition, John Wiley & Sons, 1999, luku 7. 1 Kurssin sisältö Matriiseihin
Lisätiedot4. 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ätiedotSIMULINK S-funktiot. SIMULINK S-funktiot
S-funktio on ohjelmointikielellä (Matlab, C, Fortran) laadittu oma algoritmi tai dynaamisen järjestelmän kuvaus, jota voidaan käyttää Simulink-malleissa kuin mitä tahansa valmista lohkoa. S-funktion rakenne
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 11: Rinnakkaisuus Riku Saikkonen (osa kalvoista on suoraan ei-laajan kurssin luennoista) 25. 4. 2012 Sisältö 1 Rinnakkaisuusmalleja: säie ja prosessi 2
LisätiedotNumeerinen integrointi
Numeerinen integrointi Analyyttisesti derivointi triviaalia, integrointi vaikeaa. Numeerisesti laskettaessa tilanne on päinvastainen. Integrointi on yhteenlaskua, joka on tasoittava operaatio: lähtötietojen
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print
LisätiedotITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 7. huhtikuuta 2017 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille. Kirjoittamasi luokat, funktiot ja aliohjelmat
LisätiedotTAMPEREEN TEKNILLINEN YLIOPISTO
TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja Tietokonetekniikan laitos TKT-3200 Tietokonetekniikka ASSEMBLER: QSORT 06.09.2005 Ryhmä 00 nimi1 email1 opnro1 nimi2 email2 opnro2 nimi3 email3 opnro3 1. TEHTÄVÄ
LisätiedotAlgoritmit 1. Luento 11 Ti Timo Männikkö
Algoritmit 1 Luento 11 Ti 14.2.2017 Timo Männikkö Luento 11 Algoritminen ongelmanratkaisu Osittaminen Lomituslajittelu Lomituslajittelun vaativuus Rekursioyhtälöt Pikalajittelu Algoritmit 1 Kevät 2017
LisätiedotAlgoritmit 1. Luento 10 Ke Timo Männikkö
Algoritmit 1 Luento 10 Ke 14.2.2018 Timo Männikkö Luento 10 Algoritminen ongelmanratkaisu Suunnittelumenetelmät Raaka voima Järjestäminen eli lajittelu Kuplalajittelu Lisäyslajittelu Valintalajittelu Permutaatiot
LisätiedotRinnakkaistietokoneet 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ätiedot815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 6 Vastaukset Harjoituksen aiheena on funktionaalinen ohjelmointi Scheme- ja Haskell-kielillä. Voit suorittaa ohjelmat osoitteessa https://ideone.com/
LisätiedotYleisen 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ätiedotMuuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus)
VISUAL BASIC OHJEITA Kutsuttava ohjelma alkaa kometoparilla Sub... End Sub Sub ohjelmanimi()...koodia... End Sub Muuttujat Muuttujan esittely Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency,
LisätiedotOhjelmoinnin 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ätiedotTIES542 kevät 2009 Yhteismuistisamanaikaisuus
TIES542 kevät 2009 Yhteismuistisamanaikaisuus Antti-Juhani Kaijanaho 9. maaliskuuta 2009 Tehtävät ovat samanaikaiset (engl. concurrent), jos ne etenevät yhtä aikaa samalla toistensa kanssa kommunikoiden.
Lisätiedot3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä
3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä Lineaarinen m:n yhtälön yhtälöryhmä, jossa on n tuntematonta x 1,, x n on joukko yhtälöitä, jotka ovat muotoa a 11 x 1 + + a 1n x n = b 1 a 21
LisätiedotAlgoritmit 2. Luento 8 To Timo Männikkö
Algoritmit 2 Luento 8 To 4.4.2019 Timo Männikkö Luento 8 Algoritmien analysointi Algoritmien suunnittelu Rekursio Osittaminen Rekursioyhtälöt Rekursioyhtälön ratkaiseminen Master-lause Algoritmit 2 Kevät
LisätiedotC-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa.
Taulukot C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa. Taulukon muuttujilla (muistipaikoilla) on yhteinen nimi. Jokaiseen yksittäiseen
Lisätiedot4. 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ätiedotMS-C1340 Lineaarialgebra ja differentiaaliyhtälöt
MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt Matriisinormi, häiriöalttius Riikka Kangaslampi Matematiikan ja systeemianalyysin laitos Aalto-yliopisto 2015 1 / 14 R. Kangaslampi matriisiteoriaa Matriisinormi
Lisätiedot8 KANNAT JA ORTOGONAALISUUS. 8.1 Lineaarinen riippumattomuus. Vaasan yliopiston julkaisuja 151
Vaasan yliopiston julkaisuja 151 8 KANNAT JA ORTOGONAALISUUS KantaOrthogon Sec:LinIndep 8.1 Lineaarinen riippumattomuus Lineaarinen riippumattomuus on oikeastaan jo määritelty, mutta kirjoitamme määritelmät
LisätiedotTietotyypit ja operaattorit
Tietotyypit ja operaattorit Luennossa tarkastellaan yksinkertaisten tietotyyppien int, double ja char muunnoksia tyypistä toiseen sekä esitellään uusia operaatioita. Numeeriset tietotyypit ja muunnos Merkkitieto
LisätiedotVerkon värittämistä hajautetuilla algoritmeilla
Verkon värittämistä hajautetuilla algoritmeilla 5 12 30 19 72 34 Jukka Suomela 15 77 18 4 9. tammikuuta 2012 19 2 68 Verkko 2 Verkko solmu 3 Verkko solmu kaari 4 Hajautettu järjestelmä solmu (tietokone)
LisätiedotMS-A0004/MS-A0006 Matriisilaskenta Laskuharjoitus 6 / vko 42
MS-A0004/MS-A0006 Matriisilaskenta Laskuharjoitus 6 / vko 42 Tehtävät 1-4 lasketaan alkuviikon harjoituksissa ryhmissä, ja ryhmien ratkaisut esitetään harjoitustilaisuudessa (merkitty kirjaimella L = Lasketaan).
LisätiedotADA. Ohjelmointikieli. Ryhmä 5 Henna Olli, Päivi Hietanen
ADA Ohjelmointikieli Ryhmä 5 Henna Olli, Päivi Hietanen 1 JOHDANTO Ada on käännettävä ohjelmointikieli, joka kehitettiin vähentämään sulautettujen ja reaaliaikaisten järjestelmien käyttökustannuksia. Kieli
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 16.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 16.2.2010 1 / 41 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti
Lisätiedot11. Javan toistorakenteet 11.1
11. Javan toistorakenteet 11.1 Sisällys Laskuri- ja lippumuuttujat. Sisäkkäiset silmukat. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 3.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 3.2.2010 1 / 36 Esimerkki: asunnon välityspalkkio Kirjoitetaan ohjelma, joka laskee kiinteistönvälittäjän asunnon
LisätiedotSolidity ä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ätiedotS-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ätiedotNumeeriset menetelmät
Numeeriset menetelmät Luento 2 To 8.9.2011 Timo Männikkö Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 1/33 p. 1/33 Lukujen tallennus Kiintoluvut (integer) tarkka esitys aritmeettiset operaatiot
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CSE-A1111 30.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 30.9.2015 1 / 27 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.
LisätiedotAlkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)
Alkuarvot ja tyyppimuunnokset (1/5) Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int luku = 123; Alkuarvon on oltava muuttujan tietotyypin mukainen, esimerkiksi int-muuttujilla kokonaisluku,
Lisätiedot