本文简要介绍python语言中 torch.distributed.elastic.multiprocessing.start_processes
的用法。
用法:
torch.distributed.elastic.multiprocessing.start_processes(name, entrypoint, args, envs, log_dir, start_method='spawn', redirects=<Std.NONE: 0>, tee=<Std.NONE: 0>)
name-一个人类可读的短名称,说明进程是什么(在 tee'ing stdout/stderr 输出时用作标题)
entrypoint-
Callable
(函数)或cmd
(二进制)args-每个副本的参数
envs-每个副本的环境变量
log_dir-用于写入日志文件的目录
nprocs-要创建的副本数(每个进程一个)
start_method-二进制文件忽略多处理启动方法(spawn、fork、forkserver)
redirects-哪些 std 流重定向到日志文件
tees-哪个std流重定向+打印到控制台
使用提供的选项启动
entrypoint
进程的n
副本。entrypoint
是Callable
(函数)或str
(二进制)。副本数由args
和envs
参数的条目数决定,它们需要具有相同的 key 集。args
和env
参数是要向下传递到副本索引(本地排名)映射的入口点的参数和环境变量。必须考虑所有地方等级。也就是说, key 集应该是{0,1,...,(nprocs-1)}
。注意
当
entrypoint
是二进制 (str
) 时,args
只能是字符串。如果给出任何其他类型,则将其转换为字符串表示形式(例如str(arg1)
)。此外,如果主函数使用torch.distributed.elastic.multiprocessing.errors.record
注释,二进制故障只会写入error.json
错误文件。对于函数启动,这是默认完成的,无需使用@record
注释手动进行注释。redirects
和tees
是位掩码,指定将哪些 std 流重定向到log_dir
中的日志文件。有效的掩码值在Std
中定义。要仅重定向/发送某些本地排名,请将redirects
作为映射传递,其中键作为本地排名以指定重定向行为。任何缺少的本地排名将默认为Std.NONE
。tee
的行为类似于 unix “tee” 命令,因为它将 + 打印重定向到控制台。要避免工作人员 stdout/stderr 打印到控制台,请使用redirects
参数。对于每个进程,
log_dir
将包含:{local_rank}/error.json
:如果进程失败,包含错误信息的文件{local_rank}/stdout.json
:如果redirect & STDOUT == STDOUT
{local_rank}/stderr.json
:如果redirect & STDERR == STDERR
注意
预计
log_dir
存在、为空且为目录。例子:
log_dir = "/tmp/test" # ok; two copies of foo: foo("bar0"), foo("bar1") start_processes( name="trainer", entrypoint=foo, args:{0:("bar0",), 1:("bar1",), envs:{0:{}, 1:{}}, log_dir=log_dir ) # invalid; envs missing for local rank 1 start_processes( name="trainer", entrypoint=foo, args:{0:("bar0",), 1:("bar1",), envs:{0:{}}, log_dir=log_dir ) # ok; two copies of /usr/bin/touch: touch file1, touch file2 start_processes( name="trainer", entrypoint="/usr/bin/touch", args:{0:("file1",), 1:("file2",), envs:{0:{}, 1:{}}, log_dir=log_dir ) # caution; arguments casted to string, runs: # echo "1" "2" "3" and echo "[1, 2, 3]" start_processes( name="trainer", entrypoint="/usr/bin/echo", args:{0:(1,2,3), 1:([1,2,3],), envs:{0:{}, 1:{}}, log_dir=log_dir )
参数:
相关用法
- Python PyTorch stash用法及代码示例
- Python PyTorch std_mean用法及代码示例
- Python PyTorch std用法及代码示例
- Python PyTorch saved_tensors_hooks用法及代码示例
- Python PyTorch sqrt用法及代码示例
- Python PyTorch skippable用法及代码示例
- Python PyTorch squeeze用法及代码示例
- Python PyTorch square用法及代码示例
- Python PyTorch save_on_cpu用法及代码示例
- Python PyTorch scatter_object_list用法及代码示例
- Python PyTorch skip_init用法及代码示例
- Python PyTorch simple_space_split用法及代码示例
- Python PyTorch sum用法及代码示例
- Python PyTorch sub用法及代码示例
- Python PyTorch sparse_csr_tensor用法及代码示例
- Python PyTorch sentencepiece_numericalizer用法及代码示例
- Python PyTorch symeig用法及代码示例
- Python PyTorch sinh用法及代码示例
- Python PyTorch sinc用法及代码示例
- Python PyTorch spectral_norm用法及代码示例
- Python PyTorch slogdet用法及代码示例
- Python PyTorch symbolic_trace用法及代码示例
- Python PyTorch shutdown用法及代码示例
- Python PyTorch sgn用法及代码示例
- Python PyTorch set_flush_denormal用法及代码示例
注:本文由纯净天空筛选整理自pytorch.org大神的英文原创作品 torch.distributed.elastic.multiprocessing.start_processes。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。