如果在多处理器或多核硬件上使用 HALCON,它将自动并行处理图像处理算子。"初始化 HALCON" 一节 介绍了如何初始化 HALCON 以使用这一机制。"自动并行化方法" 一节 介绍了 HALCON 算子自动并行化的不同方法。
为了使并行化机制最佳地适应实际硬件,HALCON 需要对硬件进行一次检查。之后,HALCON 程序将自动实现并行化,无需任何进一步操作。即使是现有的 HALCON 程序,也无需更改即可运行和并行化。
通过调用算子 optimize_aop(更多信息请参阅 HALCON 参考手册中的相应条目)来触发初始检查。请注意,该算子只有在多核或多处理器硬件上调用时才能正常工作;如果在单处理器或单核计算机上调用该算子,则会返回错误消息。作为快捷方式,可以调用位于 %HALCONROOT%\bin\%HALCONARCH% 目录下的可执行文件 hcheck_parallel。
在调用 optimize_aop 时,HALCON 会检查每一个原则上可以通过自动并行化加速的算子。每个被检查的算子都会在输入参数值(如图像)不断变化的情况下被处理数次,既有顺序处理,也有并行处理。后者有助于评估算子的输入参数特征(如输入图像的大小)与其并行处理效率之间的相关性。请注意,这项检查可能需要几个小时,这取决于您的计算机和优化参数!
提取的信息存储在通用应用程序数据文件夹(Windows 下)或 HALCON 安装目录 $HALCONROOT (Linux 下)中的 .aop_info 文件中。请注意,在某些操作系统中,要成功初始化 HALCON 需要特殊权限,否则算子 optimize_aop 无法存储提取的信息。请注意,为了以 ! 管理员权限执行命令行工具 ,您需要选择 "以管理员身份运行"(即使您已经以管理员身份登录)。
请参阅 %HALCONEXAMPLES%\hdevelop\System\Parallelization 目录中的示例,了解更多关于 optimize_aop 以及其他允许查询和修改并行化信息的算子的信息。
为了实现算子的自动并行化,HALCON 利用了数据并行性,即算子的部分输入数据可以相互独立处理的特性。数据并行性可分为四个级别:
参考手册中对 HALCON 算子的描述包含一个名为 "执行信息" 的条目,其中规定了在多核或多处理器硬件上使用 HALCON 时的行为。该条目说明了算子是否会被 HALCON 自动并行化,以及并行化的方法(元组、通道、域、内部数据)。
也可以使用 get_operator_info 确定任意算子 opname 的并行化方法:
get_operator_info('opname', 'parallel_method', Information)