如何使用Slurm访问集群中不同节点上的GPU?

2024-06-20

我可以访问由 Slurm 运行的集群,其中每个节点都有 4 个 GPU。

我有一个需要 8 个 GPU 的代码。

那么问题是,如何在每个节点只有 4 个 GPU 的集群上请求 8 个 GPU?

这就是我尝试通过以下方式提交的工作sbatch:

#!/bin/bash
#SBATCH --gres=gpu:8              
#SBATCH --nodes=2               
#SBATCH --mem=16000M              
#SBATCH --time=0-01:00     

但后来我收到以下错误:

sbatch: error: Batch job submission failed: Requested node configuration is not available    

然后我将设置更改为此并再次提交:

#!/bin/bash
#SBATCH --gres=gpu:4              
#SBATCH --nodes=2               
#SBATCH --mem=16000M              
#SBATCH --time=0-01:00  
nvidia-smi

结果显示只有 4 个 GPU,而不是 8 个。

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 375.66                 Driver Version: 375.66                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Tesla P100-PCIE...  Off  | 0000:03:00.0     Off |                    0 |
| N/A   32C    P0    31W / 250W |      0MiB / 12193MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   1  Tesla P100-PCIE...  Off  | 0000:04:00.0     Off |                    0 |
| N/A   37C    P0    29W / 250W |      0MiB / 12193MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   2  Tesla P100-PCIE...  Off  | 0000:82:00.0     Off |                    0 |
| N/A   35C    P0    28W / 250W |      0MiB / 12193MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   3  Tesla P100-PCIE...  Off  | 0000:83:00.0     Off |                    0 |
| N/A   33C    P0    26W / 250W |      0MiB / 12193MiB |      4%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

Thanks.


Slurm 不支持你所需要的。它只能分配给您的作业 GPU/节点,而不能分配给您的作业 GPU/集群。 因此,与 CPU 或其他消耗性资源不同,GPU 不是消耗性的,并且绑定到托管它们的节点。

如果您对此主题感兴趣,有一项研究工作将 GPU 转变为可消耗资源,请查看这张纸 http://dx.doi.org/10.1109/SBAC-PAD.2014.49。 在那里您将了解如何使用 GPU 虚拟化技术来实现这一点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用Slurm访问集群中不同节点上的GPU? 的相关文章

随机推荐