Chapter 7

Offload

Offload refers to writing a program from the point of view of running on processor(s) and offloading work from the host to one or more coprocessors. Execution begins on the host and, based on user-defined code, some sections are offloaded to the coprocessor, if present, or run on the host if not. A key feature of offload is that the resulting binary runs whether or not a coprocessor is present (unless you choose to use #pragma offload target(mic:coproc-num or _Cilk_offload_to) to specify that a coprocessor is required.)

Offloading could simply be thought of an inline code that may be run on a coprocessor, as shown in Figure 7.1.

Figure 7.1 Running Code on a Processor and Offloading to a Coprocessor.

When needed, the compiler ...

Get Intel Xeon Phi Coprocessor High Performance Programming 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.