Cho phép xử lý đa luồng trong QGIS?


11

Tôi đã tìm thấy nhiều liên kết có vẻ như nói rằng điều này hiện tồn tại trong QGIS 2.2, nhưng có vẻ như nó chỉ sử dụng một lõi cho hết công suất.

Cái này đang chạy trên Ubuntu 14.04

Quá trình hiện tại đang tạo ra một lượng lớn các điểm thông thường. Làm thế nào tôi có thể làm cho quá trình đó sử dụng nhiều hơn một lõi?

Sử dụng CPU


1
Tôi nghĩ rằng đây sẽ là phiên bản 2.4, phiên bản tiếp theo. Tuy nhiên, nếu bạn muốn dùng thử, hãy tải xuống bản dựng hàng đêm.
Matt

Có lẽ đáng để nhận xét rằng do "đa luồng" của GIL sẽ không chạy các lõi đồng thời. Kiểm tra stackoverflow.com/questions/1294382/ Khăn Điều bạn muốn là "đa xử lý".
Mr Purple

Câu trả lời:


6

Không có kết xuất đa luồng nào cho QGIS 2.2, đây là một tính năng sẽ có trong QGIS 2.4.

Bạn có thể dùng thử QGIS Master (hàng đêm) để thử nghiệm và sau đó, QGIS 2.4 được lên lịch phát hành vào ngày 20 tháng 6 năm 2014 .


Rất tiếc, đã đọc sai câu hỏi của bạn và từ các nhận xét, có vẻ như Xử lý đa luồng là một điều gì đó xảy ra ở cấp độ nhà phát triển QGIS hoặc cấp độ đóng góp của Trình cắm Python.

Nếu có một công cụ QGIS cụ thể mà bạn đang sử dụng từ các menu được tích hợp trong QGIS hơn là để xử lý đa luồng, thì có lẽ bạn cần phải được mã hóa bởi nhà phát triển cho QGIS hoặc thậm chí đến thư mục gốc của công cụ (GDAL, SAGA, Orfeo, GRASS, nhà phát triển R, v.v ...).

Nếu có một plugin nào đó có khả năng được mã hóa nhiều nhất xung quanh Python và người đóng góp hoặc người duy trì plugin đó có thể xem liệu có thể bao gồm multiprocessinghoặc threadingcác mô-đun để nâng cao hiệu suất của nó hay không.

Dù bằng cách nào, gửi yêu cầu tính năng hoặc xem nếu một cái đã tồn tại thường là cách tốt nhất để bắt đầu. Nó sẽ cho bạn biết nếu ai đó đã giải quyết vấn đề tăng cường hoặc cần những nguồn lực nào để khởi động nó.


Đó là một sự xấu hổ ... Tôi đã có vấn đề xây dựng từ nguồn trong quá khứ. Nếu tôi chỉ thêm ppa cho các nightlies và cài đặt tất cả giống nhau với apt, điều đó có cho tôi bản mới nhất hàng đêm không? Bất cứ ý tưởng về sự ổn định?
jpmaniac87

@ jpmaniac87 Tôi đã không sử dụng Ubuntu trong một thời gian dài và hệ thống GIS của tôi hoạt động trên Arch Linux vì vậy tôi biên dịch mọi thứ từ nguồn. Vì vậy, tôi sẽ không biết PPA dành cho Ubuntu như thế nào và liệu bạn có thể cài đặt QGIS (ổn định) với QGIS (chính chủ) cùng một lúc không.
SaultDon

@ jpmaniac87 Có vẻ như từ câu trả lời này trong một câu hỏi khác mà có thể không thể đưa ra về cách các phiên bản QGIS được đóng gói trên Ubuntu. Hình như nó là cái này hay cái kia.
SaultDon

Các PPA làm việc. Tôi chỉ nhận xét các dòng ổn định và cài đặt hàng đêm. Thật nhanh! Nhưng ... nó chỉ sử dụng nhiều luồng theo nghĩa đen để kết xuất ... Tôi đã hy vọng nhiều hơn vào các quy trình plugin. Tôi đoán điều đó có nghĩa là những người tạo plugin sẽ cần phải cho phép xử lý đa luồng trong mã của họ?
jpmaniac87

1
@ jpmaniac87 Yea, vì các plugin được xây dựng bằng Python và có một mô-đun multiprocessinghoặc threading ( threadingthường được sử dụng với queue) cho Python mà chúng sẽ phải thêm vào tập lệnh của chúng một cách cụ thể.
SaultDon

3

Phụ thuộc vào những gì bạn đang theo đuổi. Khi xử lý được chuyển sang khung quản lý tác vụ mới thì các thuật toán sẽ có thể chạy song song (nếu có thể). Ví dụ, một bộ đệm cho một lớp có thể chạy trong khi một biến đổi xảy ra trên một lớp khác. Nếu bạn sau khi song song hóa trong một thuật toán duy nhất (Ví dụ: tính năng đệm sử dụng nhiều luồng) thì tôi không biết có kế hoạch nào để xử lý việc này.

Nguồn: http://osgeo-org.1560.x6.nabble.com/Will-Processing-in-QGIS-3-support-metization-td5301809.html


Câu trả lời cũ: Trong Mùa hè mã năm 2015 của Google, hỗ trợ đa luồng đã được phát triển cho Xử lý QGIS. Mã này hiện đang được xem xét và dự kiến ​​sẽ cập bến phiên bản dành cho nhà phát triển vào năm 2016. (Nguồn: http://boundlessgeo.com/2015/12/latest-developments-in-qgis- Processing / )

... Thật không may, giải pháp này không thể được hợp nhất.


Bất kỳ cập nhật về vấn đề này @underdark?
Ricardo Barros Lourenço

Song song vẫn còn hạn chế trong hầu hết các ứng dụng, thật đáng tiếc. Tôi hiểu rằng việc sử dụng cơ sở hạ tầng cơ sở dữ liệu, chẳng hạn như PostGIS / postgres cho phép quản lý các truy vấn tích hợp nhiều hơn và có khả năng đa luồng tốt hơn.
Tinh thểEntity

2

Một số luồng đang được kết hợp trong chức năng cốt lõi của QGIS (ví dụ hiển thị như được mô tả trong câu trả lời SaultDons) nhưng nhiều chức năng hoặc thuật toán có thể có hoặc không được kết hợp luồng tùy theo sự phát triển của chúng.

Đối với những tác giả plugin pyQGIS (có lẽ bao gồm cả OP) muốn đưa luồng vào plugin / tập lệnh của họ, một số trợ giúp có sẵn tại blog snorfalorpagus Hy vọng sẽ ngày càng có nhiều nhà phát triển sử dụng luồng - đặc biệt là cho các thuật toán đánh thuế nhiều hơn.

Là một điểm dừng, bạn có thể tạo kịch bản cho quy trình của mình và sử dụng sơ đồ quy trình song song của người nghèo với các lệnh gọi đến các tập lệnh shell không đồng bộ như được mô tả trong câu trả lời của alexis tại đây

Nếu bất cứ ai khác có bất kỳ tài nguyên tốt nào để song song hóa các công việc của QGIS, vui lòng chỉnh sửa và thêm chúng vào câu trả lời này :)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.