Vis enkel innførsel

dc.contributor.advisorElster, Anne C.
dc.contributor.authorFinstad, Vetle
dc.date.accessioned2022-11-29T18:19:50Z
dc.date.available2022-11-29T18:19:50Z
dc.date.issued2022
dc.identifierno.ntnu:inspera:112046434:64569149
dc.identifier.urihttps://hdl.handle.net/11250/3034871
dc.description.abstractMangel på erfaring med parallell programmering blant programmerere er en økende bekymring. Dette er problematisk ettersom parallell programmering kreves for å utnytte komponenter som GPUer og flerkjerne-CPUer fullt ut. Vi tar opp dette problemet i oppgaven vår ved å bygge et miljø for å lære parallell programmering med MPI. MPI er en av de dominerende programmeringsutvidelsene for programmering av svært parallelle systemer. Gjennom å utvikle et edutainment-spill som simulerer MPI-miljøet, har vi til hensikt å gjøre prosessen med å gjøre programmerere kjent med MPI morsommere og mer interessant. Avhandlingsarbeidet vårt er en forlengelse av arbeidet som er gjort som en del av forfatterens høstprosjekt. For å forbedre MPI-spillet vårt vurderer vi standard kvalitative spillegenskaper som kan påvirke spillernes engasjement i spillet. Disse vurderingene inkluderer passende spillvanskeligheter, begrensende nye spillopplevelser og en kortfattet spillveiledning. Ved utvikling av spillet tar vi også hensyn til vårt valg og illustrasjon av MPI-funksjoner samtidig som vi legger til flere MPI-funksjoner. Vi bruker også resultatene fra en tidligere brukerstudie, samt en brukerstudie til vårt utvidede arbeid. Sistnevnte prøver å bestemme spillets fornøyelse og spillevanskelighet, samt spillernes opplevde læring og interesse for feltet parallellprogrammering. Noen av de tekniske og konseptuelle utfordringene vi møtte ved å lage et edutainmentspill nettopp for å gjøre en bruker kjent med parallell programmering blir også beskrevet. Spesifikt, diskuterer vi vårt valg av å bruke Unity-spillmotoren og hvordan vi brukte en tilnærming der spillere visuelt kan programmere inne i spillet med MPI. MPI-prosessene simuleres av roboter. Videre er spillelementer implementert for å abstrahere ut kode som, for eksempel, inversjon av en pikselfarge. Brukere kan også legge til og se på de underliggende MPI-kodene som styrer disse robotene. Simulerte MPI-funksjoner inkluderer MPI_Init, MPI_Finalize, MPI_Comm_rank, MPI_Send, MPI_Recv, MPI_Bcast, MPI_Scatter, MPI_Gather og MPI_Sendrecv. Vår siste brukerstudie viste at dette spillet har mye potensial. En diskusjon av flere veier for fremtidig arbeid er også inkludert.
dc.description.abstractLack of experience with parallel programming among programmers is a growing concern. This is problematic as parallel programming is required to fully utilize components such as GPUs and multi-core CPUs. We address this problem in our thesis by building an environment for learning parallel programming with MPI. MPI is one of the dominating programming extensions for programming highly parallel systems. Through developing an edutainment game that simulates the MPI environment, we intend to make the process of familiarizing programmers with MPI more fun and interesting. Our thesis work is an extension of the work done as part of the author´s fall project. In enhancing our MPI game, we consider standard qualitative gaming characteristics that might impact players' engagement in the game. These considerations include appropriate game difficulty, limiting new game experiences, and a concise game tutorial. While further developing the game, we are cognizant of our choice and illustration of MPI-functions while, at the same time, implementing several new MPI-functions. We also make use of the results from a prior user study, as well as a user study conducted for our extended work. The latter tries to determine the game's enjoyability and game difficulty, as well as players' perceived learning and interest in the field of parallel programming. Some of the technical and conceptual challenges we faced when making an edutainment game, precisely for familiarizing a user with parallel programming, are also described. In particular, we discuss our choice of using the Unity game engine and how we used an approach where players can visually program inside the game with MPI. The MPI processes are simulated by robots. Furthermore, game-elements are implemented to abstract out code such as inversion of a pixel color. Users are also able to add to and look at the underlying MPI codes that control these robots. MPI functions simulated include MPI_Init, MPI_Finalize, MPI_Comm_rank, MPI_Send, MPI_Recv, MPI_Bcast, MPI_Scatter, MPI_Gather and MPI_Sendrecv. Our final user study showed this game has a lot of potential. A discussion of several avenues for future work is also included.
dc.languageeng
dc.publisherNTNU
dc.titleParallel Programming with MPI through Gaming
dc.typeMaster thesis


Tilhørende fil(er)

Thumbnail

Denne innførselen finnes i følgende samling(er)

Vis enkel innførsel