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