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