Apakah GDAL mendukung pemrosesan paralel?

11

Saya ingin mempercepat proses yang terkait dengan perintah ini:

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

Apakah ada cara untuk menggunakan pemrosesan paralel di GDAL? Semi-offtopic: Jika tidak, apakah Anda merekomendasikan solusi non-GDAL untuk mempercepat proses seperti gdalwarp?

Berikut adalah halaman web yang telah saya lihat:

Sunting: Saya mengajukan pertanyaan ini karena saya pikir saya melihat CPU saya tetap di bawah 100% saat memproses gdalwarp. Namun, pada tampilan kedua, mencapai 555,5%.

Matt Kleinsmith
sumber
3
Apakah Anda membaca tentang -multi dalam dokumen gdal.org/gdalwarp.html ?
user30184
-multimembuatnya lebih cepat. CPU% maks yang saya lihat adalah 700%, bukannya 555%. Prosesnya memakan waktu 22 detik, bukan 32 detik.
Matt Kleinsmith

Jawaban:

10

Ya , GDAL mendukung pemrosesan paralel, dan dukungan ini berlaku untuk gdalwarp secara default.

Gunakan opsi -multi dengan gdalwarp untuk mengaktifkan multithreading, bukan hanya beberapa core.

Detail:

Tanpa -multi: 33.849s, dan CPU mencapai 555%. (banyak inti)

Dengan -multi: 23.377s, dan CPU mencapai 700%. (banyak inti dan banyak utas)

Ukuran raster: 34721 x 20453, OS: Ubuntu 16.04, # Cores: 6, # Threads: 12


Kredit: user30184 menyebutkan -multiopsi dalam komentar.

Dokumentasi: gdalwarp

Matt Kleinsmith
sumber
2
Lihat dokumentasi yang ditingkatkan (oleh trac.osgeo.org/gdal/changeset/38196 ) dari 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. Lihat juga gdal.org/…
user30184