With -l exclusive (and not using -pe dc*), you may get a whole 8-, 12- or 16-core node at run time. To fully utilize all cores on the node, you can run this line inside your bash job script:
n=$(cat /proc/cpuinfo | grep ^processor | wc -l )
The "n" value will be the number of CPU cores on the compute node your job is dispatched to. Then you use this "n" value to launch your program.
For example, if you program is OpenMP, set "export OMP_NUM_THREADS=$n".