针对基于nohup后台运行PyTorch多卡并行程序中断问题的一种新方法

本文主要是介绍针对基于nohup后台运行PyTorch多卡并行程序中断问题的一种新方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

针对基于nohup后台运行PyTorch多卡并行程序中断问题的一种新方法

文章目录

  • 针对基于nohup后台运行PyTorch多卡并行程序中断问题的一种新方法
    • Abstract
    • screen和tmux介绍
    • tmux常用命令以及快捷键
    • Byobu
    • 简单操作步骤集锦
    • 参考文献

Abstract

PyTorch多卡并行运行程序is one of the most prevalent methods for training large models. nohup也是后台运行程序的一个主要工具。然而,我最近遇到采用nohup后台挂起的多卡并行程序突然断掉了。
在这里插入图片描述
具体的报原因青参考博客nohup训练pytorch模型时的报错以及tmux的简单使用.
该博客推荐使用tmux来进行会话管理。screen, tmux是两种常用的会话管理工具。博客tmux使用指南:比screen好用n倍!也推荐 使用tmux. 然而,我在使用tmux的过程中又遇到了一个新的问题—tmux创建的会话无法切换到相应的conda环境。网上的许多博客
[1]tmux中conda环境无法生效问题
[2]tmux+conda环境配置不对问题解决
均对这个问题给出了自己的答案,然而,unfortunately, 这些博客在我的vscode终端开发环境下均无效。

受到 博客tmux使用指南:比screen好用n倍!评论区中的一个推荐byobu的评论的启发,
在这里插入图片描述

本文提出了一个byobu和tmux结合使用的方法,解决了上述nohup后台挂起失败以及tmux无法切换环境的问题。

screen和tmux介绍

screen是Linux中比较常用的可以“接入”和“离开”的shell对话框,很大地方法方便了我们ssh登录服务器跑任务,如果不用screen, 我们合上电脑,ssh就断开了,相应的服务器运行任务也断开了。与screen类似,tmux也是一个常用的会话管理工具。

# tmux的层次:
-session1
---window1
------subwindow1
------subwindow2
------subwindow3
------subwindow4
---window2
-session2
---window3
---window4

tmux服务可以开启多个session.
一个session可以开多个window
一个window可以分多个subwindow.

tmux常用命令以及快捷键

虽然网上有很多写tmux常用快捷键的博客,但是这些命令并不完全都能在我们自己的环境中有效。例如, tmux的ctr + b +d 的detach session功能就无法在vscode远程开发环境中生效,取而代之的是ctr + a + d,原因未知。所以,tmux快捷键命令是否生效要因自己的环境自行判断。大部分快捷键不会变动。可以参考Tmux使用教程,阮一峰的网络日志。

Byobu

Byobu又是怎么一回事呢?Byobu是在Tmux的基础之上进一步封装得到的工具,拥有更多的快捷键,更加方便。最重要的是,对于单纯使用tmux导致的环境无法切换的问题,在Byobu这里就不存在。

然而,单纯使用Byobu的快捷键来进行管理终端可以进行地操作有限。所以,最终的解法是:先运行byobu命令,进入到byobu之后,退出,然后使用tmux管理新建session, detach session等操作。

简单操作步骤集锦

1.在vscode终端运行 byobu, 进入到一个byobu session
2.按ctr + a +d , 退出该session
3.新建一个名为s1的session.

tmux new -s s1

4.ctr+a+d 退出当前session
5. tmux ls 查看所有的session
6. 重新attach s1

tmux attach -t s1

-t意为 target
7.删除某个session
tmux kill-session -t s1

参考文献

[1] nohup训练pytorch模型时的报错以及tmux的简单使用
[2] tmux使用指南:比screen好用n倍!
[3] tmux中conda环境无法生效问题
[4] tmux+conda环境配置不对问题解决
[5] Tmux使用教程,阮一峰的网络日志

这篇关于针对基于nohup后台运行PyTorch多卡并行程序中断问题的一种新方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/496840

相关文章

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

好题——hdu2522(小数问题:求1/n的第一个循环节)

好喜欢这题,第一次做小数问题,一开始真心没思路,然后参考了网上的一些资料。 知识点***********************************无限不循环小数即无理数,不能写作两整数之比*****************************(一开始没想到,小学没学好) 此题1/n肯定是一个有限循环小数,了解这些后就能做此题了。 按照除法的机制,用一个函数表示出来就可以了,代码如下

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

第10章 中断和动态时钟显示

第10章 中断和动态时钟显示 从本章开始,按照书籍的划分,第10章开始就进入保护模式(Protected Mode)部分了,感觉从这里开始难度突然就增加了。 书中介绍了为什么有中断(Interrupt)的设计,中断的几种方式:外部硬件中断、内部中断和软中断。通过中断做了一个会走的时钟和屏幕上输入字符的程序。 我自己理解中断的一些作用: 为了更好的利用处理器的性能。协同快速和慢速设备一起工作

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

浅谈主机加固,六种有效的主机加固方法

在数字化时代,数据的价值不言而喻,但随之而来的安全威胁也日益严峻。从勒索病毒到内部泄露,企业的数据安全面临着前所未有的挑战。为了应对这些挑战,一种全新的主机加固解决方案应运而生。 MCK主机加固解决方案,采用先进的安全容器中间件技术,构建起一套内核级的纵深立体防护体系。这一体系突破了传统安全防护的局限,即使在管理员权限被恶意利用的情况下,也能确保服务器的安全稳定运行。 普适主机加固措施:

购买磨轮平衡机时应该注意什么问题和技巧

在购买磨轮平衡机时,您应该注意以下几个关键点: 平衡精度 平衡精度是衡量平衡机性能的核心指标,直接影响到不平衡量的检测与校准的准确性,从而决定磨轮的振动和噪声水平。高精度的平衡机能显著减少振动和噪声,提高磨削加工的精度。 转速范围 宽广的转速范围意味着平衡机能够处理更多种类的磨轮,适应不同的工作条件和规格要求。 振动监测能力 振动监测能力是评估平衡机性能的重要因素。通过传感器实时监

webm怎么转换成mp4?这几种方法超多人在用!

webm怎么转换成mp4?WebM作为一种新兴的视频编码格式,近年来逐渐进入大众视野,其背后承载着诸多优势,但同时也伴随着不容忽视的局限性,首要挑战在于其兼容性边界,尽管WebM已广泛适应于众多网站与软件平台,但在特定应用环境或老旧设备上,其兼容难题依旧凸显,为用户体验带来不便,再者,WebM格式的非普适性也体现在编辑流程上,由于它并非行业内的通用标准,编辑过程中可能会遭遇格式不兼容的障碍,导致操

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

缓存雪崩问题

缓存雪崩是缓存中大量key失效后当高并发到来时导致大量请求到数据库,瞬间耗尽数据库资源,导致数据库无法使用。 解决方案: 1、使用锁进行控制 2、对同一类型信息的key设置不同的过期时间 3、缓存预热 1. 什么是缓存雪崩 缓存雪崩是指在短时间内,大量缓存数据同时失效,导致所有请求直接涌向数据库,瞬间增加数据库的负载压力,可能导致数据库性能下降甚至崩溃。这种情况往往发生在缓存中大量 k