FERRAMENTAS LINUX: Os resultados de viabilidade de compilação paralela automática do GCC ajudam até 3,3x

quinta-feira, 3 de setembro de 2020

Os resultados de viabilidade de compilação paralela automática do GCC ajudam até 3,3x





Confira !!



Um dos projetos mais interessantes do Google Summer of Code 2020 tem sido o trabalho contínuo para permitir que arquivos de código individuais sejam compilados em paralelo , desenvolvendo o trabalho do ano passado para resolver os gargalos de paralelização do GCC . O relatório final para GSoC 2020 sobre este trabalho foi publicado.

Este trabalho tem como foco ser capaz de paralelizar a compilação de grandes arquivos de origem em comparação com o uso tradicional de vários trabalhos do sistema de construção para compilar vários arquivos em paralelo. Para grandes arquivos de origem e o aprimoramento das habilidades de paralelização do GCC é uma grande vitória em uma era de contagens crescentes de núcleos / threads.

O desenvolvedor estudante Giuliano Belinassi teve sucesso em seu trabalho e terminou o verão baseando seus patches para ver a fusão com o trunk em um futuro próximo. No final, ele descobriu que o projeto levou a acelerações que variam de 0,95x a 3,3x. O trabalho é considerado pronto pelo menos em estado experimental.

Uma ramificação do GCC está disponível (autopar_devel) com o código de teste. Quando quiser testar a compilação de um arquivo em paralelo com o compilador corrigido, o sinalizador "-fparallel-jobs =" pode ser usado para especificar o número de trabalhos paralelos.

Quanto à conclusão do projeto GSoC 2020, destaca o trabalho futuro que poderia ser feito para melhorar o tempo de compilação do GCC em sistemas com grandes contagens de núcleo:
Este projeto ainda pode ser melhorado em vários lugares. Por exemplo, apenas olhando para a tabela acima, podemos concluir que:
* Promover estática para globais pode aumentar a oportunidade de paralelismo na compilação. 
* Mesmo com a sobrecarga de IO Streaming, o paralelismo emulado LTO foi mais rápido do que com nosso método. Isso significa que nosso particionador está lento ou estamos perdendo tempo em algo que pode ser melhorado. 
* Isso pode ser usado como uma forma de reduzir o tempo geral de compilação em máquinas de vários núcleos.

Veja a reportagem na íntegra para os interessados ​​neste tema. Esperançosamente, Belinassi continuará contribuindo para a GNU Compiler Collection devido ao seu sucesso nos últimos dois verões.


Fonte

Até a próxima !

Nenhum comentário:

Postar um comentário