O que significa tráfego cross-socket?

1

Ao ler esta postagem no blog do Kubernetes sobre a Intel gestor da UCP menciona que você pode evitar o tráfego entre soquetes tendo CPUs allocated on the socket near to the bus which connects to an external device .

O que significa tráfego entre soquetes e quais problemas podem causar? Estas são minhas suposições:

  • Uma CPU de um soquete precisa de acesso a um dispositivo conectado a um barramento que só é acessível a CPUs em outro soquete, portanto instruções para esse dispositivo devem ser gravadas na memória para serem executadas por uma CPU neste outro soquete
  • Uma CPU de um soquete precisa de acesso a um dispositivo conectado a um barramento que só é acessível a CPUs em outro soquete, assim instruções para esse dispositivo são enviadas diretamente para uma UCP neste outro soquete a ser encaminhado ao dispositivo (não certeza se isso é possível)
por dippynark 27.07.2018 / 13:00

1 resposta

5

Os autores da postagem do blog do Kubernetes falam apenas em jargão tentando reinventar a roda - mais um PBS (sistema de lote portátil), que eles chamam de "gerenciador de CPU".

Respondendo a pergunta: "O que significa tráfego entre soquetes e quais problemas podem causar?" - é necessário dizer primeiro que se trata de Computadores multiprocessadores , ou seja, sistemas de computador com dois ou mais CPUs e soquetes de CPU, respectivamente . Os sistemas multiprocessadores estão disponíveis em duas arquiteturas diferentes: SMP (multiprocessamento simétrico) e AMP (multiprocessamento assimétrico) .

A maioria dos sistemas multiprocessadores disponíveis no momento são sistemas de arquitetura SMP. Tais sistemas têm a chamada memória compartilhada que é visível para CPUs físicas independentes como memória principal comum. Existem dois tipos de tais sistemas de acordo com o tipo de interconexão física de CPUs: system bus e crossbar switch.

Diagrama do sistema SMP com interruptor de barra transversal:

DiagramadosistemaSMPcomsystembus:

PrincipalmenteossistemasSMPtêmumaconexãodeCPUsdotipobarramentodosistemaeapostagemdoblogdoKubernetsésobresistemasdessetipo.

SistemasSMPcomconexãodeCPUsdebarramentodesistematêmvantagensedesvantagens.AdesvantagemmaissignificativadestesistemaéqueelessãoNUMA(sistemasdeacessonãouniformeàmemória).Oqueissosignifica.CadasoquetedeCPUassociafisicamenteseuprópriobancodememória,masokerneldoLinuxnãopodedistingüiressaassosiaçãonoSMP-osbancosdememóriasãovistosnoLinuxcomomemóriaintegralúnica.Mas,apesardessefato,surgeofenômenoNUMA-ainteroperaçãodeumaCPUfísicacomendereçosdeseuprópriobancodememóriafísicanãoétãorápidaquantocomobancodememória(-s)associadoaoutrosoquetedeCPU(-s).Assim,desejamosnaturalmenteevitarousoporumaCPUfísicadetaisendereçosnamemóriaprincipalcomumdoSMPquepertencemaobancodememóriafísicaconectadoaoutraCPUfísica.

Aparte"Limitações" do post do blog do Kubernates se refere a Fenômeno NUMA quanto ao problema de "tráfego entre soquetes" (citação):

Users might want to get CPUs allocated on the socket near to the bus which connects to an external device, such as an accelerator or high-performance network card, in order to avoid cross-socket traffic. This type of alignment is not yet supported by CPU manager.

A propósito, a incapacidade de atribuir um encadeamento a alguma CPU definida que "está mais próxima" de algo é bastante natural. O kernel Linux vê todos os núcleos de CPU de CPUs físicas como processadores SMP comuns iguais, já que não consegue distinguir CPUs físicas de computadores SMP. Existem algumas tentativas ruins de evitar o uso de núcleos de CPU que são "mais distantes" usando sinais de "cache quente" e "cache frio", mas isso não funciona efetivamente devido à natureza dos sistemas SMP.

Por favor, leia adicionalmente:

por 27.07.2018 / 18:01