Add an API to allow getting the number of "performance" cores-only
Ninguém assumiu esta issue ainda.
- Linguagem predominante
- Python
- Estrelas
- 77.2k
- Forks
- 36k
- Métricas de merge de PRs
- Métricas de PR pendentes
Descrição
Feature or enhancement
Proposal:
Currently Python provides os.cpu_count() which returns the total number of physical CPU cores.
On macOS M-class machines (and probably other ARM hardware), there are actually two types of CPU cores: performance cores, and efficiency cores.
For many tasks where a user wants to do "1 task per core", it really only makes sense to do 1 task per performance core.
Therefore it'd be sensible to expose this number. On macOS it can be found with the hw.perflevel0.logicalcpu sysctl.
This could be done in one of two ways, a new function, e.g. os.performance_cpu_count(), or as a keyword-argument to os.cpu_count(performance_cores_only=True).
Has this already been discussed elsewhere?
This is a minor feature, which does not need previous discussion elsewhere
Links to previous discussion of this feature:
No response
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Direção de pesquisa
Comece lendo a API os.cpu_count() existente e suas implementações específicas de cada plataforma; em seguida, investigue o sysctl do macOS hw.perflevel0.logicalcpu descrito na proposta. Compare as opções de uma nova função e de um argumento nomeado nas plataformas compatíveis e identifique os testes relevantes. A tarefa estará concluída quando a API escolhida expuser de forma confiável a contagem de núcleos de desempenho, com comportamento documentado e cobertura para os sistemas compatíveis.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- python
- Domínio
- operating-systems
- Tipo de issue
- Funcionalidade
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Status de atividade
- Estagnada
- Clareza
- Razoavelmente clara
- Facilidade para iniciantes
- 35/100