The applications have dynamic, heterogeneous task structures that depend on the current environment.
Latency is important for interactivity and throughput is important for accuracy and realism.
For a given a workload, we show how software pipelining ideas can be used to produce task schedules that meet latency and throughput goals. The problem is that the workload in our application class varies dynamically. The dynamism, however, is not arbitrary. We support these results with experimental data from our Stampede implementation.