Yes, if you put a weight parameter to the nodes.
From the manpage:
Weight
The priority of the node for scheduling purposes. All
things being equal, jobs will be allocated the nodes with the
lowest weight which satisfies their requirements. For example, a
heterogeneous collection of nodes might be placed into a single
partition for greater system utilization, responsiveness and
capability. It would be preferable to allocate smaller memory
nodes rather than larger memory nodes if either will satisfy a
job's requirements. The units of weight are arbitrary, but
larger weights should be assigned to nodes with more processors,
memory, disk space, higher processor speed, etc. Note that if a
job allocation request can not be satisfied using the nodes with
the lowest weight, the set of nodes with the next lowest weight
is added to the set of nodes under consideration for use (repeat
as needed for higher weight values). If you absolutely want to
minimize the number of higher weight nodes allocated to a job
(at a cost of higher scheduling overhead), give each node a
distinct Weight value and they will be added to the pool of
nodes being considered for scheduling individually. The
default value is 1.
Brian Andrus