Rinnakkaistietokoneet luento 1 521475S



Samankaltaiset tiedostot
Rinnakkaistietokoneet luento S

Rinnakkaistietokoneet luento S

Rinnakkaistietokoneet luento S

Rinnakkaistietokoneet luento S

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

Oppimistavoitteet kurssilla Rinnakkaisohjelmointi

Algoritmit 1. Luento 1 Ti Timo Männikkö

n! k!(n k)! n = Binomikerroin voidaan laskea pelkästään yhteenlaskun avulla käyttäen allaolevia ns. palautuskaavoja.

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

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

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

Luento 1 Tietokonejärjestelmän rakenne

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

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

Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla

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

Luento 1 Tietokonejärjestelmän rakenne

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

Algoritmit 1. Luento 2 Ke Timo Männikkö

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

Verkon värittämistä hajautetuilla algoritmeilla

LIITE. asiakirjaan. komission delegoitu asetus

CUDA. Moniydinohjelmointi Mikko Honkonen

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

Algoritmit 2. Luento 1 Ti Timo Männikkö

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen,

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

Chapel. TIE Ryhmä 91. Joonas Eloranta Lari Valtonen

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

2 Konekieli, aliohjelmat, keskeytykset

1. Keskusyksikön rakenne

Tietokoneen rakenne: Harjoitustyö. Motorola MC prosessori

Algoritmit 1. Luento 3 Ti Timo Männikkö

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

811312A Tietorakenteet ja algoritmit I Johdanto

SISÄLLYS sisällys 1 Tietokoneen toimintaperiaate ja käyttö 2 Tietokoneen historia 3 Tietokoneen rakenteen ja toiminnan perusteet

Käyttöjärjestelmän rakenne

Juha Merikoski. Jyväskylän yliopiston Fysiikan laitos Kevät 2009

Tietokone. Tietokone ja ylläpito. Tietokone. Tietokone. Tietokone. Tietokone

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

Pikaintro käyttöjärjestelmiin

Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten,

etunimi, sukunimi ja opiskelijanumero ja näillä

Tekoäly muuttaa arvoketjuja

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

Kombinatorisen logiikan laitteet

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

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

Käyttöjärjestelmät: prosessit

Ohjelmasuoritusmalli ja sen käyttö

Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

Sulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä.

Rinnakkaisuus. Tarkastelemme, miten algoritmien suoritusta voi nopeuttaa käyttämällä useaa laskentayksikköä samanaikaisesti.

Tietorakenteet ja algoritmit - syksy

Luento 0: Kurssihallinto Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

Integrointialgoritmit molekyylidynamiikassa

TK Palvelinympäristö

811120P Diskreetit rakenteet

Älykännykät ovat pieneen tilaan paketoituja, mutta suuret ominaisuudet omaavia tietokoneita.

δ : (Q {q acc, q rej }) (Γ k {, }) Q (Γ k {, }) {L, R}.

Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun

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

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

AB TEKNILLINEN KORKEAKOULU

ABTEKNILLINEN KORKEAKOULU Tietoverkkolaboratorio

Intel Threading Building Blocks

C = P Q S = P Q + P Q = P Q. Laskutoimitukset binaariluvuilla P -- Q = P + (-Q) (-Q) P Q C in. C out

Luku 8. Aluekyselyt. 8.1 Summataulukko

GPU-laskennan optimointi

Algoritmit 2. Luento 13 Ti Timo Männikkö

Turingin koneen laajennuksia

AB TEKNILLINEN KORKEAKOULU

Moderneissa grafiikkakorteissa hyödynnetään myös samanlaista toimintamallia

TIES325 Tietokonejärjestelmä. Jani Kurhinen Jyväskylän yliopisto Tietotekniikan laitos

Agenda. Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu ohjelmointi

3. Laskennan vaativuusteoriaa

LUKUJA, DATAA KÄSITTELEVÄT FUNKTIOT JA NIIDEN KÄYTTÖ LOGIIKKAOHJAUKSESSA

11/20: Konepelti auki

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

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


Tehtävä 2: Tietoliikenneprotokolla

Korkean resoluution ja suuren kuva-alueen SAR

Ajattelemme tietokonetta yleensä läppärinä tai pöytäkoneena

1 Kannat ja kannanvaihto

Videon tallentaminen Virtual Mapista

Tietokoneen rakenne (2 ov / 4 op) Syksy 2007 Liisa Marttinen. Helsingin yliopisto Tietojenkäsittelytieteen laitos

Ongelma(t): Mihin perustuu tietokoneiden suorituskyky ja sen jatkuva kasvu? Mitkä tekijät rajoittavat suorituskyvyn parantamista ja mitkä niistä ovat

Laboratoriotyö. 1. Laitteisto. 1.1 Kamera

Luento 4: Liikkeen kuvausta, differentiaaliyhtälöt

Ongelma(t): Mihin perustuu tietokoneiden suorituskyky ja sen jatkuva kasvu? Mitkä tekijät rajoittavat suorituskyvyn parantamista ja mitkä niistä ovat

811312A Tietorakenteet ja algoritmit, , Harjoitus 3, Ratkaisu

Rinnakkaistietokoneet luento S

TEEMU ROOS (KALVOT MUOKATTU PATRIK HOYERIN LUENTOMATERIAALISTA)

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

Stabilointi. arvosana. arvostelija. Marja Hassinen

Teemun juustokakku Rekisterien, välimuistin, muistin, levymuistin ja magneettinauhan nopeudet suhteutettuna juuston hakuaikaan juustokakkua tehdessä?

Johdatus tekoälyyn. Luento : Koneoppiminen. Patrik Hoyer. [ Kysykää ja kommentoikaa luennon aikana! ]

Transkriptio:

Rinnakkaistietokoneet luento 1 521475S

Yleistä Luennnoitsija: Janne Haverinen huone: TS349 s-posti: janne.haverinen@oulu.fi puh: 553 2801 Assistentti: Jarno Haapamäki huone: TS354 s-posti: jarno.haapamaki@oulu.fi puh: 553 8998

Yleistä (jatkuu) Luennot: ma. klo. 14-17 (TS101) ti. klo. 16-16 (TS101) Laskuharjoitukset: to. klo. 12-14 (TS101) Kurssikirja: Dan I. Moldovan (1993), Parallel Processing: From Applications to System. Patterson D., Hennessy J. (1996), Computer Architecture: A Quantitative Approach.

Yleistä (jatkuu) Kotisivu: http://www.ee.oulu.fi/research/tklab/52475s /

Von Neumann malli (kts kuva 1.1) Von Neuman malli on hallinnut tietokonearkkitehtuureita yli 40 vuoden ajan: Yksi laskentayksikkö (CPU), joka on kommunikoi erillisen muistin kanssa väylän kautta Lineaarinen muisti jossa kiinteän kokoiset muistisolut lineaarinen muistimalli olettaa, että peräkkäiset käskyt ja dataelementit ovat peräkkäisissä muistiosoitteissa Konekielikäskyt, jotka suorittavat yksinkertaisia operaatioita data operandeille. Sekventiaalinen laskenta ja keskitetty ohjaus (CPU Central Processing Unit)

Kuva 1.1: von Neuman malli

Sekventiaalinen ja keskitetty laskenta on helppo toteuttaa ja laskennan eteneminen on helppo ymmärtää. Algoritmien toteutus on helppoa voidaan simuloida myös rinnakkaisia prosesseja, esimerkkinä soluautomaatit. Prosessorin ja muistin välinen tiedonsiirto on selkeästi määritetty: yksi osoitus vuorollaan. Sama korkeantason kielellä kirjoitettu ohjelma voidaan kääntää ja ajaa monella eri arkkitehtuurilla: laskennan perusperiaatteet ovat laitteiston organisaatoista riippumatta samat

RAM-malli (kts. kuva 1.2) Perinteinen yksiprosessorijärjestelmä voidaan ajatella satunnaisosoitus koneena (random-access machine) eli lyhyesti RAM. RAM malli on teoreettinen malli, jota voidaan hyödyntää algoritmin kehityksessä ja kompleksisuustutkimuksessa Tarjoaa lähtökohdan teoreettisille rinnakkaismalleille

Kuva 1.2: RAM malli

RAM-malli koostuu ohjelmasta, muistista, lukunauhasta (read-only tape) ja kirjoitusnauhasta Ohjelma koostuu sekventiaalisista käskyistä jotka haetaan muistista ohjelmalaskurin (PC) osoittamasta paikasta Ohjelma prosessoi syötenauhan symbooleja (yksi kerrallaan) ja tuottaa symbooleja tulostenauhalle. Sopivalla ohjelmalla ja syötesymbooleilla voidaan laskea mikä tahansa funktio: vastaus tulkitaan tulostenauhasta ohjelman lopetettua laskenna. Muistuttaa paljon Turingin konetta.

Pääasialliset keinot laajennettaessa von Neumann arkkitehtuuria kohti rinnakkaisarkkitehtuureita ovat: käskyjen likuhihnoitus vektoriprosessointi taulukkoprosessorit (SIMD) moniprosessoriarkkitehtuurit

Liukuhihnoitus Toiminto jaetaan eri alitoimintoihin jotka suoritetaan rinnakkaisissa vaiheissa (pipe stages) käskytason rinnakkaisuus (kuva 1.3a) Käskyn suorituksen eri vaiheet pyritään rinnakkaistamaan ALU-tason rinnakkaisuus (kuva 1.3b) ALU operaation (esim. liukulukujen kertolasku) eri vaiheet pyritään suorittamaan rinnakkain

Kuva 1.3:

Vektoriprosessorit Vektoriprosessorit prosessoivat tietoa vektori muodossa (kuva 1.4): operandit ovat vektoreita voidaan toteuttaa käyttämällä vektorin koon verran skalaari-aluja Tekee kovosta monimutkaiset liukuhihnoitus parempi ratkaisu Rinnakkaisia laskutoimituksia paljon (vektorin elementit) Ideaalinen tilanne liukuhihnalle: ei data riippuvuuksia joten data-hasardit harvinaisia Voidaan käyttä useita ALUja (< vektorin koko) Yksiprosessorijärjestelmään voidaan liittää vektoriapuprosessori tukemaan vektorilaskentaa

Kuva 1.4: vektoriprosessori

Taulukkoprosessorit Taulukkoprosessorissa (kuva 1.5) on useita erillisiä laskentayksiköitä, jotka voivat tehdä saman operaation yht aikaa niiden omalle datalle omasta muistista Keskusyksikkö synkronoi kaikki ALUt kontrollisignaalien avulla Sama käsky operoi useilla eri operandilla: SIMD (single instruction multiple data) tietokone Data-rinnakkainen (data parallel) malli

Kuva 1.5: taulukkoprosessoriarkkitehtuuri

Jaetun muistin moniprosessorit Useita keskusyksiköitä joilla oma ALU ja paikallinen muisti (LM) (kuva 1.6) Prosessorit kommunikoivat käyttäen: jaettua muistia (shared memory) (kuva 1.6), tai viestin välitystä (message passing), joka voidaan toteuttaa käyttäen erillistä tiedonsiirtolinkkiä (esim. sarjamuotoinen) Jokaisella prosessorilla on oma käskyvirta, joka sijaitsee paikallisessa tai jaetussa muistissa Moniprosessori järjestelmä on asynkrooninen arkkitehtuuri

Kuva 1.6: moniprosessoriorganisaatio

PRAM-malli PRAM-malli eli rinnakainen satunnaisosoituskone (parallel randomaccess machine) malli (kuva 1.7) Abstrahoi jaetun muistin moniprosessorijärjestelmän samalla tavalla kuin RAM malli yksiprosessorijärjestelmän

Kuva 1.7: PRAM malli

PRAM malli koostuu: p kpl ohjelmia p akkumulaattoria, yksi jokaiselle ohjelmalle jaettu muisti jota voidaan osoittaa jokaisesta ohjelmasta lukunauha ja kirjoitusnauha Jokainen ohjelma on eri ja kaikki käskyt vievät saman ajan Kommunikointi viive on 0

Muistinosoitus mahdollisuudet mallissa: EREW (exclusive read, exclusive write) ohjelmat eivät voi saman aikaisesti osoittaa samaa muistisolua ERCW (exclusive read, concurrent write) ohjelmat voivat kirjoittaa saman muistisolun yht aikaa CREW (concurrent read, concurrent write) ohjelmat voivat lukea saman muistisolun yht aikaa CRCW (concurrent read, concurrent write) ohjelmat voivat lukea ja/tai kirjoittaa solun yht aikaa

PRAM-malli on hyödyllinen, kun suunnitellaan rinnakkaisalgoritmeja jaetun muistin moniprosessorijärjestelmille ja tutkittaessa algoritmien ominaisuuksia

Viestinvälitysmoniprosessorijärjestelmä Useita keskusyksiköitä joilla oma ohjelma- ja datamuisti Tiedonvälitys prosessorien välillä tapahtuu käyttämällä erityistä tiedonsiirtoverkkoa Tietokoneverkko (esim. internet) voidaan ajatella viestinvälitysmoniprosessori arkkitehtuuriksi

Kuva 1.8: viestinvälitysmoniprosessorijärjestelmä

Muita von Neumann mallin laajennuksia Systoliset prosessorit Datavuo prosessorit Logiikka-päättely mallit (deduktio/induktio mallit) Reduktiomallit (vaatimuslähtöinen, demand driven) Neuroverkot

Systolinen laskenta (kts. kuva 1.9) Systoliset taulukot ovat likuhihnoitettuja taulukkoprosessoreita koostuen samanlaisista soluista (kuva 1.10), jotka suorittavat yksinkertaisia operaatioita Tieto liikkuu solusta toiseen missä arvo päivitetään huomioiden edellisen solun laskema tulos Lopulta vastaus saadaan viimeisestä solusta Rinnakkaisuus saavutetaan, koska solut suorittavat operaatioita samanaikaisesti

Kuva 1.9 (ja 1.10): matriisin ja vektorin kertolasku systoolisella prosessorilla

Datavuolaskenta (dataflow computation) Datavuomallissa laskenta tapahtuu heti, kun operandit ovat saatavilla Ohjelmalaskuria ei tarvita: laskenta etenee vuon tavoin operaatiosta toiseen Operaatin tulos siirtyy seuraavan, tuloksesta riippuva, operaation operandiksi Datavuota voidaan kuvata käyttämällä datavuoverkkoa (kuva 1.11), joka koostuu solmuista (node) tai toimijoista (actor) reunoista (edges, arcs), jotka yhdistävät solmuja

Yksi tapa suorittaa datavuoverkko on laukaista toimija vain, kun data on saapunut reunoja pitkin toimijan operandeiksi.

Kuva 1.11: datavuolaskentaesimerkki

Rinnakkaisuuden tasot Työtaso (job level) esim. monirobottijärjestelmä voi tehdä rakennuksen vartiointia rinnakkaisesti Tehtävätaso (task level) esim. yksittäinen robotti voi suorittaa rinnakkain liikkeen havainnointia, etäisyyden mittausta ja moottorien ohjausta: työ on jaettu useaan tehtävään, jotka voidaan rinnakkaistaa

Prosessitaso (kts. kuva 1.12) jokainen tehtävä voidaan jakaa useaksi prosessiksi (monella tavalla) esim. robotin liikkuessa mitataan rinnakkain nopeutta ja suoritetaan ajomoottoreiden säätöä nopeuden perusteella Muuttujataso (kuva 1.13) prosessi voi koostua useista käskyistä (laskutoimituksista), jotka tuottavat muutujien arvoja: useita muuttujia voidaan laskea rinnakkain

Bittitaso (bit level) useimmat tietokoneet suorittavat binääriaritmetiikaa useampi bittisillä luvuilla: rinnakkaisuus saavutetaan operoimalla samanaikaisesti useaa bittiä, jotka muodostavat binääriluvun esim. binäärilukujen yhteenlasku

Kuva 1.12: prosessitason rinnakkaisuus

Kuva 1.13: muuttujatason rinnakkaisuus

Rinnakkaislaskenna sovellutukset Sään ennustaminen simuloidaan ilmakehän ilmiöitä lähtien tietystä alkutilanteesta, joka on muodostettu tehtyjen mittausten perusteella epälineaaristen vuorovaikutusten laskenta resoluutio vaikuttaa ennusteen tarkkuuteen: pyritään parantamaan rinnakkaislaskennalla

Tekniikka esim. numeeriset menetelmät ja simulointi: lujuuslaskelman nesteen virtausmallit aerodynamiikka Materiaalitekniikka, esim: sähköiset ilmiöt puolijohteissa kiderakenteiden muodostuminen

Fysiikka esim. simulointi: alkuräjähdys, taivaankappaleiden liikkeiden ennustaminen Taloustiede esim. osakemarkkinoiden ennustaminen Tekoäly esim. koneoppiminen, neurolaskenta, kuvankäsittely, päätöksentekoprosessit, puheen tunnistaminen, tehtyjen mittausten nopea (=reaaliaikainen) analysointi yleensä

Rinnakkaisalgoritmien ja arkkitehtuurien suhde Rinnakkainen algoritmi voidaan ajatella koostuvan joukosta itsenäisiä tehtäviä (moduleita), joista osa voidaan suorittaa samanaikaisesti Modulit kommunikoivat algoritmin suorituksen aikana Koska algoritmit suoritetaan rinnakaislaskenta laitteistolla, on luonnollista miettiä algoritmin ja laitteiston suhdetta: auttaa suunnittelemaan tehokkaita rinnakkaislaskentajärjestelmiä

Rinnakkaisalgoritmi voidaan luonnehtia käyttäen seuraavia kriteereitä: 1. moduulin rakeisuus (module granularity) Laskennan määrä tyypillisessä modulissa Suuri rakeisuus: monimutkaisemman prosessorit vähän kommunikointia Pieni rakeisuus: yksinkertaiset prosessorit paljon kommunikointia Paras tulos saavutetaan tekemällä kompromissi rakeisuuden ja kommunikaatiomäärän välillä laskenta tehokkuuden maksimoimiseksi

2. Samanaikaisuuden kontrollointi (concurrence control) tapa jolla valitaan suoritettavat modulit kullakin ajan hetkellä ottaa huomioon data- ja kontrolliriippuvuudet siten, että algoritmin suoritus on oikeellinen Mahdollisia kontrollitapoja: datavuo (data-flow) esim. algoritmit, joissa ehdollisia tilansiirtymiä, tilakoneet, epäsäännölliset algoritmit keskuskontrolli (synchronized) esim. matriisien kertolasku, säännölliset algoritmit systoliset- ja taulukkoprosessorit vaatimuslähtöinen (demand-driven) esim. logiikka/päättely algoritmit, päätöksenteko algoritmit

3. Tietomekanismi (data mechanism) viittaa operandien käyttämiseen ohjataanko suoraan tarvitsevalle operaatiolle (data-flow malli) vai kirjoitetaanko muistiin, johon tarvittaessa viitataan osoitteella (von Neumann malli) tiedon hakemiseksi (tiedon tarvitsija hoitaa itse operandin haun muistista) 4. Tiedonsiirtogeometria (communication geometry) viittaa tiedonsiirtoyhteyksiin laskennallisten moduleitten välillä algoritmin tiedonsiirtogeometrian sanotaan olevan säännöllinen, kun tiedonsiirrot moduleiden välillä toistuvat samanlaisina läpi laskennan ( ensin tämä kommunikoi tuon kanssa ja sitten tuon, sen jälkeen tämä tuon.. ) tiedonsiirtogeometria on epäsäännöllinen, jos tiedonsiirrot moduleiden välillä ovat satunnaisia (ei säännöllistä kuviota: tuo kommunikoi joskus tuon ja silloin tällöin tuon ja ehkäpä myös tuon kanssa.. ) Säännölliset tiedonsiirtoyhteydet voivat muistuttaa puurakennetta, kuutioita tai muita luonnossa esiintyviä rakenteita (modulit ovat solmuja ja yhteyden niiden välisiä reunoja)

5. Algoritmin koko viittaa laskutoimitusten määrään jonka algoritmin täytyy suorittaa Voi olla pieni, keskikokoinen tai suuri 1000 x 1000 matriisin laskemista voidaan pitää suurena tehtävänä Algoritmin koko vaikuttaa prosessorien määrään ja vaadittavan muistin määrään

Rinnakkaistietokonearkkitehtuureita voidaan luonnehtia käyttäen seuraavia kriteereitä: 1. Prosessorin kompleksisuus viittaa käytettävän prosessorin (tai useiden) laskentatehoon ja sisäiseen organisaatioon Homogeeninen järjestelmä koostuu useista samanlaisista prosessoreista ja heterogeeninen järjestelmä erilaisista prosessoreista joilla voi olla eri tehtäviä esim. systolisissa prosessoreissa solut ovat yksinkertaisia ja dataa prosessoidaan eikä tallenneta esim. moniprosessorijärjestelmissä jokaisella prosessorilla on oman muistinhallinta, välimuisti, jne. Suurirakeisissa arkkitehtuureissa on muutama tehokas prosessori ja pienirakeisissa monia yksinkertaisia prosessoreita (esim. Connection Machine: 65 536)

2. Toimintatila (mode of operation) käskyvuo (command-flow) ohjelmakäskyt laukaisevat laskentatapahtumat datavuo (data-flow) operaatiot laukaistaa heti, kun operandit ovat käytössä vaatimusvuo (demand-flow) laskentaoperaatio käynnistyy vain, jos joku tarvitsee sen tulosta Eri toimintatilojen yhdistelmät ovat mahdollisia Arkkitehtuurin toimintatila liittyy algoritmin samanaikaisuuden kontrollointiin

3. Muistirakenne (memory structure) Muisti voi olla RAM tyyppistä, osoitteella osoitettavaa tai assosiatiivista, jolloin muistista haetaan tietoa osan tiedosta toimiessa hakuehtona Neuroverkoissa muistina toimivat neuroneiden väliset painokertoimet, jotka edustavat järjestelmään tallennettua tietoa (knowledge) 4. Yhteysverkko (interconnection network) laitteistotason yhteydet prosessoreiden ja prosessoreiden ja muistien välillä Mahdollisimman yhteensopiva algoritmin tiedonsiirtogeometrian kanssa maksimaalisen suorituskyvyn saavuttamiseksi kompleksinen yhteysverkko soveltuu moniin algoritmeihin mutta on kallis toteuttaa ja pidentää kytkentäaikoja tiedon reitityksen monimutkaistuessa

5. Prosessoreiden lukumäärä ja muistin koko Pienillä järjestelmillä prosessoreiden määrä on 1-100 Keskisuurilla 100-1000 ja suurilla yli 1000 (kirjan määritelmä) Prosessoreiden määrän kasvattaminen lisää suorituskykyä: ideaalitilanteessa prosessoreiden määrä vastaa algoritmin kokoa jolloin ei vaadita algoritmin pilkkomista

Rinnakkaislaskennan suorituskyky Kuinka rinnakkaistietokoneita voisi hyödyntää mahdollisimman tehokkaasti useilla eri sovellutusalueilla? On arvioitu, että supertietokoneet käyttä keskimäärin vain 10% niiden huippulaskentatehopotentiaalista Kuitenkin juuri laskentateho on syy miksi supertietokoneita tehdään ja käytetään

Laskentatehoa laskee sovelluksen (ratkaistava ongelman), ohjelmiston (algoritmitoteutuksen) ja laitteiston yhteensopimattomuudet Pääkohdat jotka johtavat suorituskyvyn laskemiseen: ongelma: rinnakkaisuuden aste algoritmi: kuinka ongelma ratkaistaan ohjelmointikieli ja kääntäjä: kuinka algoritmi kuvataan prosessorille, pystytäänkö kuvaamaa rinnakkaisuutta? käyttöjärjestelmä: algoritmin suoritus laitteistolla, laskenta resurssien jakaminen Laitteisto: tiedonsiirtoverkko, prosessorin/muistin nopeus, prossessoreiden määrä, muistihierarkia (tukevatko rinnakkaisuutta?)

Sovellutusten kuvaaminen rinnakkaistietokoneille ja rinnakkaisprosessoreiden tasapainottaminen eri sovellutuksille on vaikea ongelma ja ymmärtämys tällä alueella on vielä heikkoa (aivot näyttävät ratkaisseen nämä ongelmat) Suorituskyvyn määrittämistä tarvitaan: uusien koneiden evaluointi niiden tullessa markkinoille tietoa algoritmien ja arkkitehtuurien yhteensovittamiseksi ja sitä kautta koneiden laskentatehon tehokkaampi hyödyntämienen tiedon kerääminen uusien koneiden suunnittelun tueksi

Suorituskyvyn määrittämistä voidaan lähestyä: analyyttisesti usein liikaa yksinkertaistuksia, joka johtaa mallien epäonnistumiseen: ei kuvaa todellista tilannetta Kompleksisissa järjestelmissä analyyttiset malli pystyvät harvoin kuvaamaan järjestelmäkokonaisuuden suorituskykyä kokeellisesti, mittaamalla ja analysoimalla tällä hetkellä ainoa tapa saada luotettavaa tietoa rinnakkaistietokoneen suorituskyvystä useita mittauksia ohjelmistosta ja laitteistosta monilla eri sovellutusohjelmilla mittapuut (benchmarks) eivät anna tietoa siitä, kuinka arkkitehtuuria, laitteistoa ja algoritmeja säädetään parhaan suorituskyvyn saavuttamiseksi: halutaan tietoa miksi järjestelmän suorituskyky on mitä on ja kuinka sitä parannetaan

Suorituskyvyn mittareita Suoritustahti (execution rate) MIPS (miljoonaa käskyä sekunnissa) MFLOPS (miljoonaa likulukukäskyä sekunnissa) LIPS (loogista päättelyä sekunnissa) Nopeutus, Sp (speedup) Sp = T1/Tp, missä T1 suoritusaika yksiprosessorijärjestelmällä ja Tp suoritusaika moniprosessori järjestelmällä (p prosessoria), eli T1 on sekventiaalinen prosessointiaika ja Tp on rinnakkainen prosessointiaika Mitä suurempi Sp on sitä enemmän rinnakkaislaskenta nopeuttaa laskentaa (olettaen, että sekventiaalinen algoritmi on lähes optimaalinen kuvattuun ongelmaan) 1 Sp p

Tehokkuus, Ep (efficiency) Nopeutuksen ja prosessoreiden määrän suhde (ideaalitilanteessa 1): Ep = Sp / p = T1/pTp Mittaa laskennan hinta-tehokkuutta: kuinka hyvin prosessoreiden lukumäärä (vaikuttaa hintaan) on saatu siirrettyä laskentatehokkuudeksi (nopetus yksiprosessorijärjestelmään verrattuna) Redudanttisuus, Rp Rinnakkaislaskennassa käytettyjen operaatioiden määrän suhde yksiprosessorijärjestelmässä käytettyjen operaatioiden määrään: Rp = Op/O1

Hyödynnettävyys, Up (utilization) Rinnakkaislaskennassa käytettyjen operaatioiden määrän suhde opeeraatioiden määrän teoreettiseen minimiin: Up = Op / ptp Olettaa, että joka aikayksikössä voidaan suorittaa yksi operaatio jokaisessa p prosessorissa

Rinnakkaislaskennan rajat [Worlton 1968] on esittänyt mallin, jolla voidaan arvioida moniprosessorijärjestelmän toimintaa. Määritellään seuraavat muuttujat: ts = synkrontiaika t = keskimääräinen tehtävän suoritusaika t0 = tehtävään liittyvä rinnakkaislaskentalisä (overhead) N = tehtävien määrä synkronointitapahtumien välissä P = prosessoreiden lukumäärä

N tehtävän sekventiaalinen laskenta kestää: T1 = Nt Rinnakkaistietokoneessa laskenta kestää: TN,P = ts + [N/P](t+t0), missä [N/P] on vaatittavien rinnakkaisten askelten määrä (pyöristetty lähimpään suurempaan kokonaislukuun, eli [N/P] = ceil(n/p) ) Nopeutus: SN,P = T1 / TN,P = Nt / (ts + [N/P](t+t0) ) = 1 / ( ts/(nt) + (1/N)[N/P](1+t0/t) ) Nopeutus voidaan maksimoida minimoimalla nimittäjä, eli minimoimalla synkronoinnin vaikutus, rinnakkaistamisesta aiheutuva aikalisä ja rinnakkaisaskelten määrä

Synkronoinnin vaikutusta (ts/nt) voidaan pienentää pienentämällä synkronointiaikaa ts tai suorittamalla enemmän tehtäviä synkronointien välillä (suurempi N) Rinnakkaistamislisäaikaa (overhead) voidaan pienentään pienentämällä t0:aa tai kasvattamalla sovelluksen rakeisuutta (t kasvaa, enemmän laskentaa / tehtävä, vähemmän tehtäviä): vähentää myös syknronoinnin vaikutusta (N ja t pienenevät) Laskenta-askelten määrää voidaan vähentää käyttämällä enemmän prosessoreita