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 !!
Marcadores: Linux, Android, Segurança
Linux,
Linux Kernel,
Notícia
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário