MVTec Software GmbH

Multi-Core Performance

Automatic Operator Parallelization (AOP)

Schematic representation of HALCON’s Automatic Operator Parallelization (AOP)
Schematic representation of HALCON’s Automatic Operator Parallelization (AOP)
AOP Speedup Factor
* Speedup factor of the operator median_image with mask size 13x13 on a Intel Xeon E5-2690 v4 @ 2.60 GHz, 14 cores, image size 1280x1024. Note that the achievable
speedup generally depends on the used HALCON operator and the image size.

Multi-core and multiprocessor computers help vision systems to increase their speed considerably. Since 2000, HALCON offers an industry-proven automatic operator parallelization that actively supports this speed enhancement. Of course, not all vision operations profit in the same way from parallelization. Therefore, intelligent algorithms in HALCON decide whether a parallelization will be applied – taking into account the concrete operation, its input data, and the available hardware.

HALCON automatically parallelizes operators when started on a multi-core computer by distributing the data, e.g., the images, to multiple threads, one for each core. You do not even need to modify your existing HALCON programs to use this automatic parallelization and gain a significant speedup.

Parallel Programming

Schematic representation of parallel programming with MVTec HALCON on a 2-CPU computer
Different electronic parts in the image are extracted in parallel by two threads on a 2-processor computer.

HALCON also supports parallel programming, e.g., multithreaded programs, by being not only thread-safe but also reentrant. Thus, multiple threads can call HALCON operators simultaneously. Using this feature, you can split a machine vision application into independent parts and let them run in parallel on different cores. HALCON provides this feature even within its integrated development environment (IDE): HDevelop supports concurrency through parallel programming, even during export to C, C++, and .NET languages like C# or VB.NET.