• naurM
    link
    fedilink
    Polski
    arrow-up
    1
    ·
    edit-2
    26 days ago

    Ok, pomyślałem jeszcze nad tym wykresem i doszedłem do wniosku, że to może być związane z NUMA.
    Może topologia wyglądała tak, że każdy procesor miał przydzielone tylko 2 kanały i dla przypadku z jednym workerem odczytywał z RAMu tyle samo danych, co każdy z 6 procesów w drugim scenariuszu.

    Czyli system był skonfigurowany tak, że wydajność RAMu dla pojedynczego procesora była sztucznie zaniżona.
    Uruchomienie dodatkowych procesów mogło w tym przypadku poprawić wynik.
    Na L3 nie miało to wpływu, bo ta warstwa działa z maksymalną przepustowością (pomijając przypadki gdzie trzeba synchronizować dostęp do danych).

    • サぺル
      link
      fedilink
      Polski
      arrow-up
      1
      ·
      26 days ago

      To dobra teoria. Trzeba się zapoznać z budową chipletu i/o. Gdzieś widziałem jego schemat blokowy.

    • サぺル
      link
      fedilink
      Polski
      arrow-up
      1
      ·
      25 days ago

      Mam chiński art: https://zhuanlan.zhihu.com/p/629392033

      Na 图4 (Rysunek 4) masz schemat budowy chipletu i/o. Wygląda na to, że w dalszym ciągu jest RAM bliższy i dalszy. By trzeba zrobić twój benchmark by to zweryfikować.

      Wcześniej byłem przekonany, że skoro zrobili jeden chiplet do komunikacji to obsługa pamięci jest mniej rozproszona i CPU mają do niej bardziej zrównoważony dostęp.