1. A method for an adaptive scheduler to distribute tasks for execution on a multi-core system to enable modular software and hardware development, the method comprising: accessing a plurality of tasks each having an assigned priority; determining data inputs for each of said plurality of tasks; selecting a subset of tasks from said plurality of tasks based on said assigned priorities, wherein data inputs of each of said subset of tasks are presently accessible; and distributing said subset of tasks to a plurality of slave processing cores of said multi-core system.