Co oznacza rodzeństwo w / proc / cpuinfo?

12

Czy to oznacza liczbę wirtualnych procesorów w fizycznym procesorze?

LedZeppelin
źródło

Odpowiedzi:

10

Jeśli liczba rodzeństwa jest równa liczbie rdzeni, oznacza to, że masz procesory, które nie są hyperthreading lub hyperthreading jest wyłączony, jeśli liczba rodzeństwa jest dwa razy większa niż liczba rdzeni, wtedy masz procesor hyperthreading z włączonym hyperthreading. Jest dobry artykuł tutaj .

użytkownik9517
źródło
7

Liczba rodzeństwa w procesorze jest całkowitą liczbą jednostek wykonawczych w tym procesorze. Będzie to obejmowało zarówno dodatkowe rdzenie, jak i hyperthreading.

Na przykład,

  1. Zostanie wyświetlona lista Core 2 Duo siblings : 2. Dwurdzeniowy, bez hipertekstu.
  2. Zostanie wyświetlona lista Xeon E5420 siblings : 4. Dwurdzeniowy z hipertekstem.
  3. Zostanie wyświetlona lista Pentium 4 z hyperthreading siblings : 2. Jednordzeniowy z hipertekstem.
Scott Pack
źródło
1

Przede wszystkim zrozum poniższe warunki i ich kontekst użytkowania.

  • procesor
    • Procesor to jednostka przetwarzająca.
    • Będzie zawierał wiele składników do przetwarzania instrukcji.
    • Każdy komponent odpowiada za różne operacje, takie jak pobieranie instrukcji, dekodowanie, przetwarzanie, aktualizacja itp.
  • Rdzeń
    • Jeden procesor może mieć wiele zestawów / jednostek wyżej wymienionych komponentów.
    • Jeśli istnieją dwa zestawy tych jednostek, procesor może uruchomić dwie instrukcje równolegle.
    • Jedna jednostka nazywana jest rdzeniem.
    • Procesor z pojedynczym rdzeniem będzie miał dwa identyczne zestawy komponentów. Czterordzeniowy procesor będzie miał cztery identyczne zestawy tych komponentów / jednostek
  • Multi-cpu / hyperthreading
    • To trochę trudne. Obowiązuje tylko kontekst oprogramowania.
    • Ilekroć instrukcja czeka na zakończenie zdarzenia zewnętrznego, procesor będzie bezczynny. Aby lepiej wykorzystać procesor, niektórzy dostawcy utrzymują dwa wątki sprzętowe i za każdym razem, gdy jeden wątek jest blokowany, sprzęt przełącza się na inny wątek. Tego rodzaju procesory będą mogły przechowywać i przywracać stany procesora
    • W przypadku oprogramowania będzie wyglądać, jakby dwa wątki działały równolegle.
    • Linux uważa te rdzenie hiperwątkowości za wiele procesorów. Ponieważ może uruchamiać dwa wątki równolegle. Zobaczy więc dwie jednostki wykonawcze (pseudo procesory).
    • Na przykład najnowsze procesory Intel są hiperwątkowane, mogą obsługiwać dwa jednoczesne wątki.
  • Wielordzeniowy
    • Nowoczesne procesory mają wiele zestawów wyżej wymienionych jednostek sprzętowych / rdzeni
    • W przeciwieństwie do hyperthreadingu, mogą faktycznie wykonywać dwie instrukcje równolegle
    • Każdy rdzeń może być także poddany hiperwątkowaniu
  • Wieloprocesorowy
    • Systemy o wysokiej wydajności, takie jak serwery, super komputery będą miały wiele fizycznych procesorów.
    • Możesz zobaczyć wiele gniazd procesorów na ich płytach głównych
    • Każdy może mieć wiele rdzeni. Znowu każdy rdzeń może być przerobiony

Nowoczesne komputery PC są zazwyczaj dostarczane z wielordzeniowymi procesorami hiperwątkowymi. Na przykład Linux działający na komputerze PC z czterordzeniowym, czterordzeniowym procesorem Intel, zobaczy 8 procesorów (4 rdzenie x 2 hiperwątki).

Nowoczesne serwery to zazwyczaj systemy wielordzeniowe i wieloprocesorowe. Typowy serwer będzie miał dwa gniazda, każde z 24 rdzeniami hiperwątkowymi. Tak więc Linux działający w tym systemie zobaczy 96 procesorów (2 gniazda x 24 rdzenie x 2 hiperwątki)

Rodzeństwo

Wracając do rzeczywistego pytania, procesory współdzielące pamięć podręczną będą nazywane rodzeństwem. Organizacja pamięci podręcznej będzie podobna (chociaż będzie się różnić w zależności od architektury),

  • Każdy rdzeń będzie miał jedną pamięć podręczną instrukcji L1 i jedną pamięć podręczną danych L1
  • Każdy rdzeń będzie miał jedną zunifikowaną pamięć podręczną L2
  • Wszystkie rdzenie w gnieździe będą miały jedną pamięć podręczną Unified L3
  • Zwykle żadne dwa gniazda nie będą współużytkować pamięci podręcznej

Rozważ system z wieloma rdzeniami i wieloma procesorami z 2 gniazdami. Każde gniazdo ma 24 rdzenie z hiperwątkiem. W tym przypadku Linux zobaczy w sumie 96 procesorów ponumerowanych od 0 do 95. Socket 1 będzie miał procesory 0-47, a Socket 2 będzie miał 48-95 (w przeciwieństwie do tego zwykle liczby będą przeplatane). W przypadku tego systemu z wyżej wymienioną organizacją pamięci podręcznej,

  • Procesory 0–47 są rodzeństwem
  • Procesory 48–95 są rodzeństwem
theB
źródło
0

Jądro wykorzystuje na przykład liczbę rodzeństwa do równoważenia obciążenia;

Cztery zadania są uruchomione w systemie posiadającym dwa pakiety fizyczne, z których każde ma dwa rdzenie (współużytkowanie pamięci podręcznej ostatniego poziomu), a każdy rdzeń ma dwa wątki logiczne. Równoważenie obciążenia włącza się w domenie wielordzeniowej dla pierwszego pakietu, co powoduje równy rozkład obciążenia między wszystkimi rdzeniami.

Bart
źródło
pakiet jest tutaj niewłaściwą terminologią.
Wim Kerkhoff