What is OpenSPL?



Voice: Professor Michael J Flynn, Stanford University
If the player fails try the HTML 5 Video PLayer

OpenSPL is an open standard for a novel Spatial Programming Language. It is based on the core concept that a program executes in space, rather than in time sequence. All operations are assumed to be parallel unless specified to be sequential. This is similar to a factory floor where all operations execute in parallel, but each operation executes a different part of the overall process. Temporal Programming is a recipe for the execution of actions, whereas Spatial Programming builds a factory to execute the recipe.

What does OpenSPL mean from a computing perspective? First, we split an application into its control flow and dataflow, similar to the split of the control plane and data plane in software defined networking or similarly a decoupled computer architecture. Next, the dataflow is described in mathematical expressions and laid out in space -similar to a factory floor- enabling the data to flow through execution at runtime. Conventional programs execute in 1 dimension, where time progresses forward following the instruction sequence. Spatial programming is programming in 2 dimensions, where data progresses forward in parallel across the fabric of an array or chip.

There is also a 3D perspective of computing in space. One major objective of Spatial Programming and OpenSPL is to maximize the amount of computation per cubic foot of datacenter space. For suitable applications Spatial Programming can achieve one to two orders of magnitude improvement in computational density, thereby providing the same advantage in power consumption, making OpenSPL a candidate for the greenest programming language on the planet.