Programming Parallel Computers

Open 2026

SO6: nopea GPU-ratkaisu ★★★

Kirjaudu sisään palauttaaksesi tehtäviä.

Tehtävän ohjeet

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

Toteuta tehokas rinnakkainen lajittelualgoritmi GPU:lle. Mikä tahansa lajittelualgoritmi käy, mutta kantalukulajittelu (radix sort) voi olla yksinkertaisin valinta.

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 n = 100000
syöte sisältää 100000 kokonaislukua, ja tulosteessa tulee olla samat luvut nousevassa järjestyksessä
benchmarks/2 n = 1000000
syöte sisältää 1000000 kokonaislukua, ja tulosteessa tulee olla samat luvut nousevassa järjestyksessä
benchmarks/3a n = 10000000
syöte sisältää 10000000 kokonaislukua, ja tulosteessa tulee olla samat luvut nousevassa järjestyksessä
benchmarks/3b n = 10000000
syöte sisältää 10000000 kokonaislukua, ja tulosteessa tulee olla samat luvut nousevassa järjestyksessä
benchmarks/3c n = 9999997
syöte sisältää 9999997 kokonaislukua, ja tulosteessa tulee olla samat luvut nousevassa järjestyksessä
benchmarks/3d n = 9999998
syöte sisältää 9999998 kokonaislukua, ja tulosteessa tulee olla samat luvut nousevassa järjestyksessä
benchmarks/3e n = 9999999
syöte sisältää 9999999 kokonaislukua, ja tulosteessa tulee olla samat luvut nousevassa järjestyksessä
benchmarks/3f n = 10000001
syöte sisältää 10000001 kokonaislukua, ja tulosteessa tulee olla samat luvut nousevassa järjestyksessä
benchmarks/3g n = 10000002
syöte sisältää 10000002 kokonaislukua, ja tulosteessa tulee olla samat luvut nousevassa järjestyksessä
benchmarks/3h n = 10000003
syöte sisältää 10000003 kokonaislukua, ja tulosteessa tulee olla samat luvut nousevassa järjestyksessä
benchmarks/4 n = 100000000
syöte sisältää 100000000 kokonaislukua, ja tulosteessa tulee olla samat luvut nousevassa järjestyksessä

Arviointi

Tässä tehtävässä palautus arvioidaan benchmarks/4-testin perusteella, jossa syöte sisältää 100000000 kokonaislukua, ja tulosteessa tulee olla samat luvut nousevassa järjestyksessä.

Jos tehtävä palautetaan keskiviikkoon, 2. joulukuuta 2026, klo 23:59:59 (Helsinki) mennessä, se pisteytetään alla olevan taulukon mukaisesti:

AjoaikaPisteet
≤ 10.000 s 1
≤ 6.000 s 2
≤ 3.000 s 3
≤ 2.000 s 4
≤ 1.000 s 5

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

AjoaikaPisteet
≤ 10.000 s 1
≤ 2.000 s 2
≤ 1.000 s 3

Kilpailu

Tehtävään tekemäsi palautukset osallistuvat automaattisesti myös kilpailuun, ja voit saada enintään 2 lisäpistettä, jos koodisi on yksi kurssin nopeimmista ratkaisuista!

AjoaikaLisäpisteet
≤ 1.20 × nopein 1
≤ 1.05 × nopein 2