Чи підтримує GDAL паралельну обробку?


11

Я хотів би прискорити процес, відповідний цій команді:

gdalwarp -t_srs EPSG:4326 -overwrite input.ntf output.tif

Чи існує спосіб використання паралельної обробки в GDAL? Напівфабрикат: Якщо ні, чи рекомендуєте ви не GDAL рішення для прискорення процесу, схожого на gdalwarp?

Ось веб-сторінки, які я переглянув:

Редагувати: Я задав це питання, тому що вважав, що бачу, що мій процесор залишився нижче 100% під час обробки gdalwarp. Однак з другого погляду він досяг 555,5%.


3
Ви читали про -multi в документі gdal.org/gdalwarp.html ?
користувач30184

-multiзробив це ще швидше. Максимальний відсоток процесора, який я бачив, становив 700% замість 555%. Процес зайняв 22 секунди замість 32 секунди.
Метт Клейнсміт

Відповіді:


10

Так , GDAL підтримує паралельну обробку, і ця підтримка застосовується до gdalwarp за замовчуванням.

Використовуйте параметр -multi з gdalwarp, щоб увімкнути багатопотоковість, на відміну від декількох ядер.

Деталі:

Без -мульти: 33.849, а процесор досяг 555%. (кілька ядер)

З -мільти: 23.377, а процесор досяг 700%. (кілька ядер і кілька потоків)

Розмір растра: 34721 x 20453, ОС: Ubuntu 16.04, # Ядра: 6, # Нитки: 12


Кредит: user30184 згадав цю -multiопцію у коментарі.

Документація: gdalwarp


2
Дивіться вдосконалену документацію (від trac.osgeo.org/gdal/changeset/38196 ) програми 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/…
користувач30184
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.