MVTec Software GmbH
 

Multicore-Performance

Automatische Operator-Parallelisierung (AOP)

Schematische Darstellung der Automatischen Operator-Parallelisierung (AOP) in HALCON
HALCONs AOP beschleunigt Operatoren
* Beschleunigungsfaktor des Operators median_image mit Maskengröße 13x13 auf einem Intel® Xeon E5-2690 v4 @ 2,60 GHz, 14 Kerne, Bildgröße 1280x1024. Die erreichte Beschleunigung hängt im Allgemeinen vom benutzten HALCON-Operator und der Bildgröße ab.

Multicore-Prozessoren und Mehrprozessor-Systeme verhelfen Bildverarbeitungssystemen zu erheblichen Geschwindigkeitssteigerungen. HALCONs Automatische Operator-Parallelisierung (AOP) – seit der Einführung im Jahre 2000 im industriellen Einsatz geprüft – unterstützt diese Performance-Steigerung aktiv. Natürlich profitieren nicht alle Bildverarbeitungs-Operationen gleichermaßen von Parallelisierung. Deshalb entscheiden bei HALCON intelligente Algorithmen, ob eine Operation parallelisiert werden soll – stets unter Berücksichtigung der konkreten Operation, der zugehörigen Eingabedaten und der verfügbaren Hardware.

Auf einem Multicore-Computer gestartet, parallelisiert HALCON die Operatoren automatisch, indem Daten wie z.B. Bilder auf mehrere Threads verteilt werden – ein Bild je Thread. Es ist dabei nicht einmal notwendig, das bestehende HALCON-Programm zu modifizieren, um von der automatischen Parallelisierung und den damit einhergehenden Geschwindigkeitssteigerungen zu profitieren.

Parallele Programmierung

Schematische Darstellung von Parallelprogrammierung mit MVTec HALCON auf einem 2-Prozessor-Computer
Auf einem 2-CPU-Computer werden unterschiedliche Elektronikbauteile innerhalb eines Bilds von zwei Threads parallel extrahiert.

HALCON unterstützt auch parallele Programmierung, z.B. Multithreading-Programme, da HALCON sowohl threadsicher, als auch eintrittsinvariant ist. Damit können mehrere Threads gleichzeitig HALCON-Operatoren aufrufen. Bildverarbeitungsanwendungen können dadurch in unabhängige Teile aufgespalten werden, die dann auf unterschiedlichen Kernen parallel laufen. Dieses Feature bietet HALCON auch innerhalb seiner integrierten Entwicklungsumgebung (IDE): HDevelop unterstützt ebenfalls parallele Programmierung für nebenläufige Anwendungen, sogar während des Export nach C, C++ und .NET-Sprachen wie C# oder VB.NET.

 

Intel is a trademark of Intel Corporation or its subsidiaries in the U.S. and/or other countries.