1. A method for managing a processor and one or more co-processors for a database application whose queries have been processed into an intermediate form (IR) containing operators of the database application that have been fused and split and consisting of multiple co-processor kernels, comprising: dynamically scheduling the fused and split operators to co-processor streams; and dynamically dispatching the co-processor kernels of the fused and split operators to selected streams; applying a scheduler to a list of the fused and split operators with relational algebra (RA) in a database query plan, wherein RA operators are used to express the high level semantics of an application in terms of a series of bulk operations on relations and wherein each operator includes kernels that are intercepted and wherein the scheduler first selects the oldest operator and inserts the operator into a scheduling list; allocating an available co-processor stream from the pool to the operator and adding operators to the scheduling list until the scheduling list is full and thereafter issuing individual co-processor kernels to the co-processor stream.