Chapter 7
Implementing Parallelism
What's in This Chapter?
Parallelizing loops
Parallelizing sections and functions
Parallelizing recursive functions
Parallelizing pipelined applications
Parallelizing linked lists
There are a number of different ways to add parallelism to a program. Figure 7.1 shows how you can use Intel Parallel Studio XE to make your code parallel by using:
- Libraries, such as the Math Kernel Library (MKL) and the Integrated Performance Primitives (IPP) library.
- Automatic parallelism, asking the compiler to automatically parallelize your code using the /Qparallel option; you can also use the guided auto-parallelization of the compiler (enabled with the /Qguide option) to help tune the auto-parallelism. You can find more about auto-parallelism in Chapter 6, “Where to Parallelize.”
- Programmatic parallelism, adding parallel constructs to your code using Cilk Plus, OpenMP, Threading Building Blocks (TBB), or native threads (POSIX or WIN32).
This chapter shows how to add parallelism to five of the more common serial code patterns: loops, sequential code, recursive functions, pipelined applications, and linked lists. For each pattern, examples are shown using Cilk Plus, OpenMP, and TBB. The MKL, IPP, and native threading examples are not discussed.
Note that the chapter is not a full treatise for each of ...
Get Parallel Programming with Intel® Parallel Studio XE now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.