Linus Torvalds melhora o tempo de compilação de códigos em grandes CPUs

Linus Torvalds melhora o tempo de compilação de códigos em grandes CPUs

O desenvolvedor Linus Torvalds fez uma grande melhoria no tempo de compilação de códigos em grandes CPUs. Isso deve beneficiar especialmente aqueles que usam o GNU Make como seu sistema de compilação. Assim, todo o processo de compilação está prestes a ser muito mais rápido, começando no Linux 5.6 para grandes de contagem de núcleos. Isso ocorre logo após o lançamento da CPU AMD Threadripper 3990X de 64 núcleos / 128 threads. Este é um exemplar perfeito de sistema que pode se beneficiar dessa alteração do kernel ao compilar muito código e exigir muito trabalho do GNU Make.

E como Linus Torvalds melhora o tempo de compilação de códigos em grandes CPUs?

O próprio Linus Torvalds mudou o pipe code do kernel ao ler ou escrever. Embora isso não signifique muito para a tubulação de dados tradicional/comum, o servidor de trabalho GNU Make depende de pipe (tubulação) para limitar o paralelismo. Essa técnica, embora empregada pelo servidor de trabalho GNU Make, é ineficiente com as CPUs de alta contagem de núcleos atuais, pois todos os processos gerados começam de uma só vez.

Em um teste simplificado realizado por Linus Torvalds, esse patch fez com que o número de alternâncias caísse de 11 milhões para apenas 1,2 milhão. O tempo consumido pelo sistema também foi uma fração minúscula do tempo original.

Reduzir o número de alternâncias é uma excelente notícia, simplesmente pelo fato de o desempenho da alternância de contexto ter ficado mais lento por parte da Intel. Isso ocorreu nos últimos anos por conta das inúmeras atenuações de segurança.

Problemas que geraram atrasos

Além da implementação deste patch agora para o kernel Linux 5.6, ele também foi parcialmente atrasado por conta de um problema 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 de hoje.

 

Acesse a versão completa
Sair da versão mobile