Slurm (and probably other schedulers) set a cgroup for the job. There is no need to look at monitoring data outside this cgroup. Use the affinity list to remove CPUs from the free_cpus list.