- Automatic Operator Parallelization (AOP):
Multi-core and multiprocessor computers help vision
systems to increase their speed considerably. For more
than 10 years, 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
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 don't even need to modify your existing HALCON
programs to make use of this automatic parallelization
and gain a significant speedup.
When executing an operator on a quad-core computer,
HALCON automatically splits the image into four
parts, which are then processed in parallel by four
threads executing the operator.
* 1 / 1.96 / 2.90 / 3.79 / 4.51 / 5.48 / 6.34 /
6.93 of the operator median_image with mask size 13x13
on a 2 Quad-Core Intel Xeon E5345, 2.33 GHz,
image size 1280x1024. Note that the achievable
speedup generally depends on the used HALCON
operator and the image size.
- Parallel Programming:
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.
On a 2-processor computer, different electronic parts in
the image are extraced in parallel by two threads.