1. A computer implemented method for dispatching virtual processors, the computer implemented method comprising: determining if a physical processor in a set of physical processors is idle forming a first idle physical processor; responsive to an existence of the first idle physical processor, determining if an affinity map for the first idle physical processor exists, wherein the affinity map provides a first mapping of the first idle physical processor to a set of virtual processors that ran last on the first idle physical processor over a number of events and wherein the affinity map provides a second mapping of a set of partition identifiers to the set of virtual processors that ran last on the first idle physical processor over the number of events; responsive to an existence of the affinity map for the first idle physical processor, determining whether a virtual processor in the set of virtual processors last mapped to the first idle physical processor is ready to run using the affinity map for the first idle physical processor and a dispatch algorithm; and responsive to identifying a ready-to-run virtual processor whose affinity map indicates that the first idle physical processor is mapped to this virtual processor in its preceding dispatch, dispatching the ready-to-run virtual processor to the first idle physical processor, wherein memory affinity is maintained between physical and virtual processors and wherein the memory affinity is not expired.