User Guide

  • 2020.3
  • 07/10/2020
  • Public Content

Relation API binds two named instances, for example, tasks, with a reasonable relation attribute. Relations can be added before or after the actual instances are created and persist independently of the instances.  
To logically group a bunch of tasks, you can use different types of relations:
void ITTAPI __itt_relation_add(const __itt_domain *domain, __itt_id head, __itt_relation relation, __itt_id tail) void ITTAPI __itt_relation_add_ex(const __itt_domain *domain, __itt_clock_domain* clock_domain, unsigned long long timestamp, __itt_id head, __itt_relation relation, __itt_id tail)
The following table defines the parameters used in the Relation API primitives.
__itt_domain* domain
Relation domain
__itt_relation relation
User-defined logical relation between two named instances
__itt_id head
Metadata name
__itt_id tail
IDs of two named related instances
size_t count
__itt_clock_domain* clock_domain
User-defined clock domain
unsigned long long timestamp
User-defined timestamp for the corresponding clock domain

Product and Performance Information


Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804