kpccl_egroup_return
src egroup向dest egroup归还executors。
接口定义
int kpccl_egroup_return(kpccl_egroup_h dest, kpccl_egroup_h src);
参数
参数名 |
类型 |
描述 |
输入/输出 |
|---|---|---|---|
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("egroup2 : %d executors\n", n2);
n1 = kpccl_egroup_borrow(egroup1, egroup2);
n2 = kpccl_egroup_return(egroup2, egroup1);
printf("egroup2 : %d executors\n", n2);
kpccl_egroup_destroy(egroup1);
kpccl_egroup_destroy(egroup2);
return 0;
}
运行结果如下。
egroup2 : 2 executors egroup2 : 4 executors
上述示例演示了创建的egroup1取用egroup2中executor后,重新向egroup2归还所有executor的流程,运行结果打印了最开始与取用、归还后egroup2中的executor数量,最终kpccl_egroup_return函数将egroup1中所有executor都归还给了egroup2。
父主题: executor相关函数