FERRAMENTAS LINUX: O GCC vê mais progresso na capacidade de paralelizar a compilação de grandes arquivos de origem

quinta-feira, 30 de julho de 2020

O GCC vê mais progresso na capacidade de paralelizar a compilação de grandes arquivos de origem



Confira !



Embora o GCC com o GNU Make e outros sistemas de compilação possam ser escalonados com facilidade na compilação de muitos arquivos simultaneamente, tem havido um esforço contínuo do GCC para conseguir paralelizar mais o trabalho da Coleção do Compilador GNU ao compilar grandes arquivos de origem.

No verão de 2019, começou o trabalho para tentar solucionar o gargalo da paralelização , permitindo que mais trabalhos do compilador fossem paralelizados em arquivos de origem maiores . Houve um bom progresso em 2019, enquanto o desenvolvedor estudante Giuliano Belinassi está de volta com o Google Summer of Code este ano continuando o trabalho.

Belinassi forneceu seu segundo relatório hoje sobre a "viabilidade de compilação paralela automática" para acelerar a compilação de arquivos grandes junto com a integração para o GNU Jobserver.

O código está funcionando e, por meio de uma versão ramificada do GCC, pode ser tentado. As acelerações em um processador móvel Intel Core i7 de quatro núcleos variam de leves desacelerações a cerca de 1,9x a velocidade do código GCC original. Os front-ends C, C ++ e Fortran para o GCC atualmente oferecem suporte a este trabalho, enquanto outros podem chegar a tempo.

Belinassi concluiu o último relatório de status com "O projeto atual está indo bem, embora abordagens conservadoras, como desativar a promoção estática, possam impactar negativamente o potencial de paralelismo. Uma maneira de corrigir isso no futuro é comunicar o arquivo assembler final novamente ao processo principal do GCC e concatenar novamente em um arquivo assembler, em vez de vincular parcialmente vários arquivos assembler. Isso certamente aumentará os custos de comunicação entre processos, mas pode valer a pena. "

Esperamos que o trabalho continue indo bem e essa melhoria de paralelização para o GCC, em última análise, o torne upstream em um futuro não muito distante.


Fonte

Até a próxima !!

Nenhum comentário:

Postar um comentário