Me gustaría acelerar el proceso correspondiente a este comando:
gdalwarp -t_srs EPSG:4326 -overwrite input.ntf output.tif
¿Hay alguna manera de usar el procesamiento paralelo en GDAL? Semi-offtopic: si no, ¿recomienda una solución que no sea GDAL para acelerar un proceso similar a gdalwarp?
Aquí están las páginas web que he visto:
- ¿Es posible hacer procesamiento paralelo en GDAL y QGIS?
- [gdal-dev] Procesamiento ráster GDAL: computación paralela
Editar: hice esta pregunta porque pensé que vi que mi% de CPU se mantuvo por debajo del 100% al procesar gdalwarp. Sin embargo, en una segunda mirada, alcanzó el 555.5%.
gdal
parallel-processing
Matt Kleinsmith
fuente
fuente
-multi
lo hizo aún más rápido. El% de CPU máximo que vi fue del 700% en lugar del 555%. El proceso tomó 22 segundos en lugar de 32 segundos.Respuestas:
Sí , GDAL admite el procesamiento en paralelo, y esta compatibilidad se aplica a gdalwarp de forma predeterminada.
Use la opción -multi con gdalwarp para habilitar multihilo, en lugar de solo múltiples núcleos.
Detalles:
Sin -multi: 33.849s, y la CPU alcanzó el 555%. (múltiples núcleos)
Con -multi: 23.377s, y la CPU alcanzó el 700%. (múltiples núcleos y múltiples hilos)
Tamaño de ráster: 34721 x 20453, SO: Ubuntu 16.04, # Núcleos: 6, # Hilos: 12
Crédito: user30184 mencionó la
-multi
opción en un comentario.Documentación: gdalwarp
fuente
-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
. Ver también gdal.org/…