1. A method comprising: providing a parallel programming interface comprising multidimensional data types and a set of parallel operations; receiving at least one first parallel processing request at the parallel programming interface, the at least one first parallel processing request comprising at least one evaluation request of one or more parallel operations on one or more input arrays; building an expression graph in response to receiving the at least one first parallel processing request, the expression graph comprising nodes representing parallel processing operations; and evaluating the one or more parallel operations in response to determining that a second parallel processing request received at the parallel programming interface subsequent to receiving the at least one first parallel processing request at the parallel programming interface requires evaluation of at least one of the one or more parallel operations, the determining occurring in response to receiving the second parallel processing request at the parallel programming interface, the evaluating comprising: creating one or more shader programs formed according to resource constraints of a graphics environment; the creating comprising: determining that an output texture from a child node comprises an inconsistent size constraint with an input texture of a parent node of the child node; and breaking the child node into a separate shader program responsive to determining the inconsistent size constraint; receiving an output responsive to invoking the one or more shader programs on a graphics processor; and providing the output at the parallel programming interface; wherein the method is implemented by a computer; and wherein the at least one first parallel processing request and the second parallel processing request are received from an application program executing on the computer.
1. A method comprising: providing a parallel programming interface comprising multidimensional data types and a set of parallel operations; receiving at least one first parallel processing request at the parallel programming interface, the at least one first parallel processing request comprising at least one evaluation request of one or more parallel operations on one or more input arrays; building an expression graph in response to receiving the at least one first parallel processing request, the expression graph comprising nodes representing parallel processing operations; and evaluating the one or more parallel operations in response to determining that a second parallel processing request received at the parallel programming interface subsequent to receiving the at least one first parallel processing request at the parallel programming interface requires evaluation of at least one of the one or more parallel operations, the determining occurring in response to receiving the second parallel processing request at the parallel programming interface, the evaluating comprising: creating one or more shader programs formed according to resource constraints of a graphics environment; the creating comprising: determining that an output texture from a child node comprises an inconsistent size constraint with an input texture of a parent node of the child node; and breaking the child node into a separate shader program responsive to determining the inconsistent size constraint; receiving an output responsive to invoking the one or more shader programs on a graphics processor; and providing the output at the parallel programming interface; wherein the method is implemented by a computer; and wherein the at least one first parallel processing request and the second parallel processing request are received from an application program executing on the computer. 7. The method of claim 1 wherein the resource constraints of the graphics environment comprise a constraint on the dimensions of a texture.