Programming Parallel Computers

Aalto 2026

CP9a: parempi algoritmi ★★★

Kirjaudu sisään palauttaaksesi tehtäviä.

Tehtävän ohjeet

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

Yritä käyttää Strassenin algoritmia matriisitulojen laskemisen nopeuttamiseksi. Toteuta tehtävän CP3b ratkaisusi uudelleen Strassenin algoritmin perusajatusta hyödyntäen. Riittää, että hyödynnät Strassenin algoritmia (tehtävään sopeutettuna) ylimmillä rekursiotasoilla; tämän jälkeen voit taas käyttää naiivia algoritmia. Pelkkä naiivin algoritmin käyttö ei riitä, vaikka ratkaisu olisikin riittävän nopea. Ole tarkkana pyöristysvirheissä. Saatat tarvita kaksinkertaisen tarkkuuden liukulukuja testien läpäisemiseksi.

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/2a nx = 1000, ny = 4000
syöte sisältää 4000 × 1000 pikseliä, ja tulosteessa tulee olla 4000 × 4000 pikseliä
benchmarks/2b nx = 999, ny = 3999
syöte sisältää 3999 × 999 pikseliä, ja tulosteessa tulee olla 3999 × 3999 pikseliä
benchmarks/2c nx = 1001, ny = 4001
syöte sisältää 4001 × 1001 pikseliä, ja tulosteessa tulee olla 4001 × 4001 pikseliä
benchmarks/3 nx = 6000, ny = 6000
syöte sisältää 6000 × 6000 pikseliä, ja tulosteessa tulee olla 6000 × 6000 pikseliä
benchmarks/4 nx = 9000, ny = 9000
syöte sisältää 9000 × 9000 pikseliä, ja tulosteessa tulee olla 9000 × 9000 pikseliä

Arviointi

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

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

AjoaikaPisteet
≤ 8.000 s 1
≤ 4.500 s 2
≤ 3.000 s 3
≤ 2.200 s 4
≤ 1.500 s 5

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
≤ 4.000 s 1
≤ 2.500 s 2
≤ 1.500 s 3