Programming Parallel Computers

Aalto 2026

CP2b: moniytimellinen rinnakkaisuus ★

Kirjaudu sisään palauttaaksesi tehtäviä.

Tehtävän ohjeet

Lue ensin tehtävän yleiset ohjeet. Tarkemmat tehtäväkohtaiset ohjeet ovat alla:

Rinnakkaista CP1-tehtävän ratkaisusi OpenMP:n ja useiden säikeiden avulla siten, että toteutuksessa hyödynnetään rinnakkain useita CPU-ytimiä. Älä käytä vielä muita rinnakkaisuuden muotoja tässä tehtävässä. Käytä kaikissa laskutoimituksissa kaksinkertaisen tarkkuuden liukulukuja.

Automaattinen vektorointi ei ole käytössä tässä tehtävässä.

Koodin testaus

Koodin toimintaa testataan ensin erilaisilla testeillä. Voit kokeilla samaa omalla tietokoneellasi komennolla ./grading test.

Jos koodi toimii odotetusti, sille suoritetaan benchmark-testejä. Voit kokeilla tätä omalla tietokoneellasi komennolla ./grading benchmark. Huomaa kuitenkin, että ajoaika omalla tietokoneellasi voi olla eri kuin arviointiin käytetyllä laitteistolla.

Benchmark-testit

Nimi Parametrit
benchmarks/1 nx = 1000, ny = 1000
syöte sisältää 1000 × 1000 pikseliä, ja tulosteessa tulee olla 1000 × 1000 pikseliä
benchmarks/2 nx = 1000, ny = 4000
syöte sisältää 4000 × 1000 pikseliä, ja tulosteessa tulee olla 4000 × 4000 pikseliä

Arviointi

Tässä tehtävässä palautus arvioidaan benchmarks/2-testin perusteella, jossa syöte sisältää 4000 × 1000 pikseliä, ja tulosteessa tulee olla 4000 × 4000 pikseliä.

Jos tehtävä palautetaan sunnuntaihin, 3. toukokuuta 2026, klo 23:59:59 (Helsinki) mennessä, se pisteytetään alla olevan taulukon mukaisesti:

AjoaikaPisteet
≤ 4.000 s 1
≤ 1.000 s 2
≤ 0.700 s 3

Jos palautat ratkaisun määräajan jälkeen mutta ennen kurssin päättymistä sunnuntaina, 31. toukokuuta 2026, klo 23:59:59 (Helsinki), pistemääräsi määräytyy näin:

AjoaikaPisteet
≤ 2.000 s 1
≤ 0.700 s 2