1. A system for allocating commands in processing, said system comprising: an application running on a computer system that provides commands to be executed on one of a plurality of processors capable of executing the commands, the commands provided through an application programming interface; a device driver that buffers the commands and converts the commands into a format used by at least one graphics processing unit (GPU); and an operating system that builds a command buffer by grouping a plurality of converted commands based on an allocation for an available processor, wherein the available processor is determined in an interface between the device driver and the operating system; wherein the available processor being one of the plurality of processors capable of executing the commands receives the command buffer from the operating system, queues the command buffer and performs an asynchronous submission of the command buffer to the at least one GPU, and the GPU executes the command buffer.