Эффективность распараллеливания

Цель параллельных вычислений

Цель параллельного программирования состоит в увеличении скорости сложных вычислений, заставляя несколько процессоров работать над проблемой одновременно (и согласованно!). Теоретически 100 процессоров будут действовать в 100 раз быстрее, чем один процессор. Как мы увидим ниже, все обстоит не так просто.

Высокопроизводительные алгоритмы включают в себя:

Особенностью всех суперкомпьютеров является возможность создания алгоритмов, выполняющих несколько действий (задач) одновременно и независимо друг от друга (параллелизм) с последующим обменом информации между процессами. Число процессоров у разных суперкомьютеров различно и будет неуклонно расти. Поэтому создаваемые программы должны быть масштабируемыми (то есть гибкими к числу процессоров). В многопроцессорной системе процессоры могут делить между собой некоторые аппаратные ресурсы: память, соединительную сеть и т. д. За счет использования общих ресурсов добавление каждого нового процессора может приводить к замедлению работы остальных процессоров. В этом случае говорят об ограниченной масштабируемости системы.

Проектирование параллельных алгоритмов является творческим процессом. Лучшие результаты будут при учете особенностей как самой задачи, так и архитектуры суперкомпьютера.

Общая задача делится на подзадачи меньшего размера, и затем определяется требуемая коммуникация между подзадачами. От конкретного числа процессоров желательно абстрагироваться.

Факторы, снижающие производительность алгоритма



left up right [Назад] [Оглавление] [Вперед]
Последнее обновление 21.11.2001 WebMaster