A computer implemented method of reservoir simulation in a data processing system, the data processing system comprising a unified pool of a plurality of processor clusters of processor nodes, at least one of the processor clusters of the unified pool being composed of processor nodes having a different processing speed than the processing speed of processor nodes in other processor clusters of the unified pool, the computer implemented method comprising the steps of: (a) reviewing a request for reservoir simulation with processors of an identified processing speed; (b) determining whether one of the processor clusters of the unified pool has processor nodes of the identified processing speed available for the requested reservoir simulation; (c) if so, performing the requested reservoir simulation in the determined processor cluster by performing the steps of: performing a domain decomposition of reservoir data into blocks for the reservoir simulation; assigning the processor nodes of the determined processor cluster to individual ones of the decomposed reservoir data blocks; and performing the requested reservoir simulation in the assigned processor nodes of the determined processor cluster; and (d) if not, performing the requested reservoir simulation with the processor nodes of each of the plurality of processor clusters in the unified pool by performing the steps of: allocating available processor nodes from each of the plurality of processor clusters of the unified pool, at least one of the plurality of processor clusters having processor nodes of different processing speed than the processing speed of the processor nodes of the other processing clusters; performing a domain decomposition of reservoir data into blocks for the reservoir simulation by the allocated processor nodes from each of the plurality of processor clusters of the unified pool; assigning the allocated processor nodes of different operating speed allocated from each of the plurality of processor clusters of different processing speed into processor sub-clusters for individual ones of the decomposed reservoir data blocks; and performing the requested reservoir simulation in the assigned processor sub-clusters of the allocated processor nodes. (a) reviewing a request for reservoir simulation with processors of an identified processing speed; (b) determining whether one of the processor clusters of the unified pool has processor nodes of the identified processing speed available for the requested reservoir simulation; (c) if so, performing the requested reservoir simulation in the determined processor cluster by performing the steps of: performing a domain decomposition of reservoir data into blocks for the reservoir simulation; assigning the processor nodes of the determined processor cluster to individual ones of the decomposed reservoir data blocks; and performing the requested reservoir simulation in the assigned processor nodes of the determined processor cluster; and performing a domain decomposition of reservoir data into blocks for the reservoir simulation; assigning the processor nodes of the determined processor cluster to individual ones of the decomposed reservoir data blocks; and performing the requested reservoir simulation in the assigned processor nodes of the determined processor cluster; and (d) if not, performing the requested reservoir simulation with the processor nodes of each of the plurality of processor clusters in the unified pool by performing the steps of: allocating available processor nodes from each of the plurality of processor clusters of the unified pool, at least one of the plurality of processor clusters having processor nodes of different processing speed than the processing speed of the processor nodes of the other processing clusters; performing a domain decomposition of reservoir data into blocks for the reservoir simulation by the allocated processor nodes from each of the plurality of processor clusters of the unified pool; assigning the allocated processor nodes of different operating speed allocated from each of the plurality of processor clusters of different processing speed into processor sub-clusters for individual ones of the decomposed reservoir data blocks; and performing the requested reservoir simulation in the assigned processor sub-clusters of the allocated processor nodes. allocating available processor nodes from each of the plurality of processor clusters of the unified pool, at least one of the plurality of processor clusters having processor nodes of different processing speed than the processing speed of the processor nodes of the other processing clusters; performing a domain decomposition of reservoir data into blocks for the reservoir simulation by the allocated processor nodes from each of the plurality of processor clusters of the unified pool; assigning the allocated processor nodes of different operating speed allocated from each of the plurality of processor clusters of different processing speed into processor sub-clusters for individual ones of the decomposed reservoir data blocks; and performing the requested reservoir simulation in the assigned processor sub-clusters of the allocated processor nodes.