Concurrency Model

A communication operator consists of different communication tasks. If some communication steps do not have resource conflicts, they can be executed concurrently. HCCL provides a concurrency model in the operator programming model. The concurrency model needs to define the concurrency unit and the synchronization behavior between concurrency units, as shown in the following figure.

  • Concurrency unit: provides concurrency units abstracted as threads. Communication tasks are bound to threads. Operations between different threads can be executed concurrently.
  • Synchronization between concurrency units:
    • A thread can contain multiple Notify instances. The number of Notify instances can be specified when a thread is created.
    • Within a communication object, a thread can send a synchronization signal to another thread, and a thread can wait for a synchronization signal from another thread. For details about the APIs, see Local Operations.