Autor Tópico: Como determinar o número de processadores em shell script?  (Lida 2115 vezes)

Darcamo

  • Visitante
Como determinar o número de processadores em shell script?
« Online: 20 de Julho de 2010, 09:13 »
Não sei quase nada de shell script e o máximo que faço é escrever uma sequência de comandos em um arquivo para automatizar algo.

Estou querendo automatizar alguns passos que precisam ser feitos antes de eu compilar um programa aqui. Nada complicado, apenas criar uma pasta, copiar uns arquivos e chamar o make para fazer o resto. O make permite que você especifique o número de jobs para compilar múltiplos arquivos ao mesmo tempo ("make -j 2" para usar dois jobs, por exemplo). Isso acelera bastante a compilação, mas o ideal é que o número de jobs seja igual ao número de processadores na máquina.

Existe uma maneira de pegar o número de cores em shell script para que eu possa passar para o make?

Offline jeflui

  • Usuário Ubuntu
  • *
  • Mensagens: 745
    • Ver perfil
Re: Como determinar o número de processadores em shell script?
« Resposta #1 Online: 20 de Julho de 2010, 10:56 »
Essa informação você consegue no /proc/cpuinfo tem "cpu cores"

Offline Kamei Hyoga

  • Usuário Ubuntu
  • *
  • Mensagens: 1.095
  • Ubuntu 11.04
    • Ver perfil
Re: Como determinar o número de processadores em shell script?
« Resposta #2 Online: 20 de Julho de 2010, 11:51 »
Baseado no que o jeflui, acho que ficaria algo do tipo:

Código: [Selecionar]
cat /proc/cpuinfo | grep "cpu cores" | awk '{print $3}'

Não testei, porque aqui só tem um core e essa informação (cpu core) não aparece.

Offline jeflui

  • Usuário Ubuntu
  • *
  • Mensagens: 745
    • Ver perfil
Re: Como determinar o número de processadores em shell script?
« Resposta #3 Online: 20 de Julho de 2010, 13:36 »
Quase isso.
Código: [Selecionar]
grep -m 1 "cpu cores" /proc/cpuinfo | awk '{print $4}'

Offline irtigor

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.344
  • Delete, delete, delete!
    • Ver perfil
Re: Como determinar o número de processadores em shell script?
« Resposta #4 Online: 20 de Julho de 2010, 14:00 »
Ou ainda: cat /proc/cpuinfo | awk '/^cpu cores/ {print $NF}'
Acho que você vai ter que filtrar o resultado com head -1, awk 'NR>1{exit};1' ou coisa parecida.

Darcamo

  • Visitante
Re: Como determinar o número de processadores em shell script?
« Resposta #5 Online: 21 de Julho de 2010, 18:14 »
Excelente. Muito obrigado.

O resto do script é básico (uso de if, atribuir valores variáveis, etc.) e devo conseguir me virar lendo algum texto introdutório de shell script.
Vou anotar aqui para aprender a usar um pouco o awk quando puder. Parece ser bem poderoso.  ;D