При разделении множества чисел на одинаковые части по числу потоков (например, первый поток получает множество чисел от 1 до 50000, второй - от 50001 до 100000; двухъядерный процессор) наблюдаются следующее поведение:
Причина того, что при разделении множества чисел на одинаковые части по числу потоков (например, первый поток получает множество чисел от 1 до 50000, второй - от 50001 до 100000; двухъядерный процессор) приложение большую часть времени проводит в последовательном режиме состоит в:
При разделении множества чисел на четные и нечетные (например, первый поток получает нечетные числа, второй - четные; двухъядерный процессор) наблюдаются следующее поведение:
Подход, состоящий в разделении множества чисел между потоками на четные и нечетные (двухъядерный процессор):
Причина того, что при разделении множества чисел между потоками на четные и нечетные (двухъядерный процессор) приложение большую часть времени проводит в последовательном режиме, состоит в:
Подход, состоящий в разделении множества чисел на последовательность пачек небольшой длины с последующей последовательной раздачей этих пачек потокам (пачки раздаются поровну), приводит к следующим результатам:
Подход, состоящий в разделении множества чисел на последовательность пачек небольшой длины с последующей последовательной раздачей этих пачек потокам (пачки раздаются поровну), обладает следующими свойствами:
Подход, состоящий в разделении множества чисел на последовательность пачек небольшой длины с последующей последовательной раздачей этих пачек потокам (пачки раздаются поровну), демонстрирует хорошую производительность по следующим причинам:
Каким образом в OpenMP можно управлять количеством создаваемых потоков потоков:
Если применялись все способы задания количества потоков, то какой способ задания потоков обладает наибольшим приоритетом: