College 13: Patterns (2)
|
|
- Dennis Hermans
- 5 jaren geleden
- Aantal bezoeken:
Transcriptie
1 Concurrency Gerard Tel / Jacco Bikker - november 2016 februari 2017 College 13: Patterns (2) Welkom!
2 genda: Collective Operations Reduce Scan Stencil Recurrence
3 Concurrency college 13 Patterns (2) 3 Collectives sequence Wat vooraf ging map nesting (dynamisch) nesting fork dependency divide & conquer
4 Concurrency college 13 Patterns (2) 4 Collectives Wat vooraf ging SIMD: Vector parallellisme (aka parallellisme op instructie-niveau) Regular parallelism Data parallellisme Map pattern OpenCL / GPGPU: Single Instruction Multiple Thread / Lockstep Streaming algorithms Regular parallelism Data parallellisme Map pattern
5 Concurrency college 13 Patterns (2) 5 Collectives Wat vooraf ging
6 Concurrency college 13 Patterns (2) 6 Collectives Collective Operations Verzameling van patterns voor het verwerken van verzamelingen als geheel in plaats van als individuele elementen. Voorbeelden: Reduce Scan Stencil Recurrence Collective operations zijn de patronen die we toepassen op embarrassing parallelism.
7 genda: Collective Operations Reduce Scan Stencil Recurrence
8 Concurrency college 13 Patterns (2) 8 Reduce Reduction Combineren van data tot een enkel gegeven. Combineer n input elementen met combiner functie : +, * -, / matrix vermenigvuldiging min, max addition with saturation complexe functie specificeerbare functie
9 Concurrency college 13 Patterns (2) 9 Reduce Reduction Combineer n input elementen met combiner functie x 0 x 1 x 2 x 3 x 4 x 5 y = n 1 x i i=0 + + Wat als n = 0? + y = n 1 i=0 x i, voor n > 0 0, voor n = y
10 Concurrency college 13 Patterns (2) 10 Reduce Reduction Combineer n input elementen met combiner functie Wat als n = 0? y = n 1 i=0 x i assert( n > 0 ); y = x[0]; for( int i = 1; i < n; i++ ) y += x[i]; y = n 1 i=0 x i, voor n > 0 0, voor n = 0 y = identity; for( int i = 0; i < n; i++ ) y += x[i];
11 Concurrency college 13 Patterns (2) 11 Reduce Reduction Toepassingen: Gemiddelde waarde berekenen (Bijvoorbeeld voor exposure control) Bepalen hoeveel elementen voldoen aan een bepaalde voorwaarde Dieptebereik van een beeld bepalen (min, max z)
12 Concurrency college 13 Patterns (2) 12 Reduce Reduction Combineer n input elementen met combiner functie De reductie kan in parallel worden uitgevoerd: N/2 threads combineren steeds twee elementen. De parallelle reductie vergt log 2 N stappen, maar alleen wanneer we altijd N/2 threads kunnen gebruiken. Let op: optional parallelism neemt snel af (dit is het omgekeerde van wat er bij divide and conquer gebeurde).
13 Concurrency college 13 Patterns (2) 13 Reduce Reduction Combineer n input elementen met combiner functie Voorbeeld: dot product (NED: inproduct). c = B c = x B x + y B y + z B z c = N 1 i=0 i B i
14 Concurrency college 13 Patterns (2) 14 Reduce Reduction Combineer n input elementen met combiner functie Parallelle executie verandert de volgorde waarin we operaties uitvoeren. is een binaire operatie, i.e.: f: S S S. Om bij herordenen hetzelfde resultaat te krijgen moet associatief zijn.
15 Concurrency college 13 Patterns (2) 15 Reduce Reduction Om bij herordenen hetzelfde resultaat te krijgen moet associatief zijn. ssociatief: X Y Z = X (Y Z) Commutatief: X Y = Y X ssociatief Commutatief +, * -, / matrix * matrix min, max signed addition w/ saturation complexe functie specificeerbare functie????
16 Concurrency college 13 Patterns (2) 16 Reduce Reduction Signed addition with saturation associativiteit: Om bij herordenen hetzelfde resultaat te krijgen moet associatief zijn. Byte / unsigned char: = 100 B = 100 C = -50 +(B+C) = (100-50) = = 127 (+B)+C = ( ) - 50 = = 77
17 Concurrency college 13 Patterns (2) 17 Reduce Reduction Combineer n input elementen met combiner functie Om bij herordenen hetzelfde resultaat te krijgen moet associatief zijn. c = x B x + y B y + z B z c = x B x + ( y B y + z B z )
18 Concurrency college 13 Patterns (2) 18 Reduce Reduction ssociatief: X Y Z = X (Y Z) Commutatief: X Y = Y X ssociatief Commutatief +, * -, / matrix * matrix min, max signed addition w/ saturation complexe functie specificeerbare functie floating point +, *??????
19 Concurrency college 13 Patterns (2) 19 Reduce Reduction Floating point add / mul associativiteit: Stel: = B = C = En: floating point waarden worden met 7 posities opgeslagen. Dan: = = = = = =
20 Concurrency college 13 Patterns (2) 20 Reduce Reduction ssociatief: X Y Z = X (Y Z) Commutatief: X Y = Y X ssociatief Commutatief +, * -, / matrix * matrix min, max signed addition w/ saturation complexe functie specificeerbare functie floating point +, *????
21 Concurrency college 13 Patterns (2) 21 Reduce Reduction Voor reduction is alleen associativiteit vereist. y = x 0 x 1 x 2 x 3 x 4 x 5 x 0 x 1 x 2 x 3 x 4 x 5 = ((((x 0 x 1 ) x 2 ) x 3 ) x 4 ) x 5 = x 0 x 1 x 2 x 3 x 4 x 5 y
22 Concurrency college 13 Patterns (2) 22 Reduce Reduction Voor reduction is alleen associativiteit vereist. x 0 x 1 x 2 x 3 x 4 x 5 y = x 0 x 1 x 2 x 3 x 4 x 5 = ((((x 0 x 1 ) x 2 ) x 3 ) x 4 ) x 5 = x 0 x 1 x 2 x 3 x 4 x 5 y
23 Concurrency college 13 Patterns (2) 23 Reduce Reduction x 0 x 1 x 2 x 3 x 4 x 5 x 6 x 7 Vector operatie Scalar operaties y
24 Concurrency college 13 Patterns (2) 24 Reduce x 0 x 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 x 11 x 12 x 13 x 14 x 15 Reductie met vector operaties: convergeert naar optimale benutting van vector hardware. Let op: dit vereist naast associativiteit ook commutativiteit. y
25 Concurrency college 13 Patterns (2) 25 Reduce Reduction Dit vereist commutativiteit : Dit is goed te zien wanneer we 2-wide SIMD gebruiken. x 0 + x 1 + x 2 + x 3 (x 0 + x 2 ) + (x 1 + x 3 ) x 1 en x 2 zijn van plaats verwisseld.
26 Concurrency college 13 Patterns (2) 26 Reduce Reduction ssociatief: X Y Z = X (Y Z) Commutatief: X Y = Y X ssociatief Commutatief +, * -, / matrix * matrix min, max signed addition w/ saturation complexe functie specificeerbare functie floating point +, *???? Parallelle reductie: Vereist associativiteit en (voor efficiënt gebruik van vector instructies) commutativiteit. Onder deze voorwaarden is optimaal gebruik van vector hardware mogelijk (SIMD / GPU).
27 Concurrency college 13 Patterns (2) 27 Reduce Parallel Reduction Samenvatting: Uit te voeren in log 2 N stappen, met N/2 threads voor de eerste stap. Uit te voeren met SIMD; hierbij wordt de vector hardware vrijwel volledig benut. Valkuil: Floating point addition & multiplication is niet (volledig) associatief. Parallel reduction is in dat geval dus niet deterministisch.
28 genda: Collective Operations Reduce Scan Stencil Recurrence
29 Concurrency college 13 Patterns (2) 29 Scan lle reducties van een input set, met als resultaat een output set met dezelfde omvang. Twee varianten: Inclusive: Exclusive: y n = y n = n i=0 n 1 i=0 x i x i
30 Concurrency college 13 Patterns (2) 30 Scan Voorbeeld: Summed rea Table I Σ x, y = x x y y i(x, y )
31 Concurrency college 13 Patterns (2) 31 Scan Voorbeeld: Summed rea Table I Σ x, y = x x y y i(x, y ) Met een ST kunnen we een box filter van willekeurige grootte bepalen in O(1) tijd: V = I C I D I B + I w h D B C
32 Concurrency college 13 Patterns (2) 32 Scan Summed rea Table - Separation Scan 0 Scan 0 Scan Scan 0 0
33 Concurrency college 13 Patterns (2) 33 Scan Summed rea Table - Separation Scan Scan Scan Scan Scan 0 0 Scan 0 0 Scan 0 0 Scan 0 0
34 Concurrency college 13 Patterns (2) 34 Scan Voorbeeld: Caveman Hoe weet thread 1 dat de eerste output op positie 4 in de array moet komen? thread 0 thread 1 1. Dat weet thread 1 helemaal niet; beide threads doen atomic incs om te voorkomen dat ze dezelfde array positie beschrijven.
35 Concurrency college 13 Patterns (2) 35 Scan Voorbeeld: Caveman Hoe weet thread 1 dat de eerste output op positie 4 in de array moet komen? thread 0 thread 1 1. Dat weet thread 1 helemaal niet; beide threads doen atomic incs om te voorkomen dat ze dezelfde array positie beschrijven. (de data van thread 1 en 2 staat nu door elkaar in de output array; is dat een probleem?)
36 Concurrency college 13 Patterns (2) 36 Scan Voorbeeld: Caveman Hoe weet thread 1 dat de eerste output op positie 4 in de array moet komen? thread 0 thread 1 1. Dat weet thread 1 helemaal niet; beide threads doen atomic incs om te voorkomen dat ze dezelfde array positie beschrijven. 2. Met een scan.
37 Concurrency college 13 Patterns (2) 37 Scan Voorbeeld: Caveman Hoe weet thread 1 dat de eerste output op positie 4 in de array moet komen? thread 0 thread 1 thread 2 thread 3 thread 4 thread 5 thread 6 thread 7 1. Dat weet thread 1 helemaal niet; beide threads doen atomic incs om te voorkomen dat ze dezelfde array positie beschrijven. 2. Met een scan. exclusive scan:
38 Concurrency college 13 Patterns (2) 38 Scan Identity waarde lle reducties van een input set, met als resultaat een output set met dezelfde omvang. // inclusive total = 0; for( int i = 0; i < n; i++ ) { total += x[i]; y[i] = total; // loop-carried dependency } // exclusive total = 0; for( int i = 0; i < n; i++ ) { y[i] = total; // loop-carried dependency total += x[i]; }
39 Concurrency college 13 Patterns (2) 39 Scan
40 Concurrency college 13 Patterns (2) 40 Scan Identity waarde Nuttig voor tiled parallel scan. Tiled: meerdere seriële scans in parallel. Seriële scans: O(1) opslag, versus O(n) voor de parallelle versie.
41 Concurrency college 13 Patterns (2) 41 Scan Parallel Scan for( d = 0; d < log 2 n; d++ ) for all k in parallel do if k >= 2 d x[k] += x[k 2 d ] d=0, 2 d = 1 d=1, 2 d = 2 d=2, 2 d =
42 Concurrency college 13 Patterns (2) 42 Scan Parallel Scan Span: log n Work: ~ n log n d=1, 2 d 1 = S P = T 1 T n log n log n = n d=2, 2 d 1 = T 1 met het seriële algoritme: n S P = T 1 T = n log n d=3, 2 d 1 =
43 Concurrency college 13 Patterns (2) 43 Scan Parallel Scan De parallel scan, uitgevoerd op de 32 threads in een warp (OpenCL): for( d = 0; d < log 2 n; d++ ) for all k in parallel do if k >= 2 d x[k] += x[k 2 d ] int scan_exclusive( local int* input, int lane ) { if (lane > 0 ) input[lane] += input[lane - 1]; if (lane > 1 ) input[lane] += input[lane - 2]; if (lane > 3 ) input[lane] += input[lane - 4]; if (lane > 7 ) input[lane] += input[lane - 8]; if (lane > 15) input[lane] += input[lane - 16]; return (lane > 0)? input[lane - 1] : 0; }
44 Concurrency college 13 Patterns (2) 44 Scan Parallel Scan CaveMan zal al snel meer taken dan 32 hebben. Waarom is de warp scan dan nuttig? 32 threads weten hoeveel ruimte ze samen nodig hebben in de output array; elk van de 32 threads weet welk deel van die ruimte beschikbaar is (zonder atomic); slechts één van de threads voert de atomic add uit. De warp scan beperkt dus het aantal atomics. for( d = 0; d < log 2 n; d++ ) for all k in parallel do if k >= 2 d x[k] += x[k 2 d ] Zie ook: Kepler TM GK110/210 Whitepaper, tomic operations can often be processed at rates similar to global load operations.
45 Concurrency college 13 Patterns (2) 48 Scan Parallel Scan Toepassingen: Stream Compaction : Caveman, ray tracing,... Filter : verwijder gemarkeerde elementen, QuickSort : partitioneren De parallel scan is een generieke tool.
46 genda: Collective Operations Reduce Scan Stencil Recurrence
47 Concurrency college 13 Patterns (2) 50 Stencil Een map waarbij elke output wordt bepaald op basis van een reeks inputs met een set vaste offsets t.o.v. de output positie.
48 Concurrency college 13 Patterns (2) 51 Stencil Een map waarbij elke output wordt bepaald op basis van een reeks inputs met een set vaste offsets t.o.v. de output positie.
49 Concurrency college 13 Patterns (2) 52 Stencil 2D Stencil Kenmerken: iedere kernel heeft meerdere inputs; kernels gebruiken elkaars output niet; overlap van kernel input; speciale gevallen langs de randen.
50 Concurrency college 13 Patterns (2) 53 Stencil 2D Stencil - Efficiënte uitzonderingen for( int x = 0; x < W; x++ ) { for( int y = 0; y < H; y++ ) { input1 = read_grid[y - 1][x]; input2 = read_grid[y][x + 1]; input3 = read_grid[y + 1][x]; input4 = read_grid[y][x - 1]; output = blend( input1 input4 ); } } Let op: conditional code!
51 Concurrency college 13 Patterns (2) 54 Stencil 2D Stencil - Cache for( int x = 0; x < W; x++ ) { for( int y = 0; y < H; y++ ) { input1 = read_grid[y - 1][x]; input2 = read_grid[y][x + 1]; input3 = read_grid[y + 1][x]; input4 = read_grid[y][x - 1]; output = blend( input1 input4 ); } } Let op: memory access pattern
52 Concurrency college 13 Patterns (2) 55 Stencil 2D Stencil - Cache for( int y = 0; y < H; y++ ) { for( int x = 0; x < W; x++ ) { input1 = read_grid[y - 1][x]; input2 = read_grid[y][x + 1]; input3 = read_grid[y + 1][x]; input4 = read_grid[y][x - 1]; output = blend( input1 input4 ); } }
53 Concurrency college 13 Patterns (2) 56 Stencil 2D Stencil - Tiling Voor grote datasets kan significante overlap tussen de inputs voor twee regels toch leiden tot slechte benutting van de cache.
54 Concurrency college 13 Patterns (2) 57 Stencil 2D Stencil - Tiling Voor grote datasets kan significante overlap tussen de inputs voor twee regels toch leiden tot slechte benutting van de cache. Optimale data locality wordt bereikt met een Morton curve.
55 Concurrency college 13 Patterns (2) 58 Stencil 2D Stencil Minimaliseren van branch misprediction: gebruik een kernel voor interior nodes, en één voor boundary nodes. Optimaliseren van data locality: verwerk de set zoveel mogelijk lineair; gebruik tiling, afgestemd op de grootte van de cache; gebruik een Morton curve.
56 genda: Collective Operations Reduce Scan Stencil Recurrence
57 Concurrency college 13 Patterns (2) 60 Recurrence Een map waarbij elke output wordt bepaald op basis van een reeks outputs met een set vaste offsets t.o.v. de output positie.
58 Concurrency college 13 Patterns (2) 61 Recurrence Kenmerken Geneste loop met regelmatige data dependencies Speciale gevallen langs de randen Parallelle verwerking: Separating hyperplanes Separable filters
59 Concurrency college 13 Patterns (2) 62 Recurrence Separating hyperplanes Voor cellen op een hyperplane geldt dat alle benodigde resultaten berekend zijn op een eerder verwerkt hyperplane.
60 Concurrency college 13 Patterns (2) 63 Recurrence Separating hyperplanes Voor cellen op een hyperplane geldt dat alle benodigde resultaten berekend zijn op een eerder verwerkt hyperplane. for( int y = 0; y < 4; y++ ) { for( int x = 0; x < 4; x++ ) { v[y][x] = average( v[y 1][x], v[y][x + 1], v[y + 1][x], v[y][x 1] ); } }
61 Concurrency college 13 Patterns (2) 64 Recurrence Voorbeeld: Summed rea Table Serieel: cell(x,y) += cell(x-1,y) + cell(x,y-1) cell(x-1,y-1)
62 genda: Collective Operations Reduce Scan Stencil Recurrence
63 Concurrency college 13 Patterns (2) 67 Tot Slot Collectives Verzameling van patterns voor het verwerken van verzamelingen als geheel in plaats van als individuele elementen. Reduce Scan Stencil Recurrence Deze patronen zijn vooral nuttig voor GPU en SIMD code.
64 Concurrency college 13 Patterns (2) 68 Tot Slot Leesmateriaal: Boek hoofdstuk 5 en 7
65 Concurrency Gerard Tel / Jacco Bikker - november 2016 februari 2017 EINDE van Patterns (2) volgende college: Monte Carlo
Toetsbundel Deel 2 Concurrency 8 oktober 2018, Gerard Tel, Niet verspreiden 1!.
Toetsbundel Deel 2 Concurrency 8 oktober 2018, Gerard Tel, Niet verspreiden 1!. Deze bundel bevat een collectie toetsvragen over het tweede deel van Concurrency. Behalve dat goede antwoorden worden gegeven,
Nadere informatieConcurrency. Gerard Tel / Jacco Bikker - november 2017 februari College 8: Patronen. Welkom!
Concurrency Gerard Tel / Jacco Bikker - november 2017 februari 2018 College 8: Patronen Welkom! Previously in Concurrency Blur embarrassingly parallel ST prefix-sum loop dependency Blur embarrassingly
Nadere informatieTweede Toets Concurrency 2 februari 2017, , Educ-β.
Tweede Toets Concurrency 2 februari 2017, 8.30 10.30, Educ-β. Motiveer je antwoorden kort! Zet je mobiel uit. Stel geen vragen over deze toets; als je een vraag niet duidelijk vindt, schrijf dan op hoe
Nadere informatieConcurrency. Gerard Tel / Jacco Bikker - november 2015 januari Welkom!
Concurrency Gerard Tel / Jacco Bikker - november 2015 januari 2016 Welkom! Agenda: Wat vooraf ging Taken en Data Hardware Performance Theorie Concurrency college 3 Hardware 3 Previously in Concurrency
Nadere informatiecollege 2: Introductie
Concurrency Gerard Tel / Jacco Bikker - november 2017 februari 2018 college 2: Welkom! Agenda: Concepten en patronen Multi-threading in C# Concurrency college 2 3 Concurrency college 2 4 Jacco Bikker j.bikker@uu.nl
Nadere informatieConcurrency. Gerard Tel / Jacco Bikker - november 2015 januari Welkom!
Concurrency Gerard Tel / Jacco Bikker - november 2015 januari 2016 Welkom! Agenda: Concepten en patronen Multi-threading in C# Concurrency college 1 3 Alles Parallel Opteron 6300 16 cores i7 4 cores Atom
Nadere informatieCollege 15: Monte-Carlo
Concurrency Gerard Tel / Jacco Bikker - november 2016 februari 2017 College 15: Monte-Carlo Welkom! Agenda: Monte-Carlo Heterogeneous Computing Brigade Toets 2 Concurrency college 15 Monte-Carlo 3 Monte-Carlo
Nadere informatieTentamen Computersystemen
Tentamen Computersystemen baicosy6 2e jaar bachelor AI, 2e semester 21 oktober 213, 9u-11u OMHP D.9 vraag 1 Van een Single Cycle Harvard machine hebben de componenten de volgende propagation delay time:
Nadere informatieToetsbundel Deel 2 Concurrency 25 oktober 2017, Gerard Tel, Niet verspreiden 1!.
Toetsbundel Deel 2 Concurrency 25 oktober 2017, Gerard Tel, Niet verspreiden 1!. Deze bundel bevat een collectie toetsvragen over het tweede deel van Concurrency. Behalve dat goede antwoorden worden gegeven,
Nadere informatieCollege 4: Mechanismen
Concurrency Gerard Tel / Jacco Bikker - november 2017 februari 2018 College 4: Mechanismen Welkom! Agenda: Wat vooraf ging Hardware Electronic components are submerged into a bath of dielectric heat transfer
Nadere informatieCollege 17: Monte-Carlo
Concurrency Gerard Tel / Jacco Bikker - november 2017 februari 2018 College 17: Monte-Carlo Welkom! Agenda: Monte-Carlo Heterogeneous Computing Brigade Toets 2 Concurrency college 17 Monte-Carlo 3 Monte-Carlo
Nadere informatieHigh Performance Computing
High Performance Computing Kristian Rietveld (krietvel@liacs.nl, kamer 138) Groep Computer Systems High-Performance Computing Optimizing compilers (generieke codes, maar ook specifieke rekenkernels). Parallel
Nadere informatien-queens minimale dominantie verzamelingen Chessboard Domination on Programmable Graphics Hardware door Nathan Cournik
n-queens minimale dominantie verzamelingen Chessboard Domination on Programmable Graphics Hardware door Nathan Cournik Rick van der Zwet 4 augustus 2010 Samenvatting Dit schrijven zal
Nadere informatieGroepen, ringen en velden
Groepen, ringen en velden Groep Een groep G is een verzameling van elementen en een binaire operator met volgende eigenschappen: 1. closure (gesloten): als a en b tot G behoren, doet a b dat ook. 2. associativiteit:
Nadere informatieCentrale begrippen hoofdstuk 3. Waarom multiprogramming? Vandaag. processen proces state: running, ready, blocked,... Vragen??
Vragen?? Vandaag Hoofdstuk 4: threads (tentamenstof : 4.1 t/m 4.2) Kleine Opgaven 4.1 (niet alleen ja of nee, ook waarom!) en 4.4 inleveren maandag Centrale begrippen hoofdstuk 3 processen proces state:
Nadere informatieOpgaven Registers Concurrency, 29 nov 2018, Werkgroep.
Opgaven Registers Concurrency, 29 nov 2018, Werkgroep. Gebruik deze opgaven om de stof te oefenen op het werkcollege. Cijfer: Op een toets krijg je meestal zes tot acht opgaven. 1. Safe Integer: Van een
Nadere informatieDigitale en analoge technieken
Digitale en analoge technieken Peter Slaets February 14, 2006 Peter Slaets () Digitale en analoge technieken February 14, 2006 1 / 33 Computerarchitectuur 1 Processors 2 Primair geheugen 3 Secundair geheugen
Nadere informatieDDS chips. DDS = Direct Digital (frequency) Synthesis. Output = sinusvormig signaal. Maximum frequentie = ½ klokfrequentie
www.arduino.cc Arduino en DDS DDS chips DDS = Direct Digital (frequency) Synthesis Output = sinusvormig signaal Maximum frequentie = ½ klokfrequentie Frequentie bepaald door tuning word Grootste fabrikant:
Nadere informatieDivide & Conquer: Verdeel en Heers. Algoritmiek
Divide & Conquer: Verdeel en Heers Algoritmiek Algoritmische technieken Trucs; methoden; paradigma s voor het ontwerp van algoritmen Gezien: Dynamisch Programmeren Volgend college: Greedy Vandaag: Divide
Nadere informatieComputerarchitectuur en netwerken Toets 1 4 okt
11.00 13.00 De open vragen moet je beantwoorden op tentamenpapier. De multiple-choice antwoorden moet je op het vragenblad invullen in de rechtervakjes en dat blad inleveren. Schrijf je naam, studentnummer
Nadere informatieComputerarchitectuur. Terugblik / discussie / oefenopgaven
Computerarchitectuur Terugblik / discussie / oefenopgaven Kristian Rietveld http://ca.liacs.nl/ Trends & Performance Voorkennis We bouwden een 4-bit microprocessor bij Digitale Technieken. Bij computerarchitectuur
Nadere informatieInleiding Digitale Techniek. Week 7 Schuifregisters Jesse op den Brouw INLDIG/2013-2014
Inleiding Digitale Techniek Week 7 Schuifregisters Jesse op den Brouw INLDIG/213-214 Schuifregisters In de digitale techniek en met name in de digitale communicatie wordt veel gebruik gemaakt van seriële
Nadere informatieDivide & Conquer: Verdeel en Heers vervolg. Algoritmiek
Divide & Conquer: Verdeel en Heers vervolg Algoritmiek Algoritmische technieken Vorige keer: Divide and conquer techniek Aantal toepassingen van de techniek Analyse met Master theorem en substitutie Vandaag:
Nadere informatieDeel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,
Deel 1: Arduino kennismaking Wat is een microcontroller, structuur van een programma, syntax, Wat is een microcontroller Wat is een microcontroller? Microcontroller = kleine dedicated computer. - Beperkt
Nadere informatieOnafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms
Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms Giso Dal (0752975) Pagina s 5 7 1 Deelverzameling Representatie
Nadere informatieConcurrency. Gerard Tel / Jacco Bikker - november 2015 januari Welkom!
Concurrency Gerard Tel / Jacco Bikker - november 2015 januari 2016 Welkom! Agenda: Introductie Path Tracing C# en SIMD Vectorizatie Speculative xecution Concurrency college 7 Vectorizatie 3 Introductie
Nadere informatieBeter, Sneller, Mooier. Processoren 12 januari 2015
Beter, Sneller, Mooier Processoren 12 januari 2015 Beter! Sneller! Krachtigere CPU: maak instructies die meer doen Snellere CPU: pipeline, out-of-order execution Sneller RAM: cache meer mogelijkheden...
Nadere informatieNederlandse samenvatting (Dutch summary)
Nederlandse samenvatting (Dutch summary) Ditproefschriftpresenteerteen raamwerk voorhetontwikkelenvanparallellestreaming applicaties voor heterogene architecturen met meerdere rekeneenheden op een chip.
Nadere informatieLineaire Algebra voor ST
Lineaire Algebra voor ST docent: Judith Keijsper TUE, HG 9.3 email: J.C.M.Keijsper@tue.nl studiewijzer: http://www.win.tue.nl/wsk/onderwijs/2ds6 Technische Universiteit Eindhoven college 5 J.Keijsper (TUE)
Nadere informatieDigitale technieken Deeltoets II
Digitale technieken Deeltoets II André Deutz 11 januari, 2008 De opgaven kunnen uiteraard in een willekeurige volgorde gemaakt worden geef heel duidelijk aan op welke opgave een antwoord gegegeven wordt.
Nadere informatieIterative methoden voor lineaire vergelijkingen. Scientific Computing. sleij101/ Program
WISB356, Utrecht, 2 otober 2012 Scientific Computing WISB356, Utrecht, 2 otober 2012 Iterative methoden voor lineaire vergelijingen Gerard Sleijpen Rob Bisseling Alessandro Sbrizzi Department of Mathematics
Nadere informatieMulti-core systemen. door Alexander Melchior
Multi-core systemen Multi-cpu & Multi-core Multi cpu & Multi core door Alexander Melchior Toevoeging aan GDP Overdragen Capita Selecta Waarom? Een stukje geschiedenis 2005: Introductie eerste consumenten
Nadere informatieDivide & Conquer: Verdeel en Heers. Algoritmiek
Divide & Conquer: Verdeel en Heers Algoritmiek Algoritmische technieken Trucs; methoden; paradigma s voor het ontwerp van algoritmen Gezien: Dynamisch Programmeren Hierna: Greedy Vandaag: Divide & Conquer
Nadere informatieCollege 10: OpenCL (1)
Concurrency Gerard Tel / Jacco Bikker - november 2017 februari 2018 College 10: OpenCL (1) Welkom! Previously in Concurrency Concurrency College 8 Patronen 3 SIMD System.Numerics.Vectors namespace System.Numerics
Nadere informatieConcurrency. Gerard Tel / Jacco Bikker - november 2015 januari Welkom!
Concurrency Gerard Tel / Jacco Bikker - november 2015 januari 2016 Welkom! Agenda: Context Heterogeneous Rendering Load Balancing Application Conclusion Concurrency college 15 Heterogeen 3 Context Concurrency
Nadere informatieUitwerking oefententamen Computerarchitectuur December 2016
Uitwerking oefententamen Computerarchitectuur December 2016 I.a. De overall CPI kan worden berekend met de formule n IC i CPI Instruction count CPI i voor de ratio vullen we telkens de geven frequentie
Nadere informatie1 Aanvulling cosy deeltijd
1 Aanvulling cosy deeltijd 1.1 Multiprocessor versus multicomputer Het kenmerk van een multiprocessor is dat meer CPU hetzelfde geheugen delen. Voordeel van deze aanpak is het relatief eenvoudige programmeermodel.
Nadere informatieAdd the standing fingers to get the tens and multiply the closed fingers to get the units.
Digit work Here's a useful system of finger reckoning from the Middle Ages. To multiply $6 \times 9$, hold up one finger to represent the difference between the five fingers on that hand and the first
Nadere informatieDatastructuren en algoritmen voor CKI
Datastructuren en algoritmen voor CKI Jeroen Bransen 1 11 september 2015 1 met dank aan Hans Bodlaender en Gerard Tel Heaps en heapsort Heap 1 2 3 4 5 6 7 8 9 10 16 14 10 8 7 9 3 2 4 1 16 14 10 8 7 9 3
Nadere informatieBouwstenen voor PSE. Datatypes en Datastructuren
Bouwstenen voor PSE Datatypes en Datastructuren Definitie Datatype Klasse van dataobjecten tesamen met operaties om ze te construeren, te manipuleren en te verwijderen. Een datatype omvat een specificatie
Nadere informatieProeftentamen Digitale technieken
Proeftentamen Digitale technieken André Deutz October 17, 2007 De opgaven kunnen uiteraard in willekeurige volgorde gemaakt worden geef heel duidelijk aan op welke opgave een antwoord gegegeven wordt.
Nadere informatieScan-pad technieken. Zet elk register om in een scan-pad register (twee opeenvolgende D-latches: master-slave):
Zet elk register om in een scan-pad register (twee opeenvolgende D-latches: master-slave): D is de normale data ingang C is de normale fase 1 klok I is de data ingang van het shift-regiester A is de klok
Nadere informatieDEC SDR DSP project 2017 (2)
DEC SDR DSP project 2017 (2) Inhoud: DSP software en rekenen Effect van type getallen (integer, float) Fundamenten onder DSP Lezen van eenvoudige DSP formules x[n] Lineariteit ( x functie y dus k maal
Nadere informatieComputerarchitectuur. Ch 4. Data-Level Parallelism
Computerarchitectuur Ch 4. Data-Level Parallelism Kristian Rietveld http://ca.liacs.nl/ Data-Level Parallelism Nu we de limieten hebben gezien van parallelisme tussen instructies, kunnen we parallelisme
Nadere informatieVerzamelingen deel 3. Derde college
1 Verzamelingen deel 3 Derde college rekenregels Een bewerking op A heet commutatief als voor alle x en y in A geldt dat x y = y x. Een bewerking op A heet associatief als voor alle x, y en z in A geldt
Nadere informatieZevende college algoritmiek. 24 maart Verdeel en Heers
Zevende college algoritmiek 24 maart 2016 Verdeel en Heers 1 Verdeel en heers 1 Divide and Conquer 1. Verdeel een instantie van het probleem in twee (of meer) kleinere instanties 2. Los de kleinere instanties
Nadere informatieDatastructuren en algoritmen voor CKI
Datastructuren en algoritmen voor CKI Jeroen Bransen 1 2 oktober 2015 1 met dank aan Hans Bodlaender en Gerard Tel Priority queue Priority queue ADT insert(q, x): voeg element x toe aan de queue maximum(q):
Nadere informatieComputerarchitectuur. Ch 4. Data-Level Parallelism
Computerarchitectuur Ch 4. Data-Level Parallelism Kristian Rietveld http://ca.liacs.nl/ Data-Level Parallelism Nu we de limieten hebben gezien van parallelisme tussen instructies, kunnen we parallelisme
Nadere informatieAchtste college algoritmiek. 8 april Dynamisch Programmeren
Achtste college algoritmiek 8 april 2016 Dynamisch Programmeren 1 Werkcollege-opgave Dutch Flag Problem Gegeven een array gevuld met R, W, en B. Reorganiseer dit array zo dat van links naar rechts eerst
Nadere informatie(On)Doenlijke problemen
Fundamentele Informatica In3 005 Deel 2 College 1 Cees Witteveen Parallelle en Gedistribueerde Systemen Faculteit Informatie Technologie en Systemen Overzicht Inleiding - Relatie Deel 1 en Deel 2 - Doenlijke
Nadere informatieJava virtuele machine JVM
Implementatie Java Java virtuele machine JVM Java programma vertaald naar byte code instructies Byte code instructies uitgevoerd door JVM JVM is processor architectuur kan in principe in hardware worden
Nadere informatieCover Page. Author: Vu, Van Thieu Title: Opportunities for performance optimization of applications through code generation Issue Date:
Cover Page The handle http://hdl.handle.net/1887/18622 holds various files of this Leiden University dissertation. Author: Vu, Van Thieu Title: Opportunities for performance optimization of applications
Nadere informatieComputerarchitectuur. H&P Ch 5. Thread-Level Parallelism
Computerarchitectuur H&P Ch 5. Thread-Level Parallelism Kristian Rietveld http://ca.liacs.nl/ Thread-Level Parallelism In het geval van thread-level parallelism (TLP) gaan we uit van meerdere threads.
Nadere informatieZevende college algoritmiek. 23/24 maart Verdeel en Heers
Zevende college algoritmiek 23/24 maart 2017 Verdeel en Heers 1 Algoritmiek 2017/Backtracking Tweede Programmeeropdracht 0 1 2 3 0 1 2 3 4 1 2 3 4 5 2 Algoritmiek 2017/Backtracking Tweede Programmeeropdracht
Nadere informatieZevende college complexiteit. 17 maart Ondergrens sorteren, Quicksort
College 7 Zevende college complexiteit 17 maart 2008 Ondergrens sorteren, Quicksort 1 Sorteren We bekijken sorteeralgoritmen gebaseerd op het doen van vergelijkingen van de vorm A[i] < A[j]. Aannames:
Nadere informatieProgrammeermethoden. Recursie. week 11: november kosterswa/pm/
Programmeermethoden Recursie week 11: 21 25 november 2016 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Pointers Derde programmeeropgave 1 Het spel Gomoku programmeren we als volgt: week 1: pointerpracticum,
Nadere informatieint main() { int m; m = power(2,3) /* berekent 2^3 en geeft de resultaat naar m terug */ }
1 Functies ( ) voorbeeld: int power(int base, int n) int i, p; p = 1; for ( i=1, i
Nadere informatieProeftentamen in1211 Computersystemen I (NB de onderstreepte opgaven zijn geschikt voor de tussentoets)
TECHNISCHE UNIVERSITEIT DELFT Faculteit Informatietechnologie en Systemen Afdeling ISA Basiseenheid PGS Proeftentamen in1211 Computersystemen I (NB de onderstreepte opgaven zijn geschikt voor de tussentoets)
Nadere informatieHertentamen 8D040 - Basis beeldverwerking
Hertentamen 8D040 - Basis beeldverwerking 6 augustus 203, 4:00-7:00 Opmerkingen: Maak elke opgave op een apart vel. Antwoord op vraag 4 mag gewoon in het Nederlands. Een gewone rekenmachine is toegestaan.
Nadere informatieDigitale technieken Microprocessoren
Digitale technieken Microprocessoren ir. Patrick Colleman Inhoudstafel Inhoudstafel. Afkortingen. Inleiding - voorwoord 1 Hoofdstuk 1 : Voorstelling van getallen en karakters. 2 1.1 Voorstelling van binaire
Nadere informatiescc = b) CD AB
Computerarchitectuur en -organisatie (213030) Dinsdag 21 januari 2040, 13.30 17.00 uur 7 bladzijden met 8 opgaven 4 bladzijden met documentatie Let op: Vul het tentamenbriefje volledig in (d.w.z. naam,
Nadere informatieMemory Management. Virtual Memory. Eisen Memory Management. Verdelen geheugen over meerdere processen
Memory Management Process control information Entry point to program Process Control Block Verdelen geheugen over meerdere processen Program Branch instruction Virtual Memory Data Reference to data Processen
Nadere informatieInhoudsopgave. Optimalisatie van de mmips. Forwarding optie 1. Design flow. implementation
2 Inhoudsopgave Optimalisatie van de mmips pc Sander Stuijk Veel gestelde vragen Hoe moet ik forwarding implementeren? Hoe moet ik clipping implementeren? Waarom is mijn simulatie zo traag? Hoe kan ik
Nadere informatieKortste Paden. Algoritmiek
Kortste Paden Vandaag Kortste Paden probleem All pairs / Single Source / Single Target versies DP algoritme voor All Pairs probleem (Floyd s algoritme) Dijkstra s algoritme voor Single Source Negatieve
Nadere informatieComputer Vision: Hoe Leer ik een Computer Zien?
Computer Vision: Hoe Leer ik een Computer Zien? Michael H.F. Wilkinson Instituut voot Wiskunde en Informatica Rijksuniversiteit Groningen 27 April 2006 Overzicht 1 of 19 Wat is Computer Vision? Wat zijn
Nadere informatieALGORITMIEK: answers exercise class 7
Problem 1. See slides 2 4 of lecture 8. Problem 2. See slides 4 6 of lecture 8. ALGORITMIEK: answers exercise class 7 Problem 5. a. Als we twee negatieve (< 0) getallen bij elkaar optellen is het antwoord
Nadere informatieHigh Performance Computing
High Performance Computing Kristian Rietveld (krietvel@liacs.nl, kamer 138) Groep Computer Systems - Embedded systems - Specifieke software mappen op specfieke hardware. - Hardware synthesis. - Real-time
Nadere informatieDe Parallelle Revolutie van GPU's en CPU's
De Parallelle Revolutie van GPU's en CPU's George van Venrooij Organic Vectory BV Bits&Chips Embedded Systemen 18 November 2011 Eindhoven Een nieuw speelveld Desktop PC anno 2005 2 GHz CPU (1 core, 6 GFLOP/s)
Nadere informatieStudentnummer:... Opleiding:... a) Met welke term wordt het interface tussen software en hardware van een processor aangeduid?
Computerorganisatie (213110) Dinsdag 15 augustus 2000, 13.30 17.00 uur 7 bladzijden met 6 opgaven 3 bladzijden met documentatie Bij dit tentamen mag geen gebruik worden gemaakt van boeken, dictaten of
Nadere informatieGelijktijdigheid: Wederzijdse Uitsluiting & Synchronisatie Concurrency: Mutual Exclusion & Synchonization (5e ed: 5.1-5.2, Appendix A.
Gelijktijdigheid: Wederzijdse Uitsluiting & Synchronisatie Concurrency: Mutual Exclusion & Synchonization (5e ed: 51-52, Appendix A1) Processes zijn meestal niet onafhankelijk Bijvoorbeeld: 2 processen
Nadere informatieIN1805 I Operating System Concepten
IN1805 I Operating System Concepten Hoofdstuk 12: Mass-storage structure 9-1 Secondary storage (1) voornamelijk disks kleinst leesbare eenheid: sector plaats van een sector volledig bepaald door: drive
Nadere informatieZevende college Algoritmiek. 6 april Verdeel en Heers
Zevende college Algoritmiek 6 april 2018 Verdeel en Heers 1 Algoritmiek 2018/Backtracking Programmeeropdracht 2 Puzzel 2: D O N A L D G E R A L D + R O B E R T Elke letter stelt een cijfer voor (0,1,...,9)
Nadere informatieComputerarchitectuur en netwerken. Memory management Assembler programmering
Computerarchitectuur en netwerken 2 Memory management Assembler programmering Lennart Herlaar 10 september 2018 Inhoud 1 Protectie: Hoe het O.S. programma s tegen elkaar kan beschermen modes memory management
Nadere informatieZelftest Inleiding Programmeren
Zelftest Inleiding Programmeren Document: n0824test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST INLEIDING PROGRAMMEREN Deze
Nadere informatieGegevens invullen in HOOFDLETTERS en LEESBAAR, aub. Belgische Olympiades in de Informatica (duur : maximum 1u15 )
OI 2010 Finale 12 Mei 2010 Gegevens invullen in HOOFDLETTERS en LEESBAAR, aub VOORNAAM :....................................................... NAAM :..............................................................
Nadere informatieProgrammeren Blok B. Onderwerpen. wstomv/edu/2ip05/ College 8. Tom Verhoeff
Programmeren Blok B Onderwerpen http://www.win.tue.nl/ wstomv/edu/2ip05/ College 8 Tom Verhoeff Technische Universiteit Eindhoven Faculteit Wiskunde en Informatica Software Engineering & Technology Verdelen
Nadere informatieEerste Toets Concurrency 20 december 2018, , Educ-β.
Eerste Toets Concurrency 20 december 2018, 11.00 13.00, Educ-β. Motiveer je antwoorden kort! Stel geen vragen over deze toets; als je een vraag niet duidelijk vindt, schrijf dan op hoe je de vraag interpreteert
Nadere informatieProgrammeren en Wetenschappelijk Rekenen in Python. Wi1205AE I.A.M. Goddijn, Faculteit EWI 15 mei 2014
Programmeren en Wetenschappelijk Rekenen in Python Wi1205AE, 15 mei 2014 Bijeenkomst 8 Onderwerpen Het sneller maken van een programma Het gebruik van tijd, gebeurtenissen (muisklik,indrukken toets van
Nadere informatieZelftest TSO/E REXX. Document: n0167test.fm 25/01/2017. ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium
Zelftest TSO/E REXX Document: n0167test.fm 25/01/2017 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST TSO/E REXX Deze test is een hulpmiddel
Nadere informatieTeardrop readout gradient waveform design. Ting Ting Ren
Teardrop readout gradient waveform design Ting Ting Ren Overview MRI Background Teardrop Model Discussion Future work MRI Background: Classical Description of MRI Spins: MR relevant nuclei, like 1 H. Main
Nadere informatieCLIPS en het Rete-algoritme. Productieregels in CLIPS. Feiten. Productiesysteem (voorbeeld)
CLIPS en het Rete-algoritme CLIPS: acroniem voor C Language Integrated Production System Verwant aan OPS5 (Carnegie-Mellon University), en gebaseerd op ART (Artificial Reasoning Tool) Ontwikkeld door Lyndon
Nadere informatieOefeningen Interpretatie I Reeks 6 : Registermachines
Oefeningen Interpretatie I Reeks 6 : Registermachines Deze oefeningenreeks behandelt het beschrijven van computationele processen aan de hand van registermachineprogrammaʼs. Registermachines manipuleren
Nadere informatieProgrammeermethoden. Recursie. Walter Kosters. week 11: november kosterswa/pm/
Programmeermethoden Recursie Walter Kosters week 11: 20 24 november 2017 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Vierde programmeeropgave 1 De Grote getallen programmeren we als volgt: week 1: pointerpracticum,
Nadere informatieExamen Algoritmen en Datastructuren III
Derde bachelor Informatica Academiejaar 2006 2007, eerste zittijd Examen Algoritmen en Datastructuren III Naam :.............................................................................. 1. (2 pt)
Nadere informatiePyCuda. oftewel massief parallel rekenen. Jasper Spaans, Fox-IT PUN meeting
PyCuda oftewel massief parallel rekenen Jasper Spaans, Fox-IT PUN meeting 2009-09-24 Cuda Techniek om berekingen op je GPU te kunnen uitvoeren ( GPGPU ) Cuda Techniek om berekingen op je
Nadere informatieExamen computerarchitectuur
Examen computerarchitectuur Dinsdag 16 juni 2009, 14u00 Prof. Koen De Bosschere Richting: Naam: Belangrijk 1. Vergeet niet uw naam te vermelden. 2. Schrijf de antwoorden in de daarvoor voorziene ruimte.
Nadere informatieDeeltoets Digitale technieken
Deeltoets Digitale technieken André Deutz 22 oktober, 2007 De opgaven kunnen uiteraard in een willekeurige volgorde gemaakt worden geef heel duidelijk aan op welke opgave een antwoord gegegeven wordt.
Nadere informatieEE1400: Programmeren in C BSc. EE, 1e jaar, , 3e college
EE1400: Programmeren in C BSc. EE, 1e jaar, 2012-201, e college Arjan van Genderen, Computer Engineering 4-12-2012 Delft University of Technology Challenge the future Hoorcollege Arrays, Pointers en Strings
Nadere informatieWI1808TH1/CiTG - Lineaire algebra deel 1
WI1808TH1/CiTG - Lineaire algebra deel 1 College 1 8 september 2016 1 Even voorstellen Theresia van Essen Universitair docent bij Technische Wiskunde j.t.vanessen@tudelft.nl Slides op http://homepage.tudelft.nl/v9r7r/
Nadere informatieTemperatuur logger synchronisatie
Temperatuur logger synchronisatie Juni 10, 2010 1 / 7 Temperatuur logger synchronisatie Introductie Twee of meerdere ontvangers van het Multilogger systeem kunnen met de temperature logger synchronisatie
Nadere informatieUitwerking tentamen Analyse van Algoritmen, 29 januari
Uitwerking tentamen Analyse van Algoritmen, 29 januari 2007. (a) De buitenste for-lus kent N = 5 iteraties. Na iedere iteratie ziet de rij getallen er als volgt uit: i rij na i e iteratie 2 5 4 6 2 2 4
Nadere informatieElliptische krommen en digitale handtekeningen in Bitcoin
Elliptische krommen en digitale handtekeningen in Bitcoin Bas Edixhoven Universiteit Leiden KNAW Bitcoin symposium Deze aantekeningen zal ik op mijn homepage plaatsen. Bas Edixhoven (Universiteit Leiden)
Nadere informatieLineaire data structuren. Doorlopen van een lijst
Lineaire data structuren array: vast aantal data items die aaneensluitend gestockeerd zijn de elementen zijn bereikbaar via een index lijst: een aantal individuele elementen die met elkaar gelinkt zijn
Nadere informatiescc =!F3.!F2 b) CD AB
Computerarchitectuur en -organisatie (213030) Dinsdag 21 januari 2040, 13.30 17.00 uur 7 bladzijden met 8 opgaven 4 bladzijden met documentatie Let op: Vul het tentamenbriefje volledig in (d.w.z. naam,
Nadere informatieTentamen Computersystemen
Tentamen Computersystemen baicosy06 2e jaar bachelor AI, 2e semester 23 september 2013 13u-15u IWO 4.04A (blauw), Academisch Medisch Centrum, Meidreef 29, Amsterdam ZuidOost Het is niet toegestaan communicatieapparatuur
Nadere informatieProeftentamen in1211 Computersystemen I (Opm: de onderstreepte opgaven zijn geschikt voor de tussentoets)
TECHNISCHE UNIVERSITEIT DELFT Faculteit Informatietechnologie en Systemen Afdeling ISA Basiseenheid PGS Proeftentamen in1211 Computersystemen I (Opm: de onderstreepte opgaven zijn geschikt voor de tussentoets)
Nadere informatieTW2020 Optimalisering
TW2020 Optimalisering Hoorcollege 11 Leo van Iersel Technische Universiteit Delft 25 november 2015 Leo van Iersel (TUD) TW2020 Optimalisering 25 november 2015 1 / 28 Vandaag Vraag Voor welke problemen
Nadere informatieData Mining: Clustering
Data Mining: Clustering docent: dr. Toon Calders Gebaseerd op slides van Tan, Steinbach, and Kumar. Introduction to Data Mining Wat is clustering? Het onderverdelen van de objecten in een database in homogene
Nadere informatieDatastructuren. Analyse van algoritmen. José Lagerberg. FNWI, UvA. José Lagerberg (FNWI, UvA) Datastructuren 1 / 46
Datastructuren Analyse van algoritmen José Lagerberg FNWI, UvA José Lagerberg (FNWI, UvA) Datastructuren 1 / 46 Datastructuren en Algoritmen Datastructuren, 6 ECTS eerstejaars Bachelor INF Datastructuren,
Nadere informatie