Следует обратить внимание, что, несмотря
рис. 11.4. Следует обратить внимание, что, несмотря на идеальное распределение вычислительной нагрузки между процессорами, для приведенного на рис. 11.4 соотношения параллельных и последовательных вычислений, в каждый текущий момент времени (после момента первой синхронизации) только не более двух процессоров одновременно выполняют действия, связанные с решением задачи. Подобный эффект вырождения параллелизма из-за интенсивной синхронизации параллельных участков программы обычно именуется сериализацией (serialization).
Таблица 11.1. Результаты вычислительных экспериментов для параллельных вариантов алгоритма Гаусса - Зейделя (p=4)Размер сеткиПоследовательный метод Гаусса - Зейделя (алгоритм 11.1)Параллельный алгоритм 11.2Параллельный алгоритм 11.3
ktktSktS
100 | 210 | 0,06 | 210 | 1,97 | 0,03 | 210 | 0,03 | 2,03 |
200 | 273 | 0,34 | 273 | 11,22 | 0,03 | 273 | 0,14 | 2,43 |
300 | 305 | 0,88 | 305 | 29,09 | 0,03 | 305 | 0,36 | 2,43 |
400 | 318 | 3,78 | 318 | 54,20 | 0,07 | 318 | 0,64 | 5,90 |
500 | 343 | 6,00 | 343 | 85,84 | 0,07 | 343 | 1,06 | 5,64 |
600 | 336 | 8,81 | 336 | 126,38 | 0,07 | 336 | 1,50 | 5,88 |
700 | 344 | 12,11 | 344 | 178,30 | 0,07 | 344 | 2,42 | 5,00 |
800 | 343 | 16,41 | 343 | 234,70 | 0,07 | 343 | 8,08 | 2,03 |
900 | 358 | 20,61 | 358 | 295,03 | 0,07 | 358 | 11,03 | 1,87 |
1000 | 351 | 25,59 | 351 | 366,16 | 0,07 | 351 | 13,69 | 1,87 |
2000 | 367 | 106,75 | 367 | 1585,84 | 0,07 | 367 | 56,63 | 1,89 |
3000 | 370 | 243,00 | 370 | 3598,53 | 0,07 | 370 | 128,66 | 1,89 |
(k-количество итераций, t-время (сек), S-ускорение)
Рис. 11.4. Пример возможной схемы выполнения параллельных потоков при наличии синхронизации (взаимоисключения)
Как показывают выполненные рассуждения, путь для достижения эффективности параллельных вычислений лежит в уменьшении необходимых моментов синхронизации параллельных участков программы. Так, в нашем примере мы можем ограничиться распараллеливанием только одного внешнего цикла for. Кроме того, для снижения количества возможных блокировок применим для оценки максимальной погрешности многоуровневую схему расчета: пусть параллельно выполняемый поток первоначально формирует локальную оценку погрешности dm только для своих обрабатываемых данных (одной или нескольких строк сетки), затем при завершении вычислений поток сравнивает свою оценку dm с общей оценкой погрешности dmax.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий