T11.3/T12.1/T12.4 Ytelse og Flynns taksonomi Flashcards
⭐️ Hvorfor er det enklere å utnytte parallellitet mellom uavhengige program enn innad i ett program?
Det er vanskeligere å utnytte parallellitet til å løse én oppgave som man gjør med ett program, enn det det er å bruke flere prosessorkjerner til å kjøre uavhengige programmer simultant.
⭐️ Hvorfor er det vanskeligere å utnytte parallellitet til å løse én oppgave, altså innad i ett program?
Fordi da må vi passe på at alle avhengighet respekteres når vi skriver koden
⭐️ Amdahls lov sier at når vi øker antall prosessorer:
- Fordeles kjøretiden til den parallelle delen jevnt utover alle prosessorene
- Kjøretiden til den sekvensielle delen forblir uendret
Amdahls lov for parallelle program sier at et parallellt program består av en
sekvensiell og parallell del
Det er vanskeligere å få en god fartsøkning med flere prosessorer med en satt problemstørrelse,
enn det det er å få en god fartsøkning ved å øke problemstørrelsen
Sterk skalering
Anta at programmet gjør samme mengde arbeid selv om man øker antallet prosessorer (i tråd med Amdahls lov), altså at vi beholder samme problemstørrelse
Svak skalering
Anta at problemstørrelsen vokser i takt med antallet prosessorer - forholdet mellom den sekvensielle og parallelle delen holder seg konstant
⭐️ Hva er Flynns taksonomi?
En klassifisering av datamaskinarkitekturer basert på om vi har:
- En (S) eller flere (M) instruksjonsstrømmer (I)?
- En (S) eller flere (M) datastrømmer (D)?
⭐️ SISD
Single Instruction stream, Single Data stream. En uniprosessor
⭐️ MIMD
Multiple Instruction stream, Multiple Data stream. En multiprosessor
⭐️ SIMD
Single Instruction stream, Multiple Data streams. Man bruker den samme instruksjonen på flere datastrømmer, som man hadde brukt i en vektorprosessor
⭐️ Hva er et eksempel på en SISD maskin?
En datamaskin med en enkelt prosessor
⭐️ Hva er et eksempel på en SIMD maskin?
SIMD-instruksjoner
⭐️ Hva er et eksempel på en MIMD maskin?
En datamaskin med mange prosessorer
⭐️ Operasjonsintensitet
Antallet operasjoner utført per byte hentet fra minnet