Multicore en synchronisatie
Als 64 cores voortdurend gelijktijdig één gedeelde teller met atomaire instructies bijwerken, wordt het niet sneller door meer cores. Wat is de belangrijkste reden?
- AOmdat atomaire instructies maar op één core kunnen worden uitgevoerd
- BOmdat de waarde van de teller automatisch kleiner wordt als er veel cores zijn
- COmdat de cacheregel van de teller steeds tussen de cores verhuist en bijwerken slechts één voor één vooruitgaat
Antwoord en toelichting tonen
Antwoord: C. Omdat de cacheregel van de teller steeds tussen de cores verhuist en bijwerken slechts één voor één vooruitgaat
Om atomair bij te werken moet de core de regel in de M-toestand hebben, dus bij elke update verhuist de regel naar een andere core. Verhuizen kost communicatietijd tussen de cores en er kan maar één core tegelijk bijwerken, dus meer cores maken het wachten alleen langer. Het is nodig gedeelde schrijfacties te verminderen, bijvoorbeeld door elke core in zijn eigen plaats te laten tellen en aan het eind op te tellen.