# Parallelizing Simple Loops

The simplest form of scalable parallelism is a loop of iterations that can each run simultaneously without interfering with each other. The following sections demonstrate how to parallelize simple loops.

Note

oneAPI Threading Building Blocks (oneTBB) components are defined in namespace `tbb`. For brevity’s sake, the namespace is explicit in the first mention of a component, but implicit afterwards.

When compiling oneTBB programs, be sure to link in the oneTBB shared library, otherwise undefined references will occur. The following table shows compilation commands that use the debug version of the library. Remove the `_debug` portion to link against the production version of the library.

Operating System | Command line
--- | ---
Windows* OS | `icl /MD example.cpp tbb_debug.lib`
Linux* OS | `icc example.cpp -ltbb_debug`

- Initializing and Terminating the Library
  - Explicit Library Finalization
- parallel_for
  - Lambda Expressions
  - Automatic Chunking
  - Controlling Chunking
  - Bandwidth and Cache Affinity
  - Partitioner Summary
- parallel_reduce
  - Advanced Example
  - Use of r-Values for Reduction
- Advanced Topic: Other Kinds of Iteration Spaces
  - Example of a Multidimensional Iteration Space