6 ECTS credits
150 u studietijd

Aanbieding 1 met studiegidsnummer 1024441ANR voor alle studenten in het 2e semester met een inleidend bachelor niveau.

Semester
2e semester
Inschrijving onder examencontract
Niet mogelijk
Beoordelingsvoet
Beoordeling (0 tot 20)
2e zittijd mogelijk
Ja
Inschrijvingsvereisten
Je hebt ‘Objectgerichte Systemen’ gevolgd, alvorens ‘Parallelisme en Distributie’ op te nemen.
Onderwijstaal
Nederlands
Faculteit
Faculteit Wetenschappen en Bio-ingenieurswetensch.
Verantwoordelijke vakgroep
Computerwetenschappen
Onderwijsteam
Elisa Gonzalez Boix (titularis)
Onderdelen en contacturen
26 contacturen Hoorcollege
26 contacturen Werkcolleges, practica en oefeningen
Inhoud

Deze cursus is een algemene introductie tot fundamentele onderwerpen binnen parallellisme en distributie. In het eerste deel van de cursus worden een aantal concepten op het gebied van concurrency en parallellisme voor geheugenmodellen met gedistribueerd en gedeeld geheugen geïntroduceerd, waaronder fork-join parallellisme, multithreading en wederzijdse uitsluiting (mutual exclusion), en het doorgeven van berichten. De cursus bestudeert vervolgens gedistribueerde systemen en introduceert verschillende communicatie-abstracties tussen processen (bijv. sockets, RMI, Pub/Sub, enz.) en gevestigde architectuurmodellen (bijv. client-server-programma's en peer-to-peer-systemen). De cursus onderwijst ook een aantal fundamentele onderwerpen in het veld, zoals synchronisatie (bijv. Lamport en vectorklokken) en coördinatie en overeenstemming (bijv. tweefasige commit, FLP-onmogelijkheid). 

Studiemateriaal
Digitaal cursusmateriaal (Vereist) : Parallelism and Distribution, cursusnota's
Digitaal cursusmateriaal (Vereist) : slides
Bijkomende info

Tijdens de lessen worden slides geprojecteerd. Deze slides worden vooraf beschikbaar gesteld via het leerplatform. De slides geven ook per hoofdstuk aan welke cursusstof je moet bestuderen, meestal op basis van cursusnota's. Op de cursusruimte worden deze cursusnota's samen met de voorbeeldprogramma's die tijdens de les worden getoond, beschikbaar gesteld om te downloaden. 

Leerresultaten

Algemene competenties

Deze cursus is een inleiding tot fundamentele onderwerpen binnen parallellisme en distributie. Er is een sterke focus op de onderliggende concepten van parallelle en gedistribueerde systemen, die geen verband houden met een specifieke technologie. Vaak zijn er echter voor elk onderwerp casestudies van bestaande technologie die voortbouwen op de uitgelegde concepten. Op deze manier raakt de student vertrouwd met de manier waarop de concepten in de praktijk worden gebracht.  

Kennis en begrip:  

De student krijgt inzicht en kennis in:  

• wat is parallel computergebruik, verschillende vormen van parallellisme, gelijktijdigheid versus parallellisme, parallelle geheugenarchitecturen.  

• wat gedistribueerde systemen zijn, waarvoor ze worden gebruikt, verschillende uitdagingen bij het bouwen van gedistribueerde programma's.  

• grondbeginselen van modellen met gedeeld geheugen: fork-join parallellisme en multithreading.  

• grondbeginselen van gedistribueerd geheugen: het doorgeven van berichten en het actormodel van gelijktijdigheid.  

• de basisprincipes van netwerken, aangezien netwerken gedistribueerde processen met elkaar verbinden  

• de basale gedistribueerde architecturen: client-server- en peer-to-peer-systemen.  

• de verschillende manieren waarop gedistribueerde processen met elkaar kunnen communiceren: van modellen voor het doorgeven van berichten (sockets, RPC/RMI) tot modellen voor indirecte communicatie (bijvoorbeeld tupelruimten, Pub/Sub, berichtenwachtrijen)  

• de basisprincipes van cryptografie, om veilig te kunnen communiceren over een open netwerk  

• waarom kloksynchronisatie relevant is in gedistribueerde systemen, fysieke versus logische klokken  

• het fundamentele probleem van overeenstemming in gedistribueerde systemen, en enkele praktische algoritmen om dit probleem op te lossen  

 

Toepassing van kennis en inzicht:  

De cursus biedt niet alleen theoretische kennis en inzicht. Aan het einde van de cursus moeten studenten in staat zijn de kennis in de praktijk toe te passen en parallelle en gedistribueerde programma's te ontwerpen en implementeren.  

 

Oordelen vellen:  

Studenten moeten de toepasbaarheid van een bepaald programmeermodel, techniek of algoritme in een bepaalde situatie kunnen beoordelen. Zij kunnen hun keuze verantwoorden.  

 

Communicatie:  

Studenten moeten duidelijk kunnen communiceren over de bestudeerde onderwerpen. Dit gebeurt deels door open vragen te stellen op het examen en door studenten te vragen een schriftelijk essay in te dienen over hun programmeerproject.  

 

Leervaardigheden:  

Na voltooiing van de cursus moeten studenten de nodige fundamentele kennis hebben verworven om dieper op de stof in the kunnen gaan en opkomende parallelle en gedistribueerde modellen (bijv. cloud computing en big data-verwerking, multicore, HPC, mobiel computergebruik, enz.) verder te kunnen bestuderen.

 

Beoordelingsinformatie

De beoordeling bestaat uit volgende opdrachtcategorieën:
Examen Schriftelijk bepaalt 50% van het eindcijfer

WPO Praktijkopdracht bepaalt 50% van het eindcijfer

Binnen de categorie Examen Schriftelijk dient men volgende opdrachten af te werken:

  • Schriftelijk Examen met een wegingsfactor 1 en aldus 50% van het totale eindcijfer.

    Toelichting: Schriftelijk examen (gesloten boek)

Binnen de categorie WPO Praktijkopdracht dient men volgende opdrachten af te werken:

  • Programmeerproject met een wegingsfactor 1 en aldus 50% van het totale eindcijfer.

    Toelichting: Programmeerproject (implementatie + verslag) met eventuele mondelinge verdediging

Aanvullende info mbt evaluatie

Theorie: schriftelijk examen (gesloten boek).  

Oefening: programmeerproject met mondelinge projectverdediging.  

 

Theorie:  

In het schriftelijk examen wordt de kennis en het inzicht van de student getoetst m.b.t. de onderwerpen die tijdens de les besproken worden (zie Inhoud). Het examen bestaat uit een combinatie van open en gesloten vragen. Van de student wordt verwacht dat hij de belangrijkste aspecten van het onderwerp van de vraag kan synthetiseren, verschillende oplossingen of technieken voor eenzelfde onderwerp kan analyseren, en kan redeneren over programma's om vragen te beantwoorden en/of keuzes te rechtvaardigen.  

 

Praktijk:  

gedurende het jaar wordt een uitgebreide projectbeschrijving bekend gemaakt met specificaties over het eindproduct. Het project zal bestaan ​​uit twee opdrachten: één gericht op de parallelle aspecten van het eindproduct, en één gericht op de gedistribueerde aspecten. Per opdracht levert de student de implementatie van het project in, voorzien van een korte rapportage waarin de gemaakte keuzes en het ontwerp worden verantwoord. Elk onderdeel van het project wordt mondeling verdedigd.  

 

Zowel het schriftelijk examen als het programmeerproject tellen voor 50% van de totaalscore. Om voor het gehele opleidingsonderdeel een score te kunnen behalen, dienen de studenten op elk evaluatieonderdeel minimaal een 8/20 te behalen. Indien de scores op alle onderdelen niet hoger zijn dan een 8, wordt de laagste score gebruikt voor het eindcijfer. Afwezigheid op één van de onderdelen impliceert afwezigheid voor het gehele opleidingsonderdeel. Deelcijfers voor het examen of project, indien de student minimaal de helft van de score voor dit onderdeel behaalt, worden overgedragen naar de tweede zittijd. Studenten mogen geen deelcijfers prijsgeven. 

Toegestane onvoldoende
Kijk in het aanvullend OER van je faculteit na of een toegestane onvoldoende mogelijk is voor dit opleidingsonderdeel.

Academische context

Deze aanbieding maakt deel uit van de volgende studieplannen:
Bachelor in de artificiële intelligentie: Standaard traject