1. A method comprising: receiving a plurality of accelerator tasks at a computing device, wherein each accelerator task has an associated set of accelerator parameters; receiving identifiers of a plurality of accelerators at the computing device; receiving identifiers of one or more available accelerators from the plurality of accelerators at the computing device; receiving identifiers of a plurality of datablocks at the computing device, wherein each of the plurality of datablocks identifies data located at buffers on one or more of the available accelerators; determining a ready accelerator task from the plurality of accelerator tasks by the computing device; determining one or more accelerators from the identified one or more available accelerators that supports the set of accelerator parameters associated with the determined ready accelerator task by the computing device; providing the ready accelerator task to one of the determined one or more accelerators by the computing device; determining one or more datablocks of the plurality of datablocks that are associated with the provided ready accelerator task by the computing device; copying identified data from one or more of the determined one or more datablocks to a buffer on the one of the determined one or more accelerators by the computing device; and receiving at least one result from the one of the one or more determined accelerators by the computing device.