O 'make' tira proveito de múltiplos núcleos / threads? (linux)

0

Estamos considerando uma nova estação de trabalho (estará rodando o Fedora 25/26), e gostaríamos de saber o que uma boa CPU seria. Para começar, preciso saber quantos núcleos preciso. Para ajudar a decidir isso, eu quero ver como uma das aplicações eu vou usar muito pré-formados.

O 'make' tira vantagem do multi-core / multi-thread? E quanto a multi-CPU? Faria o Kernel, por exemplo, ser significativamente mais curto com múltiplos núcleos, ou a diferença não seria perceptível?

Eu não estou fazendo cálculos científicos aqui, então uma diferença de alguns milissegundos não me incomoda.

LoganJamison
fonte
3
Verifique a make página de manual especificamente a -jopção.
Mokubai
"O 'make' tira vantagem do multi-core / multi-thread?" - Sim, makeé capaz de executar trabalhos simultâneos.
serragem
Com isso, você quer dizer que posso executar várias instâncias de 'make' ao mesmo tempo, ou que uma instância 'make' pode tirar proveito de vários núcleos? A página man não é tão precisa.
LoganJamison

Respostas:

2

Sim: https://www.gnu.org/software/make/manual/html_node/Parallel.html

O GNU make sabe como executar várias receitas de uma só vez. Normalmente, o make executará apenas uma receita de cada vez, esperando que ela termine antes de executar a próxima. No entanto, a opção '-j' ou '--jobs' diz ao make para executar várias receitas simultaneamente. Você pode inibir o paralelismo em um makefile específico com o pseudo-destino .NOTPARALLEL (consulte Nomes de Destino Internos Especiais).

A questão que você precisa perguntar não é se o MAKE pode tirar proveito de vários threads, mas se você PRECISA para tirar proveito disso. A (s) aplicação (ões) estão fazendo o tipo que pode ser compilado em várias receitas discretas por MAKE?

Porém, para ser honesto, é excepcionalmente difícil encontrar um processador não multicore hoje, então por que até mesmo a pergunta? Se você está indo orçamento, seu computador provavelmente terá pelo menos 4 unidades de processamento lógico.

O resto da questão não é algo que podemos responder aqui: Que tipo de cargas seus aplicativos colocarão em um servidor MAKE?

music2myear
fonte
1
Eu estava planejando adicionar um processador Ryzen, mas também estava pensando em um processador de baixo custo com maior velocidade de clock e menos núcleos / threads, e possivelmente um MoBo com fator de forma mini-ITX (para um case pequeno, talvez, como Ryzen só vai para o Micro-ATX se bem me lembro).
LoganJamison