UCC 1.0
Unified Collective Communications
Team abstraction routines

Functions

ucc_status_t ucc_team_create_post (ucc_context_h *contexts, uint32_t num_contexts, const ucc_team_params_t *team_params, ucc_team_h *new_team)
 The routine is a method to create the team. More...
 
ucc_status_t ucc_team_create_test (ucc_team_h team)
 The routine queries the status of the team creation operation. More...
 
ucc_status_t ucc_team_destroy (ucc_team_h team)
 The team frees the team handle. More...
 
ucc_status_t ucc_team_get_attr (ucc_team_h team, ucc_team_attr_t *team_attr)
 The routine returns the attributes of the team. More...
 
ucc_status_t ucc_team_create_from_parent (uint64_t my_ep, uint32_t included, ucc_team_h parent_team, ucc_team_h *new_team)
 The routine creates a new team from the parent team. More...
 
ucc_status_t ucc_team_get_size (ucc_team_h team, uint32_t *size)
 The routine returns the size of the team. More...
 
ucc_status_t ucc_team_get_my_ep (ucc_team_h team, uint64_t *ep)
 The routine returns the endpoint of the calling participant. More...
 
ucc_status_t ucc_team_get_all_eps (ucc_team_h team, uint64_t **ep, uint64_t *num_eps)
 The routine queries all endpoints associated with the team handle. More...
 

Detailed Description

Team create and management routines

Function Documentation

◆ ucc_team_create_post()

ucc_status_t ucc_team_create_post ( ucc_context_h contexts,
uint32_t  num_contexts,
const ucc_team_params_t team_params,
ucc_team_h new_team 
)
Parameters
[in]contextsCommunication contexts abstracting the resources
[in]num_contextsNumber of contexts passed for the create operation
[in]team_paramsUser defined configurations for the team
[out]new_teamTeam handle

Description

ucc_team_create_post is a nonblocking collective operation to create the team handle. It takes in parameters ucc_context_h and ucc_team_params_t. The ucc_team_params_t provides user configuration to customize the team and, ucc_context_h provides the resources for the team and collectives. The routine returns immediately after posting the operation with the new team handle. However, the team handle is not ready for posting the collective operation. ucc_team_create_test operation is used to learn the status of the new team handle. On error, the team handle will not be created and corresponding error code as defined by ucc_status_t is returned.

Returns
Error code as defined by ucc_status_t

◆ ucc_team_create_test()

ucc_status_t ucc_team_create_test ( ucc_team_h  team)
Parameters
[in]teamTeam handle to test

Description

ucc_team_create_test routines tests the status of team handle. If required it can progress the communication but cannot block on the communications.

Returns
Error code as defined by ucc_status_t

◆ ucc_team_destroy()

ucc_status_t ucc_team_destroy ( ucc_team_h  team)
Parameters
[in]teamDestroy previously created team and release all resources associated with it.

Description

ucc_team_destroy is a nonblocking collective operation to release all resources associated with the team handle, and destroy the team handle. It is invalid to post a collective operation after the ucc_team_destroy operation. It is invalid to call ucc_team_destroy operation while ucc_team_create_post is in progress. It is the user's responsibility to ensure there is one outstanding ucc_team_create_post or ucc_team_destroy operation is in progress.

Returns
Error code as defined by ucc_status_t

◆ ucc_team_get_attr()

ucc_status_t ucc_team_get_attr ( ucc_team_h  team,
ucc_team_attr_t team_attr 
)
Parameters
[in]teamTeam handle
[out]team_attrAttributes of the team

Description

ucc_team_get_attr routine queries the team handle attributes. The attributes of the team handle are described by the team attributes ucc_team_attr_t

Returns
Error code as defined by ucc_status_t

◆ ucc_team_create_from_parent()

ucc_status_t ucc_team_create_from_parent ( uint64_t  my_ep,
uint32_t  included,
ucc_team_h  parent_team,
ucc_team_h new_team 
)
Parameters
[in]my_epEndpoint of the process/thread calling the split operation
[in]parent_teamParent team handle from which a new team handle is created
[in]includedVariable indicating whether a process/thread participates in the newly created team; value 1 indicates the participation and value 0 indicates otherwise
[out]new_teamPointer to the new team handle

Description

ucc_team_create_from_parent is a nonblocking collective operation, which creates a new team from the parent team. If a participant intends to participate in the new team, it passes a TRUE value for the "included" parameter. Otherwise, it passes FALSE. The routine returns immediately after the post-operation. To learn the completion of the team create operation, the ucc_team_create_test operation is used.

Returns
Error code as defined by ucc_status_t

◆ ucc_team_get_size()

ucc_status_t ucc_team_get_size ( ucc_team_h  team,
uint32_t *  size 
)
Parameters
[in]teamTeam handle
[out]sizeThe size of team as number of endpoints

Description

ucc_team_get_size routine queries the size of the team. It reflects the number of unique endpoints in the team.

Returns
Error code as defined by ucc_status_t

◆ ucc_team_get_my_ep()

ucc_status_t ucc_team_get_my_ep ( ucc_team_h  team,
uint64_t *  ep 
)
Parameters
[out]epEndpoint of the participant calling the routine
[in]teamTeam handle

Description

ucc_team_get_my_ep routine queries and returns the endpoint of the participant invoking the interface.

Returns
Error code as defined by ucc_status_t

◆ ucc_team_get_all_eps()

ucc_status_t ucc_team_get_all_eps ( ucc_team_h  team,
uint64_t **  ep,
uint64_t *  num_eps 
)
Parameters
[out]epList of endpoints
[out]num_epsNumber of endpoints
[in]teamTeam handle

Description

ucc_team_get_all_eps routine queries and returns all endpoints of all participants in the team.

Returns
Error code as defined by ucc_status_t