1. A distributed computing system comprising: a plurality of nodes; a plurality of acceleration devices configurable in a plurality of distinct functions and disposed on one or more of the plurality of nodes; a database comprising a plurality of virtual acceleration device definitions, each virtual acceleration device definition comprising attributes comprising an acceleration device function from the plurality of distinct functions and acceleration device hardware requirements and a compiled program and external configuration data that when loaded into an acceleration device having the hardware requirements configures that acceleration device to realize the acceleration device function; an application programming interface to receive an inquiry comprising an identification of computing system resources to be used in processing the inquiry; a resource requirements and preferences manager to identify at least one virtual acceleration device definition having a suitable acceleration device function and capable of configuring an acceleration device in accordance with the computing system resources identified in the inquiry; and a deployment agent to configure at least one of the plurality of identified acceleration devices having the acceleration device hardware requirements in accordance with each identified virtual acceleration device definition.