Visible to Intel only — GUID: GUID-091B9366-E663-445A-B925-7446B620C8FF
Visible to Intel only — GUID: GUID-091B9366-E663-445A-B925-7446B620C8FF
Key Concepts
This group of topics introduces you to the key concepts and terms needed to add parallelism to a program. A list of key terms is also provided.
Over the last few years, processor technology found in personal laptops, desktops, and enterprise servers has shifted from making single-core processors faster to having multiple cores in each processor.
In a parallel program, portions of the program (tasks) may execute at the same time. On multi-core systems, this can provide better performance.
To parallelize your application, you need to identify the potential parallel tasks, modify your code to run correctly when these tasks execute in parallel, and add code to execute them in parallel. Intel® Advisor combines a methodology with a set of tools to help you add this parallelism to your program. You work on the sequential version of your program and the tools model how it would behave if it was parallelized in the ways you specify. As an add-in to Microsoft Visual Studio*, Intel Advisor fits right into a Windows* OS development environment.
Your final step will be to express the parallelism in your program using a high-level parallel framework (threading model) like Intel® oneAPI Threading Building Blocks (oneTBB) or OpenMP*, or low-level threading APIs.
For native C/C++ or Fortran code, Intel recommends using the high-level oneTBB or OpenMP frameworks, which are included with several Intel® oneAPI Toolkits. Intel Advisor's documentation shows you how to introduce parallelism into your program using these frameworks. Intel Advisor provides multiple C/C++ samples and several Fortran samples.
For managed C# code on Windows* OS, use the Microsoft Task Parallel Library* (TPL). Intel Advisor provides a C# nqueens sample.
This is an interactive process, where you repeat these basic steps as you identify more sites for adding parallelism.
The related group of topics provides an introduction to parallelism, and to parallel framework implementations.