本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。