1. A computing system comprising: one or more processing elements; a memory having a first interface for connecting to a host processor and a second interface, the memory being divided into a plurality of logical partitions, at least one partition having information describing a particular task, the information including the task state; and a multi-task controller (MTC) that includes a scheduler unit, a dataflow unit, an executive unit, and a resource manager unit, wherein each unit is separately coupled to each of the other units, wherein the dataflow unit is configured to transfer data between the second interface of the memory and one of either the scheduler unit, the executive unit, or resource manager unit, wherein the scheduler unit is coupled to the second interface of the memory and to the processing elements, the dataflow unit is coupled to the second interface of the memory, and the resource manager unit is coupled to the one or more processing elements, wherein the resource manager unit is configured to find an available processing element for carrying out a function of a task and to assign a processing element to a current task by providing a linkage between said available processing element and the task, wherein the scheduler unit is configured to select a task as the current task, to obtain the state of the current task, and select an assigned processing element to carry out a function of the current task, wherein the executive unit is configured to decode instructions relating to a task and request the resource manager unit to set up a processing element to carry out a function of a task; and wherein the number of processing elements and number of tasks are independent of each other.