it's fine walking down the entire list of running jobs - there
probably will not be many, plus, we may need to go through the
list to compute numSlotsOccupiedByUser. If this is expensive, we
can keep a list of running jobs per user. Then we only need to
consider the first few jobs per user.