Chciałbym przyspieszyć proces odpowiadający temu poleceniu:
gdalwarp -t_srs EPSG:4326 -overwrite input.ntf output.tif
Czy istnieje sposób korzystania z równoległego przetwarzania w GDAL? Semi-offtopic: Jeśli nie, czy polecasz rozwiązanie inne niż GDAL, aby przyspieszyć proces podobny do gdalwarpa?
Oto strony, na które patrzyłem:
- Czy możliwe jest przetwarzanie równoległe w GDAL i QGIS?
- [gdal-dev] Przetwarzanie rastrowe GDAL: obliczenia równoległe
Edycja: Zadałem to pytanie, ponieważ wydawało mi się, że mój procesor% pozostaje poniżej 100% podczas przetwarzania gdalwarp. Jednak po drugim spojrzeniu osiągnął 555,5%.
gdal
parallel-processing
Matt Kleinsmith
źródło
źródło
-multi
uczyniło to jeszcze szybszym. Maksymalny procent CPU jaki widziałem to 700% zamiast 555%. Proces ten zajął 22 sekundy zamiast 32 sekund.Odpowiedzi:
Tak , GDAL obsługuje przetwarzanie równoległe, a ta obsługa domyślnie dotyczy gdalwarp.
Użyj opcji -multi z gdalwarp, aby włączyć wielowątkowość, w przeciwieństwie do wielu rdzeni.
Detale:
Bez -multi: 33,849s, a procesor osiągnął 555%. (wiele rdzeni)
Przy -multi: 23,377s, a procesor osiągnął 700%. (wiele rdzeni i wiele wątków)
Rozmiar rastra: 34721 x 20453, System operacyjny: Ubuntu 16.04, # Rdzenie: 6, # Wątki: 12
Źródło : user30184 wspomniał o
-multi
opcji w komentarzu.Dokumentacja: gdalwarp
źródło
-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
. Zobacz także gdal.org/…