1. A system comprising: at least one computing device, the computing device comprising at least one processor and a computer readable media operably connected to the at least one processor; an accelerator associated with the at least one computing device; and an application programming interface (API) stored in the computer readable media and executed by the at least one processor to expose the accelerator for iterative dataflow, wherein iterative dataflow is controlled based at least on an iteration state representing a loop count or a predicate of a computation, the API including: a multiport configured to: accept datablocks as input from a plurality of input channels; and dequeue a datablock from the datablocks from an input channel of the plurality of input channels; an iterator port configured to: maintain the iteration state of the computation associated with the datablock that was dequeued; and propagate control signals when an iteration begins or ends; a scheduler configured to provide the datablock that was dequeued to the accelerator based at least on the iteration state, wherein the datablock that was dequeued includes a control code defining the control signals to control when the iteration begins or ends; and a module to specify a control-propagation pair that controls propagation of the control code received at a first port to a second port.