Приложение. Параллельные вычисления на кластерах из персональных компьютеров в математической физике (В.Е.Карпов, А.И.Лобанов)
1.Введение
Одним из источников сложных задач, описываемых уравнениями в частных производных, является современная физика плазмы. Для исследований в области управляемого термоядерного синтеза создаются установки, способные генерировать мощные энергетические импульсы. Актуальными становятся вопросы моделирования динамики плазмы в таких установках.
Соответствие с экспериментами дает численное моделирование на основе сложных математических моделей. При этом резко возрастает объем выполняемых расчетов. Лет 10-12 назад использовать полные модели не позволяли возможности вычислительной техники. Сейчас требуется применение параллельных вычислительных систем. Для проведения параллельных расчетов разрабатываются специальные методы. Однако существует ряд апробированных методов и комплексов программ для обычных компьютеров. Анализ их внутреннего параллелизма и адаптация для выполнения на параллельных ЭВМ становятся необходимыми.
Один из способов повышения производительности ЭВМ — развитие элементной базы, ведущее к уменьшению времени выполнения процессором элементарных операций. Согласно эмпирическому закону Мура (Moore) [P.3], производительность процессоров удваивается каждые полтора года, но конечному пользователю требуется решение задачи уже сейчас. Неудовлетворенные запросы заставляют разработчиков компьютерных систем искать другие способы повышения производительности, например, за счет совмещения по времени выполнения операций несколькими физическими устройствами.
Идея одновременного использования двух и более устройств в вычислительных машинах стала внедряться с конца 1950-х годов. Первоначальные изменения в конструкции не затрагивали алгоритмических основ решения задач. Они допускали совместную работу нескольких программ, требуя более совершенной организации процесса выполнения заданий, но практически не позволяли ускорить решение задачи.
Существенного повышения производительности удалось добиться после внесения в архитектуру ЭВМ принципов параллельной обработки данных. Известные приемы конвейеризации этапов выполнения различных команд процессора, применение в одном процессоре нескольких функциональных устройств позволяют ускорить решение задачи на уровне машинных команд. Такой параллелизм используется при работе процессоров с очень большим командным словом — VLIW -процессоров (Very Large Instruction Word). На современном этапе этот параллелизм скрыт от прикладного программиста. Ответственность за его эффективное использование возлагается на разработчиков процессоров или компиляторов.
Наибольшего увеличения производительности удалось достичь с появлением параллельных вычислений. Термин "параллельные вычисления" относится к ускорению решения задач за счет одновременного использования нескольких процессоров. Параллельные вычисления стали особенно популярными в конце 80-х-начале 90-х годов XX века.
К применению параллельной техники оказались не готовы специалисты, освоившие программирование на последовательных машинах. Потребовалось создание алгоритмов, пригодных для реализации на параллельных ЭВМ. Научная мысль одновременно продвигалась в двух направлениях. Первым стало исследование на параллельность уже существующих алгоритмов для последовательных компьютеров [P.4]. Вторым — разработка новых алгоритмов, специально предназначенных для параллельных комплексов [P.5], [P.6].Необходимое условие для параллельной реализации алгоритма — наличие у него внутреннего параллелизма, т.е. существование ярусно-параллельной формы с большой шириной ярусов. В концепции неограниченного параллелизма [P.7] лежит предположение о том, что вычислительная система не накладывает никаких ограничений на алгоритм. Тогда это же условие полагается достаточным. Опыт реализации показал ошибочность предположения о достаточности. На машинах с одной архитектурой алгоритмы могли показывать высокую эффективность, в то время как на машинах с другой архитектурой эти же алгоритмы работали медленнее своих последовательных версий. Но анализ алгоритмов на наличие внутреннего параллелизма необходим для любой параллельной программы, а концепция неограниченного параллелизма позволяет получить оценку максимально возможного ускорения.
Для сложных задач такой анализ — весьма трудоемкий процесс. При его проведении используются различные инструментальные программы. По большей части это компиляторы, которые не только автоматически выявляют наличие внутреннего параллелизма, но и готовят пригодный к параллельному исполнению машинный код.
Для вычислительных комплексов с распределенной памятью наличие у программы значительного внутреннего параллелизма еще не означает, что она будут эффективно работать. Свою роль здесь начинает играть соотношение времен выполнения параллельных частей программы и обменов информацией между процессорами. Если у пользователя есть возможность снять временной профиль последовательной программы на своей вычислительной системе, то эти соотношения могут быть учтены.
В качестве примера использования параллельных технологий рассмотрим задачу модернизации экспериментальной установки.