Obsługa NUMA
Wcześniej: SMP, czyli Symmetric Multi-Processing
Teraz: NUMA, czyli Non-Uniform Memory Access
Skutki:
- NUMA jest znacznie lepiej skalowalna na systemy wieloprocesorowe
- taki system może mieć wiele węzłów zawierających procesor, pamięć ram, cache itp.
smp | numa |
| |
- dzieki temu wąskie gardło jakim był dostęp do pamięci wspólnej jest likwidowane, pomijając oczywiście sytuację, w której jeden procesor
chce mieć dostęp do informacji zapisanej w pamięci innego. jednak te sytuacje są na tyle rzadkie, że numa uzyskuje dzięki temu podziałowi
znaczną przewagę w czasie dostępu do pamięci nad smp
- nowy scheduler potrafi optymalizować zużycie zasobów lokalnych, dzięki czemu minimalizuje zużycie szyn pośredniczących
- VM, czyli virtual memory - struktury i makra pozwalające na zapamiętanie i umiejętne używanie takiej podzielonej pamięci cache. to znaczy żeby procesor
maksymalnie wykorzystywał swoją pamięć cache i do minimum ograniczył zużycie pamięci cache nie-lokalnej.
- system też pilnuje (o ile to możliwe), aby dany proces wykonywał się stale na tym samym procesorze. dzięki temu będzie on mógł korzystać z tej samej pamięci cache. tak więc to co w smp nie było istotne (wykonując sie na różnych procesorach proces miał taki sam dostęp do cachu) zaczyna być istotne w numie i to też jest dodatkowe zadanie dla schedulera