Я хотел бы ускорить процесс, соответствующий этой команде:
gdalwarp -t_srs EPSG:4326 -overwrite input.ntf output.tif
Есть ли способ использовать параллельную обработку в GDAL? Полу-оффтоп: Если нет, вы рекомендуете решение без GDAL для ускорения процесса, подобного gdalwarp?
Вот веб-страницы, на которые я смотрел:
- Можно ли выполнять параллельную обработку в GDAL и QGIS?
- [gdal-dev] GDAL растровая обработка: параллельные вычисления
Изменить: я задал этот вопрос, потому что я думал, что мой процессор% остается ниже 100% при обработке gdalwarp. Однако, с другой стороны, он достиг 555,5%.
gdal
parallel-processing
Мэтт Кляйнсмит
источник
источник
-multi
сделал это еще быстрее. Максимальный CPU%, который я видел, составлял 700% вместо 555%. Процесс занял 22 секунды вместо 32 секунд.Ответы:
Да , GDAL поддерживает параллельную обработку, и эта поддержка по умолчанию применяется к gdalwarp.
Используйте параметр -multi с gdalwarp, чтобы включить многопоточность, в отличие от нескольких ядер.
Подробности:
Без -multi: 33,849 с, а процессор достиг 555%. (несколько ядер)
С -multi: 23,377 с, а процессор достиг 700%. (несколько ядер и несколько потоков)
Размер растра: 34721 x 20453, ОС: Ubuntu 16.04, # ядер: 6, # потоков: 12
Кредит: пользователь30184 упомянул эту
-multi
опцию в комментарии.Документация: 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
. Смотрите также gdal.org/...