Visible to Intel only — GUID: GUID-907E6AAC-7E68-4B38-9E82-1B66BF34CF14
Visible to Intel only — GUID: GUID-907E6AAC-7E68-4B38-9E82-1B66BF34CF14
Limit the Number of Threads Used by Parallel Frameworks
Intel® Advisor tools are designed to collect data and analyze serial programs. Before you use the Intel Advisor to examine a partially parallel program, modify your program so it runs as a serial program with a single thread within each parallel site.
Run Your Program as a Serial Program
To run the current version of your program as a serial program, you need to limit the number of threads to 1. To run your program with a single thread:
With Intel® oneAPI Threading Building Blocks (oneTBB) , in the main thread create a tbb::task_scheduler_init init(1); object for the lifetime of the program and run the executable again. For example:
int main() { tbb::task_scheduler_init init(1); // ...rest of program... return 0; }
The effect of task_scheduler_init applies separately to each user-created thread. So if the program creates threads elsewhere, you need to create a tbb::task_scheduler_init init(1); for that thread's lifetime as well. Use of certain oneTBB features can prevent the program from running serially. For more information, see the oneTBB documentation.
With OpenMP*, do one of the following:
Set the OpenMP* environment variable OMP_NUM_THREADS to 1 before you run the program.
Omit the compiler option that enables recognition of OpenMP pragmas and directives. On Windows*