对并行处理

每个FME转换通常作为一个进程在您的计算机上运行。这意味着FME通常按顺序处理式中指定的每组特性集团参数。FME 2012+的版本可以使用多核处理器,在现代个人电脑上,多任务可以并行执行。FME还使用超线程技术,这种技术用于使每个物理内核在主机操作系统中显示为两个逻辑处理器。通过在内核/处理器之间分配工作负载,FME性能可以得到提高。

在支持此特性的转换器中,并行处理允许您以多个同步进程的形式运行转换。Group-By参数允许您将特性分配给进程。并行处理参数允许您定义不同级别的处理没有并行性极端的

在这里的示例中,Group By参数被设置为状态基于阅读器数据集。通过设置并行处理级别,FME可以将每个状态作为单独的、同时进行的进程运行。

并行处理水平

参数 的进程数量
没有并行性 1
最小的 处理器,或CPU,是计算机的物理部分,执行数学计算。它是计算机系统中最重要的部分。传统处理器在处理器上只有一个核心,这意味着在任何给定的时间,只有一组计算被执行。如果一个处理器是双核的,这意味着单个芯片包含两个处理器的硬件,现在称为核心,以区别于单个芯片,同时并行运行。(来源:http://www.ehow.com/facts_5730257_computer-core-processors_.html)/ 2
温和的 精确芯数
咄咄逼人的 核心x 1.5
极端的 核心x 2

例如,在四核机器上,最小并行度将导致两个同时发生的FME进程。8核机器上的极端并行性将导致16个并发进程。您可以试验此特性,并在Windows任务管理器和工作台日志窗口中查看信息。有关更多信息,请参见并行处理级参数,下面。

FME许可证:FME许可证可用的进程数量有一个限制:基本版本:4;专业版:8;其他所有版本:16版。

任务管理器进程

当并行处理被启用时,FME通过生成一个新的并行处理一组特征fmeworker.exe每个特性组的实例。

工作台日志

在工作台日志中,信息消息显示许可限制(如果适用)、请求、每个“worker”的进程内存使用情况,以及关于每个-WORKER_KEY的标识信息:

通知|,目前的FME许可证将工人人数限制在16人

<日期> 11:25:16| 2.0| 0.0|通知|区域,区域覆盖层:‘MODERATE’的并行处理级别已要求‘8’工人

<日期> 11:25:23| 0.0| 0.0|通知|11>启动进程:6852,峰值进程内存使用量:26384 kB,当前进程内存使用量:26384 kB

<日期> 11:25:23 >.0 | 0.0|通知|11> FME配置:命令行参数为' C:\apps\FME_2013\fmeworker' ' C:\ USER \\AppData\Local\Temp\childProcMap1353957917240_7552。' LOG_STANDARDOUT' ' YES' ' -WORKER_CAPABILITY' ' 215L804U4L92U1L10U1L5U1' ' -WORKER_KEY' ' 4120345835' '

当FME生成一个额外的进程时,它需要将输入特性发送到新进程,并接收该进程的输出特性。与单进程模式相比,这会增加额外的CPU开销。

并行处理参数

为了使用并行处理,工作流应该有几个可以独立处理的特性组。亚搏在线每个组将成为一个单独的(并行的)过程。下面将讨论一些分组技术。

并行性的级别(一次可以执行多少个进程)取决于并行处理参数,有五种模式:

根据所执行的操作,一种模式可能比另一种模式更有利,主动或极端模式并不总是提供最佳性能:在某些工作区中,并行处理不提供任何优势;在其他工作区中,最小或中等程度的并行性是最好的选择(例如,与表面相关的转换器,如SurfaceModellerTINGenerator通常使用这些选项工作得最好)。

并行处理被合并到一些转换器中,您还可以通过自定义转换器公开其功能。

要在自定义转换器上使用并行处理,请单击导航窗格中的转换器参数:

具有并行处理的自定义转换器不必局限于其中的单个转换器:您可以使用多个转换器。

有关对自定义转换器使用并行处理的更多信息,请参见FME传道者的:

使用笔记

并行处理可以提高FME性能;但是它也会降低它的浓度或者影响很小。在使用并行进程时,每个组的处理(CPU)时间要比启动一个新进程和在进程之间来回发送特性的开销大得多,这一点很重要。如果不是这样,那么启用并行处理将比不使用并行要慢。

在多处理模式下尝试数据的一个小子集将帮助您确定在整个数据集上使用它是否有优势。

许多小组

当您有许多组,每个组只有少量的特性时,不推荐并行处理。每一组生成一个FME进程,这需要时间。例如,对于10,000个包含10个特性的组,您可能会发现启动和停止FME 10,000次所消耗的性能比并行处理所节省的性能还要高。相反,10组10,000个特性可能更有价值。

数据量

并行处理仅在数据量足够大时才具有优势:对于较小的数据集,运行多个进程的开销很容易使转换速度慢于单个进程。

其他系统资源

您需要确保其他系统资源(如内存)足以用于该任务。当你有8个核的时候,启动8个进程来进行重多边形分解是可以的,但是如果你只有2GB的内存,那么你可能会减慢一次转换。

当任务被卸载到其他地方时,并行处理是非常有效的。例如,如果您有多个请求通过HTTPCaller,可能值得使用并行处理,因为它对系统资源的影响很小。

写入磁盘

当任务涉及写到磁盘时,生成多个进程不会加快任务的速度。

附加信息和示例

FME知识中心:并行处理

FME传道者的: