Programming Parallel Computers

Ohjeet

Vinkkejä

Palautuksen tulossivulla on paljon tietoa. Tiedon määrä voi alussa tuntua liiankin suurelta. Kannattaa ensin keskittyä esimerkiksi kohtiin, joissa on tiedot epäonnistuneista testeistä. Kun järjestelmä tulee tutummaksi ja koodisi toimii oikein, kannattaa katsoa myös sivun alaosaa. Siellä on tarkempia mittauksia koodisi suorituskyvystä, ja voit jopa tarkastella kääntäjän tuottamaa assembly-koodia. Tämä on erityisen hyödyllistä, jos sinulla ei ole vastaavaa laitteistoa muualla ja haluat hyödyntää arviointikoneiden ominaisuuksia.

Kehitysympäristö

Kun lataat tehtävän koodipohjat sisältävän zip-paketin, sen pitäisi toimia suoraan tyypillisissä Linux- ja macOS-ympäristöissä, kunhan tavalliset kehitystyökalut on asennettu ja käytössä on riittävän uusi C++-kääntäjä: GCC:n versio vähintään 8 tai Clangin versio vähintään 6.

Jos käytät Ubuntu Linux 20.04 -järjestelmää, saat tarvittavat työkalut komennolla sudo apt install g++ python3.

Jos käytät Ubuntu Linux 18.04 -versiota, tarvitset lisäksi uudemman kääntäjän komennolla sudo apt install g++-8 — kurssin skriptien pitäisi tunnistaa se automaattisesti.

Jos käytät Debian 9 -järjestelmää, kannattaa yleensä päivittää vähintään versioon Debian 10, jotta saat GCC 8:n.

Jos käytät macOS-järjestelmää, saat toimivan kehitysympäristön esimerkiksi näin:

Jos käytät Windows Subsystem for Linux -ympäristöä Linuxin ajamiseen Windowsissa, varmista, että purat zip-paketit Linux-ympäristön puolella. Jos purat ne Windowsin puolella ja yrität käyttää tiedostoja Linuxissa, esimerkiksi tiedosto-oikeudet eivät välttämättä toimi oikein. Saat toimivan kehitysympäristön seuraavasti:

Jos sinulla on Aalto-yliopiston käyttäjätunnus, voit käyttää etänä Maari-rakennuksen Linux-koneita:

Jos käytät jotakin konetta ssh:n kautta, helpoin tapa saada koodipohjat sinne on kopioida latauslinkki ja käyttää komentoa wget zip-tiedoston lataamiseen.

Mitä taustalla tapahtuu

Voit käyttää valitsinta -v (esim. komento ./grading -v test) nähdäksesi, mitä komentoja arviointityökalu ajaa. Näin on helpompi nähdä, mikä on vialla, jos työkalu ei toimi odotetusti paikallisessa ympäristössäsi, ja miten koodisi käännetään.

Arviointityökalu kääntää oman koodisi (esim. cp.cc) ja testikoodin yhdeksi suoritettavaksi ohjelmaksi (esim. cp). Voit suorittaa ohjelmatiedoston myös suoraan komentoriviltä tai debuggerissa/profilerissa. Käytä jälleen komentoa ./grading -v test löytääksesi oikean komennon.

Kätevät apuohjelmat

Koodipohjat sisältävästä zip-paketista löytyy käteviä määrittelyjä tiedostosta .ppc/ppcgrader/include/vector.h. Voit lisätä #include "vector.h" ratkaisuusi ja käyttää näitä määrittelyjä. Ne ovat automaattisesti käytettävissä sekä paikallisissa testauksissa että arviointipalvelimelle tehdyissä palautuksissa.

Hyvät käytännöt

On erittäin suositeltavaa, että pidät kaiken koodisi omassa yksityisessä Git-repositoriossa. Näin saat kaikki koodipohjat yhteen paikkaan ja voit seurata omien ratkaisujesi kehittymistä.

Vikojen etsiminen (korrektius)

Jos ohjelma kaatuu yllättäen, kannattaa tarkistaa ainakin seuraavat asiat:

Jos saat vääriä tuloksia, mieti ainakin seuraavia asioita: