write_aop_knowledgewrite_aop_knowledgeWriteAopKnowledgeWriteAopKnowledgewrite_aop_knowledge (Operator)
Name
write_aop_knowledgewrite_aop_knowledgeWriteAopKnowledgeWriteAopKnowledgewrite_aop_knowledge
— Write knowledge about hardware dependent behavior of automatic operator
parallelization to file.
Signature
void WriteAopKnowledge(const HTuple& FileName, const HTuple& GenParamName, const HTuple& GenParamValue)
static void HSystem::WriteAopKnowledge(const HString& FileName, const HTuple& GenParamName, const HTuple& GenParamValue)
static void HSystem::WriteAopKnowledge(const HString& FileName, const HString& GenParamName, const HString& GenParamValue)
static void HSystem::WriteAopKnowledge(const char* FileName, const char* GenParamName, const char* GenParamValue)
static void HSystem::WriteAopKnowledge(const wchar_t* FileName, const wchar_t* GenParamName, const wchar_t* GenParamValue)
(Windows only)
Description
write_aop_knowledgewrite_aop_knowledgeWriteAopKnowledgeWriteAopKnowledgeWriteAopKnowledgewrite_aop_knowledge
stores the automatic parallelization knowledge
of HALCON operators to file. The knowledge hold by the HALCON system is
used to better utilize multiprocessor
hardware in order to speed up the processing of operators. To optimize the
automatic parallelization of operators, HALCON needs some specific
knowledge about the speed of operators on the used hardware.
This hardware-specific knowledge
can be obtained by calling the operator optimize_aopoptimize_aopOptimizeAopOptimizeAopOptimizeAopoptimize_aop
or read from
file by using read_aop_knowledgeread_aop_knowledgeReadAopKnowledgeReadAopKnowledgeReadAopKnowledgeread_aop_knowledge
, respectively.
With write_aop_knowledgewrite_aop_knowledgeWriteAopKnowledgeWriteAopKnowledgeWriteAopKnowledgewrite_aop_knowledge
it is possible to store this knowledge
explicitly in a binary file. At this, FileNameFileNameFileNameFileNamefileNamefile_name
denotes the
name of this file (incl. path and file extension). If an empty string
''"""""""""" is passed to FileNameFileNameFileNameFileNamefileNamefile_name
, HALCON writes the knowledge
to the specific file '.aop_info'".aop_info"".aop_info"".aop_info"".aop_info"".aop_info" in the HALCON installation
directory (Linux/macOS) or within the common application data folder
(Windows). This file is read by HALCON during the initialization phase
automatically.
write_aop_knowledgewrite_aop_knowledgeWriteAopKnowledgeWriteAopKnowledgeWriteAopKnowledgewrite_aop_knowledge
adds attributes to the knowledge like
the host name and information about HALCON architecture, variant,
version, and revision. This enables HALCON to write aop knowledge
sets of different machines or HALCON systems into the same file.
Therefore, write_aop_knowledgewrite_aop_knowledgeWriteAopKnowledgeWriteAopKnowledgeWriteAopKnowledgewrite_aop_knowledge
can control the updating of the
files contents by a pair of values passed to GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name
and
GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value
. Every entry in
GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name
must have one corresponding, specifying entry in
GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value
, meaning that the tuples passed to the parameters
must have the same length. GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name
supports the values in
following list, describing the possible applicable values for
GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value
:
- 'mode'"mode""mode""mode""mode""mode"
-
sets the way how existing knowledge with same
attributes would be updated in the file.
- 'truncate'"truncate""truncate""truncate""truncate""truncate"
for GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value
deletes
the existing knowledge with matching attributes before the new
information is added to file.
- 'renew'"renew""renew""renew""renew""renew"
overwrites existing knowledge and adds new one
(default).
- 'append'"append""append""append""append""append"
keeps all existing operator information and just
adds the knowledge not already contained.
- 'nil'"nil""nil""nil""nil""nil"
however refuses any update of the file but
checks the user privileges, i.e., if read write access is
available.
- 'operator'"operator""operator""operator""operator""operator"
denotes that the corresponding index value of
GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value
contains an operator name. It delimits the storage
on a dedicated operator set. Multiple definitions
of operators are possible. By default, information of any
operator possessing AOP optimization data is written.
- 'iconic_type'"iconic_type""iconic_type""iconic_type""iconic_type""iconic_type"
focuses on AOP information for a specific
iconic type, specified by following values of GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value
:
'byte'"byte""byte""byte""byte""byte", 'uint2'"uint2""uint2""uint2""uint2""uint2", 'real'"real""real""real""real""real", 'int1'"int1""int1""int1""int1""int1",
'int2'"int2""int2""int2""int2""int2", 'int4'"int4""int4""int4""int4""int4", 'int8'"int8""int8""int8""int8""int8", 'direction'"direction""direction""direction""direction""direction",
'vector_field'"vector_field""vector_field""vector_field""vector_field""vector_field", 'cyclic'"cyclic""cyclic""cyclic""cyclic""cyclic",
'complex'"complex""complex""complex""complex""complex", 'region'"region""region""region""region""region", 'xld'"xld""xld""xld""xld""xld". Multiple definitions
of iconic types are possible.
Execution Information
- Multithreading type: exclusive (runs in parallel only with independent operators).
- Multithreading scope: global (may be called from any thread).
- Processed without parallelization.
Parameters
FileNameFileNameFileNameFileNamefileNamefile_name
(input_control) filename.write →
HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Name of knowledge file
Default value:
''
""
""
""
""
""
GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name
(input_control) string(-array) →
HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)
Parameter name
Default value:
'none'
"none"
"none"
"none"
"none"
"none"
Suggested values: 'mode'"mode""mode""mode""mode""mode", 'operator'"operator""operator""operator""operator""operator", 'iconic_type'"iconic_type""iconic_type""iconic_type""iconic_type""iconic_type"
GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value
(input_control) string(-array) →
HTupleMaybeSequence[Union[str, int, float]]HTupleHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double)
Parameter value
Number of elements: GenParamName == GenParamValue
Default value:
'none'
"none"
"none"
"none"
"none"
"none"
Suggested values: 'truncate'"truncate""truncate""truncate""truncate""truncate", 'renew'"renew""renew""renew""renew""renew", 'append'"append""append""append""append""append"
Result
write_aop_knowledgewrite_aop_knowledgeWriteAopKnowledgeWriteAopKnowledgeWriteAopKnowledgewrite_aop_knowledge
returns 2 (H_MSG_TRUE) if all parameters are correct and
the file could be read. If necessary, an exception is raised.
Module
Foundation