---
title: 简介
description: "HCCL提供了C与Python两种语言的开发接口，用于实现分布式能力。- C语言接口用于实现单算子模式下的框架适配，实现分布式能力。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/hcclug/hcclug_000007.html
sourcePath: /source/zh/canncommercial/900/API/hcclug/hcclug_000007.html
indexId: f2c905c6408e2ef6aa93622173e12e6873e0d6ade2988d93d9cdde3bb94adbfe59
---
# 简介

HCCL提供了C与Python两种语言的开发接口，用于实现分布式能力。- C语言接口用于实现单算子模式下的框架适配，实现分布式能力。
- Python语言接口用于实现图模式下的框架适配，当前仅用于实现TensorFlow网络在AI处理器执行分布式优化。


本章节针对如何调用HCCL的C语言接口开发集合通信功能进行介绍。

开发者调用HCCL C语言接口实现集合通信功能的主要开发流程如下所示。

图1 集合通信操作流程

1. 首先进行集群信息配置，创建通信域句柄，并初始化HCCL通信域。
2. 实现通信操作，HCCL通信操作包含两大类：点对点通信与集合通信。

  - 点对点通信，指多NPU环境下两个NPU之间直接传输数据的过程，常用于pipeline并行场景下对激活值的数据收发。HCCL提供了不同粒度的点对点通信，包括单rank到单rank的单收单发接口，以及多个rank之间的批量收发接口。
  - 集合通信，指多个NPU共同参与进行数据传输操作，例如AllReduce，AllGather，Broadcast等，常用于大规模集群中不同NPU之间的梯度同步和参数更新等操作。集合通信操作可让所有计算节点并行、高效、有序执行数据交换，提升数据传输效率。
3. 集合通信操作完成后，需要销毁通信域，释放相关内存、流资源。
