# Parallelizing Complex Loops

You can successfully parallelize many applications using only the constructs in the Parallelizing Simple Loops section. However, some situations call for other parallel patterns. This section describes the support for some of these alternate patterns.

- Cook Until Done: parallel_for_each
- Working on the Assembly Line: parallel_pipeline
  - Using Circular Buffers
  - Throughput of pipeline
  - Non-Linear Pipelines
- Summary of Loops and Pipelines