现在机器硬件越来越优,多核CPU的机器比比皆是,ArcGIS Desktop 32位单进程的模式不能充分的利用这些硬件资源,不能满足大数据量的处理要求。因此,Esri 改进了 ArcToolbox 中的部分工具,赋予了这部分工具并行处理的能力,确切地说是一小部分工具。
看到这里,问题可能来了,哪些工具支持并行处理呢?遗憾的是官方没有给出这个清单,这一点体验上确实不是很佳。但是我们还是有办法把它们找出来的,当我们在使用某个工具的时候,可以打开工具的帮助,在环境变量题目下找找有没有叫做 并行处理因子(Parallel Processing Factor)的项目。
也就是说,对于所有工具,只有其文档中环境变量下标明的环境变量参数才有效,而不是全部环境变量参数都有效!
下面我们来看看这个参数是如何设置和影响工具运行的。做一个简单的小测试,先找到一个支持并行处理的工具,例如 Build Pyramids And Statistics 工具,用其为数据量较大的镶嵌数据集的项目创建金字塔和统计值。在默认设置下,只要工具支持并行处理,工具会自动创建多个进程(ArcSOCP.exe)来执行任务。如下图所示:
在工具支持并行处理的情况下,设置并行处理因子(Parallel Processing Factor)这个参数又能做什么呢?
这个因子的数值,会决定工具运行使用的进程数量。一般,各工具在各个支持的环境中都有进程数量的内置默认值。我们可根据自己的数据情况、执行任务的类型和机器的可用资源对其进行更改。
一般是这四种设置方法:
参数 | 说明 |
---|---|
留空 | 让工具自动决定使用进程的数量,这是默认设置。*如上图中,我是8核的机器,工具自动开启了4个进程。 |
0 | 不跨多个进程进行操作。 |
n | 使用指定的进程数量。 |
n% | 使用百分比计算进程数量:进程数量 = 系统核数量 * (n / 100)。 |
在填写的时候,是不是一定进程数越多越好呢?
引用帮助文档的原文供读者参考:
“指定的进程数量大于计算机所具有的核数量,可能导致性能损失。这是因为多进程将在一个核上争夺资源。为避免这样的竞争,可以指定低于 100% 的百分数值或少于计算机核数量的进程数量。”
当然也有例外情况:
“当所有进程均是对磁盘或企业级数据库连接的 I/O bound 时,您可通过指定多于核数量的进程以提高性能。例如将镶嵌数据集储存到企业级数据库时,添加栅格至镶嵌数据集 工具是 I/O bound。同样,构建概视图工具对磁盘的主要的 I/O bound。您可通过指定大于 100% 的百分比或大于计算机所含核数量的进程数量,来使用更多进程。例如,如果您有一台四核计算机,则指定 8 或 200%,这会跨八个进程展开操作。”
原文:https://blog.csdn.net/kikitaMoon/article/details/42552953