O GDAL suporta processamento paralelo?


11

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:

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%.


3
Você leu sobre -multi no documento gdal.org/gdalwarp.html ?
User30184

-multitornou 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.
quer

Respostas:


10

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 -multiopção em um comentário.

Documentação: gdalwarp


2
Veja a documentação aprimorada (por trac.osgeo.org/gdal/changeset/38196 ) do gdalwarp -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/…
user30184
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.