前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PyTorch 1.0 中文官方教程:使用PyTorch编写分布式应用程序

PyTorch 1.0 中文官方教程:使用PyTorch编写分布式应用程序

作者头像
ApacheCN_飞龙
发布2022-05-07 14:17:30
3400
发布2022-05-07 14:17:30
举报
文章被收录于专栏:信数据得永生

译者:firdameng

作者Soumith Chintala

在这个简短的教程中,我们将讨论PyTorch的分布式软件包。 我们将看到如何设置分布式设置,使用不同的通信策略,并查看包的内部部分。

开始

PyTorch中包含的分布式软件包(即torch.distributed)使研究人员和从业人员能够轻松地跨进程和计算机集群并行化他们的计算。 为此,它利用消息传递语义,允许每个进程将数据传递给任何其他进程。 与多处理(torch.multiprocessing)包相反,进程可以使用不同的通信后端,并且不限于在同一台机器上执行。

开始我们需要能够同时运行多个进程。 如果您有权访问计算群集,则应使用本地sysadmin进行检查,或使用您喜欢的协调工具。 (例如,pdsh,clustershell或其他)为了本教程的目的,我们将使用单个机器并使用以下模板建立多个进程。

代码语言:javascript
复制
"""run.py:"""
#!/usr/bin/env python
import os
import torch
import torch.distributed as dist
from torch.multiprocessing import Process

def run(rank, size):
    """ Distributed function to be implemented later. """
    pass

def init_processes(rank, size, fn, backend='tcp'):
    """ Initialize the distributed environment. """
    os.environ['MASTER_ADDR'] = '127.0.0.1'
    os.environ['MASTER_PORT'] = '29500'
    dist.init_process_group(backend, rank=rank, world_size=size)
    fn(rank, size)

if __name__ == "__main__":
    size = 2
    processes = []
    for rank in range(size):

阅读全文/改进本文

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-03-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 开始
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档