taskset core numbers question

6

Eu tenho CPU quad core com hyper-threading ativado. Então eu tenho 8 núcleos lógicos. Eu quero limitar meu aplicativo para usar apenas 4 núcleos e eu quero que esses 4 núcleos sejam núcleos físicos diferentes. Quais opções do conjunto de tarefas (números centrais) devo usar? :

  • taskset -c 0,1,2,3 comando ou
  • taskset -c 0,2,4,6 command

Obrigado.

    
por Artem Bergkamp 22.03.2011 / 22:59

3 respostas

4

Você pode ver quais núcleos estão em quais processadores usando as informações de / proc / cpu. Por exemplo, você verá em uma máquina com uma CPU dual core

processor   : 0
(snip)
core id     : 0
cpu cores   : 2

para o primeiro núcleo no processador e

processor   : 1
(snip)
core id : 1
cpu cores   : 2

no segundo.

Então, em geral, acho que você gostaria de

taskset -c 0,2,4,6

ou

taskset -c 1,3,5,7
    
por 23.03.2011 / 01:17
1

Você pode dar uma olhada em CPU Set (cset) para criar uma CPU grupo de proteção para sua aplicação. Desta forma, você pode garantir que os núcleos reais estão sendo usados para o trabalho importante. Eu normalmente desabilito o hyperthreading (em sistemas Nehalem) para meus aplicativos em tempo real e de baixa latência.

Aqui está um tutorial para criar grupos de CPUs para aplicativos / processos específicos usando cset, que é um pouco mais organizado que o conjunto de tarefas. link

No que diz respeito à determinação da contagem de núcleos e das atribuições de localização, consulte: link

Uma execução rápida do utilitário vinculado a um Nehalem quad-core com hyperthreading ativado mostra:

[root@XXX ~/hwloc-1.0.3]# ./utils/lstopo 
Machine (7980MB) + Socket #0 + L3 #0 (8192KB)
  L2 #0 (256KB) + L1 #0 (32KB) + Core #0
    PU #0 (phys=0)
    PU #1 (phys=4)
  L2 #1 (256KB) + L1 #1 (32KB) + Core #1
    PU #2 (phys=1)
    PU #3 (phys=5)
  L2 #2 (256KB) + L1 #2 (32KB) + Core #2
    PU #4 (phys=2)
    PU #5 (phys=6)
  L2 #3 (256KB) + L1 #3 (32KB) + Core #3
    PU #6 (phys=3)
    PU #7 (phys=7)
    
por 23.03.2011 / 02:05
1

Você pode usar como:

taskset -c -p 0-3 pid

    
por 27.04.2012 / 02:03