Collective Call Attributes

/* Extendable list of collective attributes */
typedef struct
{
    /**
    * Callbacks into application code
    * for pre-/post-processing data
    * and custom reduction operation
    */
    ccl_prologue_fn_t prologue_fn;
    ccl_epilogue_fn_t epilogue_fn;
    ccl_reduction_fn_t reduction_fn;
    /* Priority for collective operation */
    size_t priority;
    /* Blocking/non-blocking */
    int synchronous;
    /* Persistent/non-persistent */
    int to_cache;
    /* Treat buffer as vector/regular - applicable for allgatherv only */
    int vector_buf;
    /**
    * Id of the operation. If specified, new communicator will be created and collective
    * operations with the same @b match_id will be executed in the same order.
    */
    const char* match_id;
} ccl_coll_attr_t;

ccl_coll_attr_t (ccl::coll_attr in C++ version of API) is extendable structure which serves as a modifier of communication primitive behavior. It can be optionally passed into any collective operation exposed by oneCCL.