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