Please enable JavaScript.
Coggle requires JavaScript to display documents.
25.Этапы разработки параллельных алгоритмов (Распределение подзадач между…
25.Этапы разработки параллельных алгоритмов
Разделение вычислений на независимые части.
функциональный параллелизм
параллелизм по данным(ленточная, блочная, сетки, решетки
Оценка корректности:
Не увеличивает объем вычислений и необходимый объем памяти?
Возможна ли равномерная загрузка всех вычислительных элементов?
Достаточно ли выделенных частей для эффективной загрузки вычислительных элементов?
Выделение информационных зависимостей.
локальные(мало задач) и глобальные(все подзадачи
статические(взаимод известны до выполнения) и динамические
структурные и произвольные(неоднородные)
Оценка корректности:
Является ли одинаковой интенсивность взаимодействий для разных подзадач?
Является ли схема взаимодействия локальной?
Не препятствует ли выявленная информационная зависимость параллельному решению задачи?
Масштабирование набора подзадач.
масштабируемая система - производительность пропорциональна числу процессов. МАсштабирование, когда число задач не равно числу процесов
агрегация и декомпозиция
Оценка корректности:
Не ухудшится ли локальность вычислений?
Имеют ли подзадачи одинаковую вычислительную и коммуникационную сложность?
Соответствует ли количество задач числу имеющихся вычислительных элементов?
Зависят ли правила масштабирования от количества вычислительных элементов?
Распределение подзадач между вычислительными элементами.
Эффективность использования вычислительных элементов
Пути достижения хороших показателей эффективности: равномерное распределение вычислительной нагрузки между процессорами, минимальное количество сообщений, передаваемых между процессорами.
Балансировка: Статическая и динамическая
менеджер исполнитель
Оценка корректности:
Не приводит ли распределение нескольких задач на один процессор к росту затрат?
Существует ли необходимость динамической балансировки?
Не является ли Менеджер «узким» местом?