python - 使用 SLURM 进行单 GPU Pytorch 训练 - 如何设置“ntasks-per-node”?
问题描述
我想通过 SLURM 在服务器上使用单个 GPU 对变压器模型进行一些简单的微调。我以前没有使用过 SLURM,而且我不是计算机科学家,所以我对该领域的理解有点有限。我做了一些研究并创建了下面的脚本。
你能否确认它是否适合目的?
据我了解,一个节点对应一台计算机,“--gres=gpu:1”将使用单个gpu。我唯一不清楚的是“ntasks-per-node”。我理解它的方式,因为我将运行单个python脚本,这可以等于1。正确吗?
#! /bin/bash
#SBATCH --job-name 'SQuAD'
#SBATCH --output squad_job%J.out
#SBATCH --error squad_error%J.err
#SBATCH --nodes=1
#SBATCH --gres=gpu:1
#SBATCH --ntasks-per-node=1
#SBATCH --partition=normal
#SBATCH --time=72:00:00
python3 fine_tune_squad.py
解决方案
是的,它将请求 1 个 GPU 来运行任务。如文档中所述:
默认是每个节点一个任务 [...]
因此,默认值--ntasks-per-node
已经是1
,这意味着您甚至不需要定义它。事实上,甚至--nodes
有一个默认值1
。尽管如此,有些人认为明确定义它们以避免问题是一种很好的做法,所以我会像你一样留下它们。
推荐阅读
- typescript - Knex + Typescript - 部分不可分配给类型字符串
- sql - Azure 数据工厂 rest api to SQL 导致服务器违规错误
- postgresql - pg扫描所有分区的非静态值
- azure - Azure App Insights 失败未在 Azure 门户中加载
- php - 如何使用 PHP 在 google oauth 2.0 api 中获取刷新令牌
- reactjs - AXIOS-通过快递发送对象
- uibutton - 如何在最小的 OnEvent() 函数中格式化多个按钮?
- python - 通过模型对象迭代 django m2m
- javascript - 如何将数据从 mysql 服务器发送到 node.js socket.io
- ios - 为什么我在swift中选择照片库时不显示照片库?