1. A computer-implemented method of scheduling a task to a processor in a computing cluster comprising a plurality of processors, the method comprising: for each of a plurality of tasks available for allocation to the processor; computing an index related to an assignment cost for the task, the assignment cost being an indication of a preference for a task to be processed on one or more of the processors, the index also being related to a task holding cost being an indication of a waiting time for the task; the index also being related to an externality cost being an indication of how existing tasks assigned in the computing cluster are penalized if the task is allocated to the processor; selecting a task using the index; and scheduling the selected task for allocation to the processor.