Je souhaite accélérer le processus correspondant à cette commande:
gdalwarp -t_srs EPSG:4326 -overwrite input.ntf output.tif
Existe-t-il un moyen d'utiliser le traitement parallèle dans GDAL? Semi-offtopic: Sinon, recommandez-vous une solution non GDAL pour accélérer un processus de type gdalwarp?
Voici les pages Web que j'ai consultées:
- Est-il possible de faire un traitement parallèle dans GDAL et QGIS?
- [gdal-dev] Traitement raster GDAL: calcul parallèle
Edit: J'ai posé cette question parce que je pensais avoir vu mon CPU% rester en dessous de 100% lors du traitement de gdalwarp. Cependant, à un deuxième regard, il a atteint 555,5%.
gdal
parallel-processing
Matt Kleinsmith
la source
la source
-multi
rendu encore plus rapide. Le% CPU maximum que j'ai vu était de 700% au lieu de 555%. Le processus a pris 22 secondes au lieu de 32 secondes.Réponses:
Oui , GDAL prend en charge le traitement parallèle, et cette prise en charge s'applique à gdalwarp par défaut.
Utilisez l'option -multi avec gdalwarp pour activer le multithreading, par opposition à seulement plusieurs cœurs.
Détails:
Sans -multi: 33,849s, et le CPU a atteint 555%. (plusieurs cœurs)
Avec -multi: 23,377s, et le CPU a atteint 700%. (plusieurs cœurs et plusieurs threads)
Taille de trame: 34721 x 20453, OS: Ubuntu 16.04, # Coeurs: 6, # Threads: 12
Crédit: user30184 a mentionné l'
-multi
option dans un commentaire.Documentation: gdalwarp
la source
-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
. Voir aussi gdal.org/…