针对基于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使用教程,阮一峰的网络日志

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/246909.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

西科大微机原理实验四(定时器程序设计)

任务一、 按实验要求内容新建一个ASM41.ASM文件,使用masm命令生成obj文件并输入 上述源程序中使用了外部资源,该外部资源存在于文件 LIB_TIM.OBJ中,因此使用link命令将 ASM41.OBJ 和 LIB_TIM.OBJ 一起链接生成可执行文件 使用debug加载程序并进行调试 使用-g指令,回显如下…

从零构建属于自己的GPT系列5:模型部署1(文本生成函数解读、模型本地化部署、文本生成文本网页展示、代码逐行解读)

🚩🚩🚩Hugging Face 实战系列 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在PyCharm中进行 本篇文章配套的代码资源已经上传 从零构建属于自己的GPT系列1:数据预处理 从零构建属于自己的GPT系列2:模型训…

FPGA - 1、Simulink HDL coder模型例化到FPGA

Simulink HDL coder模型例化到FPGA 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右…

2024年程序员必备的五大Golang框架

Go语言,简称Golang,是由Google公司开发的一种编程语言,主要特点是简单、快速、安全和高效。在近年来,Golang的应用范围不断扩大,它的高效性和易于编写的特点在互联网领域广受欢迎。Golang在开发Web服务、网络编程、云计…

【正点原子STM32连载】第十三章 串口通信实验 摘自【正点原子】APM32E103最小系统板使用指南

1)实验平台:正点原子APM32E103最小系统板 2)平台购买地址:https://detail.tmall.com/item.htm?id609294757420 3)全套实验源码手册视频下载地址: http://www.openedv.com/docs/boards/xiaoxitongban 第十…

前端页面显示的时间格式为:2022-03-18T01:46:08.000+00:00 如何转换为:年-月-日,并根据当前时间判断为几天前

由于后端每条博文的发表时间是以“xxxx—xx—xxxx:xx:xx”的形式显示的, 现在要在前端改成“xxxx年xx月xx日”的形式。 并对10分钟内发表的显示“刚刚”,对24小时内发表的显示“小时前”。 超过24小时,小于48小时,显示“1天前”。…

什么是前端响应式设计(responsive design)?如何实现响应式布局?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

【MySQL】表的操作

表的操作 MySQL表的操作1、创建表2、创建表案例3、查看当前数据库下所有的表4、查看表结构5、查看创建表时的相关细节6、修改表7、删除表 MySQL表的操作 1、创建表 创建表的SQL语法如下: CREATE TABLE [IF NOT EXISTS] table_name(field1 datatype1 [COMMENT 注释…

python|获取接口请求耗时

你想知道我们请求一个url的时候,握手和请求资源分别占用多长时间么?今天我们使用python写个小案例来看看吧。 项目展示 打开项目,修改hosts、port、methods以及url的变量,即可运行python程序便可获得该页面的详细信息的时间&…

JVM虚拟机系统性学习-JVM调优之通过gceasy分析GC日志对堆、元空间、线程堆栈和垃圾回收器进行调优

通过 gceasy工具对生成的 GC 日志进行分析 这里使用的 JDK 版本为 JDK8! 在分析 GC 日志时,可以同时采用多种工具(Arthas、gceasy、JVM 连接 Graphana 监控)进行分析,避免某种工具分析不准确 gceasy 每个月只可以免费…

移动滑轨屏的运用是否对传统展览展示效果产生了哪些影响?

移动滑轨屏因其独特的展示外观和形式,也常被人们称为滑轨电视、电动滑轨,主要由滑动轨道、显示屏、感应装置、控制系统等组件结合实现,是一种解决了传统展览内容展示局限的多功能互动装置,能够呈现动态内容并与用户产生互动交流&a…

【STM32】STM32学习笔记-按键控制LED 光敏传感器控制蜂鸣器(08)

00. 目录 文章目录 00. 目录01. 按键控制LED接线图02. 按键控制LED程序示例03. 光敏传感器控制Buzzer接线图04. 有源蜂鸣器原理图05. 光敏传感器控制Buzzer示例06. 程序示例下载07. 附录 01. 按键控制LED接线图 02. 按键控制LED程序示例 led.h #ifndef __LED_H__ #define __L…

Leetcode—896.单调数列【简单】

2023每日刷题&#xff08;五十九&#xff09; Leetcode—896.单调数列 实现代码 class Solution { public:bool isMonotonic(vector<int>& nums) {int up 0;int down 0;if(nums.size() 1) {return true;}for(int i 0; i < nums.size() - 1; i) {if(nums[i] …

github 学习番外篇

我们可以按照仓库开始的提示提交仓库 不知道为什么 出现了 我用 git branch 查看了一下&#xff0c;竟然没发现分支 后来发现是只有commit以后才会显示这个分支 后来显示 这是因为本地和远程仓库不同步的原因 这时候我们就需要git pull 一下 发现两个仓库由于不关联不能git…

未命名文章分布式系统理论基础: 时间、时钟和事件顺序

目录 物理时钟 vs 逻辑时钟 Lamport timestamps Vector clock Version vector 小结 转自&#xff1a;https://www.cnblogs.com/bangerlee/p/5448766.html 该系列博文会告诉你什么是分布式系统&#xff0c;这对后端工程师来说是很重要的一门学问&#xff0c;我们会逐步了解分布式…

Axie Infinity 之后,Ronin 的潜力何在?

作者&#xff1a;stellafootprint.network 数据来源&#xff1a;Ronin Dashboard 备受欢迎的 Web3 游戏 Pixels 在 2023 年 10 月下旬从 Polygon 迁移到了专为游戏设计的区块链 Ronin。Pixels 此前作为 Polygon 上活跃用户&#xff08;钱包数量&#xff09;最多的 Web3 游戏&…

scrapy post请求——百度翻译(十四)

scrapy处理 post 请求 爬取百度翻译界面 目录 1.创建项目及爬虫文件 2.发送post请求 1.创建项目及爬虫文件 scrapy startproject scrapy_104 scrapy genspider translate fanyi.baidu.com 2.发送请求 post请求需要传递参数&#xff0c;所以就不能用start_urls和parse函数了&…

系统架构设计师教程(六)数据库设计基础知识

数据库设计基础知识 6.1 数据库基本概念6.1.1 数据库技术的发展6.1.2 数据模型6.1.3 数据库管理系统DBMS功能DBMS 的特点 6.1.4 数据库三级模式 6.2 关系数据库6.2.1 关系数据库基本概念关系的基本术语关系数据库模式关系的完整性约束 6.2.2 关系运算6.2.3 关系数据库设计基本理…

Android修改submodule的lib包名

一、正常使用submodule的流程 在指定路径下&#xff1a; git clone gitgit.youraddress.com:android-apps/taobao.git cd taobao/ git checkout develop git submoudle init git submodule update二、改名步骤 需求&#xff1a;将LibStat改为libStat 因为Linux对大小写敏感…