get_aop_infoT_get_aop_infoGetAopInfoGetAopInfoget_aop_info (Operator)
Name
get_aop_infoT_get_aop_infoGetAopInfoGetAopInfoget_aop_info — Abfragen von Informationen über HALCONs automatische
Operator-Parallelisierung.
Signatur
void GetAopInfo(const HTuple& OperatorName, const HTuple& IndexName, const HTuple& IndexValue, const HTuple& InfoName, HTuple* InfoValue)
static HTuple HSystem::GetAopInfo(const HTuple& OperatorName, const HTuple& IndexName, const HTuple& IndexValue, const HString& InfoName)
static HString HSystem::GetAopInfo(const HString& OperatorName, const HTuple& IndexName, const HTuple& IndexValue, const HString& InfoName)
static HString HSystem::GetAopInfo(const char* OperatorName, const HTuple& IndexName, const HTuple& IndexValue, const char* InfoName)
static HString HSystem::GetAopInfo(const wchar_t* OperatorName, const HTuple& IndexName, const HTuple& IndexValue, const wchar_t* InfoName)
(
Nur Windows)
static void HOperatorSet.GetAopInfo(HTuple operatorName, HTuple indexName, HTuple indexValue, HTuple infoName, out HTuple infoValue)
static HTuple HSystem.GetAopInfo(HTuple operatorName, HTuple indexName, HTuple indexValue, string infoName)
static string HSystem.GetAopInfo(string operatorName, HTuple indexName, HTuple indexValue, string infoName)
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_aopOptimizeAopOptimizeAopoptimize_aop Abhängigkeiten des Laufzeitverhaltens von der
Hardware und Eingabeparametern ermittelt werden. Der Operator
get_aop_infoget_aop_infoGetAopInfoGetAopInfoget_aop_info liest Elemente dieser Informationen, während diese
durch den Operator set_aop_infoset_aop_infoSetAopInfoSetAopInfoset_aop_info 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_infoQueryAopInfoQueryAopInfoquery_aop_info abfragen
lässt. 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 in
OperatorNameOperatorNameOperatorNameoperatorNameoperator_name übergeben wird, definieren IndexNameIndexNameIndexNameindexNameindex_name
und IndexValueIndexValueIndexValueindexValueindex_value die letzteren beiden
Indizes. IndexNameIndexNameIndexNameindexNameindex_name erhält dabei die Indexkennung,
IndexValueIndexValueIndexValueindexValueindex_value den Indexwert, wie sie von query_aop_infoquery_aop_infoQueryAopInfoQueryAopInfoquery_aop_info
zurückgegeben werden.
get_aop_infoget_aop_infoGetAopInfoGetAopInfoget_aop_info gibt die spezifizierten Elemente des AOP-Wissens eines
Operators in InfoValueInfoValueInfoValueinfoValueinfo_value zurück. Die Art der Information kann mit dem
Parameter InfoNameInfoNameInfoNameinfoNameinfo_name aus folgenden Werten gewählt werden:
- 'max_threads'"max_threads""max_threads""max_threads""max_threads"
gibt die größte zulässige Threadanzahl zurück,
mit der der Operator parallelisiert werden darf. Wenn keine Daten
vorhanden sind enthält InfoValueInfoValueInfoValueinfoValueinfo_value den Wert -1
(unbeschränkt). Falls der Operator keine automatische Parallelisierung
unterstützt, wird der Wert 1 zurückgegeben.
- 'split_level'"split_level""split_level""split_level""split_level"
gibt alle zulässigen Parallelisierungsebenen
für den spezifizierten Operator, ikonischen Typ und Methodenparameter
zurück. Mögliche Ebenen 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". Falls keine automatische Parallelisierung
unterstützt wird oder alle Ebenen ausgeschaltet wurden, wird ein leerer
String zurückgegeben. Um alle Parallelisierungsebenen zu erfahren, die
vom Operator prinzipiell unterstützt werden, sollte der Operator
get_operator_infoget_operator_infoGetOperatorInfoGetOperatorInfoget_operator_info verwendet werden.
- 'model'"model""model""model""model"
gibt den gespeicherten Modelltyp zurück. Mögliche
Werte sind 'threshold'"threshold""threshold""threshold""threshold", 'linear'"linear""linear""linear""linear" und 'mlp'"mlp""mlp""mlp""mlp"
(siehe hierzu auch die Beschreibung des Operators optimize_aopoptimize_aopOptimizeAopOptimizeAopoptimize_aop).
Falls keine Optimierungsdaten vorliegen wird ein leerer String
zurückgegeben.
Ausführungsinformationen
- Multithreading-Typ: exclusive (läuft parallel nur zu unabhängigen Operatoren).
- Multithreading-Bereich: local (kann nur von dem Thread aufgerufen werden, in dem die Fenster-, Modell- oder Tool-Instanz erzeugt wurde).
- Wird ohne Parallelisierung verarbeitet.
Parameter
OperatorNameOperatorNameOperatorNameoperatorNameoperator_name (input_control) string → HTupleUnion[str, int]HTupleHtuple (string / integer) (string / int / long) (HString / Hlong) (char* / Hlong)
Operator, zu dem Information abgefragt werden soll.
Wertevorschläge:
'mean_image'"mean_image""mean_image""mean_image""mean_image", 'opening_circle'"opening_circle""opening_circle""opening_circle""opening_circle", 'find_shape_model'"find_shape_model""find_shape_model""find_shape_model""find_shape_model"
IndexNameIndexNameIndexNameindexNameindex_name (input_control) string-array → HTupleSequence[str]HTupleHtuple (string) (string) (HString) (char*)
Ikonischer Objekttyp für Information.
Default:
['iconic_type','parameter:0']
["iconic_type","parameter:0"]
["iconic_type","parameter:0"]
["iconic_type","parameter:0"]
["iconic_type","parameter:0"]
IndexValueIndexValueIndexValueindexValueindex_value (input_control) string-array → HTupleSequence[str]HTupleHtuple (string) (string) (HString) (char*)
Parameterwert für Information
Parameteranzahl:
IndexName == IndexValue
Default:
['byte','']
["byte",""]
["byte",""]
["byte",""]
["byte",""]
InfoNameInfoNameInfoNameinfoNameinfo_name (input_control) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Art der Information.
Default:
'max_threads'
"max_threads"
"max_threads"
"max_threads"
"max_threads"
Wertevorschläge:
'max_threads'"max_threads""max_threads""max_threads""max_threads", 'split_level'"split_level""split_level""split_level""split_level", 'model'"model""model""model""model"
InfoValueInfoValueInfoValueinfoValueinfo_value (output_control) string(-array) → HTupleSequence[str]HTupleHtuple (string) (string) (HString) (char*)
AOP-Information.
Ergebnis
Sind die Parameterwerte korrekt, dann liefert read_aop_knowledgeread_aop_knowledgeReadAopKnowledgeReadAopKnowledgeread_aop_knowledge
den Wert 2 (
H_MSG_TRUE)
. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
Modul
Foundation