hi Nick,
Node Prep task will be run on a node when the node is allocated to the job before any body task get run on it. That means, if the node has been allocated to the job for many times, the node prep task could run for many times.
Thus, any of below situations will cause this:
1. preemption happens and the node is released from this job for other job
2. the node becomes unreachable and not usable any more for the job, and then it becomes reachable and get assigned to the job again
In situation 1, the number nodeprep task instance should match to the noderelease task instance, and in situation 2, there will be less node release task instance as node release task won't get run on "unreachable nodes"
Qiufang Shi