set_aop_infoset_aop_infoSetAopInfoSetAopInfo (Operator)

Name

set_aop_infoset_aop_infoSetAopInfoSetAopInfo — Verändert Information über HALCONs automatische Operator-Parallelisierung.

Signatur

set_aop_info( : : OperatorName, IndexName, IndexValue, InfoName, InfoValue : )

Herror set_aop_info(const char* OperatorName, const char* IndexName, const char* IndexValue, const char* InfoName, const Hlong InfoValue)

Herror T_set_aop_info(const Htuple OperatorName, const Htuple IndexName, const Htuple IndexValue, const Htuple InfoName, const Htuple InfoValue)

void SetAopInfo(const HTuple& OperatorName, const HTuple& IndexName, const HTuple& IndexValue, const HTuple& InfoName, const HTuple& InfoValue)

static void HSystem::SetAopInfo(const HTuple& OperatorName, const HTuple& IndexName, const HTuple& IndexValue, const HString& InfoName, const HTuple& InfoValue)

static void HSystem::SetAopInfo(const HString& OperatorName, const HString& IndexName, const HString& IndexValue, const HString& InfoName, Hlong InfoValue)

static void HSystem::SetAopInfo(const char* OperatorName, const char* IndexName, const char* IndexValue, const char* InfoName, Hlong InfoValue)

static void HSystem::SetAopInfo(const wchar_t* OperatorName, const wchar_t* IndexName, const wchar_t* IndexValue, const wchar_t* InfoName, Hlong InfoValue)   (Nur Windows)

static void HOperatorSet.SetAopInfo(HTuple operatorName, HTuple indexName, HTuple indexValue, HTuple infoName, HTuple infoValue)

static void HSystem.SetAopInfo(HTuple operatorName, HTuple indexName, HTuple indexValue, string infoName, HTuple infoValue)

static void HSystem.SetAopInfo(string operatorName, string indexName, string indexValue, string infoName, int infoValue)

Beschreibung

HALCON unterstützt einen Mechanismus, um das Verhalten der automatischen Parallelisierung von Operatoren (AOP) an Mehrprozessorarchitekturen anzupassen und Operatoren zu beschleunigen. Dazu können für jeden Operator, der sich auf Tupel-, Kanal- oder Domain-Ebene parallelisieren lässt, mit Hilfe von optimize_aopoptimize_aopOptimizeAopOptimizeAopOptimizeAop Abhängigkeiten des Laufzeitverhaltens von der Hardware und Eingabeparametern ermittelt werden. Der Operator get_aop_infoget_aop_infoGetAopInfoGetAopInfoGetAopInfo liest Elemente dieser Informationen, während diese durch den Operator set_aop_infoset_aop_infoSetAopInfoSetAopInfoSetAopInfo verändert werden können.

Um die operatorspezifischen Informationen adressieren zu können, sind die Daten in einer 3-stufigen Hierarchie indizierbar, die sich mit query_aop_infoquery_aop_infoQueryAopInfoQueryAopInfoQueryAopInfo abfragen lässt. Durch ein Tripel von Indexkennungen lässt sich so jeweils ein AOP-Set an Optimierungsdaten indizieren. Die drei Indizierungsstufen setzen sich durch den Operatornamen, den ikonischen Bildtyp und optional einen Parameterstring zusammen, der einen speziellen Modus oder Methode des Operators spezifiziert. Während der Operatorname OperatorNameOperatorNameOperatorNameOperatorNameoperatorName übergeben wird, definieren IndexNameIndexNameIndexNameIndexNameindexName und IndexValueIndexValueIndexValueIndexValueindexValue die letzteren beiden Indizes. IndexNameIndexNameIndexNameIndexNameindexName erhält dabei die Indexkennung, IndexValueIndexValueIndexValueIndexValueindexValue den Indexwert, wie sie von query_aop_infoquery_aop_infoQueryAopInfoQueryAopInfoQueryAopInfo zurückgegeben werden. Es ist möglich mehrere Indexkennungen der gleichen Stufe anzugeben, um die spezifizierte Information bei mehreren AOP-Sets zu speichern. Die gesamte Indexstufe kann adressiert werden, wenn eine Indexkennung ausgelassen oder für einen Indexwert ein leerer String übergeben wird. Beispielsweise werden durch eine leeren String für OperatorNameOperatorNameOperatorNameOperatorNameoperatorName, dem Tupel ['iconic_type','iconic_type']["iconic_type","iconic_type"]["iconic_type","iconic_type"]["iconic_type","iconic_type"]["iconic_type","iconic_type"] für IndexNameIndexNameIndexNameIndexNameindexName und dem Tupel ['byte','uint2']["byte","uint2"]["byte","uint2"]["byte","uint2"]["byte","uint2"] für IndexValueIndexValueIndexValueIndexValueindexValue alle Operatoren adressiert, die Byte oder UINT2 Bilder verarbeiten.

set_aop_infoset_aop_infoSetAopInfoSetAopInfoSetAopInfo setzt die in InfoValueInfoValueInfoValueInfoValueinfoValue übergebenen Informationswerte in dem spezifizierten AOP-Sets. Die Art der Information kann mit dem Parameter InfoNameInfoNameInfoNameInfoNameinfoName mit einem der folgenden Werten spezifiziert werden:

'max_threads'"max_threads""max_threads""max_threads""max_threads"

setzt die größte zulässige Threadanzahl, mit der der Operator mit dem entsprechenden ikonischen Datentyp und Parameterwert parallelisiert werden darf.

'split_level'"split_level""split_level""split_level""split_level"

setzt die erlaubten Parallelisierungsebenen für die indizierten AOP-Sets. Mögliche Werte sind 'split_tuple'"split_tuple""split_tuple""split_tuple""split_tuple", 'split_channel'"split_channel""split_channel""split_channel""split_channel", 'split_domain'"split_domain""split_domain""split_domain""split_domain" und 'split_partial'"split_partial""split_partial""split_partial""split_partial".

Achtung

set_aop_infoset_aop_infoSetAopInfoSetAopInfoSetAopInfo verändert die AOP-Systemwissensbasis. Diese Änderungen werden ebenfalls durch write_aop_knowledgewrite_aop_knowledgeWriteAopKnowledgeWriteAopKnowledgeWriteAopKnowledge gespeichert. Es wird empfohlen eine Backup-Datei zu halten bevor das Systemwissen geändert wird.

Ausführungsinformationen

Parameter

OperatorNameOperatorNameOperatorNameOperatorNameoperatorName (input_control)  string(-array) HTupleHTupleHtuple (string / integer) (string / int / long) (HString / Hlong) (char* / Hlong)

Operatorname.

Defaultwert: '' "" "" "" ""

IndexNameIndexNameIndexNameIndexNameindexName (input_control)  string(-array) HTupleHTupleHtuple (string / integer) (string / int / long) (HString / Hlong) (char* / Hlong)

Ikonischer Objekttyp.

Defaultwert: '' "" "" "" ""

Wertevorschläge: 'iconic_type'"iconic_type""iconic_type""iconic_type""iconic_type", ['iconic_type','parameter:0']["iconic_type","parameter:0"]["iconic_type","parameter:0"]["iconic_type","parameter:0"]["iconic_type","parameter:0"]

IndexValueIndexValueIndexValueIndexValueindexValue (input_control)  string(-array) HTupleHTupleHtuple (string / integer) (string / int / long) (HString / Hlong) (char* / Hlong)

Parameter-Typ.

Parameteranzahl: IndexName == IndexValue

Defaultwert: '' "" "" "" ""

Wertevorschläge: 'byte'"byte""byte""byte""byte", ['uint2','']["uint2",""]["uint2",""]["uint2",""]["uint2",""]

InfoNameInfoNameInfoNameInfoNameinfoName (input_control)  string HTupleHTupleHtuple (string) (string) (HString) (char*)

Art der Information.

Defaultwert: 'max_threads' "max_threads" "max_threads" "max_threads" "max_threads"

Wertevorschläge: 'max_threads'"max_threads""max_threads""max_threads""max_threads", 'model'"model""model""model""model"

InfoValueInfoValueInfoValueInfoValueinfoValue (input_control)  integer(-array) HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

AOP-Information.

Ergebnis

Sind die Parameterwerte korrekt, dann liefert read_aop_knowledgeread_aop_knowledgeReadAopKnowledgeReadAopKnowledgeReadAopKnowledge den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Modul

Foundation