ncclCommInitRank Interface

interface

Creates a new communicator (multi thread/process version).

rank must be between 0 and nranks-1 and unique within a communicator clique. Each rank is associated to a CUDA device, which has to be set before calling ncclCommInitRank.

ncclCommInitRank implicitly synchronizes with other ranks, hence it must be called by different threads/processes or used within ncclGroupStart/ncclGroupEnd.


Called by

interface~~ncclcomminitrank~~CalledByGraph interface~ncclcomminitrank ncclCommInitRank proc~create_helper backend_helper%create_helper proc~create_helper->interface~ncclcomminitrank proc~run_autotune_backend run_autotune_backend proc~run_autotune_backend->proc~create_helper proc~autotune_grid autotune_grid proc~autotune_grid->proc~run_autotune_backend proc~create_cuda transpose_plan_cuda%create_cuda proc~create_cuda->proc~run_autotune_backend proc~autotune_grid_decomposition autotune_grid_decomposition proc~create_cuda->proc~autotune_grid_decomposition proc~autotune_grid_decomposition->proc~autotune_grid

public function ncclCommInitRank(comm, nranks, uniqueId, rank) result(ncclResult_t) bind(C, name="ncclCommInitRank")

Arguments

Type IntentOptional Attributes Name
type(ncclComm) :: comm

Communicator

integer(kind=c_int), value :: nranks

Number of ranks in communicator

type(ncclUniqueId), value :: uniqueId

Unique ID

integer(kind=c_int), value :: rank

Calling rank

Return Value integer(kind=c_int32_t)

Completion status