FERRAMENTAS LINUX: Linus Torvalds fez uma grande otimização para ajudar a codificar os tempos de compilação em grandes CPUs

domingo, 9 de fevereiro de 2020

Linus Torvalds fez uma grande otimização para ajudar a codificar os tempos de compilação em grandes CPUs




Confira !!

Para aqueles que usam o GNU Make em particular como seu sistema de compilação, os tempos de compilação paralelos estão prestes a ser muito mais rápidos, começando no Linux 5.6 para sistemas grandes de contagem de núcleos. Esse pouso logo após o lançamento da CPU AMD Threadripper 3990X de 64 núcleos / 128 threads é um exemplo de sistema para se beneficiar dessa alteração do kernel ao compilar muito código e fazer uso de muitos trabalhos GNU Make.

O próprio Linus Torvalds mudou o código de canal do kernel para usar esperas exclusivas ao ler ou escrever. Embora isso não signifique muito para a tubulação de dados tradicional / comum, o servidor de trabalho GNU Make é um grande benfeitor, pois depende de uma tubulação para limitar o paralelismo. Essa técnica, embora empregada pelo servidor de tarefas GNU Make, é ineficiente com as CPUs de alta contagem atual, pois todos os processos gerados são despertados em vez de um único leitor a ser despertado no lançamento de um escritor.


Em um caso de teste simplificado escrito por Linus Torvalds, esse patch fez com que o número de alternâncias de contexto no programa de teste caísse de 11 milhões para apenas 1,2 milhão. O tempo consumido do sistema também foi uma fração minúscula do tempo original. Reduzir o número de alternâncias de contexto também é bem-vindo, simplesmente pelo fato de o desempenho da alternância de contexto ter ficado mais lento no lado da Intel como resultado das inúmeras atenuações de segurança.

Além deste pouso de patch agora para o kernel Linux 5.6, o patch foi parcialmente atrasado, pois essa melhoria poderia realmente desencadear uma condição de corrida com o servidor de trabalho GNU Make, que acabou sendo resolvido em 2017, mas só foi lançado com o GNU Make 4.3. e depois portado em algumas distribuições.

Josh Triplett, da Intel, testou o patch com Linus e confirmou: "Estou martelando seu patch de correção de canal (alternando para filas de espera exclusivas) há um mês, mais ou menos, em vários sistemas diferentes, e não tive problemas com isso. O patch * melhora substancialmente os tempos de construção paralelos em sistemas grandes (~ 100 CPU), tanto com make paralelo quanto com outras coisas que usam o servidor de tarefas baseado em pipe do make. "

O patch está aqui para os interessados ​​no estado principal do Git.



Fonte

Até a próxima !!

Nenhum comentário:

Postar um comentário