在本地利用服务器显卡跑代码

简介: 在本地利用服务器显卡跑代码

写在最前面

原文发布时间:2022-12-03 12:59:51

质量分过低,进行完善

原文

除了使用xshell等连接服务器以外,pycharm也可以连接服务器,在服务器上运行代码,上传下载文件等操作。

参考:https://cloud.tencent.com/developer/article/1738482

步骤如下:

1、pycharm工具栏:Tools– Deployment– Configuration

2、左上角:点击+加号– SFTP(最好选择这个)

3、给连接命名(自定义)

4、选择新建的连接– Connection– 输入服务器、登录信息– Test connection,测试能否连接成功。

点击三点配置服务器信息

连接成功后,会弹出如下窗口,否则是其他信息:

5、在上面的窗口中:点击– Mappings,设置工作目录路径设置好后,点击确定

先新建文件夹wyt(可以自命名)

路径为/home/tjh/wyt

sudo mkdir wyt

6、现在可以进行文件的上传和下载工作了(此时还不能进行代码运行,因为还没有配置解释器环境–见步骤7)

7、配置解释器

要想运行代码,还需要配置python(根据自己的语言定)解释器环境:

File– Settings

Project:…– Project Interpreter — Add

SSH Interpreter– 输入服务器地址,端口号,用户名– next

输入密码– next

选择解释器目录,点击完成即可。

查找解释器目录

>>> import os
>>> print(os.__file__)

8、检测能否成功运行(这个地方我没成功,但代码能跑就没管了)

可以通过os,看能否浏览服务器上的文件目录

import osos.listdir(“//home//tjh//wyt”) # 随便输入一个你的服务器文件目录

如果输出的文件列表是你的服务器上的文件,那么恭喜你完成了配置。

9、其他说明:

1)、设置好本地工作目录和自动上传后,文件会自动上传当前(设置了服务器解释器的工程)到设置的目录。

然后操作本地的文件(重命名、修改编写代码、删除文件),服务器也会同步修改。但这些都要保证是在pycharm里面操作。如果是在windows里面操作的话,不会自动同步。

同步日志详情可以在左下角的 File Transfer 里面看到

2)运行生成的文件会保存在服务器目录下,需要手动从服务器下载

以上就是本文的全部内容,希望对大家的学习有所帮助。

完善

充分发挥GPU潜力:在PyCharm中远程运行代码

在机器学习、深度学习和数据科学领域,利用GPU进行计算已成为标配。然而,许多开发者的本地机器不具备强大的GPU资源,这使得运行计算密集型任务变得困难。好在有一个解决方案,即通过PyCharm远程运行代码,利用远程服务器上的GPU资源。本文将详细介绍如何在PyCharm中配置和运行代码以充分利用服务器的显卡资源。

步骤 1:准备服务器

首先,您需要访问一台拥有强大GPU的远程服务器。这可以是您自己的服务器,也可以租用云服务提供商(如AWS、Google Cloud、Azure等)的虚拟机实例,这些虚拟机通常配备了高性能的GPU。确保您可以通过SSH远程连接到服务器,因为我们将需要在服务器上执行代码。

步骤 2:配置PyCharm

安装 PyCharm

如果尚未安装PyCharm,您需要在本地计算机上安装它。PyCharm提供了免费的社区版和付费的专业版可供选择。您可以从官方网站https://www.jetbrains.com/pycharm/下载并安装PyCharm。

配置远程解释器

  1. 打开PyCharm并创建或打开您的Python项目。
  2. 转到PyCharm的设置(Settings)或首选项(Preferences)窗口。
  3. 在设置窗口中,找到“解释器”选项。点击“解释器”选项,然后点击右上角的齿轮图标,选择“Add Remote”。在弹出的窗口中,选择SSH配置。
  4. 在SSH配置中,提供远程服务器的SSH连接信息,包括服务器地址、用户名和SSH密钥(如果有的话)。确保您已经设置好了SSH密钥对,以便无需密码登录到远程服务器。完成配置后,点击“OK”。
  5. 回到“解释器”选项,您应该能够看到您刚刚配置的远程解释器。选择它作为您的项目解释器。

项目设置

在项目设置中,您可以配置各种参数,例如Python解释器、项目根目录等。确保您的项目设置中正确指定了远程解释器。

步骤 3:运行代码

一旦您完成了配置,您可以开始在PyCharm中编写和运行代码。您的代码将在远程服务器上执行,并可以利用服务器的GPU资源。请确保您的代码中包含GPU加速的库(如TensorFlow、PyTorch等),并在代码中正确配置以使用GPU。

参考代码

当使用PyCharm在本地利用远程服务器的显卡运行代码时,通常不需要在代码中做特殊的修改。您只需确保在PyCharm的项目设置中正确配置了远程解释器,然后在项目中正常编写代码。

下面是一些示例代码,用于在PyCharm中配置和运行代码以充分利用远程服务器的GPU资源。请注意,以下示例仅演示了一些基本的设置和代码结构,实际情况可能因项目的性质而有所不同。

步骤 1: 配置远程解释器

首先,确保您已配置了远程解释器,如上文所述。

步骤 2: 编写示例代码

以下是一个使用PyTorch库的示例代码,该代码在远程服务器上利用GPU执行神经网络训练任务。假设您的项目中已安装了PyTorch,并且正确配置了GPU支持。

import torch
import torch.nn as nn
import torch.optim as optim
# 定义一个简单的神经网络
class SimpleNet(nn.Module):
    def __init__(self):
        super(SimpleNet, self).__init()
        self.fc1 = nn.Linear(64, 128)
        self.fc2 = nn.Linear(128, 10)
    def forward(self, x):
        x = torch.relu(self.fc1(x))
        x = self.fc2(x)
        return x
# 创建神经网络实例
net = SimpleNet()
# 指定GPU设备
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
# 将神经网络移动到GPU
net.to(device)
# 定义损失函数和优化器
criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(net.parameters(), lr=0.001)
# 虚拟数据(请替换为您的实际数据加载代码)
inputs = torch.randn(32, 64).to(device)
labels = torch.randint(10, (32,)).to(device)
# 训练循环
for epoch in range(100):
    # 正向传播
    outputs = net(inputs)
    loss = criterion(outputs, labels)
    # 反向传播和优化
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()
print("训练完成!")

这个示例代码演示了如何在PyCharm中编写深度学习任务,并利用服务器上的GPU资源。请确保您的代码中包含了GPU支持的库(如PyTorch),并且将神经网络和数据移到GPU设备上以进行训练。

步骤 3: 运行代码

在PyCharm中,您只需正常运行代码,PyCharm会自动将代码发送到远程服务器并执行。请确保您的远程服务器上已正确安装和配置了所需的Python库和GPU驱动程序。

这样,您就可以充分利用服务器的显卡资源来加速您的深度学习和机器学习任务。在PyCharm的集成开发环境中编写和运行代码,使整个过程更加方便和高效。

注意事项和建议

当在远程服务器上运行代码时,需要特别注意一些注意事项和建议,以确保您的工作顺利进行。以下是一些重要的事项和建议,以帮助您有效利用远程服务器的GPU资源。

1. 监控资源利用率

使用远程服务器上的GPU资源时,请定期监控资源的利用率。这对于确保您的任务正在进行,并且没有发生资源争用非常重要。您可以使用命令行工具如nvidia-smi来查看GPU的使用情况和资源占用情况。这个工具提供了GPU的详细信息,包括GPU的使用率、温度、内存占用等。

nvidia-smi

通过运行上述命令,您可以实时监控GPU资源的使用情况,以及当前运行的进程。这有助于及时发现问题并采取必要的措施。

2. 合理分配资源

如果多人共享同一台远程服务器,尤其是共享GPU资源时,请确保合理分配资源,以避免争用和资源浪费。如果您共享服务器,建议在使用GPU之前检查GPU是否已被占用。您可以使用工具如nvidia-smi或GPU管理软件来查看GPU的占用情况。如果GPU资源已被占用,可以等待其他任务完成后再开始您的任务,或者与其他用户协调资源的使用。

3. 备份代码和数据

在远程服务器上运行代码时,定期备份您的代码和数据非常重要。远程服务器上的数据不如本地计算机容易恢复,因此确保定期将代码、模型和数据文件复制到安全的地方,以防止意外数据丢失。您可以使用工具如rsyncscp来定期备份文件。

# 使用rsync备份文件到本地目录
rsync -avz username@remote_server:/path/to/data /local/backup/directory

4. 使用tmux或screen

为了在SSH会话中保持代码运行,建议使用工具如tmuxscreen。这些工具允许您创建会话,以便在断开SSH连接后继续运行代码。这对于长时间运行的任务非常有用,因为它们不会因为SSH连接的中断而中止。

使用tmux:
  1. 安装tmux(如果尚未安装):sudo apt-get install tmux(对于Ubuntu)。
  2. 启动新tmux会话:tmux new -s session_name
  3. 在tmux会话中运行您的代码。
  4. 当SSH连接中断后,可以重新连接到服务器,然后使用tmux attach-session -t session_name来恢复会话。
使用screen:
  1. 安装screen(如果尚未安装):sudo apt-get install screen(对于Ubuntu)。
  2. 启动新screen会话:screen -S session_name
  3. 在screen会话中运行您的代码。
  4. 当SSH连接中断后,可以重新连接到服务器,然后使用screen -r session_name来恢复会话。

这些注意事项和建议有助于确保您能够有效地在远程服务器上利用GPU资源并顺利运行您的代码。通过监控资源、合理分配、备份数据和使用会话管理工具,您可以更好地管理您的远程开发环境。

通过配置PyCharm和远程服务器,您可以充分利用服务器的GPU资源,加速深度学习和机器学习任务,而无需在本地机器上拥有强大的显卡。这种方法可使您在更大规模的项目中更高效地工作,并处理更复杂的任务。一切尽在PyCharm掌握中!

相关实践学习
基于阿里云DeepGPU实例,用AI画唯美国风少女
本实验基于阿里云DeepGPU实例,使用aiacctorch加速stable-diffusion-webui,用AI画唯美国风少女,可提升性能至高至原性能的2.6倍。
目录
相关文章
|
1月前
|
Ubuntu 网络协议 Java
【Android平板编程】远程Ubuntu服务器code-server编程写代码
【Android平板编程】远程Ubuntu服务器code-server编程写代码
|
2月前
|
弹性计算 人工智能 网络安全
ECS实例问题之增加GPU显卡失败如何解决
ECS实例指的是在阿里云ECS服务中创建的虚拟计算环境,用户可在此环境中运行应用程序和服务;本合集将介绍ECS实例的创建、管理、监控和维护流程,及常见问题处理方法,助力用户保障实例的稳定运行。
|
6月前
|
机器学习/深度学习 负载均衡 算法
计算机网络编程 | 并发服务器代码实现(多进程/多线程)
计算机网络编程 | 并发服务器代码实现(多进程/多线程)
83 0
|
3月前
|
移动开发 缓存 网络协议
Websocket协议原理及Ws服务器代码实现
Websocket协议原理及Ws服务器代码实现
|
3月前
|
API C++
socket编程之常用api介绍与socket、select、poll、epoll高并发服务器模型代码实现(1)
前言   本文旨在学习socket网络编程这一块的内容,epoll是重中之重,后续文章写reactor模型是建立在epoll之上的。
36 0
|
3月前
|
监控 安全 Linux
socket编程之常用api介绍与socket、select、poll、epoll高并发服务器模型代码实现(3)
高并发服务器模型-poll poll介绍   poll跟select类似, 监控多路IO, 但poll不能跨平台。其实poll就是把select三个文件描述符集合变成一个集合了。
36 0
|
4天前
|
Linux 网络安全 开发工具
【超详细!超多图!】【代码管理】Python微信公众号开发(3)- 服务器代码上传Github
【超详细!超多图!】【代码管理】Python微信公众号开发(3)- 服务器代码上传Github
11 0
|
5月前
|
开发工具 git
服务器定时自动拉取Git仓库代码自动部署
服务器定时自动拉取Git仓库代码自动部署
130 0
|
1月前
|
自然语言处理 Shell 网络安全
Liunx服务器搭建SVN服务,并通过钩子实现代码自动部署
Liunx服务器搭建SVN服务,并通过钩子实现代码自动部署
32 3
|
2月前
|
Ubuntu 网络协议 Linux
【Linux】Android平板上远程连接Ubuntu服务器code-server进行代码开发
【Linux】Android平板上远程连接Ubuntu服务器code-server进行代码开发
57 0