Expert Parallelism Load Balancer(EPLB)使用教程
1. 项目目录结构及介绍
EPLB(Expert Parallelism Load Balancer)项目的目录结构如下:
EPLB/
├── .gitignore
├── LICENSE
├── README.md
├── eplb.py
└── example.png
- .gitignore:Git忽略文件,用于指定Git应该忽略的文件和目录。
- LICENSE:项目许可证文件,本项目采用MIT许可证。
- README.md:项目自述文件,包含了项目的详细说明和用法。
- eplb.py:项目的主要Python脚本,包含了负载均衡算法的实现。
- example.png:示例图片文件,用于展示或说明项目。
2. 项目的启动文件介绍
项目的启动和主要功能都集中在eplb.py
文件中。以下是eplb.py
的主要功能:
- rebalance_experts:这是负载均衡算法的主要函数,它根据输入的专家负载和系统配置,计算出一个平衡的专家复制和放置计划。
下面是一个使用rebalance_experts
函数的示例代码:
import torch
import eplb
weight = torch.tensor([
[90, 132, 40, 61, 104, 165, 39, 4, 73, 56, 183, 86],
[20, 107, 104, 64, 19, 197, 187, 157, 172, 86, 16, 27]
])
num_replicas = 16
num_groups = 4
num_nodes = 2
num_gpus = 8
phy2log, log2phy, logcnt = eplb.rebalance_experts(
weight, num_replicas, num_groups, num_nodes, num_gpus
)
print(phy2log)
输出结果将展示负载均衡后的专家复制和放置计划。
3. 项目的配置文件介绍
本项目没有特定的配置文件。所有必要的配置都是通过函数参数传递的。在使用rebalance_experts
函数时,以下参数需要根据实际情况进行配置:
- weight:一个二维Tensor,代表每个专家的负载。
- num_replicas:系统中专家的副本数量。
- num_groups:专家分组的数量。
- num_nodes:服务器节点的数量。
- num_gpus:每个节点上的GPU数量。
通过调整这些参数,用户可以根据自己的系统环境和需求来定制负载均衡策略。