А.И.Илюшин, М.А.Оленин, С.А.Васильев - Решение проблемы параллельных вычислений на основе понятий «пространство-время» (1185570), страница 4
Текст из файла (страница 4)
Синхронизация вызовов между объектамиВзаимодействие одного объекта с другим объектом всегда происходит через служебныйобъект-ссылку. При неравенстве локальных времен вызывающего и вызываемого объектасистема OST откладывает вызов до совпадения этих времен.Объект-ссылка на «фактического» соседа в системе OST представляет собой специальныйобъект связи, который обеспечивает локальный вызов (в случае нахождения вызывающего ивызываемого объектов в одном адресном пространстве) или удаленный вызов (в случаенахождения вызывающего и вызываемого объектов на разных процессорах) c соблюдениемсформулированного выше условия синхронизации.3.2.2.
Методы соблюдения условия синхронизацииВ настоящее время известно много разных алгоритмов синхронизации по времени [4]. Одинкрайний случай – это ослабление условия разрешения вызова до требования, чтобы времявызывающего объекта было не меньше времени вызываемого. В этом случае разрешаетсямного параллельных вычислений, но могут возникать ситуации, когда время в однаждывызванном объекте в результате этого вызова ушло вперед, а затем пришел вызов из другогообъекта, локальное время которого оказалось меньше времени вызываемого объекта.
В этомслучае необходим откат системы к более раннему состоянию (возможно каскадный).Другой крайний случай – это алгоритм, глобально упорядочивающий все локальные временаи допускающий вызов только в том случае, если он помечен глобально минимальнымвременем.
В этом случае параллелизм счета будет отсутствовать. Вообще говоря,предполагается, что пользователю может быть предоставлен набор алгоритмов, из которогоон сможет выбрать тот алгоритм, который является оптимальным для конкретнойприкладной задачи.По нашему мнению оптимальными для большинства случаев будут алгоритмы без откатов,которые являются промежуточными между описанными выше двумя крайностями. Правилосинхронизации именно для такого алгоритма приведено в разделе 3.2.143.3. Файл объектовДля полноценной работы с системой OST пользователю нужны простые средства создания ихранения прикладных систем. Для решения этой задачи авторами работы предлагаетсяиспользовать файл объектов — универсальный контейнер для хранения модели.3.3.1. Создание моделиДля создания модели пользователь пишет программу создания модели. В ходе работы этойпрограммы создается файл объектов, в который помещается множество объектовприкладной системы. Объекты, помещенные в файл, хранятся в «сериализованном» виде.Естественно, что в дальнейшем в момент счета прикладной задачи «сериализованные»объекты будут «подкачиваться» из файла в оперативную память, «десериализоваться» и«считаться».
Объекты, составляющие модель, конечно, также могут создаваться иуничтожаться динамически в процессе основного счета.После помещения в файл объектов всех объектов модели, в него помещаются вседополнительные компоненты, которые необходимы для функционирования прикладнойсистемы. К таким компонентам относятся: данные (например, начальные и граничныеусловия), исходные коды, библиотеки и прочее.В итоге работы программы получается единый файл объектов, который содержит в себе всенеобходимое для запуска и последующего функционирования модели на МВС.“Почти” исполняемый пример, содержащий все этапы создания параллельной программнойсистемы, приведен в Приложении 2.3.3.2.
Развертывание модели на МВСВ системе OST заложен принцип универсальности работы с файлами объектов прииспользовании на различных вычислительных мощностях. Для пользователя это означает,что модель можно развернуть на счет из файла объектов как на домашнем компьютере, так ина МВС, ничего специально не изменяя в самой модели или файле объектов.В процессе подготовки модели к счету система OST в автоматическом режиме распределитобъекты из файла объектов по доступным вычислительным мощностям и установит связи,согласно заданным топологиям.
При необходимости для оптимизации использованиявычислительных мощностей системой OST может быть задействован механизм подкачек,при использовании которого некоторые объектов могут быть перемещены междупроцессорами или вытесняться из счета в файл объектов.Заметим, что при данной схеме работы естественным образом реализуется и механизмконтрольных точек и рестартов.
В файле объектов в любой момент времени хранитсятекущее состояние объектов модели и, возможно, несколько поколений этих состояний.Поэтому счет может быть возобновлен с того места, где он был по разным причинамостановлен, в том числе и на другой МВС.154. Практические результатыС помощью системы OST было запрограммированы и просчитаны на разныхсуперкомпьютерах как тестовые, так и реальные задачи из области газовой динамики.В качестве одной из тестовых задач была использована задача параллельного умноженияматриц, которая позволяет наглядно продемонстрировать ускорение расчетов при измененииколичества параллельных частей.
Для решения данной задачи был реализован алгоритм сленточным разделением матриц [5]. В результате тестовых расчетов на МВС были полученырезультаты, демонстрирующие почти линейное ускорение при увеличении количествапроцессоров МВС (см. Приложение 1, Пример 1).В качестве одной из реальных задач была реализована параллельная версия комплексапрограмм M2DGD для решения двухмерных задач газовой динамики [6].
Конкретнорешалась задача об обтекании конического тела. Для этой задачи были проведеныприкладные расчеты с использованием различного количества параллельных частей.Результаты работы параллельного комплекса программ полностью совпали с эталоннымирезультатами, полученными в однопоточном расчете.Было проведено сравнение эффективности распараллеливания по сравнению с параллельнойверсией M2DGD, реализованной с помощью MPI. На одинаковых параметрах задачи обереализации давали практически идентичные времена счета.
Это сравнение показало, чтоиспользование средств OST для автоматизации построения связей и синхронизации непривело к потере эффективности полученной вычислительной модели по сравнению смоделью, в которой те же проблемы решались вручную (см. Приложение 1, Пример 2).По мнению авторов, результаты тестов и реальных расчетов продемонстрировалиэффектность и простоту работы с системой OST.5. ЗаключениеОсновной результат работы, с точки зрения авторов, состоит в фактическом сведениисложности создания распределенных параллельных программных систем к сложностипрограммирования локальных систем.В предлагаемых новых программных средствах формализованы понятия "пространствовремя".
Такая формализация продолжает общую тенденцию развития средствпрограммирования, заключающуюся в постепенной формализации общих понятий изприкладных областей. Примеры: сложные структуры данных предназначены дляотображения на них сложных структур из прикладных областей; понятие процесса отражаетпонятие процесса изменения прикладной области; понятие объекта отражает прикладнойобъект и т.п. Формализация именно самых общих понятий позволяет эффективно вынести"за скобки" в операционную среду те действия, которые каждый прикладной программиствынужден был раньше повторять в каждой своей программе.При создании параллельных программных моделей для любых физических областей прилюбом методе необходимо решить три основные проблемы:161.
Как формально описать параллельно эволюционирующие и взаимодействующие впроцессе эволюции части физической области?2. Как описать топологию связей между взаимодействующими частями параллельнойсистемы? Для областей сложной структуры, отображаемых на десятки или сотни тысячпроцессорных ядер, это сложная задача.3. Как синхронизовать параллельный счет параллельно эволюционирующих программных(вычислительных) объектов?Первая проблема относительно успешно уже решена, например, в объектноориентированных программных системах путем описания части физической области в видепрограммного объекта в смысле одного из О-О языков (С++, Ява, Питон). Решение двухдругих проблем в настоящее время практически полностью возлагается на прикладныхпрограммистов, которые раз за разом решают фактически одну и ту же задачу с помощьюязыковых средств низкого уровня.Основная идея реализованного метода решения этих двух проблем заключается вформализации в виде соответствующих программных средств совершенно естественных дляфизических областей понятий "пространство-время".Понятие "времени" давно используется в программировании, но в очень узких областях моделировании дискретных устройств, моделировании систем управления в реальномвремени.
Как универсальный механизм синхронизации общего назначения, заменяющийизвестные в настоящий момент механизмы синхронизации параллельных действий, ранее неиспользовался.Понятия "пространство" и "окрестность объекта" в виде "списка формальных соседейобъекта" (принципиально обобщающее понятие - "список формальных параметровподпрограммы") ранее не использовались. Эти понятия позволяют упростить описаниетопологии связей, существенно используются при синхронизации путем введения"локального времени" в окрестности объекта. Физический смысл синхронизации полокальному времени заключается в том, что в случае конечной скорости распространениявозмущений возможен параллельный счет «удаленных» друг от друга частей физическойобласти для разных моментов времени, так как влияние просчитанных измененийраспространяется только на некоторую окрестность объекта.В заключение хотелось бы еще раз подчеркнуть, что проблемы задания связей междучастями распределенной системы и синхронизации эволюции этих частей тем или инымспособом должны решаться и решаются в любой системе для распределенных вычислений.Отличие данной работы в том, что решение этих проблем дается в общем виде на основепонятий, которые отражают только общие для всех рассматриваемых частных случаевсвойства и не содержат таких свойств, которые присутствуют в одном частном случае, ноотсутствуют в другом.
Иногда высказывается мнение, что применение некоторого общегосредства для широкого класса частных случаев будет во многих случаях неэффективно. Ноэто верно только тогда, когда делается попытка универсального использования средства,несущего специфику узкого класса случаев. Если же обобщение сделано корректно, то егоконкретизация для частного случая в принципе не приводит к неэффективности.176. Литература[1] O'Hanlon, C.