西班牙
斯潘4
每个FME翻译通常是计算机上的一个单一过程。但是,可以设置FME以利用多个核心处理器并提高计算的并行性(同时执行多个任务)。FME还利用了超线程技术,该技术用于使每个物理核心在主机操作系统中显示为两个逻辑处理器。
通过使用并行处理,可以在单个进程上显著提高性能。
简要介绍一下,FME中的每个并行进程都使用自己的一组数据,并且不能在进程之间传递数据。因此,必须使用Group By参数将数据划分为多个组,并将每个组设置为由不同的进程处理。
在这里,一个用户正在使用FME的统计计算器transformer计算温哥华市公园游客数量的统计数据。每个公园都有一个属性来定义它所居住的社区。该邻域属性用于对数据进行分组,通过设置并行处理级别,每个分组都由单独的进程处理,这可能会提高性能。
处理级别决定并行运行的进程数。最小的创建最少的进程。极端创造最多。具体数量取决于所用计算机上的内核和处理器数量:
但是,FME将创建的进程数量是有限制的。此限制与FME许可级别相关。FME基本版最多允许4个进程;专业版:8;所有其他版本:16。
下面是一些并行处理的一般技巧:
理论上,并行处理应该比单一处理产生结果的速度快。但是,有些情况可能并非如此:
与其让单个变压器执行并行处理,还可以在整个变压器组上启用并行处理。
这是通过从该组创建自定义转换器来完成的。自定义transsformer有自己的并行处理参数,并且不必局限于其中的单个转换器。
使用这样的自定义转换器还意味着“分组方式”和“并行处理方式”设置可能不同(例如,我可以按邻居将我的公园分组在一起,但可以基于城市对它们进行并行处理)。
这是一组使用并行处理的示例。有关自我执行的教程,请参见这一页。
这里的所有例子都是在一个四核(8个虚拟处理器)机器上进行的,在64位Windows平台上有4Gb的RAM。请记住,结果可能因硬件配置和FME版本而异。
由于曲面建模是一个非常复杂的过程,因此使用并行处理非常有益。
此示例从点云输入生成DEM:
RasterDEMGenerator group by设置为基名将每个点云作为其自己的组进行处理。
适度是最好的结果,比不并行快两倍多。最小并行速度较慢,因为它不使用全部处理能力。攻击模式和极端模式的速度较慢,因为它们使用的是以对方为代价的完全处理能力。
在第二个测试中,点云文件根据其名称的第一个字符进行分组(这就是SubstringExtractor transformer的用途)。
使用更大的测试数据集显示结果确实随数据大小而变化:
TingGenerator是SurfaceModeler的另一个子集,类似于RasterDEMGenerator。
在本例中,单个TingGenerator需要五分钟才能生成曲面。然而,即使在并行之前,我们也可以使用一个技巧,即一个TingGenerator使用第二个TingGenerator生成小曲面(来自每个源LAS),以将这些小曲面合并为一个曲面。
将此双曲面生成与并行处理相结合,可获得极好的结果:
基于上述测试的结果,我们可以果断地得出结论:并行处理允许更快的曲面建模,并且可以推荐用于支持多线程的机器。
此示例使用包含美国主要道路的Shapefile数据集,其目的是使用25 m缓冲区缓冲每条道路。该进程将把缓冲区转换器包装在自定义转换器中,以便Group By参数可以对Parallel process By参数使用不同的属性。
这很有用,因为它让我们可以创建最佳组数,这里是8到16个组。moduleCounter转换器用于执行此操作,其“Count Maximum”参数是创建的组数:
450000个原始路段的缓冲编号如下:
正如我们所看到的,在最后一次测试中较小的组并不能补偿多处理开销(启动FME会话和在FME实例之间发送特性)。如果每个组都有更多的特性,那么这就不那么重要了。
并行处理可用于工作区中的任何转换器。在上面的示例中,并行处理LineJoiner transformer(包装在自定义transformer中)会给出以下结果:
我们可以得出这样的结论:并行处理比普通的直线连接没有任何优势。然而,当数据集大约是5倍大时,结果却截然不同:
如果没有并行处理,一个进程可以占用资源,使计算机瘫痪,而FME优化内存使用并将数据缓存到磁盘。
剪裁是另一种多处理可能有益的操作。在这个例子中,我们读到在州内已经连接的主要道路,并将它们剪裁到县边界。同样,我们使用FIPS编号的第二个数字来创建处理组:
大型数据集(约450000个功能)的结果如下:
使用更大的数据集(约2250000个功能),结果会更加显著:
在三维中剪裁点云对于简单的曲面过滤非常有用:
在相对较小的点云上的结果如下所示:
有关详细信息,请参见并行处理文档或者桌面高级培训的并行处理部分.
?2020安全亚搏在线软件公司|合法的