Overall Process

The process of developing an HCCL communication operator is as follows:

  1. Define operator APIs: Define communication operator APIs based on the functions of the communication operator.
  2. Query topology information: Obtain the communicator information such as the network layer and number of nodes.
  3. (Optional) Select algorithms: To maximize the communication performance, different algorithms are often deployed depending on the topology and data volume. Therefore, the optimal communication algorithm must be selected based on topology information.
  4. Create resources: Allocate resources such as memory, threads, Notify, and channels required by the communication algorithm.
  5. Orchestrate tasks: Use communication resources to coordinate ranks for synchronization and data movement to complete collective communication operations.
  6. Dispatch the operator: Dispatch the operator kernel to the communication engine for execution.