Hoofdstuk 6 Flashcards

1
Q

Multiprocessor

A

Een computer dat ten minste 2 processoren bevat. Men gelooft immers dat ILP haar grens bereikt heeft.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Multicore

A

Een processor die meerde cores bevat. Het verschil met multiprocessors is dat deze meerdere processoren hebben. Een multicoreprocessor heeft meerdere cores binnen 1 processor. Multicore processoren zijn meestal SMP’s.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Shared memory multiprocessor (SMP)

A

Een multiprocessor waarbij de verschillende processors dezelfde fysieke adresruimte delen. Een SMP kan UMA of NUMA als style hebben. Door het sharen van deze adresruimte moet er synchronisatie zijn zodanig dat de processoren gecoördineerd zijn met elkaar. Dit kan gebeuren met locks die ervoor zorgen dat slechts 1 processor tegelijk specifieke data kan accessen. (figuur tekenen).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Uniform Memory Access (UMA)

A

Een type van SMP waarbij de memory accesses van alle processoren even lang zijn.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Non-Uniform Memory Access (NUMA)

A

Een type van SMP waarbij sommige memory accesses veel sneller zijn dan andere omwille van welke processor de toegaan vraagt. Moeilijker dan UMA, maar NUMA machines kunnen beter scalen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

OpenMP

A

Een tool/API voor shared memory processing in C, C++ of Fortran. Deze API kan o.a. lussen parallelliseren, somreducties uitvoeren (trechtervormige uitvoering). De tool is wel moeilijk te debuggen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Cluster / Message passing multiprocessor

A

Een set van computers verbonden met elkaar via LAN die samen functioneren als 1 grote multiprocessor. Het grote verschil met de shared memory processors, is dat clusters (ook wel message-passing multiprocessors genaamd) geen gedeeld geheugen hebben. Elke processor heeft zijn eigen fysieke adresruimte. Indien 2 processoren met elkaar willen communiceren, moet dit via message passing gebeuren zodanig dat berichten en data verstuurd en ontvangen kunnen worden. Clusters hebben een redelijk lage kost, hogere availability en snelle en eenvoudige expandibility hetgeen het attractief maakt voor service providers (zie WSC). Nadelen zijn dat elke processor een eigen kopie van het OS nodig heeft en lagere bandbreedte bereikt wordt dan in multicore processoren.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Address space

A

Voor virtuele adresruime, zie H5, maar kan ook slaan op de fysieke adresruimte, de adresruimte in het hoofdgeheugen. Bij shared memory
multiprocessors delen de verschillende processoren dezelfde fysieke adresruimte, bij clusters heeft elke processor zijn eigen fysieke adresruimte.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Hardware multithreading

A

Het gebruik van een processor verhogen door van de ene thread naar de andere te springen wanneer deze ene thread een stall heeft. Binnen 1 process zijn er meerdere threads. Deze delen de data en de heap, maar bevatten elk een eigen stack, eigen registers en een eigen program counter. Threads zorgen voor hogere responsiveness (vb. MS Word), eenvoudige resource sharing, bij stalls zijn thread switches sneller dan context switches en scalabilty (process kan eenvoudig gebruik maken van multiprocessor architecturen).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Coarse-grained multithreading

A

Een versie van hardware-multithreading waarbij switches van threads enkel gebeuren na significante gebeurtenissen (vb. last-level cache miss). Dit heeft als voordeel dat thread switches minder vaak voorkomen waardoor de werking ervan niet ontzettend snel moet zijn. Het grootste nadeel is het feit dat coarse-grained instructies uitvoert van één thread, waardoor bij een switch de pipeline geledigd moet worden. Dit is vooral nadelig bij korte stalls, coarse-grained is vooral nuttig bij lange stalls waar de start-up kost (voor het ledigen van de pipeline) verwaarloosbaar is tov de lengte van de stall.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Fine-grained multithreading

A

Een versie van hardware-multithreading waarbij er na elke instructie van thread geswitched wordt. Het voordeel van deze techniek is dat throughput losses, veroorzaakt door korte of lange stalls, verborgen blijven, aangezien instructies van andere threads uitgevoerd worden wanneer deze thread stallt. Door deze gezamenlijke uitvoer van meerdere threads is de uitvoersnelheid van 1 thread langzamer, daarnaast moeten de thread switches zeer snel gebeuren.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Simultaneous multithreading

A

Een versie van hardware-multithreading die zowel thread-level parallellisme als ILP exploiteert. Meestal zijn er immers meer functionele eenheden dan dat 1 thread kan vullen. Deze techniek is mogelijk op moderne processoren die dynamisch schedulen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Data-level parallelism

A

Data opdelen in stukken zodanig dat er parallel aan deze stukken gewerkt kan worden. AVX is hier een voorbeeld van (DGEMM met meerdere elementen per lus).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

MIMD

A

Multiple instruction streams, multiple data streams: multiprocessor, parallellisme op thread-niveau.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

SIMD

A

Single input stream, multiple data stream: Data-level parallellisme (vb. AVX).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Multimedia extensies van een processor (bv MMX of SSE)

A

Speciale instructies voor multimedia bewerkingen (in SIMD). Data-level parallellisme door multimediabewerkingen (vb. geluid: 8 bits) samen in 1 ALU uit te voeren.

17
Q

Parallel processing program

A

Een programma dat op meerdere processors tegelijk gerund wordt. Het grote verschil is dat ILP transparant is voor de programmeur en parallel processing dit niet meer is. Te vergelijken met het schrijven van een krantenartikel met 8 auteurs. Staat in contrast met PLP/TLP.

18
Q

Process level parallelism / Task level parallelism

A

Meerdere processoren gebruiken die elk onafhankelijk van elkaar processen uitvoeren. Eenvoudiger dan parallel processing program waar 1 programma op meerdere processoren runt.

19
Q

Pragma / Directive

A

Een directieve voor de compiler. (bv. Zeggen tegen de compiler hoeveel threads er gebruikt moeten worden of ‘use strict’ in Javascript die ‘slechte’ syntax niet toelaat.

20
Q

Process

A

Een programma dat aan het runnen is.

21
Q

Sequential versus concurrent software

A

Software die in 1 thread geschreven is

versus software die met meerdere threads geschreven is.

22
Q

Serial versus parallel hardware

A

Hardware die één core bevat versus hardware die meerdere processoren of cores bevat.

23
Q

Strong scaling

A

Betreft de speed-up van programma’s op multiprocessor waarbij de size van het probleem constant blijft. (moeilijker te realiseren dan weak scaling).

24
Q

Weak scaling

A

Betreft de speed-up van programma’s waarbij de size van het probleem toeneemt evenredig met de stijging van het aantal processors. (ook rekening houden met cachestructuur, niet per se makkelijk te realiseren).

25
Q

Vector architecture

A

(NIET SIMD) Een architectuur waarbij hele vectors in registers kunnen. Bevat bijgevolg ook instructies die op hele vectoren werken. Maakt het programma eenvoudiger. Bovendien zal een instructie enkel stallen voor het 1e element van de vector, de overige elementen volgen netjes in de pipeline. Geen control hazards voor loop branches, want hele vector tegelijk. Gelijkaardige, niet identieke werking met subword parallellisme. De vectorarchitectuur is niet zo
populair omwille van de lange context switches, moeilijker te behandelen page faults, vele applicaties werken nu eenmaal beter op non-vector machines, microprocessoren van vandaag kunnen door wet van Moore op 1 chip gezet worden.

26
Q

WSC (Warehouse-Scale Computers)

A

Warehouses met duizenden servers. Veel groter dan clusters. Ze worden gebruikt voor dingen die goed in parallel kunnen uitvoeren: SaaS, request-level parallellisme. De bouw van zo een WSC is een gigantische investeringskost. Daarnaast zijn de operationele kosten (koeling, energy…) ongeveer 30% van de kosten. Doordat er zoveel servers zijn, krijg je wel economies of scale, wat geleid heeft tot cloud computing.