定制变压器和并行处理
每个FME翻译通常在您的计算机上作为单个进程运行。这意味着通常情况下,FME按顺序处理分组参数FME 2012+版本可以使用多个核心处理器,在现代个人计算机上,允许并行执行多个任务。FME还使用超线程技术,该技术用于使每个物理内核在主机操作系统中显示为两个逻辑处理器。通过在内核/处理器之间分配工作负载,FME性能可以提高。
在支持此功能的自定义转换器中,并行处理允许您同时运行多个进程。这个分组参数允许您将功能分配给流程。这个并行处理参数允许您定义不同的处理级别,从没有平行性到极端.
任务管理器进程
启用并行处理时,FME通过生成新的fmeworker.exe
每组特征的实例。
- 在“任务管理器”中,这些过程作为附加过程可见fmeworker.exe实例:
工作台日志
在工作台日志中,信息消息显示许可证限制(如果适用)、请求、每个“worker”的进程内存使用情况,以及关于每个-worker\u密钥的标识信息。
Note: ">注:当FME生成一个额外的流程时,它需要将输入特征发送到新流程,并从流程接收输出特征。与单进程模式相比,这增加了额外的CPU开销。
并行处理参数
要使用并行处理,工作流应具有多组功能,每组功能都可以独立处理。每亚搏在线个组成为一个独立(并行)的过程。下面讨论一些分组技术。
并行级别(一次可以执行多少个进程)取决于并行处理参数,它有五种模式:
- 没有平行性
- 最小的
- 适度的
- 侵略性的
- 极端
根据所执行的操作,一种模式可能比另一种模式更有利,而激进或极端并不总是提供最佳性能。在某些工作空间中,并行处理没有提供任何优势;在其他工作区中,最小或中等级别的并行性是最佳选择。
要在自定义转换器上使用并行处理,请单击“导航器”窗格中的转换器参数:
具有并行处理的自定义转换器不必局限于其中的单个转换器:您可以使用多个转换器。
有关对自定义转换器使用并行处理的详细信息,请参见安全软件亚搏在线博客.
使用说明
并行处理可以提高FME性能;但它也可以降解它,或者几乎没有效果。在使用并行进程时,每个组的处理(CPU)时间预计要远远超过启动新进程和在进程之间来回发送功能的开销,这一点很重要。如果不是这样,那么启用并行处理将比不使用并行处理慢。
在多处理模式下尝试数据的一小部分将帮助您确定在整个数据集上使用它是否有优势。
许多小团体
当您有许多组,每个组都有少量功能时,不建议并行处理。每个小组产生一个FME过程,这需要时间。例如,对于10000组10个功能,您可能会发现启动和停止FME的性能成本比并行处理中节省的性能成本高10000倍。相反,10组10000个功能可能更值得。
数据量
并行处理仅在数据量足够大时提供优势:对于较小的数据集,运行多个进程的开销很容易使转换比单个进程慢。
其他系统资源
您需要确保其他系统资源(如内存)足以完成任务。当您有八个内核时,启动八个进程来执行重多边形分解是可以的,但是如果您只有2GB内存,那么实际上可能会减慢转换速度。
当任务被卸载到其他地方时,并行处理是非常高效的。例如,如果要发出多个HTTP请求,则可能值得使用并行处理,因为对系统资源的影响很小。
写入磁盘
当任务涉及写入磁盘时,生成多个进程不会加快任务的速度。