Multicore en synchronisatie

Waarop moet worden gelet bij het first-touch-beleid dat vaak wordt gebruikt in Linux-NUMA-systemen (een pagina wordt geplaatst in het geheugen van het knooppunt waarop de thread draait die er het eerst naar schrijft)?

  1. ABij first touch worden pagina's op willekeurige knooppunten geplaatst
  2. BOp het moment dat malloc wordt aangeroepen, ligt de plaats van alle pagina's vast
  3. CAls een grote array door slechts één thread op 0 wordt geïnitialiseerd, komt alles op één knooppunt en gebruiken threads op andere knooppunten ver geheugen
Antwoord en toelichting tonen

Antwoord: C. Als een grote array door slechts één thread op 0 wordt geïnitialiseerd, komt alles op één knooppunt en gebruiken threads op andere knooppunten ver geheugen

Met malloc alleen worden nog geen fysieke pagina's toegewezen; bij de paginafout bij de eerste schrijfactie worden ze in het geheugen van het knooppunt van die thread geplaatst. Als de initialisatie door één thread gebeurt, komt de hele array op dat knooppunt, en bij de parallelle berekening is een groot deel van het door elke thread bewerkte gedeelte ver geheugen. Als de initialisatie parallel met dezelfde taakverdeling als de berekening gebeurt, komt elk deel in de buurt van de bijbehorende thread.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Multicore en synchronisatie

  1. Welke van de volgende is geen oorzaak dat de prestaties van een parallel programma niet naar verwachting stijgen als het aantal cores wordt vergroot?
  2. Welke verdeling is geschikt bij het verdelen van lusiteraties over meerdere threads wanneer de rekenlast per iteratie sterk uiteenloopt?
  3. Welke methode is geschikt voor de prestaties bij het berekenen van de som van alle elementen van een array met meerdere threads?
  4. Welke eigenschap van een lees-schrijflock (reader-writer lock) is juist?
  5. Wat is het meest passende gebruik van een tellende semafoor?

Vergelijkingen bij dit onderwerp