Automatic Operator Parallelization (AOP)
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.
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.