Maneira portátil de detectar o número de CPUs * utilizáveis * em Python
Por esta pergunta e resposta -Python multiprocessing.cpu_count () retorna '1' na Nvidia Jetson TK1 de 4 núcleos - a saída do Pythonmultiprocessing.cpu_count()
função em certos sistemas reflete o número de CPUs ativamenteem uso, em oposição ao número de CPUs realmenteutilizável pelo programa chamado Python.
Um idioma comum do Python é usar o valor de retorno decpu_count()
para inicializar o número de processos em umPool
. No entanto, em sistemas que usam essa estratégia de "ativação dinâmica da CPU", esse idioma quebra bastante (pelo menos em um sistema relativamente inativo).
Existe alguma maneira simples (e portátil) de obter o número deutilizável processadores (em oposição ao númeroAtualmente em uso) do Python?
Notas:
Esta pergunta não é respondida pela resposta aceita aComo descobrir o número de CPUs usando python, como observado na pergunta vinculada na parte superior daesta pergunta, imprimindo o conteúdo de/proc/self/status
mostra todos os 4 núcleos como estando disponíveis para o programa.
Na minha opinião, "portátil" exclui qualquer abordagem que envolva a análise do conteúdo de/proc/self/status
, cujo formato pode variar de uma versão para outra do Linux e que nem existe no OS X. (O mesmo vale para qualquer outro pseudo-arquivo também).