在QGIS中启用多线程处理?


11

我发现有多个链接似乎表明它现在已存在于QGIS 2.2中,但似乎它仅使用一个核心来实现全部容量。

它在Ubuntu 14.04上运行

当前的过程正在创建大量常规点。我如何才能使该过程使用多个核心?

CPU使用率


1
我认为这将是2.4的下一个版本。但是,如果您想尝试一下,请下载夜间版本。
马特

可能值得一提的是,由于GIL,“多线程”将无法运行并发内核。查看stackoverflow.com/questions/1294382/…您想要的是“多处理”。
紫色先生2014年

Answers:


6

没有多线程渲染QGIS 2.2,它将在QGIS 2.4中提供。

您可以试用QGIS Master(每晚)进行测试,然后计划于2014年6月20日发布QGIS 2.4


糟糕,您的问题没有得到正确的理解,从注释中发现,多线程处理似乎发生在QGIS开发人员级别或Python插件贡献者级别。

如果要从QGIS内置的菜单中使用特定的QGIS工具,而不是进行多线程处理,则可能需要由开发人员为QGIS进行编码,甚至要编码到该工具的根目录(GDAL,SAGA,Orfeo, GRASS,R开发人员等)。

如果存在某个插件,则该插件最有可能是围绕Python编码的,并且该插件的贡献者或维护者可以查看是否可以包含multiprocessingthreading模块来增强其性能。

无论哪种方式,提交功能请求或查看是否已经存在都是通常的最佳入门方法。它会让您知道是否有人已经在解决该增强功能,或者需要什么资源来启动它。


真可惜...我过去曾从源头上遇到过问题。如果我只是为每晚添加ppa并使用apt安装所有相同的设备,那会给我最新的每晚信息吗?关于稳定性有什么想法吗?
jpmaniac87

@ jpmaniac87我很久没有使用Ubuntu了,我的GIS在Arch Linux上也可以工作,所以我从源代码编译了所有东西。因此,我不知道Ubuntu的PPA如何,以及您是否可以同时将QGIS(稳定版)和QGIS(主版)一起安装。
2014年

@ jpmaniac87从另一个问题的答案来看,鉴于QGIS版本是如何在Ubuntu上打包的,这可能是不可能的。看起来是一个或另一个。
2014年

PPA确实有效。我只是注释掉了稳定路线并每晚进行安装。它很快!但是...它仅使用字面上的多个线程进行渲染...我希望有更多的插件过程。我想这意味着插件创建者需要在其代码中允许多线程处理吗?
jpmaniac87

1
@ jpmaniac87是的,因为插件是使用Python构建的,并且Python有一个multiprocessingor threading threading通常用于queue模块,因此必须专门将其添加到脚本中。
2014年

3

取决于您的追求。当将处理移植到新的任务管理器框架时,算法将能够并行运行(如果可能)。例如,一层的缓冲区可以运行,而另一层发生转换。如果你是并行后单个算法(例如缓冲功能使用多线程),那么,我不知道的地方在处理这个任何计划。

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


旧答案:在2015年Google Summer of Code期间,已为QGIS Processing开发了多线程支持。该代码目前正在审核中,预计将于2016年在开发人员版本中使用。(来源:http : //boundlessgeo.com/2015/12/latest-developments-in-qgis-processing/

...很遗憾,此解决方案无法合并。


关于此事@underdark有任何更新吗?
里卡多·巴罗斯·洛伦索

不幸的是,并行化在大多数应用中仍然受到限制。我的理解是,利用诸如PostGIS / postgres之类的数据库基础结构,可以对查询进行更集成的管理,并具有更好的多线程功能。
CrystallineEntity

2

一些线程已合并到QGIS核心功能中(例如,如SaultDons答案中所述进行渲染),但许多功能或算法可能会也可能不会合并线程,这取决于它们的发展。

对于那些希望在其插件/脚本中包括线程的pyQGIS插件作者(也许包括OP),可以在snorfalorpagus博客上获得一些帮助。

作为权宜之计,您可能可以编写您的过程的脚本,并使用aman-mans并行过程方案来调用异步shell脚本,如此处的Alexis答案所述。

如果还有其他人有足够的资源来并行化QGIS作业,请随时进行编辑并将其添加到此答案中:)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.