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.
Parent topic: Programming Models and Concepts