---
title: kpccl_egroup_borrow
description: "将src egroup中所有的executor资源挪动至dest egroup中。"
url: https://www.hikunpeng.com/document/detail/zh/hpchistory/hpckit/develop2400/KunoengHPCKit_developer_023.html
sourcePath: /source/zh/hpchistory/hpckit/develop2400/KunoengHPCKit_developer_023.html
indexId: c51098d606d462607f35157b6aac2266c30c9fb312a7b7f1dc62fa114af60d5f73
---
# kpccl_egroup_borrow

将src egroup中所有的executor资源挪动至dest egroup中。

#### 接口定义

int kpccl_egroup_borrow(kpccl_egroup_h dest, kpccl_egroup_h src);


#### 参数


**表1 参数定义**

| 参数名 | 类型 | 描述 | 输入/输出 |
| --- | --- | --- | --- |
| dest | kpccl\_egroup\_h | 需要取用executor的egroup | 输入/输出 |
| src | kpccl\_egroup\_h | 给出executor的egroup | 输入/输出 |


#### 返回值

- 成功：返回取用executor后的dest egroup大小
- 失败：返回KPCCL_ERROR


#### 示例


```
#include <stdio.h>
#include "kpccl.h"
int main()
{
int executor_num = kpccl_get_num_executors();
int n1 = executor_num/2;
int n2 = executor_num - executor_num/2;
int executors1[n1], executors2[n2];
for (int i =0; i < n1; i++) {
executors1[i] = i;
}
for (int i =0; i < n2; i++) {
executors2[i] = i + n1;
}
kpccl_egroup_h egroup1 = kpccl_egroup_create(executors1, n1);
kpccl_egroup_h egroup2 = kpccl_egroup_create(executors2, n2);
printf("egroup1 : %d executors\n", n1);
n1 =
kpccl_egroup_borrow
(egroup1, egroup2);
printf("egroup1 : %d executors\n", n1);
kpccl_egroup_destroy(egroup1);
kpccl_egroup_destroy(egroup2);
return 0;
}
```

运行结果如下。

```
egroup1 : 2 executors
egroup1 : 4 executors
```

上述示例演示了创建的egroup1取用egroup2中所有的executor的流程，运行结果打印了取用前与取用后egroup1中的executor数量，由此可见kpccl_egroup_borrow函数使egroup1取用了egroup2的所有executors。
