1. A method comprising: determining a plurality of resources available to perform a received task, the received task having a computational requirement; and binary partitioning the received task recursively into a plurality of subtasks, each subtask having a partitioning ratio of the computational requirement and a corresponding portion of the computational requirement, until the plurality of subtasks is equal to the plurality of resources determined to be available.