Multicore en synchronisatie
Welke verdeling is geschikt bij het verdelen van lusiteraties over meerdere threads wanneer de rekenlast per iteratie sterk uiteenloopt?
- AEen statische toewijzing waarbij eerst gelijk op aantal iteraties wordt verdeeld en daarna niet meer wordt bijgesteld
- BAlle iteraties aan één thread overlaten
- CEen dynamische toewijzing waarbij het werk in kleine brokken wordt verdeeld en een thread zonder werk het volgende brok ophaalt
Antwoord en toelichting tonen
Antwoord: C. Een dynamische toewijzing waarbij het werk in kleine brokken wordt verdeeld en een thread zonder werk het volgende brok ophaalt
Statische toewijzing kost weinig moeite, maar als de zwaarte per iteratie verschilt, loopt alleen de thread met het zware deel achter en wachten de anderen. Bij dynamische toewijzing wordt het volgende werk bijvoorbeeld van een gedeelde teller gehaald en neemt een thread die eerder klaar is meer op zich, zodat de belasting gelijkmatig wordt. Als de brokken te klein zijn, neemt de moeite van het ophalen toe, dus de grootte moet worden afgesteld.