ฟังก์ชั่นหลักใน QGIS จะใช้ประโยชน์จากมัลติเธรดหรือไม่?


10

หลังจากอ่านการเปิดใช้งานการประมวลผลแบบมัลติเธรดใน QGIS? ฉันสงสัยว่า QGIS 2.6 จะรวมสิ่งนี้หรือไม่เมื่อใช้กระบวนการต่างๆ ฉันตรวจสอบออนไลน์และฉันพบได้เพียงว่าการเรนเดอร์แบบมัลติเธรดนั้นได้รับการแนะนำให้รู้จักกับ QGIS 2.4 (ฉันคิดว่ามันจะใช้งานได้อีกใน 2.6) ตอนนี้แผนที่สามารถวาดใหม่ได้อย่างรวดเร็วโดยเฉพาะเมื่อจัดการกับชุดข้อมูลขนาดใหญ่

ฉันอ่านว่ามันค่อนข้างยากที่จะรวมฟังก์ชั่นมัลติเธรดเข้ากับคอร์และผู้ใช้ควรใช้โค้ด Python เพื่อให้บรรลุผลเช่นในการปฏิบัติการ Parallelising GIS ใน PyQGIS? .

ฉันได้ตรวจสอบคำขอคุณสมบัติแล้วแต่ถูกปิดไป 9 เดือนโดย Tim Sutton ด้วยความคิดเห็นล่าสุด:

"ฉันกำลังปิดตัวลงนี้ - Martin Dobias มีการนำไปใช้ในสาขาซึ่งจะถูกรวมเข้าด้วยกัน QGIS 2.2"

ฟังก์ชั่นบางอย่างใน QGIS 2.6 ใช้ประโยชน์จากมัลติเธรด (หรือจะเน้นไปที่การเรนเดอร์อีกครั้ง) และถ้าไม่จะเปลี่ยนที่ QGIS 3.0 หรือไม่


การมัลติเธรดไม่เหมาะอย่างยิ่งกับงาน GIS ส่วนใหญ่ซึ่งมีแนวโน้มที่จะผูกกับการสตรีมง่ายและ I / O ความยากลำบากในการรวมผลลัพธ์มักไม่คุ้มค่ากับความพยายามในการจัดคิวให้เป็นอิสระ (รองทำงานง่ายๆทันที) คำจำกัดความของ "การเอารัดเอาเปรียบ" จึงขึ้นอยู่กับการอภิปรายที่สำคัญ
วินซ์

@Vince - ขอบคุณฉันเข้าใจว่าการใช้มัลติเธรดไม่ได้เป็นสิ่งสำคัญที่สุดสำหรับหลายกรณีการใช้งาน แต่ในขณะที่การทำงานบางอย่างเพื่อให้บรรลุนี้ได้ทำไปแล้วผมก็สงสัยว่าถ้าการสนับสนุนนี้ (ซึ่งอาจจะเป็นคำที่ดีกว่า "ใช้ประโยชน์จาก") จะอยู่ในรุ่น QGIS ใหม่ =)
โจเซฟ

1
@PolyGeo - ขอบคุณจุดยุติธรรมและหนึ่งซึ่งค่อนข้างเหมาะสำหรับรูปแบบ Q / A นี้ ฉันเห็นด้วย :)
Joseph

คำตอบ:


3

ฉันคิดว่าคำตอบสำหรับ QGIS 3.0 อาจพบได้ในบทสนทนาล่าสุดที่โพสต์ในNabble :

การประมวลผลใน QGIS 3 จะสนับสนุนการขนานหรือไม่

การอ้างถึง Nyall Dawson:

หากคุณหลังจากการขนานในอัลกอริทึมเดียว (เช่นคุณสมบัติการบัฟเฟอร์โดยใช้หลายเธรด) ดังนั้นฉันจึงไม่ทราบว่ามีแผนใด ๆ ที่จะจัดการกับสิ่งนี้


ยินดีที่ได้พบ! แม้ว่าฉันจะสับสนเล็กน้อยกับคำพูดซึ่งตามสิ่งที่คุณอ้างถึง: "วิธีที่ง่ายและดี (ในทางทฤษฎี) เพื่อให้ได้อัลกอริธึมแบบมัลติเธรดและมันจะง่ายในการปรับอัลกอริทึมที่มีอยู่มากมาย โดยพื้นฐานแล้วอะไรก็ตามที่ทำงานกับคุณสมบัติแต่ละอย่างในการแยก) " . เป็นความเข้าใจของฉันหรือไม่ว่าอัลกอริทึมส่วนใหญ่ทำงานในแต่ละคุณสมบัติอยู่แล้วเพราะถ้าคุณไม่เลือกคุณสมบัติแต่ละอันด้วยตนเองอัลกอริทึมจะประมวลผลทั้งหมดโดยอัตโนมัติหรือไม่
Joseph

ฉันคิดว่าคำพูดที่คุณอ้างถึงเป็นเรื่องของความเป็นไปได้ในการแก้ไขโดยตรงบนเลเยอร์ (แทนที่จะสร้างผลลัพธ์ใหม่): อันที่จริงในเรื่องต่อไปนี้เขาพูดถึงความเป็นไปได้ที่จะทำการบัฟเฟอร์โดยตรงบนเลเยอร์ปัจจุบัน โดยไม่มีการประมวลผลเพิ่มเติมของเอาต์พุตที่ส่งคืน
mgri

1
เป็นจุดที่ดี ฉันหวังว่านักพัฒนา QGIS จะสามารถแสดงความคิดเห็นและยืนยันสิ่งนี้ได้ :)
โจเซฟ

2
GIS SE ไม่ใช่เว็บไซต์อภิปราย หากคุณต้องการคำตอบจากผู้ให้บริการเฉพาะฉันขอแนะนำให้คุณสอบถามพวกเขาโดยตรง
วินซ์

1
@joseph มีอัลกอริทึมมากมาย (เช่นการคำนวณจุดตัดของเส้นหรือคุณลักษณะการละลาย) ซึ่งไม่สามารถทำงานกับคุณสมบัติแต่ละอย่างได้
underdark

4

แสดงผลเฉพาะเวลาปัจจุบัน (QGIS 2.6)

มาร์ตินและฉันได้พูดคุยเกี่ยวกับ API กระบวนการเธรดทั่วไปบางประเภท แต่มันก็เป็นเพียงการพูดคุยในเวลาปัจจุบัน


1
ขอบคุณนาธานคุณคิดว่าการร่วมทุนครั้งนี้คุ้มค่าที่จะติดตามหรือเพิ่ม / ปรับปรุงการทำงานซึ่งถือว่าเป็นลำดับความสำคัญที่สูงขึ้นหรือไม่ นี่เพิ่งเกิดจากความอยากรู้ :)
โจเซฟ

มันคุ้มค่าที่จะติดตาม แต่ฉันไม่คิดว่ามันจะเป็นงานง่าย
Nathan W
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.