本文简要介绍python语言中 torch.distributed.elastic.agent.server.local_elastic_agent.LocalElasticAgent
的用法。
用法:
class torch.distributed.elastic.agent.server.local_elastic_agent.LocalElasticAgent(spec, start_method='spawn', exit_barrier_timeout=300, log_dir=None)
处理 host-local 工人的
torchelastic.agent.server.ElasticAgent
的实现。此代理按主机部署,并配置为生成n
工作人员。使用 GPU 时,n
映射到主机上可用的 GPU 数量。本地代理不与部署在其他主机上的其他本地代理进行通信,即使工作人员可以通信inter-host。 worker id 被解释为本地进程。代理作为一个单元启动和停止所有工作进程。
传递给工作函数的工作函数和参数必须与 python 多处理兼容。要将多处理数据结构传递给工作人员,您可以在与指定
start_method
相同的多处理上下文中创建数据结构并将其作为函数参数传递。exit_barrier_timeout
指定等待其他代理完成的时间量(以秒为单位)。这可以作为一个安全网来处理工人在不同时间完成的情况,以防止代理查看作为 scale-down 事件提前完成的工人。强烈建议用户代码处理确保以同步方式终止工作人员而不是依赖于exit_barrier_timeout。示例启动函数
def trainer(args) -> str: return "do train" def main(): start_method="spawn" shared_queue= multiprocessing.get_context(start_method).Queue() spec = WorkerSpec( role="trainer", local_world_size=nproc_per_process, entrypoint=trainer, args=("foobar",), ...<OTHER_PARAMS...>) agent = LocalElasticAgent(spec, start_method) results = agent.run() if results.is_failed(): print("trainer failed") else: print(f"rank 0 return value: {results.return_values[0]}") # prints -> rank 0 return value: do train
示例启动二进制文件
def main(): spec = WorkerSpec( role="trainer", local_world_size=nproc_per_process, entrypoint="/usr/local/bin/trainer", args=("--trainer_args", "foobar"), ...<OTHER_PARAMS...>) agent = LocalElasticAgent(spec) results = agent.run() if not results.is_failed(): print("binary launches do not have return values")
相关用法
- Python PyTorch LocalResponseNorm用法及代码示例
- Python PyTorch LogSigmoid用法及代码示例
- Python PyTorch LowRankMixtureCrossNet用法及代码示例
- Python PyTorch LogNormal用法及代码示例
- Python PyTorch LowRankMultivariateNormal用法及代码示例
- Python torchrec.modules.crossnet.LowRankCrossNet用法及代码示例
- Python PyTorch LogSoftmax用法及代码示例
- Python PyTorch LazyModuleMixin用法及代码示例
- Python PyTorch LinearLR用法及代码示例
- Python PyTorch LKJCholesky用法及代码示例
- Python PyTorch L1Loss用法及代码示例
- Python PyTorch LPPool2d用法及代码示例
- Python PyTorch LeakyReLU用法及代码示例
- Python PyTorch LayerNorm用法及代码示例
- Python PyTorch LineReader用法及代码示例
- Python PyTorch LambdaLR用法及代码示例
- Python PyTorch LSTM用法及代码示例
- Python PyTorch Linear用法及代码示例
- Python PyTorch LSTMCell用法及代码示例
- Python PyTorch LPPool1d用法及代码示例
- Python PyTorch Laplace用法及代码示例
- Python PyTorch LazyModuleExtensionMixin.apply用法及代码示例
- Python PyTorch LinearReLU用法及代码示例
- Python PyTorch frexp用法及代码示例
- Python PyTorch jvp用法及代码示例
注:本文由纯净天空筛选整理自pytorch.org大神的英文原创作品 torch.distributed.elastic.agent.server.local_elastic_agent.LocalElasticAgent。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。