1. A method for an adaptive scheduler to distribute tasks for execution on a multi-core system having a plurality of slave processing cores each being one of a plurality of core types, the method comprising: accessing a plurality of tasks each having an assigned priority and an assigned core type of said plurality of core types; 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; overriding said assigned core type of at least one of said tasks in said subset of tasks to assign said at least one of said tasks to a different core type of plurality of core types than said assigned core type for said at least one of said tasks; recognizing patterns of said plurality of tasks; predicting particular types of additional tasks to follow, based on said patterns; and distributing said subset of tasks to said plurality of slave processing cores of said multi-core system, according to said predicting of said particular types of said additional tasks to follow, based on said patterns; wherein said particular types of said additional tasks include processing at least one of particular data types and particular operations.