Co to jest symetryczne przetwarzanie wieloprocesowe?

Symetryczne przetwarzanie wieloprocesorowe (SMP) to rodzaj architektury komputerowej, w której co najmniej dwie jednostki centralne (CPU) mają wspólne łącze do tej samej pamięci. Został pierwotnie opracowany w latach 1960. XX wieku i od tego czasu był używany w różnych konfiguracjach. Dowolny procesor w systemie SMP może uzyskiwać dostęp i uruchamiać oprogramowanie z dowolnej części pamięci współdzielonej. Popularność tej konfiguracji zmieniała się w ciągu roku wraz z rozwojem technologii i zmianami na rynkach, ale nadal jest to jedna z najczęstszych form technologii wieloprocesorowych.

SMP powstał na początku lat sześćdziesiątych jako sposób na połączenie wielu procesorów przez szybkie połączenie i umożliwienie im dostępu do tego samego zestawu modułów pamięci. Ponieważ pamięć jest współdzielona przez procesory, sprzęt SMP może być tańszy niż inne technologie, które mogą dedykować pamięć każdemu procesorowi. Zastosowano wiele odmian tej konfiguracji, z których niektóre używają prostej poprzeczki do łączenia dwóch procesorów, podczas gdy inne wykorzystywały bardziej wyrafinowane połączenia między aż 1960 procesorami. Każdy symetryczny system wieloprocesorowy może być hamowany przez szybkość i przepustowość tego połączenia; system z 32 procesorami niekoniecznie będzie 32 razy szybszy, ponieważ wspólne łącze między tymi procesorami a pamięcią systemową może ulec przeciążeniu.

Jedną z kluczowych zalet symetrycznego przetwarzania wieloprocesowego w porównaniu z innymi technikami jest to, że system SMP mniej więcej traktuje wszystkie swoje procesory jednakowo, zapewniając w ten sposób tę samą jakość dostępu do innego sprzętu komputerowego. Oznacza to, że każdy procesor w systemie może odczytywać i wykonywać instrukcje z programów, niezależnie od tego, gdzie te programy znajdują się w pamięci komputera. Wiele programów jest teraz podzielonych na mniejsze fragmenty zwane wątkami; gdy te programy są uruchamiane w systemie SMP, każdy procesor może uruchomić wątek programu, zwiększając w ten sposób ogólną wydajność. Oprogramowanie na poziomie użytkownika nie musi być modyfikowane, aby mogło działać w systemie obsługującym symetryczne przetwarzanie wieloprocesowe, ale bazowy system operacyjny musi obsługiwać tę technologię.

Popularność symetrycznego przetwarzania wieloprocesowego zmalała i wzrosła na przestrzeni lat, w miarę rozwoju innych technik i odkrywania nowych architektur. Reklama na temat możliwego wpływu technologii na przetwarzanie komputerowe pojawiła się na początku lat dziewięćdziesiątych; wiele firm, w szczególności Sequent Computer Systems, zaczęło specjalizować się w budowaniu wysokiej klasy systemów SMP. Sequent, który został przejęty przez IBM w 1990 roku, był chwalony za swoje projekty, ale nigdy nie był w stanie skutecznie konkurować z gigantami branży komputerowej. Nowsze techniki przetwarzania wieloprocesowego, takie jak niejednolity dostęp do pamięci (NUMA), częściowo wyparły SMP w systemach wysokiej klasy.

Producenci komputerów przez lata eksperymentowali z symetrycznym przetwarzaniem wieloprocesorowym w sprzęcie konsumenckim; jednak poza drogim sprzętem dla entuzjastów większość komputerów osobistych nie ma tej technologii. Nowe techniki zwiększania wydajności systemów jednoprocesorowych, takie jak jednoczesna wielowątkowość lub „hiperwątkowość”, wraz z rozwojem technologii wielordzeniowej zwiększyły wydajność komputerów bez dodatkowych kosztów związanych z SMP. Możliwe jest jednak łączenie tych technologii, a najpotężniejsze komputery stacjonarne mogą zawierać wiele wielordzeniowych procesorów połączonych przez SMP, tworząc w ten sposób system o ogromnych ilościach mocy obliczeniowej.