QGIS'de çok iş parçacıklı işlemeyi etkinleştiriyor musunuz?


11

Bunun artık QGIS 2.2'de bulunduğunu söyleyen birden fazla bağlantı buldum, ancak tam kapasiteye kadar sadece bir çekirdeği kullanıyor gibi görünüyor.

Bu Ubuntu 14.04 üzerinde çalışıyor

Mevcut süreç büyük miktarda düzenli puan yaratmaktadır. Bu sürecin birden fazla çekirdeği nasıl kullanmasını sağlayabilirim?

CPU kullanımı


1
Bence bu bir sonraki sürüm olan 2.4'te olacak. Ancak, denemek istiyorsanız, gece yapısını indirin.
Mat

Muhtemelen GIL nedeniyle "çoklu iş parçacığı" eşzamanlı çekirdekler çalıştırmak olmaz yorumlamakta fayda var. Check out stackoverflow.com/questions/1294382/... siz "çoklu işlem" olduğunu istediğini.
Bay Purple

Yanıtlar:


6

Çok iş parçacıklı oluşturma QGIS 2.2 yoktur, bu QGIS 2.4'te kullanılabilecek bir özelliktir.

QGIS Master'ı (gecelik) test etmek için deneyebilirsiniz ve ardından QGIS 2.4'ün 20 Haziran 2014'te yayınlanması planlanmaktadır .


Hata! Sorunuzu yanlış anlayın ve yorumlardan, çok iş parçacıklı İşleme, QGIS geliştirici düzeyinde veya Python Plugin katkıda bulunan düzeyinde gerçekleşen bir şey gibi görünüyor.

QGIS içinde yerleşik menülerden kullandığınız belirli bir QGIS aracı varsa, çok iş parçacıklı işleme almak yerine, muhtemelen QGIS için bir geliştirici tarafından veya hatta aracın köküne kodlanması gerekir (GDAL, SAGA, Orfeo, GRASS, R geliştiricileri vb.).

Büyük olasılıkla Python çevresinde kodlanmış olandan belirli bir eklenti varsa ve bu eklentinin katılımcısı veya sürdürücüsü , performansını artırmak için multiprocessingveya threadingmodüllerini dahil etmenin mümkün olup olmadığını görebilir .

Her iki durumda da, bir özellik isteği göndermek veya bir kişinin zaten var olup olmadığını görmek genellikle başlamak için en iyi yoldur. Birisi zaten geliştirme ile mücadele edip etmediğini veya başlatmak için hangi kaynaklara ihtiyaç duyulacağını size bildirir.


Bu bir utanç ... Geçmişte kaynağından bina sorunları yaşadım. Ben sadece geceleri için ppa eklemek ve apt ile aynı yüklemek, bu bana en son gece verir misiniz? Kararlılık hakkında bir fikrin var mı?
jpmaniac87

@ jpmaniac87 Ubuntu'yu uzun zamandır kullanmadım ve GIS çalışmamı Arch Linux üzerinde yapıyorum, böylece her şeyi kaynaktan derliyorum. Bu yüzden Ubuntu için PPA'ların nasıl olduğunu ve QGIS'i (kararlı) QGIS (master) ile aynı anda yükleyip kuramayacağınızı bilmiyorum.
SaultDon

@ jpmaniac87 QGIS sürümlerinin Ubuntu üzerinde nasıl paketlendiği göz önüne alındığında , başka bir soruda bu cevaptan anlaşılıyor gibi görünüyor . Öyle ya da böyle.
SaultDon

PPA'lar işe yarıyor. Sadece kararlı hatları yorumladım ve her gece yükledim. Hızlı! Ama ... sadece render için çoklu konuları kullanıyor ... Eklenti işlemlerinden daha fazlasını umuyordum. Bu eklenti yaratıcıları kodlarında çok iş parçacıklı işleme izin gerekir anlamına gelir sanırım?
jpmaniac87

1
@ jpmaniac87 Evet, çünkü eklentiler Python ile oluşturulmuştur ve Python için özellikle komut dosyalarına eklemek zorunda kalacakları bir multiprocessingveya threading ( threadinggenellikle birlikte kullanılır queue) modül vardır.
SaultDon

3

Sonra ne olduğuna bağlı. İşleme yeni görev yöneticisi çerçevesine taşındığında, algoritmalar paralel olarak çalışabilir (mümkünse). Örneğin, bir katman için bir tampon başka bir katman üzerinde bir dönüşüm meydana gelirken çalışabilir. Tek bir algoritma (örneğin birden çok iş parçacığı kullanarak arabelleğe alma özellikleri) içinde paralelleştirme sonra iseniz, o zaman bu işlemek için herhangi bir plan farkında değilim.

Kaynak: http://osgeo-org.1560.x6.nabble.com/Will-Processing-in-QGIS-3-support-parallelization-td5301809.html


Eski cevap: 2015 Google Kod Yazında, QGIS İşleme için çoklu iş parçacığı desteği geliştirildi. Kod şu anda inceleniyor ve 2016 yılında geliştirici sürümüne geçmesi bekleniyor. (Kaynak: http://boundlessgeo.com/2015/12/latest-developments-in-qgis-processing/ )

... Bu çözüm maalesef birleştirilemedi.


Bu konuda herhangi bir güncelleme @underdark?
Ricardo Barros Lourenço

Paralelleştirme çoğu uygulamada, talihsiz bir şekilde hala sınırlıdır. Anladığım kadarıyla, PostGIS / postgres gibi veritabanı altyapısı kullanıldığında, sorguların daha entegre bir şekilde yönetilmesine ve daha iyi çoklu okuma özelliklerine sahip olması sağlanıyor.
CrystallineEntity

2

Bazı diş açma QGIS çekirdek işlevselliğine dahil edilir (örneğin SaultDons cevabında açıklandığı gibi işlenir), ancak birçok fonksiyon veya algoritma geliştirilmelerine bağlı olarak diş açma özelliğine sahip olabilir veya olmayabilir.

Eklentilerine / komut dosyalarına iş parçacığı eklemek isteyen pyQGIS eklenti yazarları (belki de OP dahil) için snorfalorpagus blogunda bazı yardımlar mevcuttur .

Bir stopgap olarak, işleminizi kodlayabilir ve burada alexis cevapta açıklandığı gibi asenkron kabuk komut dosyalarına çağrılarla fakir bir adamın paralel süreç şemasını kullanabilirsiniz.

QGIS işlerini paralel hale getirmek için başka iyi kaynaklarınız varsa, lütfen bunları düzenleyebilir ve bu yanıta ekleyebilirsiniz :)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.