[slurm-users] Heterogeneous GPU Node MPS
Holger Badorreck
h.badorreck at lzh.de
Mon Nov 16 12:22:58 UTC 2020
I read that also, however the RTX cards are not really pre-Volta and when I
run the mps-server, the nvidia-smi tool gives me e.g.
+---------------------------------------------------------------------------
--+
| Processes: GPU
Memory |
| GPU PID Type Process name Usage
|
|===========================================================================
==|
| 0 20294 C nvidia-cuda-mps-server
25MiB |
| 1 20294 C nvidia-cuda-mps-server
25MiB |
| 2 20294 C nvidia-cuda-mps-server
29MiB |
| 2 20329 M+C /opt/lammps/lammps-20201029-cuda/bin/lmp
6087MiB |
| 2 20393 M+C /opt/lammps/lammps-20201029-cuda/bin/lmp
6087MiB |
+---------------------------------------------------------------------------
--+
So, the server is running on every GPU, while slurm schedules only for V100
with --gres=mps:100. Note that the GPU numbering of nvidia-smi and gres.conf
are inverted, so the GPU ID 2 is the V100 here.
The ordering in gres.conf has no effect on this, also commenting the lines
regarding V100 and removing the V100 from node configuration does not change
anything, with --gres=mps still the V100 is used.
With excluding the V100 from the mps server by setting
CUDA_VISIBLE_DEVICES=1,2 (!), one job is running on an rtx card, but a
second job is pending due to not found resources.
> From the NVIDIA docs re: MPS:
> On systems with a mix of Volta / pre-Volta GPUs, if the MPS server is set
to enumerate any Volta GPU, it will discard all pre-Volta GPUs. In other
words, the MPS server will either operate only on the Volta GPUs and expose
Volta capabilities, or operate only on pre-Volta GPUs.
> I'd be curious what happens if you change the ordering (RTX then V100) in
the gres.conf -- would the RTX work with MPS and the V100 would not?
> > On Nov 13, 2020, at 07:23 , Holger Badorreck <h.badorreck at lzh.de> wrote:
> >
> > Hello,
> >
> > I have a heterogeneous GPU Node with one V100 and two RTX cards. When I
request resources with --gres=mps:100, always the V100 is chosen, and jobs
are waiting if the V100 is completely allocated, while RTX cards are free.
If I use --gres=gpu:1, also the RTX cards are used. Is something wrong with
the configuration or is it another problem?
> >
> > The node configuration in slurm.conf:
> > NodeName=node1 CPUs=48 RealMemory=128530 Sockets=1 CoresPerSocket=24
> > ThreadsPerCore=2 Gres=gpu:v100:1,gpu:rtx:2,mps:600 State=UNKNOWN
> >
> > gres.conf:
> > Name=gpu Type=v100 File=/dev/nvidia0
> > Name=gpu Type=rtx File=/dev/nvidia1
> > Name=gpu Type=rtx File=/dev/nvidia2
> > Name=mps Count=200 File=/dev/nvidia0
> > Name=mps Count=200 File=/dev/nvidia1
> > Name=mps Count=200 File=/dev/nvidia2
> >
> > Best regards,
> > Holger
More information about the slurm-users
mailing list