|Home > Converting existing code to OpenCL > Parallel processing techniques in OpenCL > Use software pipelining|
Software pipelines are a parallel processing technique that enable multiple data elements to be processed simultaneously by breaking the computation into a series of sequential stages.
Pipelines are common in both hardware and software. For example, application processors and GPUs use hardware pipelines. The graphics standard OpenGL ES is based on a virtual pipeline.
In a pipeline, a complete process is divided into a series of stages. A data element is processed in one stage and the results are then passed to the next stage.
Because of the sequential nature of a pipeline, only one stage is used at a time by a particular data element. This means that the other stages can process other data elements.
You can use software pipelines in your application to process different data elements.
For example, a game requires many different operations to happen. A game might use a similar pipeline to this: