1. A data processing system comprising: an array of processing cores for processing a set of software programs configured to run on the system, with each program among said set comprising its list of tasks to be processed; a hardware logic module, referred to as a controller, for repeatedly assigning individual cores of the array to process individual tasks of the programs among said set; a memory providing task specific memory segments; and a hardware logic module, referred to as a cross-connect, for transferring task memory images between the cores of said array and the task specific segments of said memory at least in part based on a configuration from the controller.