581332 Rinnakkaisohjelmointi (4 op, 2 ov) / Kurssikuvaus 581332 Parallell programmering(4 sp, 2 sv) 581332 Parallel Programming (4 cr, 2 cu) |
Asema opetuksessa
Tietojenkäsittelytieteen aineopintojen pakollinen kurssi.
Kurssi vastaa lukuvuosina 2002-2003 ja 2003-2004 luennoitua kurssia Rinnakkaisohjelmistot (2 ov).
Kurssi vastaa ennen lukuvuotta 2000-2002 luennoidun kurssin Rinnakkaisohjelmistot (4 ov) jälkimmäistä osaa, eikä näitä kahta kurssia voi sisällyttää samaan tutkintoon
Tavoitteet
Kurssin tavoitteena on ymmärtää rinnakkaisten ja hajautettujen järjestelmien ohjelmoinnin peruskäsitteet, tuntea keskeinen ongelmanasettelu sekä osata soveltaa tavallisimpia ratkaisumenetelmiä.
Esitiedot
Esitietoina edellytetään kurssin Tietokoneen toiminta (2 ov) sisällön hallinta
Tämän kurssin jälkeen sopii suoritettavaksi esimerkiksi kurssit Verkkosovellusten toteuttaminen (2 ov) sekä Hajautetut järjestelmät (3 ov).
Suoritustavat
Kurssin voi suorittaa
- luentokurssina osallistumalla aktiivisesti kurssin harjoituksiin ja välittömästi kurssia seuraavaan kurssikuulusteluun
- tai osallistumalla kurssin erilliskokeeseen.
Kurssi luennoidaan joka vuosi syyslukukaudella. Luentokurssiin sisältyy
- luentoja 24 tuntia (4h/vko)
- harjoituksia 5 * 2 tuntia sekä
- kurssikuulustelu 2,5 tuntia.
Arvosana määräytyy kurssikuulustelusta ja harjoituksista tai erilliskokeesta saatujen pisteiden perusteella (yleensä) seuraavasti
pisteitä 30 35 40 45 50 arvosana 1 2 3 4 5
Erilliskokeita on lukuvuoden aikana 4 kertaa: kaksi kevätlukukaudella (tammikuu ja maaliskuu), yksi kesällä (elokuu) sekä yksi syyslukukaudella (syys/lokakuun vaihde). Erilliskokeen perusteella arvosanaa määrättäessä ei huomioida kurssin yhteydessä saatuja harjoituspisteitä.
Ilmoittautuminen
Kurssille ilmoittaudutaan Tietojenkäsittelytieteen ILMO-järjestelmän avulla kirjoittautumalla johonkin kurssin harjoitusryhmään. Ilmoittautumisohjelma käynnistyy, kun avaat Internet selaimessa sivun
ilmo.cs.helsinki.fi
Kurssikuulusteluun ei tarvitse erikseen ilmoittautua. Erilliskokeeseen tulee ilmoittautua viimeistään koetta edeltävän viikon maanantaina.
TKTL:n pakolllisten aineopintotason kurssien suoritusta saa yrittää luentokurssina harjoituspaikan varaamalla vain kahdesti. Yrityskerraksi tulkitaan ilmoittautuminen, jota ei ole peruttu määräaikaan mennessä, yleensä ensimmäisen harjoitusviikon loppuun mennessä. Ennen syksyä 2002 tehtyjä yrityksiä ei lasketa sääntöä sovellettaessa. Erilliskokeilla suorittamiseen ei liity rajoituksia.
Klikkaa tähän, jos haluat ilmoittautua kurssille nyt.
Kurssimateriaali
Kurssi perustuu lähinnä oppikirjaan G.R. Andrews: Foundations of Multithreaded, Parallel, and Distributed Programming. Addison-Wesley, 2000. Lukkiutumista ja etäproseduureja käsittelevät osat löytyvät esimerkiksi Stallingsin kirjasta.
Kurssilla suositellaan Andrewsin kirjan hankintaa.
Kurssin kotisivuihin pääset käsiksi URL:lla http://www.cs.helsinki.fi/kurssit/cum_laude/581332-8/.
Kurssin uutis- ja keskusteluryhmä on hy.opiskelu.tktl.rio.
Sisältö
Sisältö jakaantuu karkeasti ottaen kolmeen osaan:
- Johdanto: Rinnakkaisuus ja samanaikaisuus
(Andrews kirjan luku 1)- laitteistoarkkitehtuureja
- esimerkkejä rinnakkaisohjelmointiparadigmoista
- Ohjelmoinnissa kurssilla käytetty notaatio
- Kommunikointi yhteisen muistin avulla
- Prosessien kommunikointitavat
(Andrewsin kirjan luvut 2.1-2.5, 3.1-3.2) - Semaforien käyttö rinnakkaisuuden valvonnassa
(Andrewsin kirjan luku 4) - Lukkiutuminen
(Stallingsin kirjan luvut 6.1-6.6) - Monitorit
(Andrewsin kirjan luvut 5.1-5.2)
- Prosessien kommunikointitavat
- Kommunikointi ilman yhteistä muistia
- Sanomanvälitys
(Andrewsin kirjan luvut 7.1-7.5) - Etäproseduurit
(Andrewsin kirjan luku 8.1 ja Stallingsin kirjan luku 13.3) - Rendezvous
(Andrewsin kirjan luku 8.2)
- Sanomanvälitys
Kurssi perustuu pääosin oppikirjaan
G. R. Andrews, Foundations of Multithreaded, Parallel, and Distributed Programming; Addison Wesley Longman, 2000. Kurssiin liittyvät luvut 1, 2.1-2.5, 3.1-3.2, 4 (4.6 tutustu, ei kokeessa), 5.1-5.2 (5.3-5.5, tutustu, ei kokeessa), 6.3-6.5 (6.1-6.2 tutustu, ei kokeessa), 7.1-7.5, 8.1-8.2 ja 10.3.
Lukkiutumista ja etäproseduureja koskevat osat löytyvät kirjasta
W. Stallings: Operating Systems; Prentice Hall, 2001, 4th ed. (myös 3rd ed. OK). Kurssiin liittyvät luvut 5 (käsittelee samanaikaisuutta: poissulkemista ja synkronointia, semaforeja, monitoreja ja sanomanvälitystä) 6.1-6.6 ja 13.3 (13.1-13.2 tutustu)
Luentokalvot ja laskuharjoitukset muodostavat tarkimman määrittelyn kurssin alueesta. Huomattakoon kuitenkin, että kalvokopiot eivät ole oppikirja vaan paremminkin laajennettu sisällysluettelo.
Liisa Marttinen