我发现有多个链接似乎表明它现在已存在于QGIS 2.2中,但似乎它仅使用一个核心来实现全部容量。
它在Ubuntu 14.04上运行
当前的过程正在创建大量常规点。我如何才能使该过程使用多个核心?
我发现有多个链接似乎表明它现在已存在于QGIS 2.2中,但似乎它仅使用一个核心来实现全部容量。
它在Ubuntu 14.04上运行
当前的过程正在创建大量常规点。我如何才能使该过程使用多个核心?
Answers:
没有多线程渲染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编码的,并且该插件的贡献者或维护者可以查看是否可以包含multiprocessing
或threading
模块来增强其性能。
无论哪种方式,提交功能请求或查看是否已经存在都是通常的最佳入门方法。它会让您知道是否有人已经在解决该增强功能,或者需要什么资源来启动它。
multiprocessing
or threading
(threading
通常用于queue
)模块,因此必须专门将其添加到脚本中。
取决于您的追求。当将处理移植到新的任务管理器框架时,算法将能够并行运行(如果可能)。例如,一层的缓冲区可以运行,而另一层发生转换。如果你是并行后内单个算法(例如缓冲功能使用多线程),那么,我不知道的地方在处理这个任何计划。
资料来源: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/)
...很遗憾,此解决方案无法合并。
一些线程已合并到QGIS核心功能中(例如,如SaultDons答案中所述进行渲染),但许多功能或算法可能会也可能不会合并线程,这取决于它们的发展。
对于那些希望在其插件/脚本中包括线程的pyQGIS插件作者(也许包括OP),可以在snorfalorpagus博客上获得一些帮助。
作为权宜之计,您可能可以编写您的过程的脚本,并使用aman-mans并行过程方案来调用异步shell脚本,如此处的Alexis答案所述。
如果还有其他人有足够的资源来并行化QGIS作业,请随时进行编辑并将其添加到此答案中:)