In episode 2 of the “Hands-On Workshop (HOW) series on parallel programming and optimization with Intel® architectures”, we focus on the usage of the Intel® Xeon Phi™ platform as a coprocessor in the offload programming model.
In this episode we talk about:
• The explicit offload model based on compiler pragmas
• Explain how to offload function
• Local scalars and arrays of known size
• How to do data marshalling for pointer-based arrays in C and C++
Additional topics include:
• Fall-back to host
• Using multiple coprocessors
• Retaining memory buffers and data on coprocessors between offloads
• Overlapping communication and computation with asynchronous offload
• Using environment variables for offload control
The Intel proprietary API called LEO (Language Extensions for Offload) is compared with the standard-based API for offload in OpenMP* 4.0. Also, the shared virtual memory model for offload is briefly introduced.
The hands-on part of the episode demonstrates how to port a simple application to the offload model with Intel Xeon Phi coprocessors.