GPU集群使用Tip:查询端口号占用情况、进程由哪个用户创建、运行时指定某一张显卡

本文介绍了在GPU集群上运行代码时遇到的常见问题,如GPU内存分配失败和端口占用。提供了使用`nvidia-smi`监控GPU使用情况,通过`ps`和`ss`命令检查进程和端口占用的解决方案,以及如何在运行时指定特定GPU。最后提到了bash和shell的区别。
摘要由CSDN通过智能技术生成

在GPU集群上运行代码,会面临一些问题:
(1)跑着跑着GPU memory分配失败 – 因为有其他人在使用
(2)运行时显示端口号已被占用,需要你换一个端口。
这个时候一般采取的方法有:
(1)找到是哪个用户占用GPU memory
(2)查看目前哪些端口号没被占用。
因此,这篇blog主要记录出现这两种情况的解决方案。

运行nvidia-smi,查看集群使用情况

在这里插入图片描述
上图展示了GPU memory的总体和各个进程的占用情况。

进程由哪个用户创建?

以PID=3050为例。

$ ps -o user= -p 3050

运行结果:
在这里插入图片描述

查询端口号占用情况

执行以下命令:

$ ss -tuln | grep [port]

运行结果示例:
在这里插入图片描述
返回信息解读:

tcp: 表示这是 TCP 协议的连接。

LISTEN: 状态为 LISTEN 表示端口正在监听或等待接收传入的连接。

0: 这是“接收队列”的大小。在这里,它表示没有正在等待处理的连接。

128: 这是“最大队列长度”,即可以排队等待接受的连接数。在这里,它被设置为 128,这是 TCP 连接请求的标准最大队列长度。

0.0.0.0:8888[::]:8888: 这表示端口 8888 在所有 IPv4 地址(0.0.0.0)和所有 IPv6 地址([::])上都处于监听状态。换句话说,该端口正在接受来自任何 IP 地址的连接。

运行时指定某一张显卡

# codes to copy
# 1st
import torch
torch.cuda.set_device(1)

#2nd
CUDA_VISIBLE_DEVICES=1 python your_script.py

在这里插入图片描述在这里插入图片描述

后记

bash和shell的区别:
在这里插入图片描述

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值