logo
3_Тексты лекций ПВС 2011

Что такое параллельные вычислительные системы и зачем они нужны

Введение

Что же такое параллельные вычислительные системы?

Большие задачи и параллельные вычисления

Большие задачи и большие вычислительные системы

Некоторые примеры использования параллельных вычислительных систем

Введение

Прошло немногим более 60 лет с момента появления первых электронных вычислительных систем. За это время сфера их применения охватила практически все области человеческой деятельности. Сегодня невозможно представить себе эффективную организацию работы без применения вычислительных систем в таких областях, как планирование и управление производством, проектирование и разработка сложных технических устройств, издательская деятельность, образование – словом, во всех областях, где возникает необходимость в обработке больших объемов информации. Однако наиболее важным по-прежнему остается использование их в том направлении, для которого они собственно и создавались, а именно, для решения больших задач, требующих выполнения громадных объемов вычислений. Такие задачи возникли в середине прошлого века в связи с развитием атомной энергетики, авиастроения, ракетно-космических технологий и ряда других областей науки и техники.

Что же такое параллельные вычислительные системы?

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

В настоящее время даже мощные персональные компьютеры соответствуют этому определению, так как имеют в своем составе многоядерные (двух-, четырех-, шестиядерные – по состоянию на начало 2011 г.) процессоры. Однако, в более «узком» смысле под параллельными вычислительныи системами подразумевают системы, состоящие из значительно большего числа ядер (тысячи, десятки, сотни тысяч и более).

Большие задачи и параллельные вычисления

Если создают большие параллельные вычислительные системы, значит они для чего-то нужны. Это что-то — большие задачи, которые постоянно возникают в са­мых различных сферах деятельности. Практическая потребность или просто любознательность всегда ставили перед человеком трудные вопросы, на ко­торые нужно было получать ответы. Строится высотное задание в опасной зоне. Выдержит ли оно сильные ветровые нагрузки и колебания почвы? Проектируется новый тип самолета. Как он будет вести себя при различных режимах полета? Уже сейчас зафиксировано потепление климата на нашей планете и отмечены негативные последствия этого явления. А каким будет климат через сто и более лет?

Подобного рода вопросы сотнями и тысячами возникают в каждой области. Уже давно разработаны общие принципы поиска ответов. Первое, что пыта­ются сделать, — это построить математическую модель, адекватно отражаю­щую изучаемое явление или объект. Как правило, математическая модель представляет собой некоторую совокупность дифференциальных, интеграль­ных, алгебраических или каких-то других соотношений, определенных в об­ласти, так или иначе связанной с предметом исследований. Решения этих со­отношений и должны давать ответы на поставленные вопросы.

Существующие вычислительные системы сами по себе не могут решить ни одной содержательной задачи. Они способны выпол­нять лишь небольшое число очень простых действий. Вся их интеллектуаль­ная сила определяется программами, составленными человеком. Программы также реализуют последовательности простых действий. Но эти действия целенаправленные. Поэтому искусство решать задачи с помощью вычислительной системы есть искусство превращения процесса поиска решения в процесс выполнения последовательности простых действий. Называется такое искусство разра­боткой алгоритмов.

Если математическая модель построена, то следующее, что надо сделать, — это разработать алгоритм решения задачи, описывающей модель. Довольно часто в его основе лежит принцип дискретизации изучаемого объекта и, ес­ли необходимо, окружающей его среды. Исследуемый объект и среда разбиваются на отдельные элементы и на эти элементы переносятся связи, дик­туемые математической моделью. В результате получаются системы уравне­ний с очень большим числом неизвестных. В простейших случаях число не­известных пропорционально числу элементов. Для сложных моделей оно на несколько десятичных порядков больше. Вообще говоря, чем мельче выби­рать элементы разбиения, тем точнее получается результат. В большинстве задач уровень разбиения определяется только возможностью вычислительной системы решить возникающую систему уравнений за разумное время. Но в некото­рых задачах, таких как изучение структуры белковых соединений, расшиф­ровка геномов живых организмов, разбиение по самой сути может доходить до уровня отдельных атомов. И тогда вычислительные проблемы становятся исключительно сложными даже для самых мощных вычислительных систем, в том числе, параллельной структуры.

Во все времена были задачи, решение которых находилось на грани воз­можностей существовавших средств. Вплоть до середины двадцатого столе­тия единственным вычислительным средством был человек, вооруженный в лучшем случае арифмометром или электрической счетной машиной. Ре­шение наиболее крупных задач требовало привлечения до сотни и более расчетчиков. Так как вычисления они проводили одновременно, то по су­ществу такой коллектив своими действиями моделировал работу многопро­цессорной вычислительной системы. Роль отдельного процессора в этой системе выполнял отдельный человек. При подобной организации вычисле­ний никак не могло появиться большое число крупных задач. Их просто некому было считать. Поэтому еще 50—60 лет назад весьма распространен­ным являлось мнение, что несколько мощных вычислительных систем смогут решить все практически необходимые задачи.

История опровергла эти прогнозы. Вычислительные системы оказались настолько эф­фективным инструментом, что новые и очень крупные задачи стали возни­кать не только в традиционных для вычислений областях, но даже в таких, где раньше большие вычислительные работы не проводились. Например, в военном деле, управлении, биологии и т. п. К тому же, использование вычислительных систем освободило человека от нудного и скрупулезного труда, связан­ного с выполнением операций. Это позволило ему направить свой интел­лект на постановку новых задач, построение математических моделей, разработку алгоритмов и при этом не бояться больших объемов вычислений. Подобные обстоятельства и привели к массовой загрузке вычислительных систем решением самых разных проблем, в том числе, очень крупных. Случилось то, что и должно было случиться: за исключением начального периода развития вычислительных систем спрос на самые большие вычислительные мощности всегда опережал и опережает предложение таких мощностей. Другое дело, что реа­лизовать как спрос, так и предложение оказалось трудно.

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

Большие задачи и большие вычислительные системы

На примере проблем моделирования климатической системы и исследова­ния обтекания летательных аппаратов рассмотрим как возникают очень боль­шие задачи и что за этим следует дальше.

В современном понимании климатическая система включает в себя атмо­сферу, океан, сушу, криосферу и биоту. Климатом называется ансамбль состояний, который система проходит за достаточно большой промежуток времени. Климатическая модель — это математическая модель, описываю­щая климатическую систему. В основе климатической модели лежат уравне­ния динамики сплошной среды и уравнения равновесной термодинамики. Кроме этого, в модели описываются все энергозначимые физические про­цессы: перенос излучения в атмосфере, фазовые переходы воды, облака и конвенция, перенос малых газовых примесей и их трансформация, мелко­масштабная турбулентная диффузия тепла и диссипация кинетической энергии и многое другое. В целом модель представляет систему трехмерных нелинейных уравнений с частными производными. Решения этой системы должны воспроизводить все важные характеристики ансамбля состояний реальной климатической системы.

Даже без дальнейших уточнений понятно, что климатическая модель исключительно сложна. Работая с ней, приходится принимать во внимание ряд серьезных обстоятельств. В отличие от многих естественных наук, в климате нельзя поставить глобальный натурный целенаправленный экспе­римент. Следовательно, единственный путь изучения климата — это прово­дить численные эксперименты с математической моделью и сравнивать мо­дельные результаты с результатами наблюдений. Однако и здесь не все так просто. Математические модели для разных составляющих климатической системы развиты не одинаково. Исторически первой стала создаваться мо­дель атмосферы. Она и в настоящее время является наиболее развитой. К тому же, за сотни лет наблюдений за ее состоянием накопилось довольно много эмпирических данных. Так что в атмосфере есть с чем сравнивать модельные результаты. Для других составляющих климатической системы результатов наблюдений существенно меньше. Слабее развиты и соответст­вующие математические модели. По существу только начинает создаваться модель биоты.

Общая модель климата пока еще далека от своего завершения. Не во всем даже ясно, как могла бы выглядеть совместная идеальная модель. Чтобы приблизить климатическую модель к реальности, приходится проводить очень много численных экспериментов и на основе анализа результатов вносить в нее коррективы. Как правило, пока эксперименты проводятся с моделями для отдельных составляющих климата или для некоторых их ком­бинаций. Наиболее часто рассматривается совместная модель атмосферы и океана. Недостающие данные от других составляющих берутся либо из ре­зультатов наблюдений, либо из каких-то других соображений.

Важнейшей проблемой современности является проблема изменения климата под влиянием изменения концентрации малых газовых составляющих, таких как углекислый газ, озон и др. Как уже отмечалось, климатический прогноз может быть осуществлен только с помощью численных экспериментов над моделью. Поэтому ясно, что для того чтобы научиться предсказывать измене­ние климата в будущем, уже сегодня надо иметь возможность проводить большой объем вычислений. Попробуем хотя бы как-то его оценить.

Рассмотрим модель атмосферы как важнейшей составляющей климата и предположим, что мы интересуемся развитием атмосферных процессов на протяжении, например, 100 лет. При построении алгоритмов нахождения численных решений используется упоминавшийся ранее принцип дискрети­зации. Общее число элементов, на которые разбивается атмосфера в совре­менных моделях, определяется сеткой с шагом в 1° по широте и долготе на всей поверхности земного шара и 40 слоями по высоте. Это дает око­ло 2,6х10б элементов. Каждый элемент описывается примерно 10 компонен­тами. Следовательно, в любой фиксированный момент времени состояние атмосферы на земном шаре характеризуется ансамблем из 2,6х107 чисел. Ус­ловия обработки численных результатов требуют нахождения всех ансамб­лей через каждые 10 минут, т. е. за период 100 лет необходимо определить около 5,3х106 ансамблей. Итого, только за один численный эксперимент приходится вычислять 1,4х1014 значимых результатов промежуточных вычислений. Если теперь принять во внимание, что для получения и дальнейшей обработки каждого промежуточного результата нужно выполнить 102—103 арифметических операций, то это означает, что для проведения одного численного эксперимента с глобальной моделью атмосферы необходимо вы­полнить порядка 1016—1017 арифметических операций с плавающей запятой.

Таким образом, вычислительная система с производительностью 1012 опера­ций в секунду будет осуществлять такой эксперимент при полной своей за­грузке и эффективном программировании в течение нескольких часов. Использование полной климатической модели увеличивает это время, как ми­нимум, на порядок. Еще на порядок может увеличиться время за счет не лучшего программирования и накладных расходов при компиляции про­грамм и т. п. А сколько нужно проводить подобных экспериментов! Поэто­му вычислительная система с триллионной скоростью совсем не кажется излишне быстрой с точки зрения потребностей изучения климатических проблем.

Большой объем вычислений в климатической модели и важность связанных с ней выводов для различных сфер деятельности человека являются посто­янными стимулами в деле совершенствования вычислительной техники. Так, на заре ее развития одним из следствий необходимости разработки эф­фективного вычислительного инструмента для решения задач прогноза по­годы стало создание Дж. фон Нейманом самой теории построения "обык­новенной вычислительной системы". В нашумевших в свое время проектах вычисли­тельных систем пятого поколения и во многих современных амбициозных проектах климатические модели постоянно фигурируют как потребители очень больших скоростей счета. Наконец, существуют проекты построения вычислительных систем огромной производительности, предназначенных специально для решения климатических проблем.

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

Приведенные доводы, скорее всего, убеждают, что для исследования климата действительно нужны очень мощные вычислительные системы. Тем более, что климат нельзя изучать, выполняя над ним целенаправленные эксперименты. Однако, остается вопрос, как много необходимо иметь таких систем. Ведь основная деятельность человека связана с созданием ма­териальных объектов, с чем или над чем можно проводить натурные экспе­рименты. Например, летательные аппараты можно испытывать в аэродинамических трубах, материалы — на стендах, сооружения — на макетах и т. п. Конечно, здесь также нужно проводить какие-то расчеты. Но стоит ли для этих целей использовать вычислительные системы, стоящие много милли­онов долларов? Возможно, для подобных расчетов достаточно ограничиться хорошим персональным компьютером или рабочей станцией?

Ответ зависит от конкретной ситуации. Возьмем для примера такую про­блему, как разработка ядерного оружия. Пока не был установлен мораторий на ядерные испытания, натурные эксперименты давали много информации о путях совершенствования оружия. И хотя при этом приходилось прово­дить очень большой объем вычислений, все же удавалось обходиться вычис­лительной техникой не самого высокого уровня. После вступления морато­рия в силу остался единственный путь совершенствования оружия — это проведение численных экспериментов с математической моделью. По своей сложности соответствующая модель сопоставима с климатической и для ра­боты с ней уже нужна самая мощная вычислительная техника. В аналогич­ном положении находится ядерная энергетика. А такая проблема, как рас­шифровка генома человека. Здесь также невозможны никакие глобальные эксперименты и опять нужна мощная вычислительная техника. Вообще, оказывается, что проблем, где невозможно или трудно проводить натурные эксперименты, не так уж мало. Это — экономика, экология, астрофизика, медицина и т. д. При этом часто возникают очень большие задачи.

Интересно отметить, что даже там, где натурные эксперименты являются привычным инструментом исследования, большие вычислительные системы начинают активно использоваться. Рассмотрим, например, проблему выбора компоновки летательного аппарата, обладающего минимальным лобовым со­противлением, максимально возможными значениями аэродинамического качества и допустимого коэффициента подъемной силы при благоприятных характеристиках устойчивости и управляемости в эксплуатационных режимах. Для ее решения традиционно использовались продувки отдельных деталей аппарата или его модели в аэродинамических трубах. Но вот несколько цифр. При создании в начале века самолета братьев Райт эксперименты в аэро­динамических трубах обошлись в несколько десятков тысяч долларов, бом­бардировщик 40-х гг. прошлого столетия потребовал миллион, а корабль многоразового использования "Шатл" — 100 млн. долларов. Столь же сильно возрастает время продувки в расчете на одну трубу — почти 10 лет для совре­менного аэробуса. Однако несмотря на огромные денежные и временные за­траты, продувки в аэродинамических трубах не дают полной картины обтека­ния хотя бы просто потому, что обдуваемый образец нельзя окружить датчиками во всех точках. Для преодоления этих трудностей также пришлось обратиться к численным экспериментам с математической моделью.

Определять аэродинамические характеристики летательного аппарата нужно уже на стадии проектирования. Необходимо также давать оценку различным вариантам компоновки, оптимизировать геометрические параметры, определять внешний облик с наилучшими характеристиками. Знание соответст­вующих данных нужно и в процессе летных испытаний при анализе их ре­зультатов для выработки рекомендаций по устранению выявленных недос­татков. Эта задача не может быть решена без информации о характере обтекания элементов аппарата и знания поля течения в целом. Как уже го­ворилось, экспериментальное получение такой информации по мере услож­нения летательных аппаратов становится все более труднодоступным делом.

В практике работы конструкторских организаций используются инженерные методы расчета, основанные на упрощенных математических моделях. Эти методы пригодны на самых ранних этапах проектирования. Они не могут учесть деталей течения, необходимых на углубленных этапах проектирова­ния, и не могут обеспечить требуемую точность расчетов. В большой облас­ти изменения физических параметров упрощенные модели вообще не при­менимы. Для углубленной стадии проектирования летательных аппаратов перспективными являются математические модели, основанные на неста­ционарных пространственных уравнениях динамики невязкого, нетеплопро­водного газа, в том числе, учитывающие уравнения состояния и уравнения вязкого пограничного слоя между поверхностью аппарата и обтекаемой сре­дой. Модели принципиально различаются для случаев сверхзвукового и до­звукового набегающего потока. Вообще говоря, случай дозвукового обтека­ния сложнее, т. к. около летательного аппарата возможно образование мест­ных сверхзвуковых зон. Все части аппарата здесь взаимно влияют друг на друга, и задача должна решаться глобально, т. е. во всей области, окружаю­щей летательный аппарат. Именно для расчета дозвуковых течений необхо­димо использовать вычислительные системы сверхвысокой производительности с большим объемом оперативной памяти.

Рассмотрим некоторые данные конкретного расчета. Рассчитывались различные варианты дозвукового обтекания летатель­ного аппарата сложной конструкции. Математическая модель требует зада­ния граничных условий на бесконечности. Реально область исследования берется конечной. Однако из-за обратного влияния границы ее удаление от объекта должно быть значительным по всем направлениям. На практике это составляет десятки длин размера аппарата. Таким образом, область исследо­вания оказывается трехмерной и весьма большой. При построении алгорит­мов нахождения численных решений опять используется принцип дискре­тизации. Из-за сложной конфигурации летательного аппарата разбиение выбирается очень неоднородным. Общее число элементов, на которые раз­бивается область, определяется сеткой с числом шагов порядка 102 по каж­дому измерению, т. е. всего будет порядка 106 элементов. В каждой точке надо знать 5 величин. Следовательно, на одном временном слое число неиз­вестных будет равно 5х106. Для изучения нестационарного режима прихо­дится искать решения в 102—104 слоях по времени. Поэтому одних только значимых результатов промежуточных вычислений необходимо найти около 109—1010. Для получения каждого из них и дальнейшей его обработки нуж­но выполнить 102—103 арифметических операций. И это только для одного варианта компоновки и режима обтекания. А всего требуется провести рас­четы для десятков вариантов. Приближенные оценки показывают, что об­щее число операций для решения задачи обтекания летательного аппарата в рамках современной модели составляет величину 1015—1016. Для достижения реального времени выполнения таких расчетов быстродействие вычисли­тельной системы должно быть не менее 109—1010 арифметических операций с плавающей запятой в секунду при оперативной памяти не менее 109 слов.

Успехи в численном решении задач обтекания позволили создать комбини­рованную технологию разработки летательных аппаратов. Теперь основные эксперименты, особенно на начальной стадии проектирования, проводятся с математической моделью. Они позволяют достаточно достоверно опреде­лить оптимальную компоновку, проанализировать все стадии процесса об­текания, выявить потенциально опасные режимы полета и многое другое. Все это дает возможность снизить до минимума дорогостоящие натурные эксперименты в аэродинамических трубах и сделать их более целенаправ­ленными. Конечно, численные эксперименты на высокопроизводительных вычислительных системах тоже обходятся недешево. Но все же, они значи­тельно дешевле, чем натурные эксперименты. Кроме этого, их стоимость постоянно снижается. Например, по данным США она уменьшается в 10 раз каждые 10 лет. Объединение численных и натурных экспериментов в единый технологический процесс привело к принципиально новому уровню аэродинамического проектирования. В результате значительно возросло ка­чество, уменьшились стоимость, сроки проектирования и время испытаний летательных аппаратов. Совершенствование математических моделей сдела­ет этот процесс еще более эффективным. Как и в примере с климатом, бо­лее совершенные модели потребуют применения более мощных вычисли­тельных систем. В свою очередь, появление новых больших вычислительных систем опять даст толчок совершенствованию моделей и т. д. Снова убеждаемся в том, что большие задачи и большие вычислительные системы с точки зрения их развития ока­зывают влияние друг на друга.

В рассмотренной проблеме выбора компоновки летательного аппарата легко увидеть нечто большее, имеющее отношение к самым различным областям деятельности человека. В самом деле, при создании тех или иных изделий, механизмов и сооружений, так же как и при проведении многих научных экспериментов весь процесс от возникновения идеи до ее реализации мож­но грубо разбить на следующие этапы. Сначала каким-то способом разраба­тывается общий проект и готовится технологическая документация. Затем строится опытный образец или его макет. И, наконец, проводится испыта­ние. По его результатам в опытный образец вносятся изменения и снова проводится испытание. Цикл образец—испытание—образец повторяется до тех пор, пока опытный образец не станет действующим, удовлетворяя всем заложенным в проект требованиям. Проведение каждого испытания и вне­сение очередных изменений в опытный образец почти всегда требует много денег и много времени. Поэтому одна из общих задач заключается в том, чтобы на пути превращения опытного образца в действующий сократить до минимума как число испытаний, так и их стоимость и время проведения. По существу это можно сделать единственным способом — заменить часть натурных экспериментов или большинство из них, а в идеале даже все, экс­периментами с математическими моделями. Значимость численных экспе­риментов в общем процессе зависит от качества модели. Если она хорошо отражает создаваемый или изучаемый объект, натурные эксперименты ока­зываются необходимыми достаточно редко, что, в свою очередь, приводит к большим материальным и временным выгодам. В этой ситуации весь про­цесс во многом превращается в своего рода компьютерную игру, в которой можно посмотреть различные варианты решений, обнаружить и исследовать «узкие» места, выбрать оптимальный вариант, проанализировать последствия такого выбора и т. д. И лишь изредка отдельные решения придется прове­рять на натурных экспериментах. Это обстоятельство, безусловно, стимули­рует создание самых совершенных математических моделей в различных областях.

Итак, очевидно влияние больших задач на развитие вычис­лительной техники и наоборот. Постепенно в эту сферу втягивается много чего другого. Развитие математического моделирования приводит к более сложным описаниям моделей. Для их осмысления и разработки принципов исследования приходится привлекать новейшие достижения из самых раз­ных областей математики. Дискретизация задач приводит к системам урав­нений с огромным числом неизвестных. Прежние методы их решения не всегда оказываются пригодными по соображениям точности, скорости, тре­буемой памяти, структуре алгоритмов и т. п. Возникают и реализуются но­вые идеи в области вычислительной математики. В конечном счете, для бо­лее совершенных математических моделей создаются новые методы реализации численных экспериментов. Как правило, они требуют больших вычислительных затрат и снова не хватает вычислительных мощностей. А далее опять все идет по кругу, о чем уже не один раз говорилось выше.

Решаясь на регулярное использование численных экспериментов, приходится заботиться о качестве их проведения. Оно определяется многими фактора­ми. Этапы, которые проходит каждый эксперимент, укрупненно отражены на рис. 1. Данным рисунком подчеркивается простая мысль: если хотя бы один из этапов на рис. 1 окажется неэффективным, то неэффек­тивным будет и весь численный эксперимент.

Рис. 1. Этапы численного эксперимента

Следовательно, внимательному изучению должны подвергаться все этапы численного эксперимента. Это важно понять, запомнить и постоянно реализовывать на практике.