Gostaria de acelerar o processo correspondente a este comando:
gdalwarp -t_srs EPSG:4326 -overwrite input.ntf output.tif
Existe uma maneira de usar o processamento paralelo no GDAL? Semi-offtopic: Se não, você recomenda uma solução não GDAL para acelerar um processo semelhante ao gdalwarp?
Aqui estão as páginas da web que eu olhei:
- É possível fazer processamento paralelo no GDAL e QGIS?
- [gdal-dev] Processamento raster GDAL: computação paralela
Edit: Eu fiz esta pergunta porque pensei ter visto minha% de CPU ficar abaixo de 100% ao processar o gdalwarp. No entanto, em uma segunda análise, alcançou 555,5%.
gdal
parallel-processing
Matt Kleinsmith
fonte
fonte
-multi
tornou ainda mais rápido. O% máximo de CPU que vi foi de 700% em vez de 555%. O processo levou 22 segundos em vez de 32 segundos.Respostas:
Sim , o GDAL suporta processamento paralelo, e esse suporte se aplica ao gdalwarp por padrão.
Use a opção -multi com gdalwarp para ativar o multithreading, em vez de apenas vários núcleos.
Detalhes:
Sem -multi: 33.849s, e a CPU atingiu 555%. (múltiplos núcleos)
Com -multi: 23.377s, e a CPU atingiu 700%. (vários núcleos e vários threads)
Tamanho da varredura: 34721 x 20453, SO: Ubuntu 16.04, # Cores: 6, # Tópicos: 12
Crédito: user30184 mencionou a
-multi
opção em um comentário.Documentação: gdalwarp
fonte
-multi: Use multithreaded warping implementation. Two threads will be used to process chunks of image and perform input/output operation simultaneously. Note that computation is not multithreaded itself. To do that, you can use the -wo NUM_THREADS=val/ALL_CPUS option, which can be combined with -multi
. Veja também gdal.org/…