Федеральное агентство по образованию Нижегородский государственный университет им. Н.И. Лобачевского
ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ПАРАЛЛЕЛЬНЫЕ ВЫЧИСЛЕНИЯ НА КЛАСТЕРНЫХ СИСТЕМАХ Материалы Седьмой Международной конференции-семинара (Нижний Новгород, 26–30 ноября 2007 г.)
Нижний Новгород Издательство Нижегородского госуниверситета 2007
УДК 681.3.012:51 ББК 32.973.26–018.2:22 В 93
В 93 Высокопроизводительные параллельные вычисления на кластерных системах. Материалы Седьмой Международной конференции-семинара. – Нижний Новгород: Изд-во Нижегородского госуниверситета, 2007. 443 с. ISBN 978-5-91326-068-0 Редакционная коллегия: Р.Г. Стронгин (отв. редактор), В.П. Гергель (зам.отв. редактора), Д.И. Батищев, В.В. Воеводин, В.А. Гришагин, Ю.Г Евтушенко, Л.В. Нестеренко, Я.Д. Сергеев, Б.Н. Четверушкин, В.И. Швецов Сборник материалов Седьмой Международной конференции-семинара, состоявшейся в Нижегородском государственном университете им. Н.И. Лобачевского 26–30 ноября 2007 г., содержит доклады, посвященные теоретической и практической проблематике параллельных вычислений, ориентированных на использование современных многопроцессорных архитектур кластерного типа.
ISBN 978-5-91326-068-0
ББК 32.973.26–018.2:22
Конференция организована в рамках Инновационной образовательной программы ННГУ: Образовательно-научный центр «Информационно-телекоммуникационные системы: физические основы и математическое обеспечение»
Поддержка конференции Российский фонд фундаментальных исследований Компания Intel Technologies Компания IBM Компания Т-Платформы © Нижегородский государственный университет им. Н.И. Лобачевского, 2007
ПРЕДИСЛОВИЕ 26–30 ноября 2007 года Нижегородский государственный университет им. Н.И. Лобачевского (учредитель), Вычислительный центр РАН, Институт математического моделирования РАН при поддержке компании Интел и Нижегородского фонда содействия образованию и исследованиям провели в Нижнем Новгороде Седьмую Международную конференцию-семинар и Всероссийскую молодежную школу «Высокопроизводительные параллельные вычисления на кластерных системах». Главной задачей проведения конференции и школы было обсуждение основных аспектов организации высокопроизводительных вычислений в кластерных компьютерных системах, активизации научно-практической деятельности исследователей в этой перспективной области развития современных средств вычислительной техники, обмен опытом учебно-образовательной деятельности при подготовке специалистов в области параллельных вычислений. На конференции рассмотрены следующие вопросы параллельных вычислений: принципы построения кластерных вычислительных систем; методы управления параллельными вычислениями в кластерных системах; параллельные алгоритмы решения сложных вычислительных задач; программные среды и средства для разработки параллельных программ; прикладные программные системы параллельных вычислений; методы анализа и оценки эффективности параллельных программ; подготовка специалистов в области параллельных вычислений. Материалы сборника включают как доклады, так и тезисы докладов (публикуются частично в авторской редакции). Проведение № 07-01-06123. 4
конференции
поддержано
грантом
РФФИ
СИСТЕМА СВЯЗИ НА ГРАФИЧЕСКОМ ПРОЦЕССОРЕ А.И. Акапьев Нижегородский государственный технический университет Введение Последние пять лет наблюдается значительный рост производительности процессоров графических плат. Начиная с 2003 года чистая вычислительная мощность графических плат превышает вычислительную мощность центрального процессора. Также стоит отметить, что темпы наращивания вычислительной мощности графических чипов значительно выше, чем ядер центральных процессоров. Почему же столь значительные вычислительные возможности не были использованы ранее для задач, отличных от обработки графики? На это есть множество причин. Во-первых, программирование графических чипов рассматривалось только с позиций обработки графики, поэтому для неграфических задач требовалось использовать графически ориентированный интерфейс программирования. Во-вторых, узкая специализация под обработку только графической информации позволяла применять вычислительные операции и хранение данных в памяти с малой точностью, что для графических приложений было приемлемо, а для задач расчётов и компьютерного моделирования – нет. Со временем точность выполнения вычислений и хранения численных значений увеличивалась, разрабатывались программы расчётов с использованием графического интерфейса программирования. Летом 2006 года компания AMD/ATI первая открыла неграфически ориентированный интерфейс программирования, в ноябре 2006 года следом последовала NVIDIA. С этого момента точность вычислений стала достаточной для многих задач, а использование неграфического программного интерфейса позволило заметно облегчить программирование. Так как современные алгоритмы обработки сигналов для осуществления беспроводной связи требуют объёмных вычислений, которые обычно реализуются на ПЛИС, то использование мощного унифицированного оборудования, такого как современная видеокарта, выглядит очень привлекательно. 5
В докладе показано, каким образом можно использовать вычислительные возможности современных графических процессоров, на примере реализации системы связи MIMO. Особенности архитектуры графических процессоров Современные графические процессоры являются высокопараллельными вычислительными устройствами. Мы будем ориентироваться на графические процессоры серии G80 фирмы NVIDIA. Большая производительность достигается за счёт использования массива мультипроцессоров, где каждый мультипроцессор состоит из набора SIMD (Single Instruction Multiple Data – одна инструкция, много данных) процессоров. Пользовательский интерфейс организован таким образом, что пользователю необходимо распределять вычислительную нагрузку как по мультипроцессорам, так и по отдельным SIMD-процессорам каждого мультипроцессора. Структурная схема описываемой модели вычислений представлена на рис. 1.
Рис. 1. Структурная схема модели вычислений на графических чипах G80
Схема работы программы на графическом процессоре следующая: Из основной памяти компьютера в память графической карты загружается программа, созданная пользователем; Пользователь задаёт количество блоков и потоков в каждом блоке (число потоков для всех блоков одинаково); Программа одновременно исполняется всеми потоками каждого блока; 6
Определение, над какой частью данных работает каждый поток, осуществляется на основе номера блока и номера потока в блоке; По завершении работы всех созданных потоков пользователь копирует результат вычислений из памяти графической платы в основную память компьютера. Подход к написанию программ для графического процессора сильно отличается от подхода, применяемого при написании программ для последовательного процессора. При программировании с использованием множества потоков требуется тщательно планировать синхронизации параллельно исполняющихся потоков и эффективно использовать иерархию памяти, управление которой отчасти контролируется программистом (на графической плате присутствуют несколько модулей памяти большого объема с медленным доступом и несколько модулей памяти с быстрым доступом, но имеющих малый объем). При написании программ для последовательного процессора нет необходимости в синхронизации, так как исполняется только один поток программы. Контроль над использованием иерархической памяти полностью осуществляется компилятором, используемым при сборке программы. Для эффективного использования данной системы необходимо переосмысление алгоритмов обработки данных. В докладе показано, каким образом можно реализовать симулятор MIMO-системы на графическом чипе. Программирование протоколов беспроводной связи Современные беспроводные протоколы используют ресурсоёмкие алгоритмы обработки сигналов. Наибольшую нагрузку на вычислительную систему создают алгоритмы физического уровня (по модели открытых систем OSI), такие как алгоритмы демодулятора и декодера. Перенесение данных алгоритмов на графические (многоядерные) процессоры может позволить избавиться от специализированных и дорогих сигнальных процессоров. Для выяснения пригодности использования графических процессоров в реальных задачах обработки сигналов был разработан набор программ, позволяющих тестировать различные алгоритмы в условиях, приближенных к реальным. В данной системе трафик любого сетевого приложения, работающего на ОС Windows, можно направить на обработку через графический чип, на котором реализована система
7
связи. Таким образом, разрабатываемые алгоритмы тестируются при использовании реальных приложений и моделей трафика. Архитектура тестовой системы Принцип работы тестовой системы представлен на рис. 2. Здесь в качестве примера изображено взаимодействие двух обычных сетевых приложений, браузера и Web-сервера, запущенных на одном и том же компьютере и передающих сетевые пакеты через тестовую систему.
Рис. 2. Принцип работы системы связи, реализованной на графическом процессоре
Система состоит из двух основных компонентов: 1. Приложение, работающее в режиме пользователя; 2. Драйвер сетевого устройства. Основная проблема, стоявшая перед разработчиком, заключалась в перенаправлении трафика сетевых приложений, работающих под ОС Windows, на обработку графическим процессором. Было решено создать драйвер сетевой карты и сделать так, чтобы приложение посылало сетевые пакеты через этот драйвер. Также драйвер необходим и для того, чтобы передавать сетевые пакеты, пропущенные через разрабатываемую систему связи, обратно другому сетевому приложению, работающему под ОС Windows. На рис. 2 можно видеть, что браузер через операционную систему передаёт данные драйверу сетевого устройства (экземпляр 1), а от второго экземпляра драйвера данные через операционную систему передаются Web-серверу. Было бы удобно работать с графическим чипом напрямую из драйвера сетевого устройства и передавать данные от одного экземпляра драйвера другому, но использование возможностей 8
графического чипа возможно лишь из режима пользователя, а драйвер работает в режиме ядра. Именно для этих целей в схему был введен еще один компонент – «Пользовательское приложение». Пользовательское приложение взаимодействует с обоими экземплярами драйверов и управляет работой графического процессора. Так, данные, пришедшие от браузера, экземпляр 1 драйвера перенаправляет пользовательскому приложению, которое, в свою очередь, отправляет их на обработку графическому процессору. После того как графический процессор совершил необходимые преобразования над данными (например, помехоустойчивое кодирование, модуляция, симуляция влияния среды распространения, демодуляция, декодирование), данные передаются через экземпляр 2 драйвера Web-серверу. Ответ Web-сервера следует в точности по обратному пути. MIMO-симулятор В архитектуре тестовой системы, рассмотренной выше, «Пользовательское приложение» является тем звеном передачи трафика, в которое возможно встраивание любых алгоритмов обработки информации канального и физического уровней. В качестве такого алгоритма был выбран алгоритм модулятора-демодулятора MIMO (Multiple Input – Multiple Output) системы. Реализованный на графическом чипе алгоритм, использующий MQAM модуляцию, был протестирован на корректность работы. На рисунке 3 изображены кривые помехоустойчивости, полученные при использовании алгоритмов, реализованных на центральном процессоре и графическом процессоре.
9
0,45
CPU
0,4
GPU
0,35
BER
0,3 0,25 0,2 0,15 0,1 0,05 0 -6
-1
4
9
Отношение сигнал - шум, дБ
Рис. 3. Зависимость числа ошибок на бит переданной информации от отношения сигнал-шум
Видим, что кривые помехоустойчивости для симулятора, работающего на центральном процессоре, и симулятора, исполняющегося на графическом процессоре, совпадают. Это означает, что точность вычислений у обоих симуляторов одинакова. Перейдем к сравнению скоростей работы обоих симуляторов. CPU–симулятор
GPU–симулятор
Intel E6600
NVIDIA 8000 GTX
Время исполнения при передаче 1000 MIMO-символов, каждый из которых имеет размер 192 бита, с
14.422
1.585
Время исполнения при передаче 1000 MIMO-символов, каждый из которых имеет размер 256 бит, с
18.453
2.132
Время исполнения при передаче 1000 MIMO-символов, каждый из которых имеет размер 512 бит, с
37.266
4.184
Модель аппаратуры
Таблица 1. Сравнение работы симуляторов
Из таблицы 1 видим, что производительность симулятора, работающего на GPU, приблизительно в 8.5 раз выше, чем симулятора, работающего на центральном процессоре.
10
Заключение В докладе разработаны вопросы построения симулятора MIMOсистемы, включая интерфейс взаимодействия с операционной системой, приведены характеристики производительности разработанного симулятора на графическом процессоре и сравнение с симулятором, реализованным на центральном процессоре. В дальнейшие планы входит реализация кодера-декодера для канала связи и разработка некоторых частей MAC уровня. Литература 1. Прокис Д. Цифровая связь. Пер. с англ. / Под ред. Д.Д. Кловского. – М.: Радио и связь, 2000. – 800 с.: ил. 2. Сорокина С.И. и др. Программирование драйверов и систем безопасности: Учеб. пособие. СПб.: БХВ-Петербург, М.: Издатель Молгачева С.В., 2003. – 256 с.: ил. 3. Hesham El-Rewini and Mostafa Abd-El-Barr. Advanced computer architecture and parallel processing. – John Wiley & Sons, Inc., Hoboken, New Jersey. 2005. – 272 p. 4. NVIDIA CUDA Programming Guide, http://developer.download.nvidia.com/compute/cuda/1_0/NVIDIA _CUDA_Programming_Guide_1.0.pdf Контакты
[email protected] ВЫЧИСЛИТЕЛЬНАЯ МОДЕЛЬ НЕЙРОАЛГОРИТМА МНОГОСЛОЙНОГО ПЕРСЕПТРОНА Н.Г. Аксак, А.Ю. Тыхун Харьковский национальный университет радиоэлектроники Введение Нейронные сети (НС) находят в настоящее время широкое применение в самых различных сферах деятельности благодаря параллельной схеме вычисления, устойчивости к сбоям, изменяющейся архитектуре. В [1] приведены определения нейронной сети, нейронного алгоритма и нейрокомпьютера, опираясь на которые в работе
11
предложена реализация нейронного алгоритма на высокопроизводительных вычислительных структурах. Как правило, нейронные алгоритмы реализуются программно на однопроцессорных системах. Время обучения нейронных сетей, особенно при использовании неоптимальной топологии сети и больших объемах исходных данных, обрабатываемых последовательно, может быть очень велико. Для ускорения обучения нейронных сетей предлагается использовать симметричные мультипроцессорные системы (SMP), системы с массовым параллелизмом (МРР) и кластерные системы. При использовании МPР-системы для решения поставленной задачи параллельно вычисляются нейроны одного слоя на числе процессоров равном количеству нейронов в слое. Однако при работе с параллельным алгоритмом на МPР-системе, при значительном увеличении количества процессоров в системе растет время на передачу данных между процессорами и возможен обратный эффект – время обучения НС может возрастать. Производительность систем с распределенной памятью очень сильно зависит от производительности коммуникационной среды. Коммуникационную среду можно достаточно полно охарактеризовать параметрами: латентностью (временем задержки при посылке сообщения), пропускной способностью (скоростью передачи информации), временем задержки коммуникационного оборудования (концентратора) и простоя заявок в очередях при неправильной балансировке нагрузки. Развитие коммуникационных технологий, а именно, появление высокоскоростного сетевого оборудования (например, новый Infiniband-продукт – коммутатор Voltaire Grid Director IRS 2012) и специального программного обеспечения (наиболее распространенная библиотека MPI, реализующего механизм передачи сообщений над стандартными сетевыми протоколами), сделало кластерные технологии общедоступными. Многослойный персептрон Для решения многих практических задач зарекомендовал себя многослойный персептрон (МП).
12
[2]
хорошо
Рассмотрим МП c архитектурой N i − N j − N k , где N i - количество нейронов во входном слое, N j - количество нейронов в скрытом слое, Nk
- количество нейронов в выходном слое (рис.1).
Рис. 1. Архитектура многослойного персептрона
Алгоритм обучения МП состоит из последовательных взаимозависимых этапов обработки, причем каждый этап состоит из совокупности независимых операций, выполняющихся параллельно. В качестве функции активации для всех слоев выбрана сигмоидальная функция. В общем случае алгоритм обучения НС состоит из следующих этапов. 1. Вычисление выходов нейронов на основе обучающего примера ⎛ i ⎞ y (j1) (t ) = ϕ ⎜ ∑ wlj(1) (t ) xl (t ) + b (j1) ⎟ , для скрытого слоя, (1) ⎝ l =1 ⎠ ⎛ j ⎞ yk( 2 ) (t ) = ϕ ⎜⎜ ∑ wlk( 2 ) (t ) yl(1) (t ) + bk( 2 ) ⎟⎟ для выходного слоя, (2) ⎝ l =1 ⎠, где wij(1) - синоптический вес связи i–го входа с j–ым нейроном, X = [x1 , x2 ,..., xi ] – вектор входных сигналов, b (j1) - порог j–ого нейрона
скрытого слоя, w(jk2) - синоптический вес связи j–го выхода нейрона скрытого слоя с k–ым нейроном выходного слоя, bk( 2) - порог k–ого нейрона выходного слоя, ϕ (•) - функция активации нейронов.
13
Соотношения (1) и (2) можно представить в матричном виде как умножение матрицы весовых коэффициентов W (1) скрытого слоя на вектор входа X и матрицы весовых коэффициентов W ( 2) выходного слоя на вектор Y (1) (выход скрытого слоя) соответственно: ⎛ ⎡ w (1) w (1) ...w (1) ⎤ ⎡ (1) ⎤ ⎞ ⎜ ⎢ 11 21 i1 ⎥ ⎡ x1 ⎤ ⎢b1 ⎥ ⎟ ⎜ ⎢ (1) (1) (1) ⎥ ⎢ ⎥ ⎢ (1) ⎥ ⎟ ⎜ w w ...wi 2 ⎥ ⎢ x 2 ⎥ ⎢b2 ⎥ ⎟ . Y (1) = ϕ (W (1)T X + B (1) ) =ϕ ⎜ ⎢ 12 22 × + ⎢L ⎥ ⎢L ⎥ ⎢L ⎥ ⎟ ⎜⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎟ x ⎜ ⎢ (1) (1) (1) (1) ⎟ ⎜ w1 j w2 j ...wij ⎥ ⎣ i ⎦ ⎢b j ⎥ ⎟ ⎣ ⎦⎠ ⎦ ⎝⎣ ⎛ ⎡ w ( 2) w ( 2) ...w ( 2) ⎤ ⎡ (1) ⎤ ⎡ ( 2) ⎤ ⎞ y ⎜ ⎢ 11 21 ⎟ b j1 ⎥ ⎢ 1 ⎥ ⎢ 1 ⎥⎟ ⎜ ⎢ ( 2) ( 2) ⎥ ⎜ w w ...w (j22) ⎥ ⎢ y 2(1) ⎥ ⎢b ( 2) ⎥ ⎟ . ⎥+⎢ 2 ⎥ Y ( 2) = ϕ W ( 2)T Y (1) + B ( 2) = ϕ ⎜ ⎢ 12 22 ×⎢ ⎥ ⎢L ⎥ ⎢L ⎥ ⎟ ⎢ ⎜ ⎢L ⎟ ⎥ ⎢ ⎥ ⎢ ⎥ ⎜ ⎢ ( 2) ( 2) ( 2) ⎥ ⎢ y (1) ⎥ ⎢b ( 2) ⎥ ⎟ ⎜ ⎢ w1k w2 k ...w jk ⎥ ⎣ j ⎦ ⎣ k ⎦ ⎟ ⎦ ⎝⎣ ⎠
(
)
Вычисление ошибки реакции сети δ k( 2) (t ) = ek (t ) ,
(3)
(4)
для выходного слоя,
(5)
для скрытого слоя,
(6)
k
δ (j1) (t ) = ∑ δ l( 2) (t ) w (jl2) (t ) y (j1) (t ), l =1
где ek (t ) - ошибка k-го нейрона выходного слоя. Для всех слоев настройка весовых коэффициентов осуществляется в соответствии с wij( L) (t + 1) = αwij( L) (t ) + ηδ (j L) (t ) y (jL) (t ) ,
(7)
где α – постоянная момента ( α =1), η – параметр, отвечающий за ) – локальный градиент j-го нейрона, L – скорость обучения, δ (L j количество слоев. Постановка задачи Рассмотрим многослойный персептрон (1) – (7). На однопроцессорной системе вычисление нейронов каждого слоя осуществляется последовательно. Сначала производится вычисление выходного вектора скрытого слоя, что представляет собой последовательное вычисление y1(1) , y 2(1) …, y (j1) , затем аналогично 14
вычисляются значения выходного слоя y1( 2) , y2( 2) …, y k( 2 ) и т. д., пока не будут осуществлены все этапы обучения НС. Такие операции требуют больших временных затрат. Необходимо построить параллельную модель нейроалгоритма и выбрать топологию вычислительной системы, снижающую затраты межпроцессорного взаимодействия. Решение задачи В большинстве случаев применение нейрокомпьютеров не представляется возможным в связи с их высокой стоимостью. Существующие программные реализации нейронных сетей не рассчитаны на использование преимуществ многопроцессорных систем. Самым простым способом достижения параллельного выполнения является параллелизм на уровне декомпозиции задачи, в данном случае – разложение нейроалгоритма по функциям реализации нейронов. При использовании количества процессоров Pm , равного количеству связей нейронной сети, достигается максимальное ускорение за счет оптимальной реализации нейроалгоритма. Как видно из рисунка 1, общее количество связей нейронной сети NW = j * (k + i ) + N B , NW > N nn , где N B = j + k - общее количество смещений b (L) , N nn = N j + N k – общее количество нейронов. N nn
Однако при таком выборе количества процессоров ресурсы будут не оптимально загружены. Вычислительная нагрузка достигает максимального значения только на этапе настройки весовых коэффициентов слоя L и равномерно распределена среди всех имеющихся в распоряжении процессоров. Пусть в нашем распоряжении имеется кластерная вычислительная сеть с топологией полносвязный граф при числе имеющихся процессоров Pm = j > k . На рисунке 2 представлена модель параллельного нейроалгоритма в виде вычислительной схемы нейроалгоритма совместно с расписанием.
15
Рис. 2. Параллельная модель нейроалгоритма
Такт 1. Вычисление выходов нейронов скрытого слоя в соответствии с (1) на основе обучающего примера. Обучающий пример представляется парой { X = [x1 , x2 ,..., xi ] , D = [d1 , d 2 ,..., d k ] }, где j D = [d1 , d 2 ,..., d k ] – вектор цели. Осуществляется независимо на процессорах, распределенных следующим образом: первый процессор вычисляет значения первого нейрона y1(1) , второй – второго нейрона
y 2(1) , j-ый процессор – j-го нейрона y (j1) . Такт 2. Вычисление выходов нейронов выходного слоя в соответствии с (2). Вычислительная нагрузка распределяется следующим образом: первый процессор вычисляет значения первого нейрона y1( 2) , второй – второго нейрона y 2( 2) , k-ый процессор – kго y k( 2 ) . Такт 3. Вычисление ошибки выходного слоя в соответствии с (5). Вычислительная нагрузка распределяется следующим образом: первый процессор вычисляет ошибку первого нейрона e1( 2) , второй – второго нейрона e2( 2) , k-ый процессор – k -го ek( 2 ) .
16
Такт 4. Вычисление ошибки скрытого слоя в соответствии с (6). Вычислительная нагрузка распределяется следующим образом: первый процессор вычисляет ошибку первого нейрона e1(1) , второй – второго нейрона e2(1) , j-ый процессор – j-го e (j1) .
Такты 5 ÷ (5+i+1). Настройка весовых коэффициентов
wij(1)
скрытого слоя в соответствии с (7). Вычислительная нагрузка распределяется следующим образом: на 5-ом такте первый процессор (1) (1) , второй процессор настраивает весовой коэффициент w01 w 02 , (1) и j-ый процессор (1) третий процессор - w03 w 0 j ; на 6-ом такте
соответственно первый, второй, третий и j-ый процессоры настраивают весовые коэффициенты w (1) , w (1) , w (1) , L , w (1) ; на 7-ом 11 12 13 1j такте соответственно первый, второй, третий и j-ый процессоры настраивают весовые коэффициенты w (1) , w (1) , w (1) , L , w (1) ; на (5+i)-ом 21
22
23
2j
такте соответственно первый, второй, третий и j-ый процессоры настраивают весовые коэффициенты w (1) , w (1) , w (1) , L , wij(1) . i1
i2
i3
Такты (5+i+2) ÷ (5+i+2+k+1). Настройка весовых коэффициентов ( 2) w jk выходного слоя в соответствии с (7). Вычислительная схема
аналогична предыдущей серии тактов 5 ÷ (5+i+1): на (5+i+2)-ом такте
( 2) первый процессор настраивает весовой коэффициент w11 , второй ( 2) и j-ый процессор ( 2) процессор - w 21 w j1 ; на (5+i+3)-ом такте
соответственно первый, второй и j-ый процессоры настраивают весовые коэффициенты w ( 2) , w ( 2) , L , w ( 2) ; на (5+i+4)-ом такте 12
22
j2
соответственно первый, второй и j-ый процессоры настраивают весовые коэффициенты w ( 2) , w ( 2) , L , w ( 2) ; на (5+i+2+k)-ом такте 13 23 j3 соответственно первый, второй, третий и j-ый процессоры настраивают весовые коэффициенты w ( 2) , w ( 2) , L , w ( 2) ; на (5+i+2+k+1)1k 2k jk ом такте соответственно первый, второй, третий и k-ый процессоры ( 2) ( 2) ( 2) настраивают весовые коэффициенты w01 , w02 , L , w0 k .
17
Заключение С целью снижения времени межпроцессорного взаимодействия во время обучения НС в работе решена актуальная задача построения топологии кластерной вычислительной системы. Научная новизна работы заключается в том, что предложена параллельная модель нейроалгоритма многослойного персептрона, которая дает возможность сокращения времени обучения нейронной сети на кластерных системах с топологией полносвязный граф. Литература 1. Кирсанов С. Ю. Нейрокомпьютеры с параллельной архитектурой/Кн.16. – М.: Радиотехника, 2004. – 496 с.:ил. (Нейрокомпьютеры и их применение. Редактор А. И. Галушкин). 2. Аксак Н.Г., Новосельцев И.В. Реализация многослойного персептрона с помощью стандарта OpenMP//8-ая Международная научно – практическая конференция «Современные информационные и электронные технологии». - Одесса, 2007. – С.89. 3. Гергель В.П., Стронгин Р.Г. Основы параллельных вычислений для многопроцессорных вычислительных систем: Учебное пособие. - Нижний Новгород, 2003. 4. Основные классы современных параллельных компьютеров: http://parallel.ru/computers/classes.html. Контакты 61166, Харьков, пр. Ленина,14, каф. ЭВМ, тел. (0572) 702-13-54 ИСПОЛЬЗОВАНИЕ СУПЕРКОМПЬЮТЕРОВ ДЛЯ МОДЕЛИРОВАНИЯ ДВИЖЕНИЯ ЖИДКОСТИ И ГАЗА В ПРОГРАММНОМ КОМПЛЕКСЕ FLOWVISION А.А. Аксенов, В.В. Шмелев ООО “ТЕСИС” В настоящее время кластерные технологии вычислений получили широкое распространение в связи с доступностью суперкомпьютеров для широкого круга пользователей. Одним из основных потребителей больших расчетных мощностей всегда была вычислительная 18
гидродинамика, поэтому в этой области сейчас наметился бурный переход коммерческих программных комплексов на использование кластерных вычислительных технологий. Компания “ТЕСИС” выпустила третью версию программного комплекса FlowVision-HPC, предназначенного для моделирования трехмерных течений жидкости и газа в технических и природных объектах. Отличительной особенностью FlowVision-HPC является клиент-серверная архитектура, которая позволяет использовать параллельные компьютеры с распределенной памятью как для расчетов, так и для визуализации течения жидкости и газа. Новая архитектура программного комплекса позволяет наиболее полно использовать возможности параллельных вычислений на кластерах коллективного пользования, когда все задачи запускаются с помощью систем управления заданиями (батч-системы), сохранив при этом удобство работы с FlowVision через клиента, работающего на персональным компьютере. Другой отличительной особенностью FlowVision-HPC является его тесная интеграция с конечно-элементной программой ABAQUS, которая предназначена для расчета прочностных характеристик конструкций. Обе программы могут работать на компьютерах с распределенной памятью, обмениваясь информацией в процессе расчета в параллельном режиме. Таким образом, использование обеих программ позволяет решать задачи взаимодействия жидкости и конструкций, такие как, например, аквапланирование автомобильного колеса, ветровая нагрузка на здания и сооружения, движение жидкости в цистернах и баках, приводнение гидросамолетов, с одновременным расчетом прочностных характеристик объектов. РЕШЕНИЕ ЗАДАЧИ ДИФРАКЦИИ ЭЛЕКТРОМАГНИТНЫХ ВОЛН С ИСПОЛЬЗОВАНИЕМ СИСТЕМЫ РАСПРЕДЕЛЕННЫХ ВЫЧИСЛЕНИЙ MATHNET А.В. Антонов, Ф.C. Калашников Пензенский государственный университет, Региональный центр суперкомпьютерных вычислений Задача дифракции для сложной системы поверхностей и тел в резонансном диапазоне частот в настоящий момент чрезвычайно актуальна в связи с постоянным уменьшением размеров различных 19
электронных устройств, масштаб которых в последнее время становится сопоставимым с длинами используемых ими электромагнитных волн. В категорию таких устройств, в частности, попадают средства вычислительной техники и телекоммуникации, которые в последнее время развиваются и внедряются все более быстрыми темпами и во все более внушительных масштабах. Решение задач указанного типа требует значительных вычислительных ресурсов, и в этой связи особую остроту приобретают проблемы разработки и внедрения новых математических методов для более эффективного и точного выполнения необходимых вычислений, а также проблема рациональной программной реализации этих методов, которая позволила бы получать результат требуемой точности за приемлемое время. Последнее становится возможным только при условии использования современных многопроцессорных вычислительных систем различной архитектуры, что, в свою очередь, требует применения методов и средств параллельного программирования для организации вычислений в рамках решения указанной физической задачи. Ввиду малой распространенности специализированных вычислительных систем (суперкомпьютеров) с архитектурами SMP и MPP, обусловленной их высокой стоимостью, особый интерес представляет программная реализация решения задачи дифракции, адаптированная к выполнению на обычных рабочих станциях, объединенных стандартной на данный момент сетью Fast Ethernet. Подобный подход не только более оправдан с экономической точки зрения, но и в большей степени соответствует современным тенденциям развития информационных технологий. Он хорошо соотносится с концепцией GRID-систем, разработка которых в настоящее время является одним из перспективных направлений в сфере вычислительной техники. Указанная концепция предполагает объединение территориально распределенных вычислительных ресурсов с целью их совместного использования для решения сложных и трудоемких задач различного характера. При этом, как правило, возникает иерархическая структура, в которой выделяются основной сервер, отвечающий за организацию вычислительного процесса и управление его ходом, и конечные узлы, выполняющие непосредственную обработку отдельных подзадач. Достоинством GRID-систем является то, что для их развертывания не требуется введение в строй дополнительных вычислительных мощностей или 20
использование ВС со специфической архитектурой. Они позволяют задействовать свободные ресурсы типовых персональных компьютеров и рабочих станций, реальная загрузка которых в обычных условиях колеблется – по данным различных исследований – в диапазоне от 2-3% до 10%. Благодаря использованию GRID-систем эксперименты по решению сложных вычислительных задач могут быть поставлены даже в небольших научных учреждениях и учебных заведениях. Ориентация на идеологию GRID-систем и применение стандартных, широко распространенных средств вычислительной техники требует учета особенностей целевой аппаратной среды при разработке программной реализации решения задачи дифракции. К этим особенностям относятся: 1. Разнородность узлов вычислительной системы, которая выражается в первую очередь в их неодинаковой производительности. 2. Ограниченная пропускная способность вычислительной сети и непостоянство связей между сервером и отдельными узлами. 3. Динамическое изменение количества узлов, задействованных для выполнения вычислений. Необходимость учета перечисленных факторов определяет требования к целевой параллельной программе и средствам, которые могут быть использованы при ее разработке. В связи с первой из отмеченных особенностей среды предпочтительной является такая организация программы, при которой количество параллельных ветвей будет превышать количество доступных вычислительных узлов, что позволит распределить нагрузку на последние с учетом производительности каждого из них. Такой подход позволяет также избежать простоя отдельных рабочих станций, поскольку необработанные подзадачи могут распределяться динамически и передаваться на конкретный узел сразу после выполнения им ранее назначенной порции вычислений. Для учета второй особенности необходимо при распараллеливании алгоритма обеспечить минимальную зависимость подзадач по данным. В противном случае интенсивные обмены между подзадачами могут привести к перегрузке сети, простою рабочих станций (которые будут ожидать освобождения канала связи, чтобы получить возможность выполнить операции приема или передачи) и, как следствие, к неэффективному 21
использованию вычислительных мощностей и увеличению общего времени выполнения программы. Третья особенность среды предполагает, что программа решения задачи дифракции должна обладать значительной гибкостью. Необходимо, чтобы она могла отслеживать появление свободных узлов, которые не были задействованы при старте вычислений, и передавать им на обработку подзадачи из числа не распределенных на момент обнаружения таких узлов. Кроме того, программа должна корректно обрабатывать исключительные ситуации, связанные с ошибками или отказами в работе отдельных узлов. При возникновении сбоя во время решения некоторой подзадачи на одной из рабочих станций весь процесс вычислений не потребуется начинать заново – достаточно будет лишь повторно обработать единичную подзадачу на другом узле вычислительной системы. Для разработки программы решения задачи дифракции, удовлетворяющей вышеперечисленным требованиям, целесообразно использовать один из существующих инструментариев, реализующих основные положения концепции GRID-систем. К числу таких наборов программных средств относятся пакеты Globus, X-Com и MathNet. Отличительной особенностью системы Globus является возможность решения с ее помощью широкого круга сложных вычислительных задач, а также организации групповой разработки и эксплуатации приложений. Однако возможности Globus представляются явно избыточными для рассматриваемых условий применения. Кроме того, система отличается сложностью и громоздкостью, что делает крайне затруднительным ее использование для разработки небольших экспериментальных приложений, ориентированных на выполнение на малых вычислительных мощностях. Возможность решения с помощью системы Globus широкого круга задач достигается за счет необходимости выработки индивидуального подхода к параллельной программной реализации каждой из них. Это приводит к повышению трудоемкости разработки приложений и сильной зависимости требований, предъявляемых ими к целевой аппаратной среде, от специфики задачи, для решения которой они предназначены. В отличие от Globus X-Com обеспечивает решение ограниченного набора задач, но при этом обладает рядом особенностей, которые делают более предпочтительным его применение для проектирования экспериментальных приложений, а также их отладки и тестирования с использованием стандартной на сегодня компьютерной техники. Во22
первых, унифицированный интерфейс взаимодействия прикладной программы с основной системой избавляет от необходимости выполнения полного комплекса процедур разработки при решении каждой конкретной задачи. Во-вторых, наличие автоматической системы планирования снижает нагрузку на использующего инструментарий X-Com разработчика, который может сосредоточиться на поиске и рациональной реализации наиболее оптимального алгоритма, в то время как учетом конфигурации аппаратной среды и организацией вычислительного процесса займется сама система. В-третьих, ориентация на иерархическую структуру (вместо децентрализованной, используемой Globus) облегчает контроль за динамическим изменением состава вычислительной системы и объема ресурсов, доступных на каждом из ее узлов. X-Com способен работать в асинхронном режиме (т.е. в условиях отсутствия постоянной связи между узлами), использует только стандартные протоколы передачи данных и в принципе не требует применения аппаратных средств со специфической архитектурой или нетипичными характеристиками. Система распределенных вычислений (СРВ) MathNet реализует ключевые принципы, аналогичные X-Com. На текущем этапе своего развития эта система представляет собой отличное средство начального уровня для проведения экспериментов по решению сложных вычислительных задач на стандартном оборудовании. Развертывание программного комплекса MathNet не требует какихлибо подготовительных процедур, а разработка адаптированных для него приложений не сопряжена с необходимостью серьезной переработки уже существующих последовательных алгоритмов или изучения специфических средств и приемов параллельного программирования. Система работает под управлением ОС Windows, что также упрощает ее использование в учебных лабораториях. Программы для системы MathNet оформляются в виде динамически загружаемых библиотечных модулей (DLL), написанных на языке C/C++ и в обязательном порядке содержащих функции Initialize и Calculate. В рамках первой из указанных функций должно выполняться разбиение исходной задачи на небольшие фрагменты, что предполагает составление перечня сформированных подзадач и заполнение индивидуального буфера данных каждой из них. Вторая функция отвечает за непосредственную реализацию вычислений, которым предшествует этап извлечения данных из входного буфера и 23
которые завершаются помещением результатов (окончательных либо промежуточных) в указанный выходной буфер. Семантика Initialize и Calculate уточняется разработчиком конкретного приложения. Автор исполняемой в среде MathNet программы также не ограничен в вопросе выбора способа представления и логической организации исходных данных и результатов, поскольку индивидуальные буферы подзадач абсолютно прозрачны для стандартных модулей СРВ. Задача дифракции в общем случае сводится к системе линейных алгебраических уравнений, которую можно решить, используя итерационные методы. Обработка СЛАУ предполагает выполнение матричных операций, основной и наиболее трудоемкой из которых будет умножение матрицы на вектор. Это означает, что верхнему уровню распараллеливания вычислений в системе MathNet будет соответствовать выделение подзадач, связанных с определением значений отдельных элементов результирующего вектора. Учитывая размерность матрицы коэффициентов (порядка 103 - 104 для реальных задач) и требование минимизации обменов между подзадачами, целесообразно использовать ленточную схему разделения данных, при которой каждому процессу будет передаваться строка (или группа строк) исходной матрицы и копия вектора-множителя. При этом рассылка относительно больших объемов данных будет происходить только на подготовительном этапе, после чего в распоряжении каждого узла системы окажется все необходимое для автономного выполнения вычислений. Однако решение СЛАУ оказывается существенно менее трудоемкой процедурой, чем заполнение матрицы, элементы которой формируются в результате счета многомерных интегралов. Это означает, что распараллеливание вычислений на этапе определения коэффициентов СЛАУ (т.е. построения используемой в дальнейшем матрицы) также является необходимым условием снижения временных затрат на решение задачи дифракции. Более глубокая декомпозиция возможна за счет разбиения диапазонов интегрирования на отдельные участки, однако выделение столь мелких подзадач средствами самой системы MathNet представляется нецелесообразным. Таким образом, еще одним направлением распараллеливания вычислений в рамках решения задачи дифракции является одновременный счет интегралов на узлах вычислительной системы. Поскольку процедуры заполнения матрицы и решения СЛАУ достаточно разнородны (как в смысле используемых математических методов, так и в смысле времени выполнения), причем каждая из них 24
допускает параллельную обработку данных, хотя сами они должны выполняться в строго определенной последовательности, логично реализовать их в виде двух самостоятельных приложений. Функция Initialize, входящая в состав первой программы, будет отвечать за распределение исходных данных, необходимых для счета интегралов. Это распределение должно быть осуществлено таким образом, чтобы число сформированных подзадач примерно на порядок превосходило число доступных вычислительных узлов. Такое разбиение позволит более рационально использовать доступные аппаратные ресурсы. Если параметры вычислительной среды заранее определены и известно, что ее конфигурация не претерпит значительных изменений на протяжении всего эксперимента, то желательно иметь возможность явно указывать необходимый масштаб подзадач или их количество. Для этого можно использовать файл настроек, содержимое которого будет анализироваться функцией Initialize (такой же подход вполне приемлем и для второй программы). Функция Calculate первой программы будет выполнять непосредственное вычисление интегралов. Сбор значений, полученных в результате вызовов Calculate на различных узлах системы, будет произведен автоматически средствами СРВ MathNet. Вычисленные значения интегралов поступят в буфер, подаваемый на вход функции Initialize, которая сформирует из них искомую матрицу и сохранит ее на рабочей станции, отвечающей за выполнение серверного процесса. Основной задачей второй программы, как отмечалось выше, будет решение СЛАУ (представленной в матричной форме) одним из итерационных методов (например, методом сопряженных градиентов). Функция Initialize этой программы выполнит разрезание полученной на предыдущем этапе матрицы по строкам и поместит образовавшиеся массивы значений во входные буферы подзадач вместе с копиями вектора-множителя. Собственно итерационный процесс по методу сопряженных градиентов будет реализован функцией Calculate. Ключевой операцией, выполняемой этой функцией, будет умножение подмножества строк матрицы на вектор. Представление результатов в нужной форме и их сохранение для последующего анализа и дальнейшего использования, как и в предыдущем случае, выполнит функция Initialize. Процесс решения задачи дифракции для тела заданной формы можно будет считать законченным после успешного завершения работы второй программы.
25
Таким образом, разрабатываемая программа позволит отлаживать параллельный алгоритм решения задачи дифракции электромагнитных волн с учетом особенностей GRID-систем, что позволит легко адаптировать ее к другим системным реализациям, а для тестирования использовать доступные ограниченные вычислительные ресурсы. РАЗРАБОТКА WEB-ОРИЕНТИРОВАННОГО ВЫЧИСЛИТЕЛЬНОГО КОМПЛЕКСА ДЛЯ РЕШЕНИЯ ТРЕХМЕРНЫХ ВЕКТОРНЫХ ЗАДАЧ ДИФРАКЦИИ ЭЛЕКТРОМАГНИТНЫХ ВОЛН НА ОСНОВЕ СУБИЕРАРХИЧЕСКИХ ПАРАЛЛЕЛЬНЫХ АЛГОРИТМОВ А.В. Антонов, М.Ю. Медведик, И.А. Родионова, Ю.Г. Смирнов Пензенский государственный университет Введение Рассмотрим задачу дифракции электромагнитного поля на идеально проводящем тонком, плоском ограниченном экране. В общей постановке задача состоит в нахождении решений уравнений Максвелла, удовлетворяющих определенным краевым условиям и условиям излучения на бесконечности. Данная задача принадлежит к числу классических в электродинамике. Наиболее естественный подход к решению этой задачи – сведение ее к векторному интегродифференциальному уравнению на экране. В наших обозначениях это уравнение имеет вид: Lu := Gradτ A(Div u ) + k 2 Aτ u = f , x ∈ Ω, (1) где Div - операция поверхностной дивергенции, A - интегральный оператор ik x − y
e Au = ∫ u ( y )ds, x− y Ω
(2)
u – касательное к поверхности экрана Ω векторное поле (плотность поверхностного тока). Индекс τ . показывает взятие касательных к Ω компонент соответствующего векторного поля. Центральной проблемой при исследовании разрешимости представленных выше уравнений является выбор пространств для решений и для правых частей таким образом, чтобы обеспечить фредгольмовость (и, если 26
удастся, однозначную разрешимость) этого уравнения в выбранных пространствах. Кроме того, пространство решений должно быть достаточно широким и содержать все возможно допустимые поля. Для решения данной задачи стали активно применяться численные методы (метод моментов, метод Галеркина), но без достаточного математического обоснования. Тем не менее в численных решениях задач дифракции был накоплен значительный опыт. Имеется ряд монографий по решению задач дифракции на экранах различной формы. Наиболее распространенным стал метод, предложенный в 1982 году в статье [3]. Следует подчеркнуть, что проблема эффективного численного решения задач дифракции на тонких экранах в настоящее время, по-видимому, пока не решена даже с использованием самых мощных современных ЭВМ. В данной работе предлагается другой подход, в котором из результатов решения задачи, полученных на прямоугольном экране, «вырезается» другой экран произвольной формы, целиком помещается в прямоугольном экране и без повторных вычислений в матрице СЛАУ определяется значение поверхностных токов на новом экране. Таким образом можно решить серию задач дифракции на экранах различной формы. Субиерархический метод используется совместно с параллельными вычислительными алгоритмами в связи с большой вычислительной сложностью формирования матрицы СЛАУ. Наиболее удобно рассчитывать подобные задачи на кластере [4]. Постановка задачи Пусть Ω ⊂ R 2 = {x3 = 0} ⊂ R 3 - ограниченная область с кусочногладкой границей Г , состоящей из конечного числа простых дуг класса С ∞ , сходящихся под углами, отличными от нулевого. Задача дифракции стороннего монохроматического электромагнитного поля E 0 , H 0 на бесконечно тонком идеально проводящем экране Ω , расположенном в свободном пространстве с волновым числом k , k 2 = ω 2 μ (ε + iσω −1 ), Im k ≥ 0 (k ≠ 0) , сводится к решению уравнения (1), где f = 4πkEτ0 Ω . Будем предполагать, что все источники падающего поля находятся вне экрана Ω так, что Eτ0 |Ω ∈ C ∞ ( Ω ) .
27
Обычно падающее поле - это либо плоская волна, либо электрический или магнитный диполь, расположенный вне Ω . Определим пространство W как замыкание C 0∞ (Ω ) в норме
u
2 w
= u
2 −1 / 2
+ Divu
2 −1 / 2
.
Можно показать, что [1]
{
}
~ ~ W = u ∈ H −1 / 2 ( Ω ) : Divu ∈ H −1 / 2 ( Ω ) , где пространство Соболева H~ s ( Ω ) определяем обычным образом.
Через W ' обозначено антидвойственное пространство W относительно полуторалинейной формы ( f , v) = ∫ f ⋅ v dx :
{
W '= u
Ω: u ∈ H
−1 / 2
( M ), Rot u ∈ H
−1 / 2
}
для
Ω
(M ) ,
где M – замкнутая поверхность, такая, что Ω ∈ M . Метод Галеркина Рассмотрим n-мерное пространство Vn ⊂ W . Будем проводить аппроксимации u элементами u n ∈ Vn . Методом Галеркина находим
u n из системы уравнений [2] ( Lu n , v) = ( f , v) ∀v ∈ Vn .
Эти
уравнения
определяются
конечномерным
(3) оператором
Ln : Vn → Vn' , где Vn' есть антидуальное пространство к Vn .
Основная трудность для уравнений электрического поля (1) состоит в том, что оператор L не является сильно эллиптическим и традиционные теоремы о сходимости метода Галеркина неприменимы. Результаты о сходимости метода Галеркина удается обобщить на уравнения с операторами, эллиптическими на подпространствах, в том числе на уравнение электрического поля (1), так как оператор L является эллиптическим на подпространствах. Каждый элемент матрицы (3) получается путем вычисления четырехкратного интеграла lij = ( Lϕi , ϕ j ) = − ∫ G ( x, y )divϕi ( x) ⋅ div ϕ j ( y )ds + k 2 ∫ G ( x, y )ϕi ( x) ⋅ϕ j ( y )ds, Ω
Ω
имеющего слабую особенность в области интегрирования. Здесь x = ( x1 , x 2 ), y = ( y1 , y 2 ) . В качестве базисных функций ϕ (x) и тестовых u ( y) выберем функции RWG. 28
Аналогично рассматривается трехмерная векторная задача математической теории распространения волн в неограниченных областях: определение рассеянного электромагнитного поля волновода, сформированного плоскопараллельными слоями, связанными отверстием произвольной формы. Слои образованы тремя идеально проводящими и бесконечно тонкими параллельными плоскостями. Электромагнитные параметры в разных областях могут быть различны. Данная задача принадлежит к классу задач о связи объектов через отверстие. Наиболее естественным и эффективным подходом к решению этой задачи является ее сведение к интегральному уравнению на отверстии с помощью метода функций Грина. Задача решается методом Галеркина. В связи с большим количеством вычислений применяется параллельный алгоритм. Интерфейс пользователя Интерфейс пользователя вычислительного комплекса организован по принципу «тонкого клиента» с возможностью доступа через сеть Интернет [6]. Для использования его возможностей необходимо иметь выход в сеть Интернет и Web-браузер с поддержкой JavaScript (рекомендуется использовать MS Internet Explorer версии не ниже 6 или Mozilla Firefox версии не ниже 1.8). Тестовая версия вычислительного комплекса размещена на сайте Регионального центра суперкомпьютерных вычислений (РЦСВ) при Пензенском государственном университете по адресу http://alpha.pnzgu.ru в разделе «Научная работа». Исходными данными для вычислений являются следующие параметры (см. рис. 1): p – выбор поляризации: "1" - E-поляризация, "-1" - Hполяризация падающей волны; e – относительная диэлектрическая проницаемость (e>=1) (для двумерной задачи параметр не используется); x – X-координата вектора падения плоской волны; y – Y-координата вектора падения плоской волны; z – Z-координата вектора падения плоской волны; n – параметр размерности матрицы из расчета 2n; матрица, задающая форму фигуры, на которой также задаются вертикальная и горизонтальная срезки.
29
Рис. 1. Ввод исходных данных
Числовые характеристики вводятся в соответствующие поля формы, а матрица рисуется при помощи указателя манипулятора мышь. После ввода параметров нужно нажать кнопку «Сохранить», при этом все исходные данные сохранятся на сервере в файле специального формата.
Рис. 2. Результаты работы
Далее пользователь должен перейти в раздел «Результаты работы» (см. рис. 2). В нем отображается в виде рисунка заданная ранее фигура 30
и графики сечения поверхностных токов, полученные во время предыдущего запуска расчетов. Для запуска вычислений по вновь введенным данным необходимо нажать кнопку «Запуск вычислений». После этого задача ставится в очередь на выполнение, сообщение об этом выводится вместо кнопки запуска. Обновляя окно браузера можно увидеть сообщение о запуске программы с указанием времени ее запуска. После окончания расчета графики будут выводиться на основе вновь полученных данных. Для более подробного изучения каждый график можно открыть в отдельном окне. Также на странице результатов имеются ссылки на файл с исходными данными и файл с числовыми результатами вычислений. Организация параллельных вычислений В вычислительном комплексе периодически проверяется наличие новых данных для выполнения вычислений (данные считаются подготовленными после нажатии кнопки «Запуск вычислений»). При наличии таковых файл с информацией для расчета копируется на вычислительную систему, на которой установлена программа расчета, реализующая алгоритм решения задачи дифракции. Данная программа может быть написана на любом языке программирования и может работать на любой вычислительной системе, единственным условием является возможность передавать ей входные данные через файл и возможность ее удаленного запуска. После выполнения программы файл с результатами копируется обратно и предоставляется пользователю. Передача данных осуществляется с использованием протокола FTP, выполнение команд на запуск вычислений – использованием протокола SSH. В настоящее время вычислительная программа написана на языке Си с использованием библиотеки MPICH. Вычислительный комплекс размещен на серверах РЦСВ. Тестирование комплекса производится с использованием вычислительных ресурсов НИВЦ МГУ. Заключение Удобство подобной реализации состоит, с одной стороны, в том, что пользователю вычислительного комплекса не надо иметь специализированных средств и программ, а также специальных знаний в области параллельных вычислений для получения доступа к высокопроизводительной вычислительной системе. С другой стороны, имея один и тот же пользовательский интерфейс, вычислительную программу можно запускать на различных параллельных кластерных 31
системах, причем даже независимо от их загруженности и доступности в конкретный момент времени, что позволит работать в «on-line» режиме, сокращая время, затрачиваемое пользователем для решения сложной математической задачи. Работа выполнена в рамках программы СКИФ-ГРИД при поддержке гранта РФФИ-06-07-89063. Литература 1. Ильинский А. С., Смирнов Ю. Г. Дифракция электромагнитных волн на проводящих тонких экранах М.: Радиотехника, 1996. 2. Колтон Д., Кресс Р. Методы интегральных уравнений в теории рассеяния. М.: Мир, 1987. 3. Rao S.M. , Wilton D.R. , Glisson A.W. . Electromagnetic Scattering by Surface of Arbitrary Share..// IEEE Transactions on antennas and propagation. Vol. Ap-30. Pp 409-417, May 1982. 4. Медведик М.Ю., Смирнов Ю.Г. Субиерархический параллельный вычислительный алгоритм и сходимость метода Галеркина в задачах дифракции электромагнитного поля на плоском экране // Известия высших учебных заведений. Поволжский регион. Естественные науки. – 2004. – № 5. – С. 3–19. 5. Медведик М. Ю., Родионова И. А. Субиерархический параллельный вычислительный метод для электромагнитной задачи дифракции в экранированных слоях, связанных через отверстие // Труды международного симпозиума "Надежность и качество". Том 1. 2006. С. 272-274. 6. Антонов А. В., Токарев А. Н. Принципы организации параллельной вычислительной системы с доступом через Интернет // Материалы XIII Международной школы-семинара «Синтез и сложность управляющих систем» (Пенза, 14-20 октября 2002).
32
НОВАЯ КОНЦЕПЦИЯ ПРОГНОЗА ЛЕСНОЙ ПОЖАРНОЙ ОПАСНОСТИ И ЛАНДШАФТНОЕ РАСПАРАЛЛЕЛИВАНИЕ Н.В. Барановский ОСП НИИ прикладной математики и механики Томского государственного университета Введение Лесные пожары наносят огромный экономический и экологический ущерб. В настоящее время широко известны следующие методики прогноза лесной пожарной опасности – канадская [1] и американская [2] системы, европейская система [3] и критерий Нестерова [4], который с 1999 года используется в качестве ГОСТа [5] на территории РФ. Большинство методов базируется на метеоданных, которые получают с метеостанций или с помощью спутникового зондирования [6]. Ни первый, ни второй варианты не позволяют проводить прогнозных расчетов, а только позволяют оценивать текущую пожарную опасность лесопокрытых территорий. Новая концепция прогноза лесной пожарной опасности Анализ обстановки в области охраны лесов от пожаров позволяет выделить основные узкие места существующего подхода к прогнозированию лесной пожарной опасности. Существующие методы прогноза лесной пожарной опасности не учитывают физико-химические процессы сушки и зажигания слоя ЛГМ, которые являются одними из определяющих в наступлении пожарной опасности. На больших малоосвоенных территориях, как правило, имеется лишь редкая и неразвитая сеть метеостанций, а в настоящий момент именно эта информация используется для оценки пожарной опасности по существующему ГОСТу. Факторы антропогенной нагрузки и грозовой активности должным образом не учитываются. В системе охраны лесов от пожаров отсутствует вычислительный центр для централизованной обработки исходной информации и выработки прогноза. Чтобы ликвидировать данные недостатки, предлагается новая концепция прогноза лесной пожарной опасности [7]. Входная информация по метеопараметрам генерируется в программах, 33
реализующих глобальные [8] или региональные [9] модели атмосферы, и поступает в качестве входной в подсистемы оценки вероятности возникновения лесных пожаров по метеоусловиям и сценариям зажигания. Данная идея предложена автором в 2003 году [10]. Отметим, что годом позже такой же подход был предложен в работе американских исследователей [11]. Следует разработать систему усвоения данных об уровне антропогенной нагрузки (С.У.Д.А.Н.) [12] на контролируемой лесопокрытой территории, чтобы учесть пространственно-временной характер антропогенной нагрузки. Информация из систем пеленгации разрядов облако-земля [13] поступает в качестве входной в модель. В итоге детерминированновероятностная модель [14] позволяет определить вероятность возникновения лесных пожаров. Предполагается создание общегосударственного центра мониторинга лесной пожарной опасности, где собирается исходная информация и в результате генерируется и направляется заинтересованным потребителям прогнозная информация. В центре функционирует многопроцессорная вычислительная система МВС, которая будет являться ядром всей информационно-вычислительной системы. Вся система может быть и распределенной, главное, чтобы была осуществима оперативная передача информации из различных подсистем для обработки на МВС. Ландшафтное распараллеливание и прогноз лесных пожаров В аналитическом обзоре [15] представлены последние данные – в России 1807 лесхозов, 7851 лесничество, в каждом лесничестве более 100 кварталов, в каждом квартале может быть до 100 выделов (однородных участков). Необходимо применять МВС, и необходима разработка соответствующего проблемно-ориентированного подхода ландшафтного распараллеливания для прогноза лесной пожарной опасности на крупных лесопокрытых территориях, который бы базировался на трех основах: физически содержательная методика определения вероятности лесопожарного происшествия (в данном случае – возникновение лесного пожара), использование достаточно дешевых МВС, существующая структура устройства лесного хозяйства [16]. Сформулированы основные положения подхода ландшафтного распараллеливания [17]. Математическая постановка должна быть такой, чтобы расчеты для каждого отдельного однородного участка леса не зависели от других участков леса. Другими словами, необходимо разработать 34
математическую постановку, которая бы позволяла вести расчет отдельно по всем выделам. Однородный участок леса должен совпадать с однородными участками леса, принятыми в лесотаксационных описаниях [16]. Отсюда берет свое начало термин «ландшафтное распараллеливание». Для обеспечения более или менее равномерной вычислительной загрузки процессорных узлов МВС необходимо использовать модель распараллеливания по данным [18]. В MPI, например, может быть использована SPMD-модель вычислений [19]. Хотя равномерная загрузка данными не всегда обеспечивает равномерность вычислительной загрузки. Возможность обеспечивать высокую производительность (быстродействие) параллельной программы на как можно большем количестве МВС, различных по архитектуре, имеющих при этом хорошее соотношение цена/производительность, доступность и массовое распространение. Обеспечение как можно меньшего количества обменов информационными пакетами между ветвями параллельной программы в процессе ее выполнения, так как основное узкое место МВС - это коммуникационная среда, применяемая для связи между процессорными узлами. Таким образом, самым оптимальным вариантом по критерию цена/производительность можно считать кластерные вычислительные системы, имеющие, однако, очень низкие показатели скорости обмена между процессорными узлами. Это и обусловливает необходимость как можно меньшего числа обменов и обеспечения возможности перекрытия вычислений и обменов. Обеспечение однозначного отображения административнохозяйственного, лесотаксационного разделения лесного фонда государства (по крайней мере, Российской Федерации) на архитектуру МВС. Разбиение лесного фонда по выделам и распределение вычислительной нагрузки по процессорным узлам МВС. С учетом сформулированных выше положений ландшафтного распараллеливания был разработан ряд различных по сложности математических моделей для определения времени сушки слоя ЛГМ. Их применение позволяет обеспечить равномерность вычислительной нагрузки, высокую производительность и возможность использования недорогих МВС (вычислительных кластеров). В случае когда вычислительная система состоит из одного узла (М=1), время выполнения цикла - To=pNV/c, где р - количество 35
операций, необходимых для вычисления одной итерации цикла, NV число итераций цикла, с - производительность узла. Тогда, если NV > М и NV делится нацело на М, на каждом процессоре выполняется NV/M итераций цикла и время выполнения цикла равно TM=pNV/(Mc). Определим ускорение SM через отношение T0 к TM и в итоге получим: SM=M. Эта формула для ускорения справедлива при полном отсутствии потерь. Под эффективностью понимается отношение T E = 0 , которая в данном случае будет равна единице, так как не MTM
учитываются потери. Если NV не делится нацело на М, то задача об оптимальном распределении итераций цикла по процессорным узлам системы является задачей целочисленного программирования и, как отмечено в [20], не всегда имеет точное решение. Рассмотрим здесь следующую эвристику: сначала [NV/M] итераций равномерно распределяются по узлам, затем количество оставшихся итераций распределяется на NV-[NV/M]⋅M процессорных узлов, что приведет к тому, что на некоторых узлах будет больше итераций. Кроме того, перед выполнением цикла, как правило, необходимо разослать исходные данные по узлам вычислительной системы, а после выполнения цикла необходимо собрать результаты с процессорных узлов. Время, которое необходимо на выполнение указанных действий, обозначим через T'M. Если NV не делится нацело на М, а при распределении данных по узлам была использована некоторая эвристика, то на часть узлов попадут "лишние" данные [20], время обработки которых тоже присоединим к Т'M. В итоге время выполнения параллельного цикла равно TM=T0M+T'M=T0M+αMT0M, где T0M - время выполнения параллельного цикла при отсутствии потерь, а αM=T'M/T0M. Таким образом, с учетом потерь ускорение равно SM=M/(1+αM). Когда необходимо учитывать потери, эффективность вычисляется по формуле T T0 E= 0 = 0 MTM M ⋅ TM + α M TM0 и будет равна 1/(1+αM).
(
)
Расчеты проводились на вычислительном кластере Томского государственного университета. Технические характеристики: 18 процессоров Pentium III 650 MHz, 2.5 Гб ОЗУ, 36 Гб дискового 36
пространства, Fast Ethernet. Программное обеспечение: операционная система FreeBSD 4.2, кластерный пакет LAM MPI v 6.3.2. Кроме того, был создан и запущен в эксплуатацию вычислительный кластер на базе компьютеров локальной вычислительной сети кафедры [17], который состоит из 4-х однопроцессорных компьютеров на базе процессоров Intel Pentium III 800 МГц. На компьютерах установлено по 128 Мб оперативной памяти и жесткий диск на 20 GB. Компьютеры объединены с помощью сетевой технологии Ethernet. Для организации параллельных вычислений на кластере установлен кластерный пакет LAM MPI 6.5.1. Узлы кластера в одно и то же время могут использоваться как в качестве пользовательских станций, так и непосредственно для проведения вычислений. Реализация параллельной программы осуществляется на языке программирования Си с применением функций библиотеки передачи сообщений MPI. Алгоритм параллельной программы: исходные данные разрезаются и рассылаются корневым процессом параллельной программы. Затем на каждом узле параллельная программа обрабатывает свою часть данных. Межпроцессорных обменов нет, распараллеливание организовано крупнозернистыми блоками. По окончании вычислений корневой процесс собирает результаты со всех процессорных узлов и сохраняет их в файле результатов. Разработаны масштабируемые параллельные программы (число задействованных процессоров является параметром программы). Проанализировав полученные результаты, можно сделать вывод о том, что алгоритм рассматриваемой задачи очень хорошо подходит для параллельной реализации на МВС. В результате имеет место ускорение, практически пропорциональное числу задействованных процессоров МВС. Эффективность практически не зависит от числа задействованных процессоров, так как в процессе работы программы нет межпроцессорных передач данных. Установлено, что падение (α M ) = 0,09 . производительности невелико и Mmax ∈[1,16 ] Следует заметить, что несмотря на применение эвристики для распределения данных в случае, когда NV не делится нацело на M (статическая эвристика с предварительным распределением перед началом выполнения параллельного цикла), это не приводит к заметной разбалансировке вычислительной нагрузки и нет необходимости применять средства динамической перебалансировки вычислительной нагрузки в процессе выполнения параллельной 37
программы. Рассылка и сбор данных корневым процессом параллельной программы технически реализованы посредством векторных вариантов функций рассылки и сбора данных библиотеки MPI. Подход ландшафтного распараллеливания является проблемноориентированным, но в пределах области своего приложения достаточно гибок и универсален. Разработаны прототип аппаратнопрограммного комплекса для лесопожарного мониторинга крупных лесопокрытых территорий и параллельный программный комплекс прогноза возникновения лесных пожаров на крупных лесопокрытых территориях. Разработанный аппаратно-программный комплекс (вычислительный кластер, параллельный программный комплекс, сопутствующее методическое обеспечение) использовался в 2002 году в учебном и научно-исследовательском процессах на кафедре физической и вычислительной механики ММФ ТГУ. Заключение В рамках новой концепции прогноза лесной пожарной опасности разработан проблемно-ориентированный подход ландшафтного распараллеливания. Как показал анализ результатов проведенного исследования, данный подход очень эффективен при решении задач лесопожарного созревания слоя ЛГМ, определения вероятности возникновения лесных пожаров, оценки экологических последствий лесных пожаров. Параллельная программа достигает практически максимально возможного ускорения, когда ускорение практически пропорционально числу задействованных процессоров. Литература 1. Stocks B.J., Alexander M.E., McAlpine R.S. et al. Canadian Forest Fire Danger Rating System. Canadian Forestry service, 1987. 500 p. 2. Курбатский Н.П., Костырина Т.В. Национальная система расчета пожарной опасности США // Сб. «Обнаружение и анализ лесных пожаров». Красноярск: ИЛиД СО АН СССР, 1977. С. 38–90. 3. Camia A. , Barbosa P. , Amatulli G. , San-Miguel-Ayanz J. Fire Danger Rating in the European Forest Fire Information System (EFFIS): Current developments // Forest Ecology and Management. 2006. Vol. 234. Supplement 1. P. S20. 38
4. 5. 6.
7.
8. 9.
10.
11.
12.
13.
Нестеров В.Г. Горимость леса и методы ее определения. М.; Л.: Гослесбумиздат, 1949. 76 с. ГОСТ Р 22.1.09-99 “Мониторинг и прогнозирование лесных пожаров. Общие требования”. Сухинин А.И., Пономарев Е.И. Картирование и краткосрочное прогнозирование пожарной опасности в лесах Восточной Сибири по спутниковым данным // Сибирский экологический журнал. 2003. № 6. С. 669 – 675. Барановский Н.В. Новая концепция прогноза лесной пожарной опасности // Современные методы математического моделирования природных и антропогенных катастроф: Тезисы IX Всероссийской конференции (17–22 сентября 2007 г., Барнаул). – Барнаул: Изд-во Алт. ун-та, 2007. С. 13. Толстых М.А. Полулагранжева модель атмосферы с высоким разрешением для численного прогноза погоды // Метеорология и гидрология, 2001, № 4, С. 5 – 15. Lixiang Z., Xiaoshan Z., Yongzuo L., Jinggui W. Case study on tropical cyclone track prediction with MM5 // Journal of Nanjing Institute of Meteorology. Nanjing, China, 2000. Vol. 23. N 1. P. 73 – 80. Барановский Н.В., Гришин А.М., Лоскутникова Т.П. Информационно-прогностическая система определения вероятности возникновения лесных пожаров // Вычислительные технологии. 2003. № 2. С. 16 – 26. Hoadley J.L., Westrick K.J., Ferguson S.A., Goodrick S.L., Bradshaw L., Werth P.A. The effect of increased model resolution in predicting meteorological parameters used in fire danger rating // Journal of Applied Meteorology. 2004. Vol. 43. P. 1333 – 1347. Барановский Н.В. Математические основы системы усвоения данных об уровне антропогенной нагрузки на контролируемой лесопокрытой территории // Наука на рубеже тысячелетий “Progressive technologies of development”: 3-я Международная научно-практическая конференция: 24 – 25 ноября 2006 г. Тамбов: ОАО “Тамбовполиграфиздат”, 2006. С. 120 – 121. Cummins K.L., Murphy M.J., Bardo E.A., Hiscox W.L., Pyle R.B., Pifer A.E. A combined TOA/MDF technology upgrade of the U.S. national lightning detection network // Journal of Geophysical Research. 1998. Vol. 103. P. 9035–9044.
39
14. Барановский Н.В. Математическое моделирование наиболее вероятных сценариев и условий возникновения лесных пожаров: Дисс. … канд. физ.-мат. наук. Томск: Томский государственный университет, 2007. 153 с. 15. Исаев А.С., Коровин Г.Н., Титов С.П. и др. Экологические проблемы поглощения углекислого газа посредством лесовосстановления и лесоразведения в России: Аналитический обзор. М.: Центр экологической политики, 1995. 156 с. 16. Проект организации и развития лесного хозяйства Тимирязевского мехлесхоза Томского лесохозяйственного территориального производственного объединения министерства лесного хозяйства РСФСР. Том III. Таксационные описания Тимирязевского лесничества. Книга 3. Кварталы 91-145. Инв. № 390. Томск: Гослезхоз СССР. Всесоюзное объединение "Леспроект". Западно-Сибирское лесоустроительное предприятие, 1990. 400 с. 17. Барановский Н.В. Ландшафтное распараллеливание и прогноз лесной пожарной опасности // Сибирский журнал вычислительной математики. 2007. Том 10. № 2. С. 141–152. 18. Малышкин В.Э. Основы параллельных вычислений: Учеб. пособие. Новосибирск: Изд-во НГТУ. 1998. 60 с. 19. Snir M. , Otto S.M. , Huss-Lederman S. et al. MPI: The Complete Reference. - Boston: MIT Press. 1996. 20. Аветисян А.И., Гайсарян С.С., Самоваров О.И. Возможности оптимального выполнения параллельных программ, содержащих простые и итерированные циклы, на неоднородных параллельных вычислительных системах с распределенной памятью // Программирование. № 1. 2002. С. 38 – 54.
40
О ПРАКТИЧЕСКОМ ПРИМЕНЕНИИ ПАРАЛЛЕЛЬНОЙ СИСТЕМЫ ОПТИМИЗАЦИИ ABSOLUTE EXPERT К.А. Баркалов Нижегородский государственный университет Введение Работа выполнена в рамках совместного проекта «Быстрые вычисления в глобальной оптимизации: последовательные и параллельные среды» между ННГУ и Технологическим университетом г. Делфта, Нидерланды (TUDelft). Задачами проекта являлись разработка параллельной системы глобальной оптимизации и ее использование для решения вычислительно-трудоемких задач на высокопроизводительных кластерных системах. Инженерным приложением являлась задача поиска оптимального профиля колеса для рельсовых видов транспорта: метро, трамвай и т.п. Содержательная постановка задачи Рассматривается задача оптимизации профиля рельсового колеса ([1], [2]). Вследствие конической формы колеса центр колесной пары совершает синусоидальные движения (см. рис. 1). Кинематические свойства контакта колеса с рельсом, такие как радиус вращения, угол контакта и угол наклона колесной пары, варьируются при поперечном – относительно рельса – смещении колесной пары. Зависимость между этим изменениями и поперечной позицией колесной пары определяется профилем колеса и рельса.
41
Рис. 1
Важной характеристикой контакта колеса и рельса является радиус вращения колеса в контактной точке. Фактически радиус может быть разным для правого и левого колес, так как колесная пара смещается по рельсу (радиусы r1 и r2 соответственно на рис. 2).
Рис. 2
Когда колесная пара находится в центральной позиции, радиусы вращения левого и правого колес совпадают, т.е. r 1 = r 2 = r . Отличие между радиусами вращения левого и правого колес может быть определено как функция бокового смещения y колесной пары по отношению к ее центральной позиции Δr(x)=r1(x)−r2(x). Математическая модель Профиль колеса описывается с помощью B-сплайна, для построения которого выбирается множество точек на кромке, основании кромки и поверхности качения колеса (рис. 3). Положение этих точек может варьироваться с целью изменения профиля. Для уменьшения трудоемкости задачи оптимизации положение точек на
42
верху кромки и конической части профиля фиксируется, так как эти части колесного профиля не участвуют в контакте с рельсом.
Рис. 3
В качестве компонент вектора y параметров задачи оптимизации выбраны ординаты z i подвижных точек сплайна, т.е. y=[z1,…,zN], при этом абсциссы данных точек фиксированы. В рассматриваемой задаче число подвижных точек – следовательно, и число переменных – составляет N=11, границы изменения параметров [–1, 1]; минимизируется разность радиусов вращения Δr(x), а ограничения вводятся из соображений устойчивости (например, одно из ограничений наложено на максимальный угол наклона колесной пары). Таким образом, возникает задача оптимизации с числом параметров N=11, числом ограничений m=6; целевая функция и функции ограничений – многоэкстремальные. Для иллюстрации на рис. 4 приведено одномерное сечение целевой функции.
43
Рис. 4
Указанная задача является вычислительно-трудоемкой: проверка ограничений задачи и вычисление значения целевой функции в одной точке занимает 20 сек. (Pentium IV, 3 ГГц). Для функции с такой вычислительной трудоемкостью определение значения градиента в точке занимает 7 минут, что делает весьма затратным применение методов оптимизации, основанных на идее градиентного спуска. В Технологическом университете г. Делфта для решения задачи применялась система оптимизации MARS (см. [3]). В данной системе решение исходной задачи оптимизации сводится к решению последовательности задач квадратичного программирования. Тем самым гарантируется сходимость, вообще говоря, лишь к локальнооптимальному решению исходной многоэкстремальной задачи. С помощью системы MARS было получено локально-оптимальное решение, которому соответствует значение ϕ*=3.89 целевой функции. Параллельная система оптимизации Absolut Expert С целью получения глобально-оптимального решения задачи была использована параллельная система оптимизации Absolut Expert, разработанная на кафедре МО ЭВМ факультета ВМК ННГУ. В основе алгоритмов, реализованных в системе, лежит индексный метод глобальной оптимизации, разработанный под руководством Стронгина Р.Г. (см. [4] – [8]). Рассмотрим общую постановку задачи оптимизации ϕ∗=ϕ(y∗)=min{ϕ(y): y∈D, gj(y)≤0, 1≤j≤m}, (1) D={y∈RN: ai≤yi≤bi, 1≤i≤N},
44
целевая функция ϕ(y) и левые части ограничений gj(y),1≤j≤m, предполагаются липшицевыми с соответствующими константами Lj,1≤j≤m+1. Используя кривые типа развертки Пеано y(x), однозначно отображающие отрезок [0,1] на N-мерный гиперкуб D D={y∈RN: −2−1≤yi≤2−1, 1≤i≤N}={y(x): 0≤x≤1}, исходную задачу можно редуцировать к следующей одномерной задаче: ϕ(y(x∗))=min{ϕ(y(x)): x∈[0,1], gj(y(x))≤0, 1≤j≤m}. Редукция многомерных задач к одномерным с помощью разверток имеет такие важные свойства, как непрерывность и сохранение равномерной ограниченности разностей функций при ограниченности вариации аргумента. Однако при этом происходит потеря части информации о близости точек в многомерном пространстве, ибо точка x∈[0,1] имеет лишь левых и правых соседей, а соответствующая ей точка y(x)∈RN имеет соседей по 2N направлениям. Как результат, при использовании отображений типа кривой Пеано близким в N-мерном пространстве образам y', y'' могут соответствовать достаточно далекие прообразы x', x'' на отрезке [0,1]. В работе [5] предложен возможный способ преодоления этого недостатка, идея которого заключается в одновременном использовании множественных отображений YL(x)={y1(x),…, yL(x)} вместо применения единственной кривой Пеано y(x), что сводит одну многомерную задачу к нескольким связанным одномерным задачам. Каждая кривая Пеано yi(x) из YL(x) может быть получена в результате некоторого сдвига вдоль главной диагонали гиперинтервала D. Таким образом сконструированное множество кривых Пеано позволяет получить для любых близких образов y', y'', отличающихся только по одной координате, близкие прообразы x', x'' для некоторого отображения yi(x). Использование множества отображений приводит к формированию соответствующего множества одномерных многоэкстремальных задач (2) min{ϕ(yl(x)):x∈[0,1], gj(yl(x))≤0, 1≤j≤m}, 1≤l≤L. Каждая задача из данного набора может решаться независимо, при этом любое вычисленное значение z=gν(y'), ν=ν(y'), y'=yi(x') функции gν(y) в i-й задаче может интерпретироваться как вычисление значения 45
z=gν(y'), ν=ν(y'), y'=ys(x'') для любой другой s-й задачи без повторных трудоемких вычислений функции gν(y). Подобное информационное единство дает возможность решать исходную задачу (1) путем параллельного решения индексным методом L одномерных задач вида (2) на наборе отрезков [0,1]. Каждая одномерная задача (или группа задач при недостаточном количестве процессоров) решается на отдельном процессоре. Результаты испытания в точке xk, полученные конкретным процессором для решаемой им задачи, интерпретируются как результаты испытаний во всех остальных задачах (в соответствующих точках xk1,…,xkL). Подробное описание решающих правил параллельного алгоритма глобальной оптимизации см. в работе [8]. Результаты экспериментов Задача решалась на вычислительном кластере из 4 компьютеров (Pentium IV, 3 ГГц, сеть 100 Мбит, под управлением WindowsXP, использовался MPI в реализации MPICH 1.2.5) с помощью параллельного индексного метода с множественной разверткой. Число разверток соответствовало числу процессоров L=4. С помощью системы Absolute Expert было получено решение ϕ*=3.94, которое было локально уточнено до значения ϕ*=3.86. Всего для получения решения потребовалось 26 часов машинного времени, при этом функционалы задачи были оценены в 4297 точках. Расчеты, проведенные специалистами TUDelft для колеса оптимизированного профиля, показали, что его ресурс возрос до 120000 км пробега (более чем в пять раз по сравнению с колесом оригинального профиля), а максимально допустимая скорость – с 40 до 60 м/сек. Результаты работы используются в Технологическом университете г. Делфта (Нидерланды). Работа выполнена при финансовой поддержке РФФИ (номер проекта 07-01-00467) и Нидерландской организации по научным исследованиям (the Netherlands Organisation for Scientific Research), номер проекта 047.016.014. Литература 1. Shevtsov I.Y., Markine V.L., Esveld C. Optimal design of wheel profile for railway vehicles // Proceedings 6th International
46
2.
3.
4. 5. 6.
7. 8.
Conference on Contact Mechanics and Wear of Rail/Wheel Systems, Gothenburg, Sweden, June 10 – 13, 2003. Pp. 231 – 236. Shevtsov I.Y., Markine V.L., Esveld C. An inverse shape design method for railway wheel profiles. Structural and Multidisciplinary Optimization. Volume 33, № 3, Springer Berlin/Heidelberg, 2007. Pp.243 – 253. Toropov V.V., Keulen F., Markine, V.L., Alvarez L.F. Multipoint Approximations Based on Response Surface Fitting: a Summary of Recent Developments // In V.V. Toropov (Ed.) Proceedings of the 1st ASMO UK/ISSMO Conference on Engineering Design Optimization, Ilkley, West Yorkshire, UK, 1999. Pp. 371 – 381. Стронгин Р.Г. Поиск глобального оптимума. М.: Знание, 1990. Стронгин Р.Г. Параллельная многоэкстремальная оптимизация с использованием множества разверток// Ж. вычисл. матем. и матем. физ. 1991. Т.31. №8. С. 1173 – 1185. Стронгин Р.Г., Баркалов К.А. О сходимости индексного алгоритма в задачах условной оптимизации с εрезервированными решениями// Математические вопросы кибернетики. М.: Наука, 1999. С. 273 – 288. Баркалов К.А. Ускорение сходимости в задачах условной глобальной оптимизации. Нижний Новгород: Изд-во Нижегородского гос. ун-та, 2005. Strongin R.G., Sergeyev Ya.D. Global optimization with nonconvex constraints. Sequential and parallel algorithms. Kluwer Academic Publishers, Dordrecht, 2000. ВЕБ-СЕРВИС ПОСТРОЕНИЯ НАГЛЯДНЫХ СХЕМ ПРОЦЕССОВ В ПРОГРАММАХ НА ЯЗЫКЕ OCCAM В.Н. Белов, А.С. Сарайкин Пензенский государственный университет
Введение Параллельные вычисления уже долгое время являются одной из приоритетных областей научных и практических исследований для вычислительной техники. Постоянно создаются новые и совершенствуются существующие аппаратные и программные
47
средства для более эффективного решения задач. Одним из таких программных средств является язык Occam. Язык программирования Occam — это процедурный язык параллельного программирования высокого уровня, разработанный группой учёных из Оксфорда в рамках работ по созданию транспьютеров. В основе языка лежит так называемая CSP-концепция (концепция взаимодействующих последовательных процессов), разработанная Ч.Хоаром. В сущности, CSP — это формализм для описания соответствующей вычислительной модели, достаточно выразительный, чтобы на нём можно было записывать и доказывать теоремы, и достаточно мощный и однозначный, чтобы являться языком программирования. Базовые концепции языка, в частности такое свойство, как концепция выполнения параллельных процессов, которые не разделяют общую память и могут обмениваться информацией только с помощью каналов связи, потенциально позволяют получать продукт высокой целостности, так как при этом поддерживается определенная форма ограничения распространения ошибок. Развитие языка Occam идет в сторону добавления новых типов данных, высокоуровневых понятий и средств, облегчающих программирование. При этом философия языка не пересматривается, что свидетельствует об ее изначальной удачности. Реализации Occam существуют для разных, в том числе нетранспьютерных архитектур. Таким образом, он может использоваться и для создания программ для обычных ПК. Спектр его применения чрезвычайно широк: от скринсейверов и программ построения фракталов до серверов многопользовательских компьютерных игр, хотя, разумеется, наиболее оправдано использование языка Occam для создания параллельных программ. Известны также библиотеки, реализующие примитивы базовой для Occam концепции CSP, что позволяет программировать в стиле Occam на других языках. Постановка задачи Несмотря на понятность концепции языка и синтаксис, изначально предполагающий высокую читабельность исходных кодов, некоторую сложность может вызывать структура процессов, их порядок возникновения и выполнения, что в той или иной степени характерно для всех языков параллельного программирования. На практике 48
мыслить в терминах параллельных процессов и писать параллельные программы намного сложнее, чем классические. Это приводит к тому, что при изучении языка параллельного программирования появляются сложности в понимании работы алгоритмов параллельных вычислений, что тормозит процесс обучения. Даже после освоения инструментария и получения необходимых навыков могут возникать проблемы при отладке программ, что зачастую вызвано недостаточной наглядностью исходных кодов. Несмотря на обязательное форматирование текста, по исходным кодам не всегда легко увидеть ошибку, приводящую к неправильной последовательности выполнения процессов. Представляется необходимым создание программного средства, которое позволит наглядно показывать структуру Occam-программы в характерных для языка терминах. Краткое описание проекта Для решения поставленной задачи был создан веб-сервис, который позволит по исходным кодам Occam-программы получить представление о протекающих во время ее исполнения процессах. Пользователю достаточно зайти на веб-страницу и отправить на обработку текст программы. В результате он получит графическую схему, иллюстрирующую работу приложения в терминах процессов, характерных для языка Occam. Пользователь сам выбирает степень детализации веток приложения, каждый раз получая новую схему, наглядно отображающую все необходимые данные, в том числе и исходный текст, формирующий процессы Occam-программы. Веб-сервис реализован как CGI-программа на языке Perl. В рамках одного CGI-сценария производится синтаксический разбор переданных пользователем исходных кодов, построение изображениясхемы программы и формирование ответа. Благодаря большим возможностям языка Perl использование других программных средств на серверной стороне не требуется, что также уменьшает затраты системы на обработку запроса. Имеются и другие особенности языка Perl, в силу которых он был выбран в качестве основного при реализации проекта: Perl имеет богатые возможности для работы с текстом, реализованные при помощи регулярных выражений, что представляется критичным в рамках данного проекта;
49
сценарии Perl выполняются на сервере, что позволяет пользователю не беспокоиться о наличии на локальном компьютере специфических программных средств; Perl - кроссплатформенный язык программирования, программы, написанные на Perl, работают на UNIX, Windows, Macintosh, VMS и других платформах; имеется возможность писать программы как с использованием процедур, так и с помощью объектов.
Однако Perl не предоставляет возможности для создания интерактивных веб-страниц, что чрезвычайно важно для обеспечения наглядности схемы программы. Для решения этой проблемы в HTMLстраницы вставляются команды JavaScript, обеспечивающие необходимое взаимодействие с пользователем. На JavaScript реализованы всплывающие подсказки, ставящие в соответствие элементам схемы программы фрагменты ее исходных кодов. Выбор в пользу данной технологии сделан в силу того, что она изначально ориентирована на подобные задачи и поддерживается большинством современных браузеров. Данный веб-сервис может быть размещен на большинстве существующих Интернет-серверов и должен принести ощутимую пользу всем, кто заинтересован в изучении и применении на практике языка Occam. РАСПАРАЛЛЕЛИВАНИЕ АЛГОРИТМА ВЕЙВЛЕТПРЕОБРАЗОВАНИЯ ПРИ ВЫЯВЛЕНИИ ПОВЕРХНОСТНЫХ ДЕФЕКТОВ ЛИСТОВОГО МЕТАЛЛА ПРИ ОБРАБОТКЕ НА ПРОКАТНОМ СТАНЕ Д.П. Бугаев Оренбургский государственный университет При обработке цифровые изображения необходимо обозревать или обрабатывать при различных увеличениях и разрешениях, для этих целей используется дискретное вейвлет-преобразование (DWT). Помимо того, что вейвлет-преобразование является весьма эффективным и интуитивно понятным инструментом для представления и хранения кратномасштабных изображений, оно
50
обеспечивает глубокое проникновение к основным пространственным и частотным характеристикам изображений. Процесс выявления поверхностных дефектов при обработке на прокатном стане должен обрабатывать информацию в реальном режиме времени, так как слиток металла проходит через прокатный стан на скорости от 3 до 14 м/сек. Алгоритм вейвлет-преобразования и кратномасштабного анализа при получении коэффициентов детализации возможно разделить на несколько параллельных потоков. Получение разномасштабного изображения из формулы (1) дискретного вейвлет-преобразования масштабирующей функции 1 M −1 N −1 (1) Wϕ ( j 0 , m, n) = ∑∑ f ( x, y)ϕ j0 ,m,n ( x, y) MN x =0 y =0 можно ускорить, разделив (1) на несколько потоков: (2). N −1 p x(j0 ,n) = ∑ f ( x, y )ϕ j0 ,m,n ( x, y ) , y =0
Wϕ ( j 0 , m, n) =
1 MN
M −1
∑p x =0
x
( j 0 , n) .
(2)
Процесс получения дискретного вейвлет-преобразования для вейвлет-функций возможно разделить на три отдельных потока при вычислении вейвлетов вариаций значений функции – изменения яркости для изображения – по разным направлениям: ψH измеряет вариации вдоль столбцов (горизонтальные края объектов), ψV - вдоль строк (вертикальные края) и ψD – вдоль диагоналей. В то же время получение каждого отдельного вейвлета вариаций можно также разделить на несколько параллельных потоков, аналогично получению разномасштабного изображения. Получение вейвлетов вариаций из формулы (3) дискретного вейвлет-преобразования вейвлет-функций 1 M −1 N −1 (3) Wψi ( j , m, n) = f ( x, y )ψ ij ,m ,n ( x, y ) ∑∑ MN x =0 y =0 можно ускорить, разделив (3) на несколько потоков: N −1 i p x(j0 ,n) = ∑ f ( x, y )ψ ij ,m ,n ( x, y ) , y =0
51
Wψi ( j , m, n) =
1 MN
M −1
∑p x =0
i x
( j , n) .
(4)
Таким образом, обработка изображения листа металла без дефекта с распараллеливанием алгоритма вейвлет-преобразования на рисунке 1, с получением трехмерной модели (рисунок 2) и расчетом коэффициентов детализации ускоряется в зависимости от исходного размера изображения от 1.7 до 0.32 раз.
Рис. 1. Исходное изображении листа металла без дефекта
52
Рис. 2. Трехмерная модель изображения
Обработка изображения листа металла с царапиной с распараллеливанием алгоритма вейвлет-преобразования на рисунке 3, с получением трехмерной модели (рисунок 4) и расчетом коэффициентов детализации ускоряется в зависимости от исходного размера изображения от 1.4 до 0.47 раз.
Рис. 3. Исходное изображении листа металла с царапиной
53
Рис. 4. Трехмерная модель изображения
Распараллеливание алгоритма вейвлет-преобразования позволяет ускорить процесс выявления дефектов металла на прокатном стане, следовательно, возможно ускорить сам процесс принятия решения о браковке металла и скорость проката перестает быть узким местом разрабатываемого программно-аппаратного комплекса. О НЕКОТОРЫХ ТЕХНИЧЕСКИХ РЕШЕНИЯХ ПОСТРОЕНИЯ ВЫСОКОПРОИЗВОДИТЕЛЬНЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ ИЗ ОПЫТА ВВОДА В ЭКСПЛУАТАЦИЮ СИСТЕМЫ МФТИ-60 О.Е. Булыгин, А.В. Николаев ООО «Компьютеры Модуль», Москва Московский физико-технический институт, Долгопрудный Введение Современные высокопроизводительные вычислительные системы потребляют значительную мощность, измеряемую многими десятками и даже сотнями киловатт. Это ставит перед разработчиками и пользователями таких систем серьезные задачи по энергоснабжению и отводу выделяемого тепла, управлению климат-системами в процессе эксплуатации и сопровождения. 54
В данном обзоре даются краткое описание технических решений, принятых при построении систем инженерного обеспечения вычислительного кластера МФТИ-60, и некоторые результаты тестирования. Платформа Вычислительный кластер МФТИ 60 построен на базе 136 (132 основных + 4 резервных) вычислительных узлов HP DL140G3, каждый с 2 процессорами Intel 5160, с 4 GB оперативной памяти и жестким диском 250 GB, SATA, объединенных интерконнектом Myrinet-2000. В качестве управляющей среды используется управляющий узел Module RX516 c 2 процессорами Intel 5160, с 4 GB оперативной памяти и дисковым массивом 4x750 GB, SATA и управляющая среда 1000Base-T, организованная с помощью 4 коммутаторов 3Com 3C16486-ME (2848-SFP). Пиковая производительность системы 6528 Gflops. В результате тестирования с использованием HPL была получена максимальная производительность системы 4526 Gflops. Максимальное энергопотребление составило 55 кВт. Инженерные системы обеспечения Для обеспечения работоспособности комплекса введены в строй следующие системы инженерного обеспечения: система монтажного оборудования APC InfraStruXure с организацией изолированного горячего коридора (для избежания перемешивания горячего и холодного потоков воздуха); система электроснабжения с использованием оборудования APC InfraStruXure; система охлаждения APC InfraStruXure на базе внутрирядных охладителей 4х APC InRow RC, способных отводить до 18 kW каждый. Тепло из серверного помещения отводится чиллерной системой, состоящей из 2х чиллеров, производящих ледяную воду с холодопроизводительностью до 69 kW каждый; система увлажнения воздуха, управляемая системой администрирования APC InfraStruXure; система автоматического газового пожаротушения; система администрирования APC InfraStruXure, позволяющая контролировать основные параметры комплекса: температуру, 55
влажность, энергопотребление, предупреждения системы газового пожаротушения, датчики протечек воды и т.п. Все инженерные системы были смонтированы в специально подготовленном серверном помещении. Перечислим основные мероприятия, выполненные в ходе подготовки помещения: обеспыливание помещения, покрытие поверхностей пыленеобразующим, паронепропускающим составом; монтаж фальшпола высотой 25–30 см; монтаж натяжного потолка для избежания прямого попадания воды на оборудование в случае протечек; профилирование поверхности пола и монтаж дренажных систем для удаления воды в случае возможных аварий; монтаж электропроводки кабелем достаточного поперечного сечения в комплексе с мерами по исключению помех на размещаемое в помещении вычислительное и коммуникационное оборудование. Однородность охлаждения вычислительных узлов Благодаря внедрению систем обеспечен отвод выделяемого вычислительным кластером в процессе работы тепла. Вычислительный комплекс способен за 90 с нагреть на 10ºС воздух в серверном помещении (350 м3). Для охлаждения всех узлов требуется поток воздуха до 5 м3 в секунду. Управление такими воздушными потоками крайне сложная аэродинамическая задача. Традиционные схемы охлаждения с подачей холодного воздуха из-под фальшпола или фальшпотолка не устраивали нас по причине неравномерного охлаждения узлов по высоте стойки. Обделенными оказываются как ближайшие к источнику холодного воздуха узлы (из-за высокой скорости потока), так и наиболее удаленные от него. К тому же для создания необходимого объема потока холодного воздуха требуется значительная высота фальшпространства (не менее 80 см) при отсутствии препятствий для него. Отвод горячего воздуха и избежание его перемешивания с холодным в этом случае также проблематичны. Благодаря принятым решениям достигнута однородность температур потока воздуха на передних панелях используемых серверов с разницей не более 0.5ºС. Однородность охлаждения вычислительных узлов обеспечивает отсутствие необходимости понижения тактовой частоты каких-либо процессоров в используемых 56
узлах. Таким образом, реализуется максимальная производительность системы в полном соответствии с первым законом Амдала. Решение для обеспечения работы при экстремально высоких внешних температурах Лето 2007 года изобиловало в Москве жаркими днями. Температура воздуха нередко переваливала за 35ºС. При столь высоких температурах падает эффективность систем внешнего кондиционирования фреона, используемых чиллерными системами для отвода тепла вовне. Для обеспечения необходимых параметров работы данной системы была реализована схема увлажнения радиаторов. Использованная система увлажнения радиаторов конденсаторов, несмотря на простоту и экономичность, дала необходимый результат. Результаты тестирования платформы Intel Atoka Использовалась система Supermicro Super Server 6015T-INFB. Разработанное инженерами Intel решение, реализованное Supermicro в 1U-платформе, осуществляет питание двух материнских плат и всего находящегося на нем оборудования от блока питания по проводникам с напряжением 12 V, что позволяет существенно повысить эффективность энергоснабжения (при одновременном уменьшении веса и габаритов блока питания, размещаемого в шасси). Сопоставление энергопотребления системы 6015T-INFB с аналогичными по вычислительной производительности узлами HP DL140G3 и Intel SR2500AL (2x 2x i5160/4GB/250GB hdd) позволяет сделать вывод об уменьшении энергопотребления до 100 W на узел при использовании решения Atoka. Решение Atoka, к тому же, отличается большей плотностью на то же число отсеков (юнитов) в 19-дюймовой стойке по сравнению с аналогичными блейд-решениями. В 10-U стойке размещается до 20 узлов (до 40 процессоров, 160 ядер)! Повышение эффективности вычислительного кластера за счет использования драйверов адаптеров интерконнекта, использующих более тесную интеграцию с ядром операционной системы.
57
АДАПТАЦИЯ ПРИЛОЖЕНИЙ ВЫЧИСЛИТЕЛЬНОЙ ХИМИИ К ВЫЧИСЛЕНИЯМ В ПАРАЛЛЕЛЬНЫХ И РАСПРЕДЕЛЕННЫХ СРЕДАХ Д.А. Варламов, В.М. Волохов, А.В. Пивушков, Г.А. Покатович, Н.Ф. Сурков Институт проблем химической физики РАН, Черноголовка В Институте проблем химической физики (ИПХФ) РАН в настоящее время реализован вычислительный центр (3 кластера, более 150 процессоров, с интегрированной мощностью до 1,3 Терафлоп в конце 2007 года), использующий самые различные комбинации распределенных и параллельных вычислений. Для квантовохимических расчетов используются лицензионные программы (Gaussian-98, -03, Mopac2002, MolPro), программы, распространяемые на условиях “open source” (CPMD, Dalton-2, Gamess-US, NWChem, VASP и др.), и довольно разнообразное оригинальное авторское ПО. Основным направлением работ являются квантово-химические вычисления, вычисления в области молекулярной динамики и моделирование газодинамических явлений. Для большинства подобных задач представляется перспективным применение распределенных вычислений (в том числе основанных на GRID-технологиях), часто представленных параллельными заданиями или параллельными «пучками» заданий. Более детально структура вычислительного центра ИПХФ и применяемые там варианты использования распределенных и параллельных вычислительных сред были описаны авторами ранее [1,2]. Работы с системами распределенных и параллельных вычислений в ИПХФ РАН проводились в 2005-2007 гг. в рамках программы № 21 фундаментальных исследований Президиума РАН «Разработка фундаментальных основ создания научной распределенной информационно-вычислительной среды на основе технологий GRID», в 2005 году в рамках Федеральной целевой научно-технической программы "Исследования и разработки по приоритетным направлениям развития науки и техники" по проекту “Создание комплекса пакетов прикладных программ для моделирования сложных научных и промышленных задач на суперкомпьютерных системах терафлопного уровня и в распределенных вычислительных средах”, а также в 2007 году в рамках программы «СКИФ-ГРИД». 58
Основные типы задач вычислительной химии и применяемые варианты проведения расчетов в распределенно-параллельных средах на базе локальной сети и типовых грид-интерфейсов (Condor-G и Nimrod-G), а также среды X-Com (http://x-com.parallel.ru) были описаны нами в трудах предыдущей конференции [3]. Целью же данной статьи является описание некоторых вариантов адаптации существующего ПО в области вычислительной химии к параллельным и/или распределенным средам. Вычислительная среда В течение 2005-2007 годов в ИПХФ была создана и эксплуатируется гетерогенная распределенная вычислительная среда на платформе рекомендованного EGEE-RDIG (http://www.egee-rdig.ru) промежуточного ПО LCG-2/gLite-3 (http://cern.ch/glite): сформирован комплекс, включающий ресурсный узел сервисов GRID в рамках базовых требований, предъявляемых как европейским GRID сообществом EGEE, так и его российским отделением RDIG, а также несколько пользовательских интерфейсов (включая WWW-порталы) и шлюзов к инфраструктуре GRID. Структура, тестирование, основные функции и возможности ресурсного узла по запуску исходящих и входящих распределенных задач также описаны нами ранее [4]. Для пакетной обработки заданий на СЕ выбраны две системы: Condor (http://www.cs.wisc.edu/condor/, версия 6.6.11) и PBS Torque (версии 1.2.6 и 2.1.7, http://www.clusterresources.com/). Обе системы в лучшей степени охватывают спектр разрабатываемых задач, позволяя решать как типичные параллельные задачи с непрерывным обменом данными (например, GAMESS), так и генерируемые "пучки" формально независимых задач. Для обработки параллельных задач использованы пакеты MPICH версий 1 и 2. Адаптация авторского ПО Программы по расчету многопараметрических задач из области квантовой химии: например, расчет процесса туннельного прохождения протона через потенциальный барьер, параметры которого периодически зависят от времени, а параметрами являются частота и амплитуда излучения (создание материалов для оптической сверхплотной памяти). Подобные задачи имеют высокую вычислительную сложность, однако вычисления в каждой точке сетки происходят совершенно независимо друг от друга, что позволило разбить область вычислений на множество непересекающихся 59
подобластей и на каждой из них запускать задачу на подмножестве процессоров. Область решения задачи была разбита на 30 областей до 5000 точек в каждой. При применении одиночного ПК (класса CoreDuo 2, 3 ГГц) оцениваемое время решения задачи составило бы около 5-6 тысяч часов. Для расчетов на российском сегменте EGEE– RDIG в рамках виртуальной организации RGSTEST были использованы шлюзы: Condor-Globus и авторский. Распараллеливание задачи осуществлялось на User Interface узла ИПХФ авторскими скриптами и средствами среды Condor, задания выполнялись индивидуально и независимо друг от друга. Бинарный файл программ вместе с входными данными для одной из подобластей, получившихся в результате расщепления области данных, помещались во входной “box” и передавались вместе с заданием на внешний брокер ресурсов, который определял свободный CE в VO RGSTEST, на котором и происходили запуск и выполнение единичного задания. Объем передаваемых входных данных для одного задания составлял около 1 Mб, выходных – до 0.5 Mб, таким образом, для расчета типовой задачи происходила передача до 7,5 Гб данных на внешние расчетные узлы. Выходные данные, вместе с файлом результатов, помещались в выходной “box” и передавались на хранение на SE, откуда извлекались командой edg-job-get-output. Была показана возможность работы с любым количеством CE в виртуальной организации. Расчет в распределенной системе в среде GRID (с занятием до 100 процессоров) занял около 36 часов. Расчет оптимальных параметров для создания промышленной высокопроизводительной установки (теплового узла) по выращиванию крупногабаритных кристаллов. Двумерная задача предусматривает до 109 единичных параллельных независимых расчетов, что делает ее идеальной для решения путем запуска “пучков” задач на распределенных вычислительных мощностях, при этом могут быть использованы и SMP-варианты расчетов отдельных областей. Набор авторских скриптов «нарезает» задачу и запускает ее через брокер ресурсов на вычислительных мощностях VO RGSTEST. В настоящее время разрабатывается вариант отправки «областей» рассчитываемой сетки на удаленные CE с «нарезкой» их уже непосредственно на ресурсном узле. Решено несколько упрощенных вариантов задачи, однако полномасштабный вычислительный эксперимент требует до 1000 процессоров, что возможно лишь в рамках крупных полигонов
60
(например, развиваемого в настоящий момент российского полигона СКИФ-ГРИД, где участвует и ресурсный узел ИПХФ). Для изучения проблем прохождения параллельных программ с использованием интерфейса MPI на ресурсном узле GRID в ИПХФ РАН была использована реальная газодинамическая программа моделирования на молекулярном уровне процесса образования ударной волны в трубе применительно к газовой смеси, и после отработки тестов решено несколько реальных задач (со временем расчета на единичном кластере до нескольких недель). Стандартные прикладные пакеты в области вычислительной химии К изученному ПО относятся пакеты GAMESS-US, Gaussian-03, Dalton-2, CPMD, VASP, MolPro. Большинство из них поддерживает работу в SMP-средах собственными средствами, однако их ресурсоемкость требует использования и независимо-параллельных (сокетных и MPI) вариантов, а также возможности запуска на удаленных ресурсных узлах. К сожалению, для распространения этих пакетов на расчетные узлы GRID пока возможна только ручная их установка и настройка, что связано со сложностью установки как самих пакетов, так и требуемого ими окружения, а размеры пакетов (сотни мегабайт) не дают реальной возможности их передачи на узлы в качестве единого задания (в качестве тестов это проделывалось). Однако в рамках создаваемой VO по вычислительной химии предполагается найти решение данных проблем. Опишем реализации параллельных и распределенных методов для некоторых из указанных пакетов. 1. Пакет GAMESS (General Atomic and Molecular Electronic Structure System). Для пакета GAMESS в среде GRID авторами была создана среда, позволяющая проводить его распараллеливание как сокетным способом, так и посредством протокола MPI (пакет mpich21.0.3). Сокетный параллельный вариант отличается существенно более простой реализацией и повышенным быстродействием, однако при запуске через GRID-инфраструктуру имеет ряд недостатков: неправильно оценивает необходимые процессорные ресурсы, требует фиксированного числа процессоров и обязательного явного указания стартующего узла, не позволяет точный мониторинг задач. В условиях избыточных вычислительных мощностей этот вариант приемлем, однако для лимитированных ресурсов его использование пока 61
проблематично. MPI-вариант реализован только для среды Mpich-2, поскольку пакет GAMESS требует передачи огромного числа переменных окружения и параметров (чего не дает ”стандартная” реализация MPI). Он более применим для GRID-среды, т.к. требует определения только минимального числа доступных процессоров, не «завязан» на стартующую машину, не нуждается в явном описании расчетных узлов. Были проведены успешные запуски ряда заданий для расчетов по программе GAMESS в тестовой VO RGSTEST, а затем и проведены масштабные расчеты на нескольких десятках процессоров с получением результатов расчетов на конкретном UI. В настоящее время заканчивается отладка WWW-интерфейса для упрощения формирования и запуска задач на удаленных узлах, их мониторинга и получения результатов, поскольку квантово-химический комплекс GAMESS отличается очень обширным количеством входных данных. Все данные делятся на 114 групп, которые содержат в совокупности более 500 простых параметров и параметров-массивов, и их «сборка» и запуск вручную – весьма трудоемкий процесс. 2. Пакет Gaussian. Для Gaussian-D03 был сформирован пакет скриптов для запуска заданий посредством GRID-технологий на SMP-серверах (при условии предварительной установки) и успешно просчитан ряд реальных задач, запущенных через UI-интерфейс. В настоящее время изучается возможность его распараллеливания между отдельными узлами кластеров с использованием пакета Linda (под управлением PBS Torque). Работу в тривиальных MPI-средах данный пакет пока не поддерживает. Наибольшую проблему вызывают вопросы лицензионных ограничений использования данного коммерческого ПО в рамках распределенных сред. 3. Для пакетов CPMD и Dalton-2 показана возможность запуска в распределенных средах (при предварительной установке и настройке), при этом оба пакета могут совмещать работу в SMP-архитектурах с работой в MPI-среде. Перечисленные примеры – лишь небольшая часть задач вычислительной химии и примыкающих к ним по структуре вычислений задач из других областей химии, которые могут быть адаптированы к решению в рамках инфраструктуры GRID. Исследования, проведенные в рамках проекта, продемонстрировали огромные возможности параллельных и/или распределенных технологий в среде GRID в области вычислительной химии. Существенные трудности, связанные с установкой различного 62
middleware (LCG-2/gLite, Condor, Xcom), многократно перекрываются новыми возможностями и перспективами в решении масштабных задач. Литература 1. Алдошин С.М., Варламов Д.А., Волохов В.М., Покатович Г.А., Сурков Н.Ф., Станиловский А.И. GRID и вычислительная химия в ИПХФ РАН // Научный сервис в сети Интернет: технологии параллельного программирования. Труды Всероссийской научной конференции, М.:, Изд-во МГУ, 2006. с.91-93. 2. Варламов Д.А., Волохов В.М., Покатович Г.А., Сурков Н.Ф., Пивушков А.В. Российский сегмент GRID в области вычислительной химии // В сб.: Распределенные вычисления и грид-технологии в науке и образовании, Труды второй международной конференции (Дубна, 26–30 июня 2006 г.), Дубна: Изд-во ОИЯИ, 2006. Д11-2006-167, 419 с. C.243-254 3. Варламов Д.А., Волохов В.М., Пивушков А.В., Покатович Г.А., Сурков Н.Ф. Применение параллельных и распределенных вычислений для задач квантовой химии в ИПХФ РАН // Высокопроизводительные параллельные вычисления на кластерных системах. Материалы шестого Международного научно-практического семинара (Под ред. проф. Стронгина Р.Г.) Санкт-Петербург: Изд-во СПбГУ, 2007. 281 с. Том 1. С.71-79. 4. Варламов Д.А., Волохов В.М., Покатович Г.А., Сурков Н.Ф., Пивушков А.В. Параллельные квантово-химические вычисления в среде ГРИД // Международная научная конференция "Параллельные вычислительные технологии" (ПаВТ'2007) труды Международной научной конференции (Челябинск, 29 января - 2 февраля 2007 г.). – Челябинск: Изд-во ЮУрГУ, 2007. – Т.2. 297 с. С.3-14.
63
ПРАКТИКА ПРИМЕНЕНИЯ ПРОГРАММНЫХ СИСТЕМ РАСПРЕДЕЛЕННЫХ И ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙ ДЛЯ РЕШЕНИЯ ЗАДАЧ ВЫЧИСЛИТЕЛЬНОЙ ХИМИИ Д.А. Варламов, А.В. Пивушков, В.М. Волохов, Н.Ф. Сурков, Г.А. Покатович Институт проблем химической физики РАН, Черноголовка Введение ИПХФ - крупнейший в России академический институт, проводящий теоретические и экспериментальные исследования по следующим направлениям: общие теоретические проблемы химической физики; строение молекул и структура твердых тел; кинетика и механизм сложных химических реакций и др. При исследовании этих направлений необходимо проводить параллельные и/или распределенные расчеты. Для проведения расчетов используются как лицензионные программы (Gaussian, Mopac, MolPro), так и программы, распространяемые на условиях “open source” (CPMD, Dalton-2, Gamess-US, NWChem). Также используется оригинальное авторское ПО. Структура вычислительной среды ИПХФ В течение 2005-2007 годов в ИПХФ была создана и эксплуатируется гетерогенная распределенная вычислительная среда на платформе промежуточного ПО (middleware) LCG-2/gLite: были сформированы ресурсный узел сервисов GRID и ряд пользовательских интерфейсов и шлюзов к инфраструктуре GRID. Реализованы основные серверные компоненты узла GRID, включая Computing Element (CE), Storage Element (SE), Monitor Element (MON), Work Node(s) (WN, 14 процессоров). Данные компоненты формируют ресурсный узел GRID (в рамках LCG-2) и используются для решения входящих задач. Для CE- и SE-элементов узла были получены необходимые сертификаты, действительные в рамках инфраструктуры EGEE. В качестве остальных обязательных компонентов узла использованы внешние ресурсы (брокер ресурсов и proxy-сервер – НИИЯФ МГУ, сертификационный центр – Курчатовский РНЦ). Для пакетной обработки заданий на СЕ выбраны системы Condor и PBS Torque. Они позволяют решать как параллельные задачи с 64
непрерывным обменом данными, так и генерируемые "пучки" формально независимых задач. Для обработки параллельных задач использован пакет Mpich (1 и 2). Для решения исходящих задач (задач, формируемых пользователями и решаемых на внешних ресурсах) были установлены пользовательские интерфейсы (UI). Они используются для передачи задач и данных на внешние узлы инфраструктуры GRID и проведения там расчетов в рамках различных виртуальных организаций. Для обеспечения комфортной работы пользователя и автоматизации запуска часть UI была интегрирована в WWW-портал http://grid.icp.ac.ru (Grid Enabled Chemical Physics – GECP). Портал является подбором пилотных пользовательских интерфейсов для запуска авторских задач и прикладных программ в области вычислительной химии и роста кристаллов. В ИПХФ РАН ряд пользователей получили сертификаты с регистрацией в тестовой VO RGSTEST консорциума RDIG, после чего ими был решен ряд задач на ресурсных узлах в рамках данной VO – НИИЯФ и НИВЦ МГУ, ИФВЭ (Протвино), Харьковский ФТИ, собственный узел ИПХФ – всего до 200 процессоров. В течение 2006-2007 годов проводились работы по созданию прикладных интерфейсов (включая высокоуровневые WWW-варианты) для запуска в распределённой вычислительной среде однопроцессорных и параллельных приложений. Была отработана методика подготовки вычислительных заданий, включающая технику подготовки задач определенного класса, технологии формирования параллельных «пучков» задач, их запуска на распределенных ресурсах и «сборки» результатов. Был проведен ряд экспериментов с использованием внешних ресурсов VO RGSTEST и ресурсного узла ИПХФ (через инфраструктуру GRID) в самых различных вариантах заданий: с использованием одно- и многопроцессорных конфигураций, с созданием «пучков» заданий (до 70000 вариантов расчетов), с использованием параллельных вычислений (MPI 1 и 2). Были проведены адаптация и запуски квантово-химических задач GAMESS (сокетный и MPI варианты) и Gaussian. Авторские программы 1. Расчет процесса туннельного прохождения протона через потенциальный барьер (создание материалов для оптической сверхплотной памяти). Вычисления в каждой точке сетки происходят 65
независимо, что позволило разбить область вычислений на множество непересекающихся подобластей и на каждой из них запускать задачу на подмножестве процессоров. Область решения задачи: 30 подобластей по ~4200 точек в каждой. При применении одиночного ПК оцениваемое время решения задачи достигает 5-6 тысяч часов. Для расчетов на сегменте EGEE–RDIG в рамках виртуальной организации RGSTEST были использованы шлюзы Condor-Globus и авторский. Распараллеливание задачи осуществлялось на UI узле ИПХФ средствами системы Condor или авторскими скриптами, задания выполнялись индивидуально и независимо друг от друга. Бинарный файл программ вместе с входными данными для одной из подобластей, получившихся в результате расщепления области данных, помещались во входной “box” и передавались на брокер ресурсов, который определял свободный CE в VO RGSTEST, на котором и происходили запуск и выполнение единичного задания. Объем передаваемых входных данных для одного задания составлял около 1 Mб, выходных – до 0.5 Mб, всего для расчета типовой задачи происходила передача до 7.5 Гб данных на внешние расчетные узлы. Выходные данные вместе с файлом результатов передавались на хранение в SE, откуда передавались на UI. Показана возможность работы с любым количеством CE виртуальной организации. Расчет в распределенной системе в среде GRID (до 100 процессоров) занимает около 30-40 часов. 2. Расчет оптимальных параметров для создания промышленной высокопроизводительной установки (теплового узла) по выращиванию крупногабаритных кристаллов. Двумерная задача предусматривает до 9 10 единичных параллельных независимых расчетов, что делает ее идеальной для решения путем запуска “пучков” задач на распределенных вычислительных мощностях. Набор авторских скриптов «нарезает» задачу и запускает ее через брокер ресурсов на вычислительных мощностях VO RGSTEST. Решено несколько упрощенных вариантов задачи, однако полномасштабный вычислительный эксперимент требует до 1000 процессоров, что возможно лишь в рамках крупных полигонов (например, СКИФГРИД). 3. Для изучения проблем прохождения параллельных программ с использованием интерфейса MPI на ресурсном узле GRID в ИПХФ РАН была использована газодинамическая программа моделирования на молекулярном уровне процесса образования ударной волны в 66
ударной трубе применительно к газовой смеси и после отработки тестов решено несколько реальных задач (со временем расчета до нескольких недель). Программы сторонних производителей Пока для распространения программ сторонних производителей на расчетные узлы возможна только ручная их установка и настройка, что связано со сложностью установки программ и требуемого ими окружения, а размеры программ (сотни мегабайт) затрудняют возможности их передачи в качестве единого задания. Пакет GAMESS (General Atomic and Molecular Electronic Structure System). Для пакета GAMESS в среде GRID авторами создана среда, позволяющая проводить его распараллеливание как сокетным способом, так и посредством протокола MPI (Mpich-2). Сокетный параллельный вариант отличается более простой реализацией и повышенным быстродействием, однако при запуске через GRID-инфраструктуру имеет ряд недостатков: неправильно оценивает необходимые процессорные ресурсы, требует фиксированного числа процессоров и обязательного явного указания стартующего узла. MPI-вариант реализован только для среды, поскольку пакет GAMESS требует передачи огромного числа переменных окружения и параметров (чего не дает ”стандартная” реализация MPI). Однако он более применим для GRID, т.к. требует определения только минимального числа доступных процессоров, не «завязан» на стартующую машину, не нуждается в явном описании расчетных узлов. Были проведены успешные запуски ряда заданий для расчетов по программе GAMESS в тестовой VO RGSTEST, а затем проведены масштабные расчеты на нескольких десятках процессоров с получением результатов расчетов на конкретном UI. Заканчивается отладка WWW-интерфейса для упрощения формирования и запуска пакета. Пакет Gaussian. Для Gaussian-D сформирован пакет скриптов для запуска заданий посредством GRID-технологий на SMP-серверах (при условии предварительной установки) и просчитан ряд задач, запущенных через UI-интерфейс. Изучается возможность его распараллеливания с использованием пакета Linda (под управлением PBS Torque). Однако большую проблему вызывают вопросы лицензионных ограничений использования данного ПО в распределенных средах. 67
Ведется адаптация ПО Dalton для распределенных сред. Заключение Наши исследования продемонстрировали огромные возможности применения параллельных и/или распределенных технологий в среде GRID в области вычислительной химии. ПРИНЦИПЫ АППАРАТНОЙ РЕАЛИЗАЦИИ МЕТОДА ВЗАИМНОГО ИСКЛЮЧЕНИЯ ДЛЯ СИНХРОНИЗАЦИИ ПАРАЛЛЕЛЬНЫХ ПРОЦЕССОВ Н.П. Вашкевич, Р.А. Бикташев Пензенский государственный университет Архитектура современных операционных систем (ОС) содержит типичные компоненты, которые наиболее часто используются вычислительным процессом при своей реализации. К ним относятся механизмы межпроцессорного взаимодействия, управления памятью, планирования процессов и обработка прерываний. Анализ, выполненный многими исследователями, показывает, что значительная часть функций этих компонентов реализуется программным путём. Высокая частота использования компонентов ОС приводит к значительным непроизводительным временным затратам, которые могут достигать нескольких десятков процентов от общего времени реализации процессов, порождаемых пользовательскими программами [1]. Аппаратной реализации алгоритмов ОС, особенно в распределенных и многопроцессорных системах, исследователи не уделяли должного внимания. Имеются отдельные работы, из которых на сегодня наиболее интересными является аппаратная поддержка барьерной синхронизации, примененная в архитектуре компьютера Cray T3D/ T3E [2], и аппаратная синхронизация процессов, реализованная в многопроцессорной системе Sequent Balance модели 21000, причем ускорение достигается применением специализированной быстродействующей памяти, которая названа атомарной памятью блокировки [3]. Целью данной работы является исследование принципов аппаратной реализации методов взаимного исключения, используемых при осуществлении синхронизации параллельных процессов, и синтез 68
устройств синхронизации для многопроцессорных и распределённых систем. Включение такого устройства в параллельную вычислительную систему должно привести не только к увеличению производительности, но и к некоторому упрощению создания параллельных программ, а также к уменьшению вероятности ошибок при разработке параллельных программ в части, связанной с синхронизацией взаимодействующих процессов. В вычислительных системах синхронизация взаимодействующих процессов заключается в том, что запрашивающий процесс анализирует глобальную блокирующую переменную (mutex), закрепленную за общим ресурсом. Операция чтения блокирующей переменной, её проверки и установки, а также записи в ячейку производится единой (неделимой) командой [4]. Время выполнения неделимой команды увеличивается, что ухудшает характеристики систем прерывания и условия работы конвейера команд. Особенно это ощутимо для RISC-процессоров, в которых время выполнения команды «читать–проверить–установить–записать» по сравнению со временем выполнения обычных команд увеличивается в два - три раза, что приводит к простоям конвейера команд и уменьшению реакции системы прерывания. Применение неделимой операции «читать–проверить– установить–записать» в многопроцессорной системе вызывает также необходимость блокировки межпроцессорной шины, функционирующей в режиме расщепления транзакций чтения памяти. Этим исключается возможность одновременного доступа к общему ресурсу со стороны нескольких процессов, выполняющихся в разных процессорах, поскольку в промежутке недовыполненной транзакции шину может захватить другой процессор и обеспечить вход его процесса в свою критическую секцию. Кроме того, если процессоры содержат в своем составе кэшпамять, то в случае участия в процедуре синхронизации нескольких процессорных узлов возможно необоснованное увеличение трафика на межпроцессорной шине из-за частого перемещения строки кэш, содержащей слово блокировки, которая необходима процессам, конкурирующим за доступ к общему ресурсу [5]. Последние два обстоятельства приводят к снижению реальной пропускной способности межпроцессорной шины и, в конечном счете, к потерям производительности всей вычислительной системы.
69
Возможны два варианта аппаратной реализации системы синхронизации взаимодействующих процессов: с использованием специальной команды или специального сигнала “Запрос общего ресурса”. В первом варианте устройство синхронизации процессов подключается как общедоступное для любого процессора устройство, функционирующее в адресном пространстве памяти или ввода-вывода, время доступа к которому сравнимо со временем доступа к внешнему кэш второго или третьего уровня. Любой процессор, реализующий некоторый процесс (поток), может сформировать команду запроса общего ресурса и получить ответ о его занятости или незанятости. Для этого в аппаратуру устройства синхронизации включены два регистра: регистр запросов РгЗп и регистр текущего процесса РгТП (рис.1). Регистры размещаются в адресном пространстве памяти или устройств ввода-вывода. ЦП1
...
ЦПn
ОП
Критические секции
Межпроцессорная шина Запрос на доступ к ОР (команда вывода)
Рг ЗП
Разрешение доступа к ОР (команда ввода)
Рг ТП
Логика управления (САП, СВЗИ)
Устройство синхронизации
Рис.1. Аппаратная реализация системы синхронизации с использованием специальной команды “Запрос общего ресурса”
В регистре запросов фиксируются запросы на общий ресурс, поступающие от процессов, реализуемых в разных процессорах. Каждому процессу выделяется один бит в регистре запросов, причём запрос выставляется командой записи (вывода). В регистре текущего процесса также выделяется по одному биту на один процесс. Единичное значение i-го разряда регистра означает, что соответствующий ему процесс находится в критической секции и работает с общим ресурсом. Состояние текущего процесса 70
определяется путем чтения (ввода) содержимого регистра РгТП и его анализа командами процессора. В логику управления регистрами входят схема анализа приоритетов (САП) и схема взаимного исключения (СВЗИ). Первая выделяет запрос на общий ресурс с наиболее высоким приоритетом из нескольких поступивших, вторая исключает вхождение в критический интервал запрашивающего процесса, когда в нем находится текущий процесс. Возможен другой вариант построения устройства синхронизации, когда команда запроса общего ресурса заменяется соответствующим сигналом, формируемым короткой внутренней командой процессора, время выполнения которой составит не более одного такта процессора. Некоторые неудобства реализации состоят в необходимости введения в процессор двух дополнительных внешних выводов: одного (выход) для выдачи сигнала запроса общего ресурса, другого (вход) - для приема сигнала разрешения на доступ. Рассмотренные выше способы синхронизации обладают высоким быстродействием, однако, если в вычислительной системе имеется m общих ресурсов, обслуживающих n процессов, то при возникновении любых прерываний потребуется сохранение текущего состояния регистров РгЗп и РгТП, чтобы иметь возможность корректного возврата к прерванной программе. Избежать значительных временных потерь, связанных с сохранением состояния процесса, возможно, если в устройство синхронизации включить m регистров запроса и m регистров РгТП, которые образуют буферную память запросов и текущих процессов. В этом случае каждая пара регистров РгЗп и РгТП становится клиентской частью устройства синхронизации, а единственная схема управления – серверной частью, причем i-я клиентская пара регистров принадлежит i-му общему ресурсу. В распределённых ВС устройство синхронизации может быть подключено как периферийное устройство, выполненное на основе специализированного процессора, называемого процессором синхронизации. Применение специализированного процессора вызвано тем, что распределённые ВС используют механизм передачи сообщений для организации обмена данными между любыми двумя устройствами. Для реализации этого механизма и необходим процессор, осуществляющий функции контроллера для приема – передачи информации. Одновременно на этот процессор можно возложить функции синхронизации процессов [1]. 71
В процессе исследований рассмотрены вопросы формального представления алгоритмов синхронизации взаимодействующих процессов, действующих в параллельных вычислительных системах, при их обращении к общему ресурсу. Для формализации использовалась теория недетерминированных автоматов [6]. Получены уравнения, описывающие процедуры вхождения i-го процесса в критический интервал и его нахождения там с учетом принятой дисциплины обеспечения приоритетности и с взаимоисключением несовместных событий, а также выхода процесса из критического интервала, которые позволяют синтезировать устройство синхронизации. Основой для формализации алгоритмов управления параллельными процессами при решении задач межпроцессного взаимодействия, в т.ч. и в задаче «обращение к общему ресурсу», является формализация функций взаимоисключения критических участков, т.е. таких участков программы, которые содержат группу операторов, обеспечивающих доступ к разделяемым данным. В технической литературе такую группу операторов принято называть примитивами взаимоисключения. Критический участок следует рассматривать как последовательность действий, которые выполняются операторами примитива взаимоисключения. Как известно, для того чтобы избежать конфликтных ситуаций при взаимодействии параллельных процессов во время организации доступа к разделяемым данным, на критические участки налагаются три основных требования: 1. в любой момент времени только один процесс может находиться внутри критического интервала; 2. ни один процесс не может оставаться внутри критического интервала бесконечно долго; 3. ни один процесс не должен бесконечно долго ждать входа в критический интервал. Основой для формального синтеза устройства синхронизации является система уравнений для событий, определяющих входы для любого i-го процесса в свой критический интервал, которая имеет вид: i i i i i i S k ( t + 1) = S вп ( t ) S вз ( t ) S пр ( t ) ∨ S k ( t ) S p ( t ) , i = 1, n i
где - Sk сокращенное обозначение события, определяющего вход и нахождение i-го процесса в своем критическом интервале; 72
i
S p - сокращенное обозначение события, обеспечивающего выход iго процесса из критического интервала после окончания процедуры обращения к разделяемым данным; i комбинационное событие, обеспечивающее S вз взаимоисключение критических интервалов на основе несовместимости событий S ik с другими событиями из их общего числа, равного n (первое требование):
S вз = i
Λ ( )[
∀α α ≠i ]
α S k , i = 1, n
i
S пр - сокращенное обозначение события, обеспечивающего заданное приоритетное обслуживание i-го процесса. В синтезируемом устройстве использованы циклически изменяющиеся относительные приоритеты (обеспечение второго требования); i
S вп - сокращенное обозначение события, определяющего прием заявки i-го процесса на обслуживание для обращения к разделяемым данным. Прием заявок какого-либо процесса на обслуживание воспринимается только в том случае, когда данный процесс не находится в своем критическом участке (выполнение третьего требования). Тем самым исключается повторное обращение к разделяемым данным для процесса, имеющего наивысший приоритет, несмотря на наличие заявки на обслуживание другого процесса, имеющего более низкий приоритет. С учетом этих замечаний, событие, определяющее прием заявки для i-процесса, будет иметь следующий вид:
S вп ( t + 1) = ( S з ( t ) ∨ S вп ( t )) S k ( t ) , i
i
i
i
i
где Sз - сокращенное обозначение события, определяющего заявку i-го процесса на обслуживание. Осуществлено моделирование устройства на 4 входа запросов к общему ресурсу на языке VHDL, а также проведена его экспериментальная реализация на ПЛИС. Литература 1. Ганькин А.Л., Сидоров Ю.В., Соловьев Г.Н. Исследования и разработки в области аппаратной реализации алгоритмов
73
2. 3. 4. 5. 6.
операционных систем // Зарубежная радиоэлектроника. №2, 1984. Воеводин В.В., Воеводин Вл.В. Параллельные вычисления.СПб.: БХВ-Петербург, 2002.- 599 с. Программирование на параллельных вычислительных системах / Под ред. Р. Боба II [перевод с англ.]. – М.: Мир, 1991.- 372 с. Хоар Ч. Взаимодействующие последовательные процессы. М.: Мир, 1989 264 с. Таненбаум Э. Современные операционные системы. 2-е изд. – СПб: Питер, 2004. Вашкевич Н.П. Недетерминированные автоматы в проектировании систем параллельной обработки. Учеб. пособие. - Пенза: Изд-во Пенз. гос.ун-та, 2004. - 280 с. АВТОМАТНАЯ МОДЕЛЬ СЕТЕВОГО ПРОТОКОЛА ТРАНЗАКЦИЙ С ДВУХФАЗНОЙ ФИКСАЦИЕЙ 2PC (TWO-PHASE COMMIT) Н.П. Вашкевич, Е.И. Калиниченко, И. Диянов Пензенский государственный университет
Введение В настоящее время широкое распространение получили распределенные системы управления базами данных (СУБД). Для поддержания согласованного состояния баз данных в узлах распределенной системы используются различные протоколы транзакций. Одним из наиболее распространенных является протокол транзакций с двухфазной фиксацией (Two Phase Commit - 2PC). В рамках проводимой научно-исследовательской работы по созданию автоматной модели распределенных и параллельных вычислений была реализована модель этого протокола. При создании модели использовалась теория недетерминированных конечных автоматов [1]. Транзакция с двухфазной фиксацией - это транзакция, которая обновляет, добавляет или удаляет информацию в базе данных не на одном, а на нескольких серверах, распределенных в разных географических местах. Транзакция обычно разделяется на части, и нужно, чтобы первая половина транзакции не завершалась без завершения второй. Сервер-инициатор выступает в качестве 74
менеджера ресурсов для транзакций, которые он обрабатывает. Менеджер транзакций управляет транзакциями, которые обрабатываются несколькими менеджерами ресурсов. Когда приложение запрашивает у менеджера транзакций, завершена ли транзакция, менеджер транзакций инициирует протокол двухфазной фиксации. Выполнение этого протокола начинается с того, что менеджер транзакций запрашивает каждый менеджер ресурсов о готовности завершить транзакцию. Когда различным менеджерам ресурсов послан запрос о готовности к завершению транзакции, они должны предпринять необходимые действия для обеспечения отката транзакции в случае ее прерывания. Если какой-то из серверов не готов к завершению транзакции, он посылает соответствующее сообщение назад менеджеру транзакций и транзакция прерывается. Если же все серверы заявляют о своей готовности к завершению транзакции, они ждут решения менеджера транзакций - завершать или прерывать транзакцию. Менеджер транзакций принимает решение завершить транзакцию и приказывает менеджерам ресурсов осуществить этот процесс. После чего менеджер транзакций ожидает сообщения от каждого сервера об успешном или неуспешном ее завершении, так как не знает, все ли менеджеры ресурсов завершили транзакцию. На период, пока менеджер транзакций не уверен в завершении транзакции, для данных, которые должны быть модифицированы данной транзакцией, формируется блокировка данных. Она гарантирует, что транзакция останется изолированной от других, которые в период неопределенности могут попытаться изменить эти данные. Менеджер транзакций должен следить за обслуживаемыми им транзакциями, поэтому даже тогда, когда произошел сбой менеджера ресурсов, менеджер транзакций поддерживает журнал всех транзакций, которыми он управляет. Этот журнал может быть использован для восстановления неудачной попытки одного из менеджеров ресурсов завершить транзакцию в случае какого-либо сбоя. Таким образом, транзакция, завершенная менеджером транзакций, может быть завершена всеми менеджерами ресурсов, или все они произведут откат этой транзакции. Описание алгоритма работы протокола на языке UML приведено на рис.1.
75
Менеджер транзакций
Менеджер ресурсов1
Менеджер ресурсов2
Менеджер ресурсов3
Запрос о готовности завершить транзакцию
Готовность к завершению транзакции
Завершение транзакции
Подтверждение завершения транзакции
Рис. 1
Модель В предлагаемой модели распределенная система рассматривается состоящей из узлов (серверов баз данных) и каналов связи (тип канала связи не имеет значения) между ними. Функционирование каждого узла и канала описывается недетерминированным конечным автоматом, что позволяет неявно учитывать поведение каждого из них во времени. Чтобы учитывать согласованное поведение узлов и каналов во времени в составе системы, в модель введены как линейные автоматы времени для каждого узла и канала, так и линейный автомат времени, описывающий общее системное время. Таким образом, модель распределенной системы представляет собой систему недетерминированных автоматов. Учет быстродействия узла в модели учитывается установлением времени его реакции (выходное событие) на входное событие. Задержка распространения сигнала в канале реализована в виде очереди сообщений таким образом, что поступившее на вход канала событие появится на выходе только через время задержки канала. Отказ работы узлов можно инициировать двумя способами. Во-первых, можно указать интервалы времени, при которых узел будет отказываться от завершения транзакций, либо полностью отключить узел. В обоих случаях узел не реагирует на входные сигналы, но во втором случае при отключении узла обнуляется его текущее состояние, а при включении работа узла начинается с нулевого состояния. Отказ работы канала можно инициировать его отключением, причем поступающие на вход канала сигналы не будут транслироваться на его выход. Времена задержек хостов и каналов могут быть заданы в начале моделирования в меню настроек.
76
Формализация алгоритма работы протокола Для формального описания алгоритма работы использовалась система канонических уравнений [1], описывающая поведение каждого сервера (узла распределенной системы) в качестве менеджера транзакции или менеджера ресурсов. Причем каждый узел может функционировать как в качестве менеджера транзакции, так и в качестве менеджера ресурсов. S0=x_pusk V S4 V S7 V (S5&!x3&!x4) V (x5&S3) V (S0&!x1&!x_per); S1=(S0&!x1&x_per) V (S1&!x2&!x4&!x_sch); S2=(S0&x1&x_pri) V (S2 V S6)&!x3&!x4&!x_sch&x1; S3=S1&x2 V S3&!x5&!x4; S4=(S0&x1&!x_pri) V ((S2 V S6)&!x3&!x4&x_sch) V V (S1&!x2&(x4 V !x4&x_sch)) V (!x5&S3&x4); S5=(S2&x3) V (S6&x3) V (S5&x3); S6=(S2&!x3&!x4&!x_sch&!x1) V (S6&!x3&!x4&!x_sch&!x1); S7=((S2 V S6)&!x3&x4) V (S5&!x3&x4).
В системе канонических уравнений введены следующие обозначения: S0 – начальное состояние хоста, перед началом каких-либо действий; S1 – посылка запроса о готовности завершения транзакции, первый этап; S2 – посылка сообщения о готовности завершить транзакцию; S3 – посылка сообщения о завершении транзакции, второй этап; S4 – посылка сообщения об отмене транзакции; S5 – посылка подтверждения завершения транзакции; S6 – ожидание второго этапа завершения транзакции; S7 – откат транзакции; x1 – запрос о готовности завершения транзакции; x2 – сообщение о готовности завершить транзакцию; x3 – сообщение о завершении транзакции; x4 – сообщение об отмене транзакции; x5 – подтверждение завершения транзакции; x_pusk – сигнал, запускающий работу алгоритма; x_pri – сигнал, определяющий готовность хоста к завершению транзакции;
77
x_per – сигнал, определяющий возможность хоста стать инициатором завершения транзакции; x_sch – сигнал, определяющий превышение времени ожидания ответа определенного тайм-аута.
Программная реализация модели При программной реализации модели использовались следующие ограничения, необходимые для корректного описания ''реактивных'' систем: состояния хостов разбиваются на два подсостояния. На первом этапе просчитываются промежуточные состояния с учетом входных сигналов и предыдущего состояния хоста. На втором этапе промежуточные состояния, полученные на первом этапе, переписываются в переменные, определяющие состояние хоста и используемые при просчете системы канонических уравнений в следующий такт работы хоста; состояния каналов просчитываются каждый такт системного времени, что позволило обрабатывать входные сигналы в каждый такт, а выходные сигналы получаются на такт системного времени, равный такту поступления сигнала в канал увеличенного на время задержки канала. Выходные сигналы непосредственно в канале не сохраняются и действуют только в такт их появления на выходе канала; каждый канал разбит на два подканала, описывающих передачу сигнала от первого хоста второму и наоборот, таким образом реализован принцип дуплексной передачи информации; введен автомат, реализующий просчет входных сигналов для хоста, что позволило связать выходные сигналы каналов и входные сигналы хостов. В данном автомате также реализован принцип псевдослучайной выборки выходных сигналов каналов, который применяется в случае прихода сигнала от нескольких хостов одновременно. Благодаря этому принципу обрабатывается только один сигнал, а остальные сигналы сохраняются в буфер и обрабатываются хостом в следующий такт работы; введен автомат, определяющий готовность хоста к приему или передаче информации;
78
введен автомат, определяющий время ожидания ответа хостом.
Выводы по результатам моделирования Результатом работы программы является таблица, каждый столбец которой содержит состояния канала или хоста. Каждой строке таблицы соответствует состояние канала или хоста в определенный момент системного времени (рис. 2).
Рис. 2
Моделирование показало сильные и слабые стороны протокола двойной фиксации транзакций. Протокол обеспечивает корректное завершение транзакций и обеспечивает целостность данных внутри распределенной базы данных. Единственным слабым местом в работе протокола является вторая стадия фиксации транзакции, когда менеджер транзакций ожидает ответа от всех менеджеров ресурсов. Если во время второй стадии один из хостов или каналов выйдет из строя, то менеджер ресурсов ''зависает'' на неопределенное время, тем самым транзакция остается в неопределенном состоянии. Литература 1. Н.П. Вашкевич, С.Н. Вашкевич. Недетерминированные автоматы и их использование для синтеза систем управления". Учебное пособие, Изд-во ПГТУ, Пенза: 1996.
79
ПАРАЛЛЕЛЬНЫЙ АЛГОРИТМ ОБУЧЕНИЯ МАШИН ОПОРНЫХ ВЕКТОРОВ Р.А. Веснин, Т.А. Стародубова Вятский государственный гуманитарный университет В настоящее время актуальной является задача классификации данных, формальная постановка которой выглядит следующим образом. Имеются: подмножество евклидова пространства Х – обучающие объекты, заданные векторами признаков: X={X1, X2, ..., XN}, Х⊂Rd; множество Y ответов для обучающих объектов, принадлежащих одному из двух классов: Y={y1, y2, ..., yN}, yi∈{–1, +1}. Необходимо построить оптимальное классифицирующее правило (функцию) вида f: Х → Y, которое правильно классифицирует все обучающие объекты пространства Х, то есть для любого вектора Xi (i=1..N) находит соответствующий ответ Yi . Одним из эффективных методов, применяемых для классификации текстов, является метод опорных векторов (SVM – Support Vector Machines), предложенный В. Н. Вапником [1]. В последнее время этот метод получил широкое распространение, найдя применение в целом ряде задач анализа изображений, регрессии, идентификации и др. В SVM в качестве функции f выбрана плоскость, расстояния до которой ближайших векторов обоих классов равны (рис. 1). Ближайшие точки-векторы называются опорными. При этом для всех объектов одного класса должно выполняться неравенство f(Xi)>0, а для всех объектов другого класса – неравенство f(Xi)<0.
80
х2
f(x1,x 2 )=0
х1
Рис. 1
Уравнение разделяющей плоскости имеет следующий вид (для dмерного пространства признаков объектов): w1x1 + w2x2 + ... + wdxd + w0 = 0, где d – размерность пространства признаков; W=(w1, w2, ..., wd) – направляющий вектор; w0 – скалярный порог. Или в векторной форме: (W, X) + w0 = 0. В методе опорных векторов выделяют два этапа: этап обучения и этап распознавания. На первом этапе из множества обучающих примеров отбираются опорные векторы, на основе которых строится разделяющая плоскость. Этап распознавания заключается в том, что на вход полученного классификатора подается пример Х, о классовой принадлежности которого ничего неизвестно. Классификатор должен выдать ответ, к какому классу относится вектор Х. Проблема использования метода SVM заключается в том, что его обучение сводится к решению задачи квадратичной оптимизации с предельными ограничивающими условиями и одним ограничением линейного равенства. Общие методы решения таких задач известны, но довольно трудоёмки как в смысле реализации, так и по времени выполнения. На данный момент разработано достаточно много алгоритмов обучения SVM. Можно выделить следующие группы методов [2]. 1. Традиционные методы решения оптимизационных задач, которые применяются в общем случае и для обучения искусственных нейронных сетей.
81
Применительно к SVM данные методы используются, когда количество обучающих примеров относительно невелико (до 4000 – 5000). К этой группе относятся различные методы поиска седловой точки функции Лагранжа – методы Ньютона, квазиньютоновские методы, методы сопряженных направлений и др. 2. Методы декомпозиции – методы обучения SVM, идея которых основана на разбиении одной большой задачи на ряд подзадач. Главным преимуществом данного подхода является то, что он предлагает алгоритмы с требованиями памяти, которые линейны относительно количества обучающих примеров и количества опорных векторов. Первый подход по разбиению больших задач обучения SVM на серии меньших задач оптимизации известен как алгоритм «образования фрагментов» (chunking). Алгоритм начинает со случайного подмножества обучающих данных, решает эту задачу и многократно добавляет примеры, которые нарушают условия оптимальности. В группе методов декомпозиции наиболее эффективен на сегодня алгоритм последовательной минимальной оптимизации (Sequential Minimal Optimization, SMO), предложенный Платтом [3]. Его можно рассматривать как отдельный случай алгоритма декомпозиции, размер рабочего набора в котором всегда равен 2, а для поиска оптимального рабочего набора используется набор эвристик. К этой же группе можно отнести и методы, основанные на аппроксимации гессенской матрицы (матрицы частных производных функции Лагранжа) с помощью более мелких матриц с использованием или низкоуровневого представления, или выборки/дискретизации, тем самым уменьшается размер задачи оптимизации и ускоряется процесс обучения. 3. Методы обучения, основанные на вычленении из большого набора входных данных тех векторов, которые являются опорными, поскольку только они определяют оптимальное решение оптимизационной задачи для SVM. Сюда же можно отнести и так называемые инкрементные методы обучения, которые предполагают последовательное обучение SVM на новых данных при удалении всех предыдущих данных за исключением их опорных векторов. Преимуществом инкрементных методов является возможность быстрого переобучения SVM при появлении новых данных.
82
Алгоритм распараллеливания процесса обучения SVM В данном разделе предложен метод, позволяющий ускорить процесс обучения SVM. Непосредственно перед началом обучения метод позволяет сократить количество данных в исходном наборе. На данном этапе алгоритм использует распараллеливание вычислений на основе разделения данных на независимые блоки произвольным образом. Рассмотрим алгоритм в случае разделения набора обучающих данных на два класса линейной гиперплоскостью. Шаг 1. Пусть имеется N процессоров, разобьем весь обучающий набор примеров на N равных частей, в каждой из которых будут присутствовать примеры каждого класса в тех же пропорциях, что и в исходном наборе. Затем на каждом процессоре выполним обучение SVM со своим набором входных данных. По окончании этих действий будем исключать из исходного набора данных те обучающие примеры, которые оказались за пределами разделяющей полосы во всех случаях. Иными словами, отбрасываем примеры, которые не являются опорными векторами для всех N полученных классификаторов. Если обучающий набор все еще велик для обучения SVM с использованием одного процессора, можно повторить выполнение шага 1. Шаг 2. Выполняем обучение SVM на одном процессоре с использованием обучающего набора, полученного после выполнения первого шага. Данный алгоритм распараллеливания не привязан к конкретному методу обучения SVM. Однако он имеет следующую особенность. При большом количестве процессоров скорость уменьшения обучающего набора снижается, следовательно, первый шаг нужно выполнять большее число раз. Рассмотрим предложенный алгоритм на примере. Пусть имеется два класса обучающих объектов – круглые и квадратные. Будет обучать SVM при помощи трех процессоров. Разобьем исходные данные на 3 группы: первому процессору – белые, второму – серые и третьему – черные (рис. 2).
83
Рис. 2
После того, как каждый процессор обработает свои данные, в каждом наборе будет своя максимальная разделяющая полоса (см. рис. 3). Те элементы из исходного набора данных, которые попали хотя бы в одну из полученных разделяющих полос или лежат на их границе, могут являться опорными для всего набора данных, остальные элементы можно отбросить, так как они оказались «бесполезными» во всех трех случаях (рис. 4). Первый шаг закончен, в случае недостаточного уменьшения набора обучающих примеров его можно повторить.
а)
б)
Рис. 3
84
в)
Рис. 4
По завершении первого шага, когда набор исходных данных был существенно сокращен, нужно обучить SVM на этом наборе. Как видно из примера, при поиске окончательного решения использовался набор данных (рис. 5), сравнимый по количеству элементов с наборами, полученными при начальном разбиении исходных данных на первом шаге.
Рис. 5
Блок-схема алгоритма распараллеливания представлена на рис. 6.
85
Начало Разбиение данных
Обучение SVM
Обучение SVM
…
Обучение SVM
Исключение заведомо неопорных векторов да
Нужно дальнейшее Обучение SVM Конец
Рис. 6
Заключение Преимуществом предложенного алгоритма является то, что он не зависит от метода обучения SVM и может использовать наиболее подходящий метод в каждом конкретном случае. К особенностям алгоритма можно отнести снижение объема сокращаемых данных за одну итерацию при увеличении числа процессоров. При этом следует учитывать соотношение между временем, затрачиваемым на выполнение одной итерации алгоритма при заданном числе процессоров, и количеством этих итераций. Литература 1. Vapnik V. N. The Nature of Statistical Learning Theory. Springer– Verlag, 1995. 2. Котельников Е. В., Ямшанов М. Л. Метод Support Vector Machine для решения задач классификации // Вестник ВятГГУ. Информатика, математика, язык. №4. 2007. – С. 55– 61. 3. Platt J. Sequential Minimal Optimization: A Fast Algorithm for Training Support Vector Machines. 1998.
86
РАСПАРАЛЛЕЛИВАНИЕ МЕТОДА ВЕТВЕЙ И ГРАНИЦ РЕШЕНИЯ КОНВЕЙЕРНОЙ ЗАДАЧИ ПОСТРОЕНИЯ ОПТИМАЛЬНОГО ПО БЫСТРОДЕЙСТВИЮ РАСПИСАНИЯ В.С. Власов Нижегородский государственный университет Рассмотрим конвейерную задачу построения оптимального по быстродействию расписания последовательного выполнения n работ на m станках. Пусть i - номер станка, j - номер работы, T = ||tij||- m × n действительная матрица, элемент tij которой - определяет время выполнения работы j на станке i, i = 1, m , j = 1, n . Требуется найти такую матрицу X = ||xij||- размерами m × n, для которой выполняются ограничения: (1) xij ≥ xi −1 j + t i −1 j , i = 2, m , j = 1, n ,
xij ≥ xik + t ik или xik ≥ xij + t ij , i = 1, m , j = 1, n , k = 1, n ,
(2)
Если xij ≥ xik , то x sj ≥ x sk , i = 1, m , s = 1, m , j = 1, n ,
(3)
xij ≥ 0 , i = 1, m , j = 1, n , и достигает минимального значения критерий F ( X ) = max( x mj + t mj ) . j =1, n
(4) (5)
Здесь xij - момент начала выполнения работы j на станке i, i = 1, m ,
j = 1, n , условия (1) означают, что выполнение работы на станке может начаться не раньше, чем эта работа завершится на предыдущем станке, условия (2) означают, что на станке одновременно не может выполняться более одной работы, условия (3) означают, что порядок выполнения работ одинаков на всех станках (конвейерность расписания), а условия (4) являются естественными условиями на переменные. Каждому допустимому решению соответствует своя перестановка, определяющая порядок выполнения работ на станках. Рассматриваемая задача относится к классу NP-трудных. В основе решения рассматриваемой задачи предлагается использовать алгоритм, основанный на идеологии метода ветвей и границ. Основные процедуры метода ветвей и границ к решению конвейерной задачи теории расписаний.
87
Процедура оценок включает в себя определение верхней (достижимой) оценки V и нижней оценки H. Для нахождения точного решения предлагается использовать следующую схему. Так как конвейерное расписание в рассмотренной постановке однозначно определяется перестановкой из n элементов, то это позволяет для нахождения приближенных решений использовать многие известные алгоритмы, например, такие как Simulated Annealing (SA), Ant Colony Algorithm (AC), Genetic Algorithms (GA) [1]. Формируем множество Ф(А), которое содержит все перечисленные алгоритмы, позволяющие работать с перестановками. Параллельно запуская предложенные алгоритмы, определяем приближенные решения рассматриваемой задачи. Тогда верхняя оценка V на каждом шаге будет определяться как лучшее (наименьшее) значение критерия (5), полученное в результате работы одного из алгоритмов. Это позволит уменьшить достижимое значение верхней оценки и существенно сократить множество ветвлений. Для определения нижней оценки Н предлагается следующая схема: Для определения нижней оценки на первом шаге: m −1 n H 0 = ∑ min t ij +∑ t mj . (6.1) i =1
j =1,n
j =1
Для определения нижней оценки с учетом того, что работа k поставленаmв расписание первой: n k H = ∑ t ik + ∑ t mj , j ≠ k . (6.2) i =1
j =1
Для определения нижней оценки с учетом того, что в расписание поставлены работы k и l: m
n
i =1
j =1
H kl = ∑ t ik + Dif m (k , l ) + t ml + ∑ t mj , j ≠ k , j ≠ l ,
(6.3)
где функция Dif m (k , l ) определяет задержку начала выполнения работы l на станке m после выполнения на нем работы k и определяется как:
88
⎧0, если i = 1, Dif i (k , l ) = ⎨ i −1 ⎩max{0, ( xi −1,k + ti −1,k + xi −1,l + ti −1,l + Dif (k , l )) − ( xik + tik )}, иначе
Для определения нижней оценки с учетом того, что в расписание поставлены работы k, l и s: m
n
i =1
j =1
H kls = ∑ t ik + Dif m (k .l ) + t ml + Dif m (l , s ) + t ms + ∑ t mj , j ≠ k , j ≠ l , j ≠ s (6.4)
и т.д. Процедура ветвления рассматривает все допустимые варианты построения перестановок. Процедура отсева предполагает, что если значение верхней (достижимой) оценки в одной из вершин дерева ветвлений не больше значения нижней оценки в другой вершине, то вторая вершина исключается из рассмотрения. Процедура останова определяет окончание процесса вычислений. Если осталась неотброшенной лишь одна вершина, в которой значения оценок совпадают, то найдено оптимальное решение задачи, которое определяется перестановкой, соответствующей верхней оценке. Таким образом, общая предложенная в работе схема решения конвейерной задачи построения оптимального по быстродействию расписания с использованием процедур метода ветвей и границ включает в себя следующие шаги: 1. Определение верхних оценок. Используя независимые друг от друга алгоритмы (такие как SA, AC, GA), в каждой вершине дерева ветвления метода ветвей и границ параллельно определяют верхние (достижимые) оценки, из которых в дальнейших вычислениях используется минимальная. 2. Определение нижних оценок. В каждой вершине в зависимости от тех работ, которые уже включены в расписание, используются соотношения типа (6) для вычисления нижней оценки. 3. Процедуры отсева и останова применяются по общей схеме. Для большеразмерных задач в случае ограниченности вычислительных ресурсов метод может быть остановлен, и лучшая из найденных верхних (достижимых) оценок будет являться приближенным решением. 89
Литература 1. Прилуцкий М.Х., Власов В.С. Метод комбинирования эвристических алгоритмов для конвейерных задач теории расписаний // Электронный журнал "Исследовано в России", 086, стр. 901-905, 2007. http://zhurnal.ape.relarn.ru/articles/2007/086.pdf 2. Kirkpatrick S., Gelatt C.D., Vecchi M.P. Optimization by simulated annealing. 3. Dorigo M., Maniezzo V., Colorni A. The Ant System: Optimization by a colony of cooperating objects // IEEE Transactions on Systems, Man, and Cybernetics. – Part B, 26(1), 1996. Р. 29- 41. 4. Макконнел Дж. Основы современных алгоритмов. Изд. “Техносфера”, 2004. Контакты
[email protected] ИСПОЛЬЗОВАНИЕ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙ В ГЕНЕТИЧЕСКИХ АЛГОРИТМАХ К.А. Генералов Пензенский государственный университет Генетические алгоритмы являются альтернативным инструментом исследования многоэкстремальных функций. Первый генетический алгоритм, положивший основу всем существующим генетическим алгоритмам, был предложен Джоном Холландом (John Holland) в 1975 году и носил название “репродуктивный план Холланда”. На данный момент предложен ряд стратегий параллельного выполнения генетических алгоритмов. В работах [1, 3] выделены следующие типы параллелизма генетических алгоритмов: глобальный параллелизм; миграционная (островная) модель; клеточная модель [3]; диффузионная модель. Рассмотрим каждый вид параллелизма более подробно.
90
Глобальный параллелизм Глобальный параллелизм подразумевает параллельное выполнение всех операторов генетического алгоритма. При распараллеливании процесса вычисления fitness-функции проблем не возникает, т.к. значение функции отдельной хромосомы обычно не зависит от других хромосом. Некоторую трудность для распараллеливания представляет оператор селекции. Параллельные виды операторов селекции построены на основе последовательных операторов. Следовательно, можно выделить следующие виды операторов селекции [2]: 1. пространственный турнирный отбор (англ.: Spatial Tournament Selection); 2. параллельная пропорциональная селекция (англ.: Parallel Fitness Proportionate Selection); 3. упорядоченная (разрядная) селекция (англ.: Linear ranking selection); 4. равновероятный отбор. Параллельный вариант турнирного отбора носит название пространственного турнирного отбора (ST-selection), т.к. турниры проходят в ограниченном пространстве. Ограниченное пространство определяется соседними процессорами для каждого процессора. Данный метод селекции является глобальным, т.к. он сочетает в себе локальные турниры с перемешиванием всего пространства популяции. Параллельная пропорциональная селекция выполняется за несколько шагов. Сначала строится рулетка, т.е. каждый процессор узнаёт, какую часть рулетки он представляет. Далее каждый процессор выбирает родительскую хромосому путём генерации случайного числа. На третьем этапе случайные числа ставятся в соответствие долям колеса рулетки и определяются соответствующие адреса процессоров. На последнем шаге хромосомы пересылаются по адресу процессора, который был определён на предыдущем шаге. Алгоритм параллельной пропорциональной селекции состоит из следующих шагов [2]: 1.
i
Вычислить суммы σ i = ∑ f j для i-ой хромосомы и переслать j =1
сумму
σN
всем процессорам.
91
2.
На каждом процессоре j генерировать случайное число интервале [0,
σN]
Шаги 3 и 4 необходимы для определения адреса родителя, т.е. если 3.
4.
rj в
πj
выбранного
σ i −1 < r j ≤ σ i , то π j =i.
Соединить две последовательности (σ 1 ,..., σ N ) и (r1 ,..., rN ) в змеевидном порядке так, чтобы каждый процессор получил два числа (необходимо использование пары (r j , j ) вместо r j , т.к. индекс j (адрес выбираемого процессора) потребуется позже). Вычислить количество σ i , которые меньше чем r j . Результатом данного вычисления является последовательность (c1 ,..., c N ) Если r j является k-ым rэлементом сортированной последовательности (шаг 3), то c k + 1 является адресом процессора, хранящего родителя, выбранного процессором j, т.е. π j = c k + 1 .
Шаги 5-9 осуществляют пересылку выбранных родителей процессорам, которым они необходимы. 5. Сортировать пары (π j , j ) в змеевидном порядке (по первому элементу). Результатом является последовательность (π j1 , j1 ) ,
(π j 2 , j2 ) ,… (π jN , j N ) . 6.
Если π jk −1 ≠ π jk , то процессор k посылает свой адрес (k) процессору
π jk .
7.
Если процессор i получает адрес k на шаге 6, он посылает свою хромосому xi процессору k.
8.
Если процессор k получает хромосому x на шаге 7, он пересылает её всем процессорам k’, для которых π jk = π jk ' . После этого каждый процессор содержит хромосому x и пару (π j , j ) .
92
9.
Каждый процессор пересылает свою хромосому x процессору j. После этого каждый процессор получил хромосому, согласно случайно сгенерированному числу на шаге 2. Скрещивание: Каждый процессор получает родительскую хромосому из соседнего процессора. Нечётные процессоры получают хромосому слева, чётные - справа. Выполнить скрещивание на родительских хромосомах для получения потомства. В случае параллельной упорядоченной селекции, разряд каждой хромосомы легко может быть получен с помощью параллельной сортировки (шаг 1). Определение разряда выбранной хромосомы не составляет труда, т.к. вероятность выбора той или иной хромосомы только косвенно зависит от значения fitness-функции. Алгоритм параллельной упорядоченной селекции можно представить следующими шагами[2]: Пусть f i - значение fitness-функции хромосомы на i-ом процессоре. Сортировать
пары вида
( f i , i)
по первому значению.
Таким образом, каждый процессор j содержит пару ( f i , i ) такую, что хромосома i имеет разряд j, т.е. процессор j имеет указатель p j = i на процессор, на котором располагается хромосома с разрядом j. Каждый процессор генерирует случайным образом число в ⎢ ⎥ диапазоне [0, 1 N ( N − 1) − 1] и вычисляет разряд ρ = ⎢ 1 + 2r + 1 ⎥ . S S 2 2⎦ ⎣ 4 Сортировать
отобранные
разряды
ρS
в
змеевидном
(синусоидальном) порядке. Результатом является последовательность ( ρ S1 , ρ S 2 ,...ρ N ) . Если ρ j ≠ ρ j , то процессор k посылает свой адрес (k) процессору k −1 k
ρ jk . Если процессор l получил адрес k на шаге 4, он посылает указатель pl обратно процессору k.
93
Если процессор k получил указатель pl на шаге 5, он посылает свой адрес (k) процессору pl . Если процессор i получает адрес k на шаге 6, он посылает свою хромосому xi процессору k. Если процессор k получил хромосому x на шаге 7, он передаёт хромосому x всем процессорам k ' , для которых ρ j = ρ j После этого k k' шага каждый процессор содержит хромосому x и пару ( ρ j , j ) . Хромосома x была необходима процессору j. Каждый процессор посылает свою хромосому x процессору j. Скрещивание: Каждый процессор: принять второго родителя (хромосому) от соседнего процессора. Нечётные процессоры принимают хромосомы слева, чётные - слева. Выполнить оператор скрещивания для формирования потомства. Миграционная (островная) модель Основная идея данного вида параллелизма заключается в разделении общей популяции на отдельные подпопуляции, эволюционное моделирование которых осуществляется на отдельных процессорах [1]. Определяется размер подпопулюций, топология и связи между вычислителями, правила обмена генетическим материалом между подпопуляциями. В случае, если обмен хромосомами происходит только между соседними вычислителями – это миграционная модель вычислений; когда обмен происходит между любыми подпопуляциями – это островная модель вычислений. Генетические алгоритмы, основанные на миграционная модели включают следующие шаги [3]: 1. Определить подходящее представление задачи; случайным образом генерировать начальную популяцию и разделить её на N подзадач; определить структуру соседей субпопуляции. 2. Для каждой субпопуляции Spi (i=1,…,N) выполнить шаги 3 и 4. 3. Для Nm поколений каждой субпопуляции Spi выполнить генетические операторы (селекцию, скрещивание, локальную оптимизацию (local hill-climbing),рекомбинацию).
94
4.
5.
Отправить лучшую хромосому субпопуляции n “соседям” и получить лучшие хромосомы от “соседей”, удалить из субпопуляции n хромосом (наихудших по значению fitness-функции; родственных; случайно выбранных). Если не конец, то на шаг 2.
Применение того или иного варианта миграционной модели зависит от архитектуры параллельного вычислителя (сетевая или кольцевая). Частота миграции определяется размерами подпопуляций. При высокой частоте подпопуляция может быстро потерять гетерогенность. Наоборот, при слабой интенсивности миграции и большом числе подпопуляций возрастает вероятность получения нескольких хороших решений, однако сходимость генетического алгоритма замедляется. Клеточная модель В клеточной модели работа ведётся с одной единственной популяцией. Каждая хромосома в данном случае расположена в отдельной ячейке плоской сетки. Селекцию и скрещивание возможно применять только в отношении хромосом, находящихся в соседних ячейках. Генетические алгоритмы, основанные на клеточной модели, состоят из следующих шагов [3]: 1. Случайным образом генерировать начальную популяцию; назначить каждую хромосому определённой ячейке решётки; для всех хромосом определить значение fitness-функции. 2. Для каждой текущей ячейки с выполнить шаги 3, 4, 5 и 6. 3. Выбрать новую хромосому среди соседей ячейки с, чтобы занять ячейку с. 4. Случайным образом выбрать хромосому из соседей ячейки с, и повторно объединить (рекомбинировать) её с хромосомой в ячейке с с вероятностью p c ; назначить одного из потомков 5. 6. 7.
на ячейку с. Выполнить мутацию хромосомы, ячейки с с вероятностью pm . Вычислить значение fitness-функции для новой хромосомы в ячейке с. Если не конец, то на шаг 2. 95
Диффузионная модель Третья разновидность параллелизма [1] - диффузионная модель. В этом случае общая популяция разделяется на большое количество немногочисленных подпопуляций, а операторы кроссинговера и селекции применяются лишь в ограниченной области, определяемой отношением соседства. Это приводит к тому, что хорошие решения очень медленно распространяются в популяции (диффузия) и проблема попадания в "локальную яму" становится менее острой. Выводы В работе дана классификация генетических алгоритмов, основанных на параллельных вычислениях; описаны общие стратегии каждого вида параллелизма. Использование параллельных вычислений при решении задач с помощью генетических алгоритмов позволяет увеличить вероятность сходимости алгоритма в точке глобального экстремума (данное преимущество относится к диффузионной и миграционной/островной моделям), уменьшить общее время вычислений (клеточная модель, глобальный параллелизм). Литература 1. Родзин С.И. Формы реализации и границы применения эволюционных алгоритмов // Перспективные информационные технологии и интеллектуальные системы/ 2002. №1. 2. Branke J., Andersen H.Ch., Schmeck H. Global Selection Methods for SIMD Computers// Forschungsbericht Xo. 333, Institute AIFB, University of Karlsruhe, Germany,Abstract. 3. Lin G., Xin Yao. Parallel Genetic algorithm on PVM // Computational Intelligence Group, Department of Computer Science. University College, The University of New South Wales.
96
РАЗВИТИЕ МЕЖФАКУЛЬТЕТСКОЙ МАГИСТРАТУРЫ ПО СИСТЕМНОМУ И ПРИКЛАДНОМУ ПРОГРАММИРОВАНИЮ ДЛЯ МНОГОЯДЕРНЫХ КОМПЬЮТЕРНЫХ СИСТЕМ: ОПЫТ НИЖЕГОРОДСКОГО УНИВЕРСИТЕТА В.П. Гергель, В.А. Гришагин Нижегородский государственный университет В области современных компьютерных технологий качественное изменение ситуации связано с появлением и прогнозируемым широким распространением многоядерных платформ (до 70% рынка в 2006 г.). Как результат, потребность эффективного использования параллельных структур становится массовой как со стороны системного, так со стороны прикладного параллельного программирования. Динамика изменения ситуации и острота проблемы ставит сложную задачу оперативной подготовки высококвалифицированных кадров, что представляет собой определенный вызов для системы высшего университетского образования. Для самой университетской среды возникает комплексная проблема поиска новых и переподготовки существующих преподавательских кадров, развития учебных планов, разработки новых и расширения уже имеющихся учебных курсов, создания новых лабораторных практикумов. Осознавая все это, Нижегородский госуниверситет ведет целенаправленную активную работу, связанную с созданием новых форм и методов подготовки кадров в области приоритетных направлений развития науки и техники, в том числе в области критических суперкомпьютерных технологий. В связи с переходом на многоуровневую систему образования важнейшее значение приобретает развитие магистратуры как базовой формы подготовки кадров высокого научного потенциала. В области параллельных вычислений Нижегородский госуниверситет инициировал новаторскую форму подготовки специалистов - межфакультетскую магистратуру по системному и прикладному программированию для многоядерных компьютерных систем, организованную при поддержке компании Intel. Данная магистратура содержит интегрированную систему учебных курсов, обеспечивающую комплексный подход к подготовке
97
специалистов по параллельным компьютерным технологиям, включающий в себя: расширение фундаментальной подготовки (модели и методы решения сложных вычислительных задач), изучение передовых архитектур и системных программных средств параллельных высокопроизводительных вычислений (архитектуры многопроцессорных компьютерных систем и многоядерных процессоров, технологии и инструменты параллельного программирования, сети и Grid-технологии, параллельные базы данных), параллельные вычисления в прикладных областях (обработка изображений, параллельные методы в физике и радиофизике, принятии решений, химии, биологии, научная графика). Ключевым принципом магистратуры является междисциплинарный подход к образованию, реализующий возможность получения знаний по параллельному программированию специалистами из разных проблемных областей и одновременно преодолевающий ограниченность узкоспециализированной подготовки. Магистратура создавалась на базе существующей в Нижегородском университете межфакультетской магистерской программы "Математические модели, методы и программное обеспечение современных компьютерных технологий" для существенного расширения подготовки высококвалифицированных специалистов как в области системного программирования для новых многоядерных компьютерных систем, так и области прикладного параллельного программирования для разных предметных направлений науки и техники (механики, физики, химии, биологии и др.). В рамках магистратуры созданы две подпрограммы (специализации): Системное параллельное программирование для многоядерных компьютерных систем, Прикладное параллельное программирование для многоядерных компьютерных систем. Обеспечение межфакультетского характера осуществляется на ассоциативной основе – интеграция факультетских программ 98
магистратуры обеспечивается при помощи введения общих учебных курсов (обязательных и по выбору). Такой поход позволяет органично сочетать системный и прикладной характер обучения по эффективному применению и использованию многоядерных компьютерных платформ. Структура магистерской программы состоит в следующем. Общее количество курсов, планируемых к включению в магистратуру – 22. В состав курсов вошли три курса, уже разработанных и апробированных ранее, для 5 дисциплин был обеспечен определенный уровень доработки, используются 2 учебных курса из других университетов (при развитии магистратуры количество таких курсов планируется расширить). Планируется разработка 12 новых учебных курсов (4 курса из цикла системного параллельного программирования и 8 курсов из цикла прикладного параллельного программирования), из которых 7 курсов готовы к использованию. В состав общих курсов, которые являются обязательными для изучения в рамках обеих подпрограмм, включены 5 дисциплин. Данные курсы посвящены базовым проблемам высокопроизводительных вычислений, в их число входят следующие курсы: Анализ и разработка алгоритмов. Введение в параллельное программирование. Архитектура вычислительных систем. Операционные системы. Компьютерные сети. Вторая группа курсов является обязательной для подпрограммы "Системное программирование" и представляет собой курсы по выбору для подпрограммы "Прикладное программирование". Данные дисциплины расширяют спектр вопросов, изученных в разделе общих курсов, ориентируясь на углубление знаний по конкретным направлениям. Всего в данный раздел входит 7 дисциплин, в их числе Технологии программирования. Технологии построения и использования кластерных систем. Алгоритмические языки и библиотеки параллельного программирования. Технологии разработки параллельных программ. Введение в технологии GRID. Анализ требований и проектирование программных систем. 99
Параллельные системы баз данных (данный курс разработан профессором Южно-Уральского университета Л.Б.Соколинским и внедряется в рамках магистратуры).
Третья группа дисциплин состоит из 10 курсов, которые являются дисциплинами по выбору для обеих подпрограмм, но студенты подпрограммы "Прикладное программирование" обязаны выбрать два курса этой группы в качестве обязательных. Дисциплины данной группы посвящены специализированным прикладным вопросам параллельных вычислений. Подготовка по новому учебному плану магистратуры начата с 1 сентября 2006 г. Общее количество обучаемых в магистратуре – 12 человек. Существенная часть работ проекта состоит в расширении взаимодействия факультетов ННГУ в рамках межфакультетской магистратуры. В рамках проекта проводятся работы по тиражированию курсов в университетах г. Нижнего Новгорода (Технического и Архитектурно-строительного университетов) и других городов России и стран СНГ (Саровский физико-технический институт, Казанский университет, Самарский аэрокосмический университет и др.). Общее количество обучаемых в магистратуре должно возрасти до 40-50 человек. Данная магистерская программа рассматривается как опытный полигон по созданию новых форм подготовки квалифицированных специалистов по высокопроизводительным параллельным вычислениям и многоядерным архитектурам. В дальнейшем планируется осуществить трансфер отдельных курсов, разделов курсов, лабораторных работ в программы начального уровня высшего образования – бакалавриата – с целью реализации массовости образования по проблематике высокопроизводительных параллельных вычислений. В настоящий момент реализуется разработка учебнометодического комплекса магистратуры в рамках гранта компании Intel по разработке и внедрению учебно-методических комплексов в области параллельных компьютерных технологий и высокопроизводительных вычислений, выполняемого по программе Intel Multicore Curriculum Program, которая является частью Intel® Higher Education Program.
100
Литература 1. Гергель В.П. Теория и практика параллельных вычислений. – М.: Интернет-Университет информационных технологий; БИНОМ. Лаборатория знаний, 2007. 423 с. 2. Гришагин В.А., Свистунов А.Н. Параллельное программирование на основе MPI: Учебное пособие. – Нижний Новгород: Изд-во ННГУ им.Н.И.Лобачевского, 2005. 93 с. 3. Алексеев В.Е., Таланов В.А. Графы. Модели вычислений. Структуры данных: Учебник. - Нижний Новгород: Изд-во ННГУ им.Н.И.Лобачевского, 2005. 307 с. 4. Гергель В.П. Общая характеристика учебного курса "Многопроцессорные вычислительные системы и параллельное программирование". Научный сервис в сети Интернет: технологии распределенных вычислений: Труды Всероссийской научной конференции – М.: Изд-во МГУ, 2005. С.303-306. 5. Gergel V.P., Strongin R.G. Parallel computing for globally optimal decision making on cluster systems. Future Generation Computer Systems 21, 2005, 673-678. МОДЕЛИРОВАНИЕ ДИНАМИКИ АПОПТОЗА, ИНДУЦИРОВАННОГО ГРАНЗИМОМ В Е.Н. Головченко, М.А. Ханин Институт математического моделирования РАН, Москва Центр теоретических проблем физико-химической фармакологии РАН, Москва Введение Апоптозом называют запрограммированную смерть клеток. Механизм апоптоза используется иммунной системой для уничтожения клеток, которые по тем или иным причинам стали вредными для организма. Это относится, в частности, к клеткам злокачественных опухолей и инфицированным клеткам. В последние годы к апоптозу привлечено большое внимание, поскольку этот механизм клеточной смерти может быть использован при лечении онкологических заболеваний. 101
Апоптоз осуществляется внутриклеточной биохимической системой, состоящей главным образом из белков, называемых прокаспазами. Прокаспазы активируются, превращаясь в ферменты – каспазы. Последние разрушают внутриклеточные мишени – белки, а также проникают в клеточное ядро и разрушают ДНК. Одним из индукторов апоптоза является белок гранзим В, который выполняет две функции. Одна из них связана с активацией прокаспаз, и, следовательно, с запуском механизма апоптоза. Вторая функция заключается в разрушении внутриклеточных мишеней самим гранзимом В. Динамика апоптоза, индуцированного гранзимом В, описывается системой обыкновенных нелинейных дифференциальных уравнений первого порядка, в которой величины кинетических констант биохимических реакций известны лишь частично. Для определения неизвестных кинетических констант был применен оптимизационный подход, основанный на принципе минимального потребления белков биохимической системой. Данный принцип ранее использовался в работах [2, 3]. Оптимизационные задачи для системы апоптоза, индуцированного гранзимом В, были решены при помощи многомерного алгоритма глобального поиска из [1]. После определения величин кинетических констант стало возможным исследование динамики апоптоза, индуцированного гранзимом В. Для уменьшения времени решения обратной оптимизационной задачи был использован параллельный многомерный алгоритм глобального поиска из [1]. Модель динамики апоптоза, индуцированного гранзимом В Математическая модель динамики апоптоза основана на схеме биохимических реакций апоптоза, индуцированного гранзимом B.
102
Рис. 1. Модель динамики апоптоза, индуцированного гранзимом В
Система уравнений динамики апоптоза, индуцированного гранзимом B, имеет вид: r r r d u (t ) r r r = f (u , K , GrB ), u (0) = U 0 , (1) dt r r r r r r r r r r u (t ) = {C (t ), C a (t ), I (t ), T (t )}, U 0 = {C 0 , C a 0 , I 0 , T0 }, r r где C (t ) - вектор концентраций прокаспаз, C a (t ) - вектор r концентраций каспаз, I (t ) - вектор концентраций ингибиторов каспаз, r T (t ) - вектор концентраций мишеней. Ингибиторы снижают активность соответствующих каспаз. Начальные концентрации приняты на основе измерений в клетках линии К562. Фоновое состояние системы апоптоза При допороговой концентрации индуктора система апоптоза не функционирует (фоновое состояние системы апоптоза). Система уравнений, описывающих фоновое состояние апоптоза, имеет вид: r d C a (t ) r r r r r (2) = q (C 0 , I 0 , T0 , K , GrB ) = 0 . dt Неустойчивость фонового состояния может привести к случайной индукции апоптоза, обусловленной флуктуациями концентраций прокаспаз. Используя критерий Рауса-Гурвица, приходим к неравенству вида: r r r r r (3) p(C0 , I 0 , T0 , K , GrB) < 0 .
В дальнейшем неравенство (3) используется в ограничения при решении прямой оптимизационной задачи.
качестве
103
Постановка оптимизационных задач Функция потребления белков системой апоптоза в единицу времени имеет вид: N (4) S = ∑ μ i ⋅ Ci , i =1
где
μi
τi
- молекулярный вес i-ой прокаспазы, Ci - концентрация i-ой
прокаспазы,
τi
- среднее время жизни i-ой прокаспазы. Суммирование
осуществляется по всем прокаспазам (N), входящим в систему апоптоза. Система динамики апоптоза (1) состоит из 30 уравнений, в нее входит 11 неизвестных кинетических констант. Процесс нахождения неизвестных кинетических констант основан на двух оптимизационных задачах: прямой и обратной. На каждом шаге решения обратной оптимизационной задачи происходит решение прямой оптимизационной задачи. Прямая оптимизационная задача: 1. 2.
r Заданы величины всех кинетических констант K . Определяются оптимальные начальные концентрации r C 0опт из условия минимума функции S при прокаспаз следующих ограничениях: устойчивость фонового состояния апоптоза (неравенство (3)); выполнение системой своей физиологической функции; среднее время разрушения мешеней должно быть меньше своего экспериментального значения.
Обратная оптимизационная задача: 1. Заданы начальные концентрации 2.
104
прокаспаз
r C 0эксп ,
определенные биохимическими методами. r Кинетические константы K определяются из условия минимума суммы квадратов отклонений оптимальных r начальных концентраций прокаспаз C 0опт от найденных r биохимическими методами C 0эксп :
N
эксп 2 . min{∑ (Ciопт 0 − Ci 0 ) } i =1
Кривая Пеано Кривая Пеано – кривая, являющаяся непрерывным образом отрезка, целиком заполняющим некоторый гиперпараллелепипед. Кривая Пеано строится по рекурсии: кривая 1-го порядка, 2-го порядка и т.д. На рис. 2 изображена кривая Пеано 4-го порядка на двумерной области.
Рис. 2. Кривая Пеано 4-го порядка на 2-мерной области
Многомерный алгоритм глобального поиска Существующие методы поиска экстремума функции многих переменных (метод покоординатного спуска, метод градиента, метод квантования симплексов и др.) позволяют найти только локальный экстремум. Поэтому для поиска глобального условного экстремума использовался многомерный алгоритм глобального поиска (Multidimensional Index Method) из [1] для функций, удовлетворяющих условию Липшица. В нем строится кривая Пеано, отображающая отрезок [0,1] на область поиска условного экстремума. В [1] доказывается, что таким образом задача сводится к задаче поиска глобального экстремума одномерной функции, удовлетворяющей условию Гельдера. Данный метод является обобщением метода поиска минимума одномерной функции, удовлетворяющей условию Липшица [1], который в евклидовом пространстве имеет наглядную интерпретацию (см. рис. 3). На каждом шаге оценивается константа Липшица. Строится ломаная с локальными максимумами в уже полученных
105
точках и с углами наклона, соответствующими константе Липшица. Следующая точка выбирается в глобальном минимуме ломаной, то есть на отрезке с наибольшей вероятностью содержания глобального минимума функции. ϕ (x)
x xi−1
xq
xi
xi+1
Рис. 3. Выбор q-ой точки при поиске минимума одномерной функции, удовлетворяющей условию Липшица
Параллельный многомерный алгоритм глобального поиска При отображении отрезка [0,1] на область D с помощью кривой Пеано точки, расположенные близко в области, могут оказаться достаточно далеко на отрезке, что увеличивает время сходимости многомерного алгоритма глобального поиска. Для устранения данной проблемы в [1] предлагается искать минимум одновременно на нескольких областях, образованных из D по некоторому правилу, с добавлением условия попадания в исходную область. На рис. 4 изображены области D0, D1, D2 для двумерного случая. D2 D1 (B1,B2) D (A1,A2)
D0
Рис.4. Области D0, D1, D2
Сдвиг областей подобран таким образом, что при M ≥ nproc узлы кривых Пеано, попадающие в исходную область, на всех процессах одинаковы. Такое построение позволяет добиться того, что при 106
M >> nproc − 1 для точек, расположенных на близком расстоянии в исходной области, найдется процесс, у которого их прообразы расположены достаточно близко на отрезке [0,1].
Параллельное решение обратной оптимизационной задачи Обратная оптимизационная задача была решена параллельным алгоритмом на общей памяти. Для решения прямой оптимизационной задачи использовался последовательный метод. На кластере regatta.cs.msu.su (2хPower4 процессора, 4 GB памяти) были получены следующие результаты (см. Табл. 1): Минимум квадратичной формы Последовательный метод 5951 1.72e-14 2 процессора 660 2.12e-14 Параллельный метод 3 процессора 426 2.45e-14 4 процессора 360 2.45e-14 Таблица 1. Порядок кривой Пеано M = 4, размерность задачи (кинетические параметры) N = 4, погрешность метода ε=0.09 Время, с
Большое ускорение параллельного алгоритма объясняется тем, что основные временные затраты связаны с проверкой ограничений и с нахождением прообразов на отрезке [0,1] для точек, найденных другими процессами. В проверку ограничений при решении обратной оптимизационной задачи входит решение прямой оптимизационной задачи, в частности многократное решение системы дифференциальных уравнений. Время, затрачиваемое на решение прямой оптимизационной задачи, составляет 20 ÷ 70 секунд. Время вычисления прообразов - 0.001 ÷ 0.003 секунды. То есть вычисление прообразов намного выгоднее по времени, чем решение прямой оптимизационной задачи. Исследования динамики апоптоза, индуцированного гранзимом В При найденных кинетических константах была исследована динамика активации каспаз и разрушения мишеней системы апоптоза, индуцированного гранзимом В. На рис. 5 представлена динамика каспазы-3 при различных концентрациях гранзима В.
107
С3а
концентрация в отн. ед.
1.0 0.8 100нМ
0.5
1нМ
0.3
10пМ
0.0 0
1
2 время в часах
3
4
Рис. 5. Динамика каспазы-3 при различных концентрациях гранзима В
Заключение Разработан алгоритм определения параметров системы апоптоза, индуцированного гранзимом B, с помощью решения прямой и обратной оптимизационных задач. Для их решения были использованы последовательный и параллельный алгоритмы поиска глобального условного экстремума многомерных многоэкстремальных функций, основанные на сведении к одномерной задаче с помощью кривой Пеано. Разработан комплекс программ, с помощью которого определены кинетические константы биохимических реакций системы апоптоза и исследована ее динамика. Список литературы 1. Strongin R.G., Sergeyev Y.D. Global Optimization with nonconvex constraints: sequential and parallel algorithms. Kluwer Academic Publ., 2000. 2. Тюрин К.В., Ханин М.А., Оптимальность ферментативных физиологических систем // Изв. Акад. Наук, Сер. Биол.,2000. Т.6. с. 713-720. 3. Tyurin K.V., Khanin M.A. Optimality principle and determination of kinetic constants for biochemical reactions // Math. Med.Biol., 2005. Vol. 22. Pp. 1-14.
108
СРАВНЕНИЕ МАТЕМАТИЧЕСКИХ БИБЛИОТЕК INTEL MKL И AMD ACML НА ПРИМЕРЕ РЕШЕНИЯ ЗАДАЧИ УПРАВЛЕНИЯ ПОРТФЕЛЕМ ИНВЕСТОРА А.С. Горбунова, Е.А. Козинов, И.Б. Мееров, А.В. Шишков
Нижегородский государственный университет Введение Актуальность использования математических библиотек в научных исследованиях определятся их богатой функциональностью и оптимизацией под архитектуры современных вычислительных систем. Целью данной работы является сравнение производительности популярных библиотек Intel MKL и AMD ACML на примере задачи управления портфелем инвестора в одной из возможных постановок. Задача управления портфелем инвестора представляет большой практический интерес. Вычислительная сложность задачи обусловливает ее принадлежность к области применения высокопроизводительных вычислений. Один из вариантов формирования портфеля состоит в выпуске производных ценных бумаг – опционов Бермудского типа [1, 2], которые могут быть предъявлены к исполнению в любой из конечного количества зафиксированных в контракте моментов времени. Получение аналитического решения для определения цены и доходности таких опционов в общем случае является затруднительным. Популярный подход к решению данной задачи состоит в применении методов Монте-Карло и средств имитационного моделирования, что обусловливает необходимость использования генераторов псевдослучайных чисел. В данной работе мы исследуем вклад разницы в производительности таких генераторов, реализованных в библиотеках Intel MKL и AMD ACML, в скорость и качество решения задачи оптимального управления портфелем инвестора. Суть управления при этом состоит во включении/исключении акций из портфеля, на который выпускается опцион Бермудского типа. В качестве критерия оптимальности рассматривается максимизация цены лота, состоящего из некоторого фиксированного количества опционов, обеспечивающих заданный уровень доходности.
109
Постановка задачи Рассмотрим N-мерный финансовый рынок, эволюционирующий в непрерывном времени [1]: (1) dBt = rBt dt , B0 > 0 ,
dSti = Sti ( (θ i − δ i ) dt + σ i dWt i ) , S 0i > 0,
(2)
Пусть инвестор формирует портфель акций для выпуска опционного контракта в момент времени t0, а S 0i , i = 1,..., n – начальные стоимости акций. Будем рассматривать max-call опционы Бермудского типа, которые могут быть предъявлены к исполнению в любой из d заранее фиксированных моментов времени t ∈ Time = {t0 = 0, t1 , t2 ,..., td −1 = T } , где T задает истечение срока действия опциона. В качестве функции выплат будем рассматривать где положительная константа P h(t , St ) = (max( Sti ) − P ) + , i =1... N
определяется опционным контрактом, x + = max( x, 0) . Условимся, что опцион может включать любую комбинацию акций из набора S = {S 1 ,...S n } . Введём обозначения: π m ( x1 ,..., xn ) = ( xi1 ,..., xim ) – проекция R+n на R+m , m ≤ n .
π = {π m ( x1 ,..., xn ) : ( x1 ,..., xn ) ∈ R+n , m = 1,..., n} – множество всех допустимых проекций. cT = cT (π m ( S 1 ,..., S n )) – цена опциона, выпущенного на набор акций π m ( S 1 ,..., S n ) . – выплаты по опциону, f t = (max(π m ( St1 ,..., S tn )) − K ) + выпущенному на набор акций π m ( S 1 ,..., S n ) . Пусть R(T , f , w) – доходность опциона со сроком погашения T, функцией выплат f и случайным исходом w. Определим f (T ,τ (ω )) − CT , где τ – момент исполнения опциона, R (T , f , w) = CT T зависящий от случайного исхода. Пусть R (T , f ) = ER (T , f , w) . Теперь сформулируем два необходимых критерия:
110
cT = cT (π m ( S 1 ,..., S n )) => max R (T , f ) =
Ef (T ,τ ( w)) − CT => max CT T
(3)
где максимум ищется по всем m и π m . Далее необходимо найти оптимальное по Парето решение – комбинацию акций, которая не может быть улучшена по обоим критериям одновременно. Способ, позволяющий это сделать, описан в [5]. Обозначим требуемый уровень доходности как R, а количество выпускаемых опционов – M. Если полученное Парето-оптимальное решение содержит опцион, уровень доходности которого равен R, то цена этого опциона Smax будет максимальной для уровня доходности R. Поэтому максимальная цена лота, состоящего из M опционов и обеспечивающего уровень доходности R, будет равна M * Smax. Если же Парето-оптимальное решение не содержит такого опциона, выберем из решения два опциона, наиболее близких по уровню доходности к R.
Рис. 1. Пример Парето-оптимального решения
Пример такой ситуации представлен на рис. 1, опционам на графике соответствуют выделенные точки P1 и P2. При этом отрезок, проходящий через эти две точки, обязательно пересечет горизонтальную прямую, соответствующую уровню доходности R. Представим точку их пересечения как линейную комбинацию точек P1 и P2 с коэффициентами a и (1-a) соответственно. При этом будем считать решением задачи цену лота, состоящего из a*M опционов,
111
соответствующих точке P1, и (1-a)*M опционов, соответствующих точке P2. Метод исследования Для решения задачи необходимо найти оптимальное по Парето решение – комбинацию акций, которая не может быть улучшена по обоим критериям одновременно. Нами было рассмотрено 2 способа получения решения: крайне затратный по времени расчета полный перебор («точное решение»1) и генетический алгоритм («приближенное решение»). Оба этих метода применительно к задаче управления портфелем инвестора в рассмотренной постановке описаны в [5]. Для проведения сравнения библиотек мы использовали генетический алгоритм ввиду высокой скорости его сходимости на данном классе задач [5]. Для понимания степени близости «приближенного решения» к «точному» с помощью полного перебора были вычислены «точные» Парето-границы. В итоге нами было разработано многопоточное приложение, позволяющее в режиме реального времени визуализировать процесс поиска решения задачи управления портфелем инвестора с использованием библиотек Intel MKL и AMD ACML, а также сравнивать полученные решения с решением, предварительно вычисленным с помощью метода полного перебора. Приложение основано на клиент-серверной архитектуре. В роли клиента выступает графический интерфейс, отображающий полученные на текущей итерации максимальные цены портфеля, подсчитанные с помощью сравниваемых библиотек, разницу этих решений между собой и отставание от «точного решения». Сервером является приложение, состоящее из двух потоков, в каждом из которых происходит вычисление цены с помощью соответствующей библиотеки. Графический интерфейс разработан на языке Java, вычислительная часть реализована на C++. Графический интерфейс приложения представлен на рис. 2.
1 В связи с тем, что алгоритмы вычисления обоих критериев не являются детерминированными, в случае полного перебора всех комбинаций акций мы получаем некоторое решение, которое отличается от точного в пределах статистической погрешности.
112
Рис. 2. Графический интерфейс
Результаты вычислительных экспериментов Результаты были получены с использованием следующего программного и аппаратного обеспечения: Intel® Core™2 Duo T7500 2,2GHz, 2 Gb RAM, L2 cache 4Mb. Intel® Math Kernel Library (Intel® MKL) 10.0 beta, AMD® Core Math Library 4.0. Intel® C/C++ Compiler 9.1, Microsoft ® Visual Studio 2005. В качестве базового генератора рассматривается генератор псевдослучайных чисел Mersenne Twister. Рассмотрим результаты расчетов следующей тестовой задачи:
113
Количество акций (N)
15
Процентная ставка
7%
Начальные цены акций
(111, 120, 110, 125, 104, 107, 121, 109, 119, 105, 107, 102, 129, 119, 115) 100 0,43 (0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05, 0.05,0.05,0.05,0.05, 0.05, 0.05) 1 год
Страйк (K) Коэффициент корреляции Нормы возврата (r) Срок погашения (T) Количество моментов исполнения (d) Волатильности (σ) Уровень доходности (R) Количество опционов (M)
3 (0.24, 0.31, 0.28, 0.22, 0.15, 0.23, 0.19, 0.27, 0.11, 0.46, 0.33, 0.29, 0.25, 0.21, 0.16) 12,7% 1000000
При решении получены следующие результаты: Цена, полученная с использованием библиотеки MKL (у.е.) Цена, полученная с использованием библиотеки ACML (у.е.) Цена, полученная с помощью метода полного перебора (у.е.)
64 849 028 55 894 089 66 812 919
Отрезки Парето-границ, проведенные через точки, соответствующие опционам со значениями доходности наиболее близкими к требуемому уровню, отображены на рис. 3.
114
Рис. 3. Парето-оптимальные решения
В результате работы нами было создано демонстрационное приложение-тренажер, позволяющее задать параметры тестовой задачи, желаемый уровень доходности и предварительно подсчитанную «точную» Парето-границу, а затем в режиме реального времени наблюдать, как расчетные модули, построенные на базе функциональности Intel MKL и AMD ACML, сходятся к «точному» решению. При этом для оценки степени близости к «точному решению» использовались величины отставания цен пакетов опционов, соответствующих «приближенным решениям», полученным расчетными модулями, от «точного решения». Анализ нескольких тестовых задач и уровней доходности показал, что обсчитывая большее количество пробных точек в пространстве поиска решения, вычислительная часть на базе Intel MKL приближается к «точному решению» быстрее, чем вычислительная часть на базе AMD ACML. Поскольку в реальных условиях время принятия решения о выпуске пакета опционов ограничено, разница в скорости приближения к оптимуму является важным преимуществом, позволяя принимать более оптимальные решения в смысле максимизации цены лота при заданном уровне доходности. Заключение Кратко сформулируем основные результаты работы: 1. Приведена постановка задачи максимизации цены пакета опционов при заданном уровне доходности, описан подход к ее решению. 2. На основе указанной задачи создано демонстрационное приложение-тренажер для исследования в режиме реального
115
3. 4.
времени скорости сходимости к «точному решению» вычислительных частей, построенных с использованием функциональности Intel MKL и AMD ACML. Приложение опробовано на ряде тестовых задач. Анализ результатов показал, что преимущество в производительности генераторов псевдослучайных чисел в Intel MKL в данной задаче позволяет повысить качество принимаемых решений в смысле рассмотренного критерия.
Литература 1. Ширяев А. Н. Основы стохастической финансовой математики. В 2 томах. – М.:Фазис, 1998. 2. Broadie M., Glasserman P. Pricing American-style securities using simulation // Journal of Economic Dynamics and Control, June 1997. Vol. 21. Pp. 1323-1352. 3. Горбунова А.С., Козинов Е.А., Мееров И.Б., Николаев А.Ф., Шишков А.В. Параллельная реализация одного алгоритма нахождения цены опционов Бермудского типа // Высокопроизводительные параллельные вычисления на кластерных системах: Материалы пятого Международного научно-практического семинара / Под ред. проф. Р.Г. Стронгина. – Нижний Новгород: Изд-во Нижегородского госуниверситета, 2005. – С. 60-67. 4. Горбунова А.С., Козинов Е.А., Мееров И.Б., Шишков А.В. Применение параллельных вычислений для определения справедливой цены опционов бермудского типа с использованием стохастической сети // Научный сервис в сети Интернет: технологии параллельного программирования: Труды Всероссийской научной конференции (г. Новороссийск).–М.: Изд-во МГУ, 2006.–С.140-143. 5. Мееров И.Б., Горбунова А.С., Козинов Е.А., Шишков А.В.. Об одном подходе к решению задачи управления портфелем ценных бумаг // Параллельные вычислительные технологии (ПАВТ'2007): Труды Международной научной конференции (Челябинск, 29 января – 2 февраля 2007 г.). – Челябинск: Издво ЮУрГУ, 2007. – Т.1. – С. 135-139.
116
ЗАДАЧА ПАРАМЕТРИЧЕСКОЙ ОПТИМИЗАЦИИ ПРОСТРАНСТВЕННЫХ МЕХАНИЗМОВ С ПАРАЛЛЕЛЬНЫМИ ВЫЧИСЛЕНИЯМИ КИНЕМАТИКИ НА ГРАФИЧЕСКОЙ КАРТЕ Е.С. Городецкий
Нижегородский государственный университет Введение Пространственные рычажные механизмы являются важной составляющей современной техники и производственных технологий. Механические системы часто выполняют весьма серьёзные задачи, требующие высокой надёжности и точности. Конструктору обычно требуется знать, как будет действовать разработанный им механизм ещё до его окончательного изготовления. В связи с этими требованиями к процессу создания механизмов крайне важными являются возможности выполнения полного проектирования механизмов и моделирования их работы. Процесс проектирования механизма состоит в определении конструкции механизма (задания связей между его звеньями), выборе варьируемых параметров для выполнения конструктивных ограничений и оптимизации его работы. Задачей данной работы является разработка автоматизированных методов оптимизации моделей пространственных механизмов с реализацией кинематических вычислений на графической карте для достижения максимальной производительности. Краткое введение в предметную область и основные термины Предметной областью решаемой задачи является теория механизмов и машин (ТММ). Под механизмом понимается совокупность взаимосвязанных твёрдых тел, предназначенная для преобразования движения входов на одном или нескольких твёрдых телах в движение на других твёрдых телах (выходах). Механизм может быть представлен своей структурной схемой, на которой выделяют звенья (твёрдые тела), соединяющиеся в подвижные кинематические пары с помощью различных типов геометрических элементов (вращательных, сферических, поступательных и др.) [2]. На рис. 1 приведено конструктивное изображение V-образного авиационного двигателя, а справа – его структурная схема.
117
Рис. 1
При конструировании механизмов важно учитывать число степеней подвижности, которое должен обеспечивать создаваемый механизм. Существуют общие закономерности в строении самых различных механизмов, связывающие число степеней подвижности механизма с числом звеньев и числом и видом его кинематических пар. В основе методов конструирования механизмов и расчета кинематики лежит принцип образования механизмов по Ассуру, утверждающий что “Всякий механизм представляет собою совокупность одного или нескольких двухзвенных (первичных) механизмов и одной или нескольких групп нулевой подвижности (структурных групп)” [2]. Важно ещё до выполнения вычислений диагностировать ситуации, когда расчет положений выполнить невозможно, либо он не имеет смысла. Структура механизма считается корректной, если механизм связный и каждая его непустая группа является либо первичной группой (содержит ровно одну пару, движение звеньев которой определено), либо структурной группой, которая, в свою очередь удовлетворяет требованиям связности (все пары группы соединены звеньями) и статической определимости (число степеней подвижности группы равно нулю). Очевидно также, что механизм должен содержать как минимум одну первичная группу. 118
Методы решения прямой задачи кинематики механизмов В работе рассматривается класс пространственных рычажных механизмов, которые могут быть образованы согласно принципу Ассура наслоением одноконтурных структурных групп. Рассмотрим математические модели звена и пары.
Рис. 2.
Звено Li,i+1 (рис. 2) соединяется со смежными звеньями группы посредством двух кинематических пар. Для моделирования этих пар на звене в общем случае должны быть определены две оси, каждая из которых задана точкой и единичным вектором (ортом) направления. Точки и орты направлений осей пар рассматриваются как первичные элементы модели звена. Объединение звеньев Li-1,i и Li,i+1 в i-той паре налагает на первичные, а значит, и на вторичные элементы модели звена различные условия, зависящие от геометрии сочленения. Геометрические условия замкнутости звеньев в i-той кинематической паре можно использовать как условия замкнутости группы в целом [4]. Прямая задача о положении для механизмов ставится следующим образом. Задано движение всех входных звеньев, удовлетворяющее связям, которые накладывают кинематические пары, соответствующих первичных механизмов. Необходимо найти движение всех остальных звеньев механизма либо сообщить о невозможности реализации положения в тот или иной момент времени. Закон Асура играет фундаментальную роль при решении задачи о положении для пространственных механизмов. Прямая задача о положениях механизма сводится к решению ряда отдельных более простых подзадач расчета положений структурных групп механизма. Для решения прямой задачи кинематики механизма необходимо установить последовательность расчета его структурных групп. Последовательность строится таким образом, чтобы положения
119
поводков группы, необходимые для вычисления её собственного положения были определены на предыдущих шагах. На рис. 3 приведён пример механизма выдвижения закрылков самолёта. Механизм состоит из одного первичного механизма и 4 структурных групп ВВВ (из 3 вращательных пар), связанных друг с другом. Каждая группа имеет два входа, необходимых для расчета её положения. Исходя из этих требований, строится последовательность расчета структурных групп, показанная на рис. справа - вычисления производятся последовательно по уровням 0, 1, 2, и т.д., сверху вниз (стрелками показаны соединения групп друг с другом). Положения структурных групп ВВВ вычисляются аналитически. Произведя вычисления положений механизма для разных углов ϕ поворота входного звена, получим движение всех звеньев механизма.
Рис. 3
В общем случае алгоритм вычисления положений механизма плохо распараллеливается, поскольку вычисление положения отдельной группы может зависеть от набора связанных групп. Но вычисления положений одного механизма в разные моменты времени могут выполняться независимо, а значит, параллельно. Решение задачи о положениях для структурных групп В задаче расчета положения структурной группы для присоединяемых поводков группы заданы положения присоединяемых точек и направлений осей пар, нужно найти все неизвестные положения внутренних точек и направлений осей пар данной группы. Эта задача имеет конечное число решений, поскольку структурная группа, по определению, имеет нулевую подвижность – т.е. является статически определимой конструкцией. Существует два основных подхода к расчету структурной группы [5]:
120
аналитический подход – основан на выводе точной формулы зависимости выходных параметров группы, от её входов (из геометрических соображений); численный подход – выводится уравнение или система нелинейных алгебраических уравнений относительно неизвестных параметров структурной группы, которая затем решается численно, путём минимизации невязки этой системы.
Система проектирования рычажных механизмов “Mechanics Studio .NET” Разработанная автором система автоматизированного проектирования рычажных пространственных механизмов “Mechanics Studio .NET” [1] (веб-сайт программы http://www.mechstd.narod.ru) решает некоторые из описанных проблем: 1. Конструирование модели механизма с визуализацией его структурной схемы на 4-х пространственных проекциях. 2. Разбиение множества пар на группы нулевой подвижности. 3. Проверка корректности структуры механизма с диагностикой ошибок. 4. Кинематический расчет движения всего механизма при заданном движении входных звеньев и воспроизведение движения. 5. Вычисление геометрических характеристик механизма (расстояния и углы между точками, прямыми и осями) при промежуточных положениях с построением графиков. Задача параметрической оптимизации рычажных механизмов Процесс проектирования машины начинается с формулировки задачи и определения условий её функционирования. Кроме того, определяются число, вид, передаточные функции и характеристики механизмов, входящих в состав машины. Выходными параметрами механизма являются законы движения его звеньев, определяемые их размерами (длины L1, L2,.. LN и направления осей пар ψi=∠(ui, ej)) – внутренними параметрами и внешними параметрами – законами движения входных звеньев (ϕj(t) – функции изменения углов или перемещений от времени). Каждому из перечисленных выходных параметров соответствует свой критерий оптимальности: точность воспроизведения заданной траектории, наилучшее прохождение
121
препятствий, КПД, и т.п. [3]. Задача оптимизации механизма по внешним параметрам имеет смысл лишь в том случае, если механизм имеет больше одной степени подвижности. Синтез механизма заключается в поиске оптимальной совокупности значений его внутренних параметров. Чтобы обеспечить корректный, с точки зрения конструктора, синтез механизма, при постановке задач оптимизации вводят различные ограничения, определяющие как область варьируемых параметров, так и некоторые дополнительные условия. Можно выделить следующие типы параметрических ограничений: на длины звеньев (Limin ≤ Li ≤ Limax), на углы поворота осей ui (ψlmin ≤ ψl ≤ ψlmax) и на функции изменения обобщённых координат входных звеньев (∀t∈[t0,tn] ϕjmin ≤ ϕj(t) ≤ ϕjmax, |ϕ’j(t)| ≤ ϕ*, |ϕ’’j(t)| ≤ ϕ**). Среди функциональных ограничений рассматривают: ограничения на расстояния между точками и прямыми звеньев (∀t∈[t0,tn] ρi,jmin ≤ ρ(Pi(t), Pj(t)) ≤ ρi,jmax или ρi,jmin ≤ ρ(Pi(t), Lj(t)) ≤ ρi,jmax, где Pi – точка звена механизма, а Lj – прямая, соединяющая две точки звена), на углы между звеньями (∀t∈[t0,tn] γi,jmin ≤ γ(Li(t), Lj(t)) ≤ γi,jmax), ограничения непересечения звеньев с заданными пространственными препятствиями Ri (∀t∈[t0,tn], ρ(Ri, Lj(t)) ≥ δi, i=1..M, j=1..N). Функциональные ограничения также могут становиться критериальными в случае выбора в качестве критерия соответствующей функции. Все обозначения показаны на примере механизма закрылок (рис. 4).
Рис. 4
Проблема оптимального синтеза механизма, решаемая конструктором, выражается в выборе целевого критерия оптимизации 122
и варьируемых параметров. Рассмотрим некоторые типы целевых критериев. Критерий воспроизведения заданных скалярных функций задаёт целевую скалярную функцию f*(t), определяющую желаемое поведение некоторой кинематической характеристики механизма f(t, α) (например, угла между звеньями или расстояния между точками звеньев). Необходимо за счёт выбора вектора варьируемых параметров α* ∈ П обеспечить максимальную близость характеристики f к целевой функции f* с учётом заданных ограничений, т.е.: r Φ I (α ) = r
∑ ( f (t ,α ) − f n
i =0
i
r
*
)
2
r⎯→ min, (ti ) ⎯α⎯ ∈Π
r
α = (α1 ,..,α n ) ∈ Π : ∀i ∈ {0,.., n} cl ≤ g l (t i ,α ) ≤ d l , l = 1,.., m Критерий воспроизведения целевого движения требует прохождения некоторой точки P(t, α) механизма через заданный набор положений (P*1, P*2, …, P*k) в определённые моменты времени (t*1, t*2, …, t*k). Т.е. за счёт выбора вектора варьируемых параметров α* ∈ П необходимо минимизировать наибольшую невязку между точками P(t*i, α*) и P*i при всех i=1..k с учётом заданных ограничений: r r r r r⎯→ min, Φ II (α ) = max P (t i* , α ) − Pi * ⎯α⎯ ∈Π i∈{1.. k } r r α = (α 1 ,.., α n ) ∈ Π : ∀i ∈ {0,.., n} cl ≤ g l (t i ,α ) ≤ d l , l = 1,.., m
Параллельное вычисление целевых критериев для механизмов на GPGPU Нетрудно видеть, что вычисление одного значения функции целевого критерия ФI или ФII требует вычисления целой серии положений механизма в некоторых дискретных моментах времени i=1..k. При работе алгоритма поисковой оптимизации для решения задачи может потребоваться большое количество значений целевого критерия – например, s. Это приведёт к необходимости выполнить k×s вычислений положения, что может негативно сказаться на времени решения задачи. Очевидно, что положения механизма в моменты времени i, необходимые для вычисления целевого критерия, можно считать параллельно. Кроме того, параллельные вычисления могут применяться и в самом алгоритме оптимизации, что ускорит решение задачи, как минимум в k раз. На сегодняшний день существует несколько типов общедоступных аппаратных средств для выполнения параллельных вычислений – это
123
кластерные системы, многопроцессорные или многоядерные системы и графические карты GPU, которые недавно стали использоваться для вычислений общего назначения (GP GPU) [5]. Кластерные и многопроцессорные системы достаточно дороги, а графические карты, напротив, широко распространены в настольных компьютерах и имеют огромный потенциал для параллельных векторных вычислений. Программирование на графических картах осуществляется с помощью языков шейдеров, использовать которые для общих вычислений не всегда удобно. Реализовать вычисление положений механизмов на графической карте планируется с помощью технологии NVidia CUDA (http://developer.nvidia.com/cuda), позволяющей писать программы для GPU на C++. Литература 1. Городецкий Е.С., Система проектирования кинематики пространственных механизмов Mechanics Studio .NET на основе Managed DirectX – Технологии Microsoft в теории и практике программирования: Материалы конференции. Н. Новгород: Изд-во Нижегородского госуниверситета, 2007. С. 48-52. 2. Фролов К.В., Попов С.А., Мусатов А.К. и др. Теория механизмов и машин: Учеб. для вузов / Под ред. К.В. Фролова – М.: Высш. шк., 1987. – 496с. 3. Теория механизмов и машин: Учеб. для вузов / К.И. Заблонский, И.М. Белоконев, Б.М. Щекин.- Киев: Вища шк. Головное изд-во, 1989.- 376с. 4. Турлапов В.Е. Задача о положениях и классификация одноконтурных структурных групп пространственных рычажных механизмов // Электронный ж. "Прикладная геометрия". Вып.2. №2. МАИ. 2000. C.1-22. 5. John D. Owens, David Luebke, Naga Govindaraju. A Survey of General-Purpose Computation on Graphics Hardware // Computer Graphics Forum. Vol. 26 (2007). Number 1. Pp. 80–113.
124
ПАРАЛЛЕЛЬНЫЕ АЛГОРИТМЫ МНОГОЭКСТРЕМАЛЬНОЙ ОПТИМИЗАЦИИ В ОБЛАСТЯХ С ВЫЧИСЛИМОЙ ГРАНИЦЕЙ В.А. Гришагин
Нижегородский государственный университет Рассматривается конечномерная задача оптимизации (задача нелинейного программирования) (1) f ( y ) → inf, y ∈ Y ⊆ R N , (2) Y = { y ∈ D : g j ( y ) ≤ 0, 1 ≤ j ≤ m} , (3) D = { y ∈ R N : yi ∈ [ai , bi ], 1 ≤ i ≤ N } , т.е. задача отыскания экстремальных значений целевой (минимизируемой) функции f ( y ) в области Y , задаваемой координатными (3) и функциональными (2) ограничениями на выбор допустимых точек (векторов) y = ( y1 , y 2 ,..., y N ) , где величины a i , bi ,
1 ≤ i ≤ N , задающие границы изменения варьируемых параметров задачи (координат вектора y ), суть константы. Предметом рассмотрения настоящей работы являются многоэкстремальные задачи оптимизации, т.е. задачи, в которых целевая функция f ( y ) в допустимой области Y имеет экстремум, а ограничения g j ( y ), 1 ≤ j ≤ m могут иметь несколько локальных экстремумов. Задачи данного класса обладают высокой вычислительной трудоемкостью, обусловливаемой как многоэкстремальностью целевой функции в сочетании с размерностью (так называемое "проклятие размерности"), так и сложностью допустимой области, порождаемой многоэкстремальностью ограничений. В частности, в задачах данного класса область Y может быть невыпуклой, неодносвязной и даже несвязной. Для решения задач вида (1)-(3) широко применяются подходы, основанные на методологии редукции сложности, когда решение исходной задачи заменяется решением одной или нескольких более простых задач. Например, используются схемы редукции размерности, сводящие многомерную задачу к эквивалентной одномерной задаче посредством отображения многомерного гиперпараллелепипеда D в отрезок вещественной оси с помощью кривых Пеано, либо схемы вложенной оптимизации, заменяющей решение многомерной задачи 125
решением семейства рекурсивно связанных одномерных подзадач [1, 2]. Применение идеи редукции сложности к учету ограничений связано с построением задачи без функциональных ограничений, эквивалентной исходной условной задаче (эквивалентность понимается в смысле совпадения – или близости – решений исходной и редуцированной задач). Классическим подходом в этом направлении является метод штрафных функций. К сожалению, его практическая реализация сопряжена с рядом трудностей, одной из которых является необходимость подбора параметров метода (константы штрафа и выравнивающих коэффициентов при ограничениях). Преодолеть трудности такого рода удается в индексном методе учета ограничений [1, 3], не содержащем настроечных параметров. Вместе с тем оба подхода, решая редуцированную задачу в гиперпараллелепипеде D , неизбежно проводят испытания (вычисления функционалов задачи) не только в допустимой области, но и вне ее. Однако можно выделить класс задач, в которых использование схемы вложенной оптимизации позволяет добиться проведения испытаний только в допустимой области. Задачи такого рода называются задачами оптимизации в области с вычислимой границей. В настоящей работе обсуждаются методы распараллеливания процесса решения задач данного типа. Предположим, что все функции-ограничения g j ( y ) , 1 ≤ j ≤ m , являются непрерывными, а область D - ограниченной, что обеспечивает компактность области Y . Введем непрерывную функцию, определенную в области D , такую, что G ( y ) ≤ 0, y ∈ Y (4) G ( y ) > 0, y ∉ Y В качестве G ( y ) можно взять, например, (5) G ( y ) = max{g1 ( y ),..., g m ( y )} или G ( y ) = max{0; g1 ( y ),..., g m ( y )}
(6)
Последняя функция тождественно равна нулю в области Y . Введем обозначения (7) ui = ( y1 ,..., yi ), vi = ( yi+1 ,..., y N ),
126
позволяющие при 1 ≤ i ≤ N − 1 записать вектор y в виде пары y = (u i , vi ) , и примем, что y = v 0 при i = 0 и y = u N при i = N . Положим G N ( y ) ≡ G ( y ) и построим семейство функций
G i (ui ) = min{G i +1 (ui , yi +1 ) : yi +1 ∈ [ai +1 , bi +1 ]}, 1 ≤ i ≤ N − 1 , определенных в соответствующих проекциях
(8)
Di = {u i ∈ R i : y j ∈ [a j , b j ], 1 ≤ j ≤ i}
(9)
множества D из (3) на координатные оси y1 ,..., y i , причем, по определению, D N = D . В силу непрерывности функции G N ( y ) ≡ G ( y ) и компактности области D функция G N −1 (u N −1 ) существует и непрерывна в D N −1 , что влечет существование и непрерывность функции G N − 2 (u N − 2 ) и т.д. определяет существование и непрерывность всех функций семейства (8). Построим множества (10) Π i +1 (ui ) = { yi +1 ∈ [ai +1 , bi +1 ] : G i +1 (ui , yi +1 ) ≤ 0}, 0 ≤ i ≤ N − 1 . Предположим теперь непрерывность функции f ( y ) и, положив по определению f N ( y ) ≡ f ( y ) , построим семейство функций
f i (ui ) = min{ f i +1 (ui , yi +1 ) : yi +1 ∈ Π i +1 (ui )} , 1 ≤ i ≤ N − 1 , определенных на соответствующих областях Yi = {ui ∈ R i : G i (ui ) ≤ 0} . Тогда имеет место основное соотношение min f ( y ) = min min . . . min y∈Y
y1∈Π1 y2∈Π 2 (u1 )
y N ∈Π N ( u N −1 )
f ( y) .
(11)
(12)
Как следует из (11), (12), для решения задачи (1) – (3) достаточно решить одномерную задачу (13) f 1 ( y1 ) → min , y1 ∈ Π1 ⊆ R1 , (14) Π1 = { y1 ∈ [a1 , b1 ] : G1 ( y1 ) ≤ 0} . 1 При этом каждое вычисление функции f ( y1 ) в некоторой фиксированной точке y1 ∈ Π 1 представляет собой, согласно (12), решение одномерной задачи
127
f 2 ( y1 , y 2 ) → min , y 2 ∈ Π 2 ( y1 ) ⊆ R1 ,
(15)
2
(16) Π 2 ( y1 ) = { y 2 ∈ [a2 , b2 ] : G ( y1 , y 2 ) ≤ 0} . Эта задача является одномерной задачей минимизации по y 2 , т.к. y1 фиксировано. В свою очередь, каждое вычисление значения функции f 2 ( y1 , y 2 ) при фиксированных y1 , y 2 требует решения одномерной задачи
f 3 (u 2 , y3 ) → min , y3 ∈ Π 3 (u 2 ) и т.д. вплоть до решения задачи f N (u N −1 , y N ) = f (u N −1 , y N ) → min , y N ∈ Π N (u N −1 ) при фиксированном u N −1 . Окончательно решение задачи (1) – (3) семейства "вложенных" одномерных подзадач f i (ui −1 , yi ) → min , yi ∈ Π i (ui −1 ) , где фиксированный вектор ui −1 ∈ Yi −1 .
(17) (18)
сводится к решению (19)
Решение исходной многомерной задачи (1) – (3) через решение системы взаимосвязанных одномерных подзадач (19) называется схемой вложенной оптимизации или многошаговой схемой редукции размерности. Непрерывность функции G i (ui −1 , yi ) позволяет утверждать, что область одномерной оптимизации
Π i (ui −1 )
представляет собой
систему отрезков: qi
Π i (ui −1 ) = U [aij , bi j ] ,
(20)
j =1
где количество отрезков q i и их границы a ij , bi j , 1 ≤ j ≤ q i , зависят от вектора u i −1 , т.е. (21) qi = qi (ui−1 ) , aij = aij (ui −1 ) , bi j = bi j (ui −1 ) . Если область Y такова, что для всех 1 ≤ i ≤ N удается указать явные (аналитические) выражения для величин q i , a ij , bi j как функций ui −1 ∈ Yi −1 , тогда область Y называется областью с вычислимой границей. Для построения данных областей необходимо, например,
128
уметь аналитически находить корни функций
G i (u i −1 , y i )
по
соответствующим координатам y i . Приведем простой пример неодносвязной области с вычислимой границей: (22) Y = { y ∈ R 2 : −4 ≤ y1 , y 2 ≤ 4, y12 + y 22 − 4 ≤ 0, 1 − y12 − y 22 ≤ 0} (кольцо). Для этой области Π1 = [−2,2] ,
⎧[− 4 − y 2 , 4 − y 2 ], y ∈ [−2,−1] [1,2]; U 1 1 1 ⎪ Π 2 ( y1 ) = ⎨ ⎪⎩[− 4 − y12 ,− 1 − y12 ]U[ 1 − y12 , 4 − y12 ], y1 ∈ [−1,1].
Очевидный способ распараллеливания для областей вида (20) при qi > 1 состоит в одновременном решении qi задач
f i (ui −1 , yi ) → min, yi ∈ [aij , bi j ], 1 ≤ j ≤ qi , (каждый процессор решает задачу на одном отрезке). К сожалению, в этом случае происходит существенная потеря информации об исходной задаче (19), поскольку отдельный процессор не учитывает результаты испытаний, выполненных другими процессорами, что приводит к значительной избыточности вычислений. Более эффективным в этом случае является применение характеристических параллельных алгоритмов [4], в которых реализуется распараллеливание решающего правила на единой области оптимизации, что позволяет учесть при планировании поиска результаты испытаний, полученные всеми используемыми процессорами. Для описания базовой схемы одномерного параллельного алгоритма, относящегося к семейству информационно-статистических методов [1, 2], перепишем задачу (19) в более простой стандартной форме: (23) ϕ ( x) → min , x ∈ S q , q
S q = U[a j , b j ] ,
(24)
j =1
причем a j < b j ,1 ≤ j ≤ q, b j < a j +1 ,1 ≤ j ≤ q − 1. Тогда общая схема метода состоит в следующем.
129
Этап 1 (инициализация). Первые 2q испытаний (вычислений значений функции) x1 , x 2 ,K, x 2 q проводятся в граничных точках
a j , b j ,1 ≤ j ≤ q , причем для параллельного проведения испытаний можно использовать до 2q процессоров. Вычисляются значения z i = ϕ ( x i ), 1 ≤ i ≤ 2q . Количество проведенных испытаний k полагается равным 2q , а номер n текущей параллельной итерации устанавливается в единицу ( n = 1 ). Отметим, что граничные точки области (24) разбивают отрезок [ a1 , bq ] на 2q − 1 интервалов, q − 1 из которых не входят в область поиска (являются "запрещенными"). Этап 2 (начало параллельной итерации). Координаты проведенных испытаний x1 , x 2 ,K, x k , k = k (n) , перенумеровываются нижним индексом в порядке возрастания, т.е. (25) a1 = x0 < x1 < K < xτ −1 < xτ = bq где τ = k (n) − 1 , и каждой точке xi множества (25) ставится в соответствие значение zi функции (23), т.е. zi = ϕ ( xi ), 0 ≤ i ≤ τ . Этап 3 (индексация разрешенных интервалов). Упорядоченные координаты xi из (25) задают систему интервалов ( xi −1 , xi ), 1 ≤ i ≤ τ . Считая номером интервала ( xi −1 , xi ) индекс i его правого конца, вводим множество I k номеров "разрешенных" интервалов, а именно:
i ∈ I k , если существует j такой, что ( xi−1 , xi ) ⊆ [a j , b j ],1 ≤ j ≤ q . Этап 4 (вычисление оценки константы Липшица). Вычисляется величина ⎧rM k , M k > 0 , (26) m=⎨ ⎩ 1, M k = 0 где r > 1 - параметр метода, а z −z (27) M k = max i i −1 . i∈I k x − x i i −1 Этап 5 (вычисление характеристик). Каждому интервалу ( xi−1 , xi ), i ∈ I k , ставится в соответствие число R (i ) = m( xi − xi−1 ) + 130
( zi − zi −1 ) 2 − 2( zi + zi −1 ) m( xi − xi−1 )
(28)
называемое характеристикой интервала. Этап 6 (упорядочение характеристик). R(i), i ∈ I k , упорядочиваются по убыванию:
Характеристики
(29) R(t1 ) ≥ R(t 2 ) ≥ K ≥ R(tτ −1 ) ≥ R(tτ ) . Этап 8 (формирование координат испытаний). В последовательности (29) выбираются p = p (n + 1) ≤ τ наибольших и в интервалах, характеристик с номерами t i , 1 ≤ i ≤ p, соответствующих этим характеристикам, формируются точки испытаний новой (n + 1) -й итерации согласно x k +1 ,K, x k + p выражениям zt − zts −1 1 (30) x k + s = ( xts + xts −1 ) − s 2 2m для 1 ≤ s ≤ p . Этап 9 (завершение параллельной итерации). Если (31) min ( xt − xt −1 ) ≤ ε 1≤ s≤ p
s
s
где ε > 0 - заданная точность поиска, то поиск прекращается и в качестве решения принимается величина ϕ k* = min ϕ ( x i ) , а также ее 1≤ i ≤ k
координата. Если же (31) не выполняется, осуществляется параллельная итерация метода, т.е. вычисление в точках x k + s , 1 ≤ s ≤ p, значений функции ϕ ( x k +s ) - каждое испытание на своем процессоре. После этого номер итерации n увеличивается на единицу, количество испытаний k (n + 1) становится равным k (n) + p и происходит переход к Этапу 2. Описание алгоритма завершено. Вследствие (26), (27), (30) координата x k + s нового испытания неизбежно попадает внутрь интервала ( xt , xt −1 ) и порождает два s
s
новых разрешенных интервала, что означает невозможность проведения испытаний вне допустимой области S q . Как следствие, использование алгоритма в структуре рекурсивной схемы (19) обеспечивает проведение испытаний только в допустимой области (2).
131
Заметим, что описанный алгоритм реализует синхронную схему организации вычислений индексного метода, когда процессор, завершивший свое испытание, ожидает окончания работы остальных процессоров, участвующих в параллельной итерации метода. Однако предложенная схема легко может быть обобщена на асинхронный случай, если при выборе координат новых испытаний в число разрешенных не включать те допустимые интервалы, в которых не завершено вычисление значения функции. Из результатов работы [4] следует, что теоретические свойства сходимости метода (как в синхронном, так и в асинхронном варианте) совпадают со свойствами его последовательного прототипа [1, 2]. В частности, если целевая функция ϕ ( x ) удовлетворяет в области S q условию Липшица с константой L > 0 , то при m > 2 L метод будет сходиться ко всем точкам глобального минимума функции ϕ ( x ) и только к таким точкам. Кроме того, для алгоритма справедливы оценки избыточности, полученные в [4]. Как отмечено в [5 - 7], многошаговая схема в сочетании с алгоритмами описанного типа обладает высоким потенциалом параллелизма. А именно, если на всех итерациях метода, решающего одномерные задачи, связанные с координатой xi , используется pi процессоров, тогда для решения задачи (1)-(3) можно использовать вплоть до N
P = ∏ pi
(32)
i =1
параллельно работающих процессоров. При этом в рамках вычислительного процесса рекурсивной оптимизации будет одномерных подзадач (19), решаемых существовать до P / p N одновременно. Работа выполнена при поддержке РФФИ (грант № 07-01-00467). Литература 1. Strongin R.G., Sergeyev Ya.D. Global optimization with nonconvex constraints: Sequential and parallel algorithms, Kluwer Academic Publishers, Dordrecht, Netherlands. 2000.
132
2. 3. 4.
5. 6.
7.
Стронгин Р.Г. Численные методы в многоэкстремальных задачах. Информационно- статистический подход. М.: Наука, 1978. Strongin R.G., Markin D.L. Minimization of multiextremal functions with nonconvex constraints. Cybernetics 22, 1986. P. 486-493. Strongin R.G., Sergeyev Ya.D., Grishagin V.A. Parallel Characteristical Algorithms for Solving Problems of Global Optimization // Journal of Global Optimization,10, 1997. P. 185– 206. Sergeyev Ya.D., Grishagin V.A. Parallel asynchronous global search and the nested optimization scheme, Journal of Computational Analysis & Applications, 3(2), 2001. P. 123–145. Гришагин В.А., Сергеев Я.Д. Эффективность распараллеливания характеристических алгоритмов глобальной оптимизации в многошаговой схеме редукции размерности. // Высокопроизводительные параллельные вычисления на кластерных системах. Материалы четвертого Международного научно-практического семинара и Всероссийской молодежной школы / Под ред. В.А.Сойфера. Самара: Изд-во Самарского научного центра РАН, 2004. С. 7074. Гришагин В.А., Сергеев Я.Д. Параллельный метод решения многомерных многоэкстремальных задач с невыпуклыми ограничениями // Высокопроизводительные параллельные вычисления на кластерных системах: Материалы пятого Международного научно-практического семинара / Под ред. Р.Г. Стронгина. Нижний Новгород: Изд-во Нижегородского госуниверситета, 2005. С. 74-83.
133
РАЗРАБОТКА СИСТЕМЫ УПРАВЛЕНИЯ ИНТЕГРИРОВАННОЙ СРЕДОЙ ВЫСОКОПРОИЗВОДИТЕЛЬНЫХ ВЫЧИСЛЕНИЙ ННГУ В.В. Домрачев, А. В. Сенин
Нижегородский государственный университет Введение Всё больше и больше появляется задач, требующих привлечения больших вычислительных ресурсов. Это связано с тем, что произошли фундаментальные изменения в самой организации научных исследований. Вследствие широкого внедрения вычислительной техники значительно усилились направления численного моделирования и численного эксперимента. Численное моделирование, заполняя промежуток между физическими экспериментами и аналитическими подходами, позволило изучать явления, которые являются либо слишком сложными для исследования аналитическими методами, либо слишком дорогостоящими или опасными для экспериментального изучения. При этом численный эксперимент позволил значительно удешевить процесс научного и технологического поиска. Стало возможным моделировать в реальном времени процессы интенсивных физикохимических и ядерных реакций, глобальные атмосферные процессы, процессы экономического и промышленного развития регионов и т.д. Для этого понадобилось создание дорогостоящих сверхпроизводительных вычислительных систем (суперкомпьютеров). Для решения сложных вычислительных задач всё больше используются кластерные системы. Вычислительный кластер – это совокупность компьютеров, соединённых сетью и работающих как единое целое. Развитие персональных компьютеров достигло высоких показателей, а цена их остаётся сравнительно низкой. Таким образом, кластер может быть дешёвой заменой суперкомпьютеров, стоимость которых превосходит стоимость кластеров в десятки раз. Развитие кластерных технологий за последние годы хорошо видно из анализа списка Тор500: c 2000 по 2006 г. доля кластеров в списке изменилась с 2.2% до 72.2%. Этот бурный рост обусловлен тем, что кластерные системы стоят существенно меньше многопроцессорных суперкомпьютеров, предлагая при этом часто не меньшую производительность на отдельных классах задач.
134
Для управления компьютерами в составе кластера необходимо специальное программное обеспечение – система управления кластером. Она позволяет объединить вычислительную мощь всех компьютеров, входящих в состав кластера, и предоставляет интерфейс доступа к кластеру для организации распределённых вычислений, поддержания равномерной загрузки узлов системы и предоставления удобного интерфейса взаимодействия с пользователем, обеспечивающего представление системы компьютеров как единого вычислительного ресурса. В середине 2007 года ННГУ приобрел мощный вычислительный кластер, состоящий из 64 двухпроцессорных серверов Intel Xeon 5150 2,66 ГГц с 4 Гб оперативной памяти каждый. В качестве сетевого интерфейса используется Gigabit Ethernet. Кроме того, в ННГУ имеется несколько компьютерных лабораторий, использующихся в учебном и научно-исследовательском процессах. В целях повышения эффективности использования этих компьютерных ресурсов, обеспечения отказоустойчивости, улучшения контроля над использованием компьютерного времени и упрощения администрирования необходимо интегрировать вычислительный кластер и компьютерные лаборатории в инфраструктуру, управляемую единой системой. Однако это осложнено тем, что в части лабораторий уже используются некоторые системы управления кластерами (Microsoft Compute Cluster Server 2003, PBS). Кроме того, часть лабораторий работают под управлением операционной системы Windows, а часть – Linux. Указанные факторы делают чрезвычайно сложным или даже невозможным внедрение одной из существующих систем управления для объединения всех компьютерных ресурсов ННГУ, что обусловливает необходимость создания собственной системы. В рамках учебно-исследовательской лаборатории «Информационные технологии» существует проект «Метакластер», целью которого является разработка системы управления кластерами, важнейшими отличительными особенностями которой являются возможность одновременного управления несколькими кластерами, возможность поддержки различных операционных систем, предоставление удалённого доступа и интеграция с другими системами управления.
135
Описание проекта «Метакластер» Основными требованиями, выдвигаемыми к создаваемой системе управления кластером, являются следующие: возможность одновременного управления несколькими кластерами на базе различных операционных систем (Windows, Linux) и систем управления кластерами (Windows CCS, PBS); предоставление удобного способа доступа через сеть Интернет или Интранет; реализация основного набора операций над вычислительными задачами: запуск, получение статуса, остановка выполнения, получение результатов вычислений.
Система имеет уникальную архитектуру, она состоит из трёх компонентов (см. рис. 1). Д и сп е тч ер д о ступа П о л ьзо в а те л ьс ки й ко м п ью те р
И н те гра то р к л а с те р ов
И н те гр а то р к л а с те ро в
М ен е д ж е р зад а ч (W indow s) М е н е д ж е р ы зад а ч (W indow s)
М е н е д ж е р зад ач (L in u x)
Рис. 1. Общая архитектура системы «Метакластер 2.0»
Диспетчер доступа Диспетчер доступа предоставляет интерфейс для работы пользователя с системой. С его помощью можно запускать задачи с удалённого компьютера через сеть Интернет (в частности, вебинтерфейс). Компонент проводит регистрацию пользователей в системе, позволяет загружать задания, задавать параметры, отправлять задания на интегратор кластеров, отображать состояния запущенных задач, возвращать результаты работы пользователю.
136
Интегратор кластеров Интегратор является связующим звеном, которое объединяет несколько кластеров в отдельную группу, предоставляя доступ к ним для диспетчера или для вышестоящего интегратора. Таким образом, эта компонента позволяет создавать иерархию вычислительных ресурсов любой сложности. В состав интегратора входит планировщик, имеющий возможность как ручного, так и автоматического распределения задач по кластерам на основе имеющейся информации о загруженности кластеров, предыдущем опыте запуска и правах конкретного пользователя. Этот компонент по запросу предоставляет необходимую информацию (ход выполнения заданий, информация о загруженности кластера, результаты вычислений). Менеджер задач Компонент, фактически являющейся локальной системой управления кластером, на котором он установлен. Менеджер задач осуществляет непосредственный запуск задач на кластере, мониторинг вычислительных узлов, сбор и сохранение результатов работы вычислительных задач (стандартный поток вывода и сгенерированные файлы). В том случае, если на кластере уже установлена система управления стороннего производителя, менеджер задач может выступать промежуточным звеном, транслирующим команды интегратора в команды установленной системы. Каждый менеджер заданий разрабатывается с учетом особенностей кластера, на котором он будет работать (операционная система, установленное программное обеспечение, возможно, аппаратные характеристики). Благодаря реализации специфических менеджеров заданий, мы получаем возможность централизованно управлять кластерами с различными операционными системами и различными аппаратными характеристиками. Текущее состояние разработки В настоящее время в системе реализована следующая функциональность: обеспечение доступа к системе через web-интерфейс; поддержка базового набора операций: загрузка задачи на сервер, добавление задачи в очередь планирования запусков, остановка задачи, просмотр состояния задачи;
137
поддержка произвольного числа кластеров на базе ОС Windows и возможность интеграции с Microsoft Compute Cluster Server 2003.
Разрабатываемая система управления в настоящее время распределяет задания по 3 вычислительным установкам: кластер ННГУ, мини-кластер (оба под управлением Microsoft CCS 2003) и 8-узловый кластер под управлением Менеджера задач «Метакластера». Вычислительные ресурсы, доступ к которым предоставляется через систему управления «Метакластер», используются широким кругом исследовательских проектов как из ННГУ, так и из других университетов. В числе проектов можно упомянуть проект по моделированию работы сердца кафедры ТУДМ факультета ВМК ННГУ, проекты «ПараЛаб» и «Абсолют», выполняемые на кафедре МО ЭВМ, проект «Финансовая математика» лаборатории «Информационные технологии». Планы дальнейшего развития Можно выделить следующие основные направления дальнейшей работы: 1. Расширение функциональности системы для операционной системы Windows, разработка версий для Linux, FreeBSD. 2. Интеграция с другими системами управления кластерами (в ближайших планах – PBS). 3. Разработка программ-клиентов с командным и графическим интерфейсами. 4. Расширение сохраняемой статистики использования компьютерных ресурсов, автоматическая генерация отчетов.
Большое внимание планируется уделить вопросам оптимального распределения вычислительной нагрузки по узлам кластера и обеспечению безопасной и отказоустойчивой работы кластеров, в том числе: 1. Разработка безопасных протоколов взаимодействия с пользователем и между компонентами системы. 2. Вопросы шифрования при обмене информацией по сети. 3. Анализ системы с точки зрения предотвращения злонамеренных действий пользователя.
138
4.
Вопросы поведения системы в случае отказа отдельных узлов, самовосстановление системы в случае аварийного завершения работы.
Литература 1. Baker M. et al. Cluster Computing White Paper. Final Release, Version 2.0. 2. By Thomas Sterling. Beowulf Cluster Computing with Windows. The MIT Press, Cambridge, Massachusetts, 2002 y. 3. Microsoft Windows Compute Cluster Server 2003 Beta 2 Reviewers Guide (http://www.microsoft.com/windowsserver2003/ccs/reviewersguid e.mspx). 4. Боголепов Д., Алехин А. Архитектура системы мониторинга GPM. (http://www.software.unn.ac.ru/grid/). 5. Гергель В.П. Теория и практика параллельных вычислений. (http://www.software.unn.ac.ru/ccam/kurs1.htm). 6. Гергель В.П., Стронгин Р.Г. Высокопроизводительный вычислительный кластер Нижегородского университета – // Материалы конференции Relam. Н. Новгород, 2002 г. ОПТИМАЛЬНАЯ ДЕКОМПОЗИЦИЯ ВЫЧИСЛИТЕЛЬНЫХ ЗАДАЧ В КОРПОРАТИВНЫХ ГРИД-СИСТЕМАХ НА ОСНОВЕ INTEL GRID PROGRAMMING ENVIRONMENT А.В. Дунаев, А.В. Ларченко, А.В. Бухановский
Санкт-Петербургский государственный университет информационных технологий, механики и оптики Современный этап развития технологий Грид характеризуется многообразием концепций их интерпретации и использования. Классические (и независимые) определения, сформулированные I. Foster и С. Kesselman [1] и M. Livny [2], по мере внедрения Грид расширяются и модифицируются. В обзорной работе [3] отмечается, что основной чертой Грид, отделяющей его от других систем распределенных вычислений (например, P2P, utility computing и пр.), является открытая система стандартизации, на основе которой осуществляется объединение вычислительных и информационных ресурсов. Как следствие, в настоящее время наиболее часто Грид 139
интерпретируют как единую вычислительную среду, в рамках которой выполняются задачи различных пользователей. Другими словами, во главу угла ставится виртуализация вычислительных ресурсов, а не пользовательских приложений. Это связано как с технологическими проблемами разработки приложений под Грид, так и с вопросами их коммерческого использования [4]. В рамках определения [3] допустимой является интерпретация Грид как среды параллельных вычислений, наряду с более традиционными (например, кластерными, гибридными, P2P) архитектурами. В отличие от использования Грид для удаленного выполнения заданий на мощных вычислительных системах, проблема параллельных вычислений связана с объединением и синхронизацией большого количества вычислительных узлов (в общем случае географически разнесенных и принадлежащих разным пользователям) для решения одной задачи. Очевидно, что параллельные вычисления в Грид по производительности не могут сравняться с традиционными кластерными системами в силу высокой коммуникационной составляющей. Однако использование концепции Грид способно предоставить пользователю сравнительно дешевую и неограниченно расширяемую параллельную архитектуру. Как следствие, потенциальными потребителями таких технологий могут быть задачи, связанные с моделированием сложных систем [5], состоящих из огромного количества взаимодействующих объектов с дальними связями, размещаемых в оперативной памяти. В докладе рассматриваются особенности организации параллельных вычислений в корпоративной среде Грид на примере Intel Grid Programming Environment (GPE). Для реализации параллельных вычислений общего вида на основе среды Intel GPE авторами разработана программная система PEG (Parallel Execution on GPE). Ее назначением является автоматизация и упрощение процесса переноса параллельных приложений кластерного уровня под Грид. PEG является как исполняющей системой, так и набором программных интерфейсов (API). Он позволяет «обернуть» готовую программу и выполнять ее параллельно, если распараллеливание ведется функционально или по данным. Однако, несмотря на кажущуюся простоту процесса распараллеливания, использование архитектуры Грид по сравнению, например, с кластерными системами, даже на корпоративном уровне требует учета ряда специфических факторов, в общем случае отрицательно влияющих на параллельную 140
эффективность. В первую очередь к ним относятся стохастическая изменчивость параметров сетей и вычислительных узлов, их нестационарность и неоднородность. В докладе рассматриваются способы исследования и моделирования параллельной производительности в Грид в рамках архитектуры PEG. Предлагается подход к построению моделей производительности в форме детерминированной функции случайных аргументов. Для ряда простых случаев (однородных архитектур Грид) получены аналитические приближения функции распределения времени работы приложения, а также параллельного ускорения; проведено сопоставление с экспериментальными данными. Однако, в связи со сложностью аналитического описания реальных Грид-систем, в общем случае оценки вероятностных характеристик времени работы можно получить только численно. С этой целью авторами разработана программная система-симулятор, позволяющая моделировать случайное поведение элементов Грид (производительностей узлов и пропускной способности сети на различных ее участках). Это позволило, в частности, исследовать влияние различных способов декомпозиции на производительность приложений в Грид. Выбор способа параллельной декомпозиции задачи является, пожалуй, наиболее эффективным инструментом управления временем ее выполнения в Грид. В общем случае распределение времени работы параллельного приложения характеризуется параметрами масштаба и сдвига. Параметр масштаба, управляющий размахом распределения, может быть интерпретирован как объективный случайный фактор (своего рода случайная ошибка системы). Параметр сдвига, в свою очередь, интерпретируется как систематический фактор, управление которым позволяет сократить время работы приложения и, как следствие, повысить параллельную эффективность. В том случае, если задана оптимальная декомпозиция задачи, которая бы учитывала текущую топологию Грид-среды (вычислительные мощности узлов, пропускные способности сети), можно оптимизировать среднее время выполнения приложения, также сокращая границы его изменчивости. В отличие от кластерных решений, имеющих в распоряжении быстрые сетевые каналы, которые не заняты «побочным» трафиком, в Гридсреде время на коммуникации становится более значительным по отношению к времени вычислений, и менее детерминированным. Это позволяет использовать более гибкие схемы декомпозиции, 141
оптимальным образом разделяя коммуникационные каналы между вычислительными узлами. С применением программного симулятора исследованы три основных модели оптимальной декомпозиции: пропорциональная (только по производительности узлов), барьерная и каскадная. Результаты экспериментов показали, что для линейных по данным алгоритмов наиболее эффективной является каскадная декомпозиция. Она в некоторых случаях позволяет в 1,5-2 раза сократить среднее значение времени выполнения приложения по сравнению с равномерной декомпозицией. Литература 1. Foster I., Kesselman. C. The Grid: Blueprint for a New Computing Infrastructure. Morgan-Kaufman, 1999. 2. Thain D., Tannenbaum T., and Livny M. Condor and the Grid // Berman F., (Editor), Fox G. (Editor), Hey J.G. A. (Editor) Grid Computing: Making The Global Infrastructure a Reality. ―John Wiley, 2003. 3. Stockinger H. Defining the Grid ― a snapshot of the current view // Journal of Supercomputing. ―Springer Science+Business Media, 2007. 4. Уэйлгам Т. Grid взята в заложники // Директор ИС, №1, 2006. 5. Sloot P. M. А. et al. Computational e-Science: Studying complex systems in silico. ― A National Coordinated Initiative. White Paper. ― 2007 [http://www.science.uva.nl/research/pscs/papers/ archive/Sloot2007a.pdf] ПЛАНИРОВАНИЕ НАГРУЗКИ В ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМАХ Т.С. Дьячук, Р.К. Кудерметов
Запорожский национальный технический университет Введение Известно, что эффективность параллельных вычислений может существенно зависеть от стратегии планирования нагрузки узлов кластера. Существует множество моделей, алгоритмов и программных продуктов для балансировки нагрузки узлов суперкомпьютеров и кластеров, которые используются для параллельных вычислений [1].
142
В данном докладе рассматривается модель планирования выполнения произвольного потока заданий, каждое из которых представляет собой задачу, допускающую распараллеливание на множество параллельных подзадач. В модели учитывается текущая загруженность процессоров узлов кластера. Поток заданий формируется путем запросов в произвольные моменты времени на ресурсы кластера, причем для заданий может потребоваться различное максимальное число вычислительных узлов кластера. Модель планирования нагрузки В данной работе рассматривается стратегия планирования нагрузки для параллельной вычислительной системы, реализованной на кластере Beowulf [2], узлы которого представляют собой персональные компьютеры одинаковой мощности. Узлы объединены сетью и работают под управлением операционной системы Red Hat Linux 7.2 [3]. Для организации параллельных вычислений используется стандарт MPI 1, реализованный в библиотеке mpich 1.2.4. Введем понятие степени загруженности узла, которая соответствует сумме приоритетов работающих на узле процессов и, таким образом, характеризует потенциальную часть процессорного времени, которая может быть выделена новому процессу с определенным приоритетом. Необходимо распределить параллельные задачи, возникающие в произвольные моменты времени между узлами кластера таким образом, чтобы время выполнения задач было минимальным. Введем также следующие понятия: равномерная загруженность системы – состояние, при котором все узлы имеют одинаковую степень загруженности; пропорциональная загруженность системы – состояние, когда степень загруженности i-го узла в i − 1 раз меньше степени N −1
загруженности N-го узла, у которого максимальная загруженность (N – число узлов в системе); неравномерная загруженность системы – состояние, при котором загружен только один узел, а остальные простаивают.
Для решения поставленной задачи была разработана математическая модель, в которой задача эффективного планирования 143
сформулирована как задача оптимизации с нелинейной целевой функцией:
Θ ( Ω ( β1 , β2 , ... , β N ), Ψ ) → min,
(1)
где Θ – время выполнения задания; Ψ – функция, характеризующая возможный параллелизм задачи (на какое количество параллельных подзадач можно разделить исходную задачу); Ω – функция, характеризующая загруженность кластерной системы; βi – степень загруженности i-го узла кластера. Особенностью данной модели является то, что число параллельных ветвей решаемой задачи определяется исходя из степени загруженности узлов и, кроме того, допускается, что на одном узле может выполняться несколько ветвей параллельной программы. Результаты исследований В результате практического применения разработанной модели на Beowulf-кластере были получены коэффициенты ускорения работы системы при равномерной, пропорциональной и неравномерной загруженности узлов. В процессе тестирования были задействованы пять узлов кластера. Задания были выбраны такими, которые не требуют интенсивного обмена данными между узлами кластера, поскольку в данной модели из характеристик кластера учитывалась только степень загруженности узлов. Под коэффициентом ускорения подразумевается отношение времени, потраченного на решение задачи в системе при равномерном распределении подзадач между узлами кластера (число ветвей задачи равно числу узлов системы) к времени затраченному на решение задачи с помощью предложенной модели (число ветвей задачи определялось планировщиком). Данные результатов исследования приведены в таблице 1.
144
Максимальная степень загруженности (степень загруженности N-го узла) 0
Коэффициент ускорения
Равномерная загруженность
Пропорциональная загруженность
Неравномерная загруженность
1.00 1.60 2.00 2.29 2.50 2.67 2.80 2.93 3.05 3.14 3.23
1.00 1.68 2.29 2.82 3.33 3.64 3.92 4.27 4.50 4.78 5.10
1.00 1.90 2.70 3.52 4.20 4.80 5.60 6.40 7.20 8.01 8.80
Выводы Разработанная система предназначена для распределения процессорного ресурса параллельной вычислительной системы. Полученные коэффициенты ускорения показывают, что разработанный алгоритм является эффективным для применения в параллельных вычислительных системах, обеспечивая значительную экономию машинного времени. В настоящее время проводятся исследования по расширению модели планировщика. Литература 1. Лацис А. Как построить и использовать суперкомпьютер. – М.: Бестселлер, 2003. – 240 с. 2. Столлингс В. Операционные системы. 4-е изд.: Пер. с англ. – М.: Издательский дом “Вильямс”, 2004. – 848 с. 3. Роббинс А. Linux: программирование в примерах. 2-е изд.: Пер. с англ. – М.:КУДИЦ-ОБРАЗ, 2006. – 656 с.
145
ДИСПЕТЧЕР ЗАДАЧ ОПЕРАЦИОННОЙ СИСТЕМЫ С ИСПОЛЬЗОВАНИЕМ ЕДИНОЙ ОЧЕРЕДИ ЗАЯВОК В.Ю. Егоров
Пензенский государственный университет Введение В настоящее время вопросы построения диспетчера задач операционной системы, удовлетворяющего многочисленным предъявляемым требованиям, изучены уже достаточно глубоко. Однако и в этой области остаётся ряд вопросов, подлежащих рассмотрению. Стандартная схема организации диспетчера задач, реализующего приоритетную дисциплину обслуживания, включает в себя набор очередей, в котором одна очередь хранит заявки на исполнение с одним и тем же приоритетом, как показано на рисунке 1. Заявки поступают от нитей (threads) процессов (часто в переводной литературе называемых потоками). Сначала обслуживаются заявки с максимальным приоритетом (например, 32), затем рассматривается очередь с приоритетом 31 и так далее. Обслуживание Очереди заявок 0
…
1
32
Рис. 1. Очереди задач по приоритетам
Для аппаратных приоритетов (IRQL) такая схема является наиболее оптимальной, поскольку обеспечивает приемлемое время реакции для всех типов аппаратных устройств. Однако для обслуживания заявок с нулевым аппаратным приоритетом возникают проблемы, связанные с качеством и гарантиями обслуживания. Необходимо, чтобы заявка с любым, пусть даже самым низким, приоритетом была обслужена в приемлемое время. В противном случае, существует реальная вероятность сценария, при котором 146
заявки с низким приоритетом никогда не будут выбраны. Сформулируем основные требования к дисциплине диспетчеризации современной операционной системы: 1. Любая задача должна получать часть процессорного времени для своего выполнения (требование гарантии обслуживания). 2. Любая задача должна получать долю процессорного времени в соответствии со своим приоритетом и общей загруженностью центрального процессора (первое требование качества обслуживания). 3. Процессорное время должно выделяться каждой задаче с некоторой периодичностью, позволяющей имитировать непрерывность выполнения задачи (второе требование качества обслуживания). 4. Задаче, в интерактивном режиме взаимодействующей с пользователем, должно выделяться больше процессорного времени, чем задаче, выполняющейся в фоновом режиме (требование адаптивности обслуживания). Удовлетворение данным требованиям приводит к тому, что алгоритм выбора следующей заявки на обслуживание задачи значительно усложняется и становится нетривиальным. В данном докладе предлагается вариант диспетчера задач, удовлетворяющий предъявляемым требованиям и простой в реализации. Организация диспетчера задач в виде односвязного списка Основная идея предлагаемого метода заключается в отказе от множества очередей заявок на обслуживание в пользу схемы, в которой реализована только одна очередь задач. В структуру нити необходимо добавить дополнительное поле, которое будет регулировать очерёдность обслуживания заявки. Назовём это поле «текущим количеством приоритета» заявки (τ), в отличие от текущего приоритета (ε) и базового приоритета заявки (α). Текущий приоритет заявки ε – это целое беззнаковое число, значение которого может отклоняться от базового приоритета заявки в меньшую или большую сторону в зависимости от текущего состояния операционной системы. Текущее количество приоритета заявки τ – это также целое беззнаковое число, служащее для расчёта места заявки в очереди, значение которого никогда не может быть больше, чем текущий приоритет заявки: τ≤ε (1).
147
Заявка q в любой момент времени характеризуется тремя значениями: базовым приоритетом α, текущим приоритетом ε и текущим количеством приоритета τ. Будем обозначать заявку в очереди как qα,ε,τ. Очередь заявок, ожидающих обслуживания, будем обозначать как Ω. Весь алгоритм диспетчера задач при реализации данного метода разбивается всего на две функции, подлежащие реализации: функцию добавления заявки в очередь f put Ω, qα ,ε ,τ и функциию выбора
(
)
(
)
следующей заявки из очереди с целью обслуживания f get Ω, qα ,ε ,τ .
(
Функция извлечения заявки f get Ω, qα ,ε ,τ
)
очень проста. При
необходимости помещения заявки на обслуживание нужно просто взять первую заявку из головы очереди. Именно она будет являться наиболее оптимальной заявкой с точки зрения гарантий и качества обслуживания. Функция f put Ω, qα ,ε ,τ сложнее. Она рассчитывает
(
)
место заявки в очереди заявок, исходя из базового и текущего приоритета, как самой заявки, так и заявок, уже находящихся в очереди. Ниже приведён упрощённый словесный алгоритм функции f put Ω, qα ,ε ,τ .
(
1. 2. 3. 4. 5. 6. 7. 8.
148
)
Проверить, нет ли данной заявки уже в очереди заявок. Если есть, то алгоритм завершён. Если текущее количество приоритета τ заявки не равно нулю, то перейти к пункту 4. Иначе сделать значение τ заявки равным её текущему приоритету ε и перейти к пункту 3. Поставить заявку в конец очереди заявок. Алгоритм завершен. Уменьшить τ заявки на единицу. Взять первую заявку из головы списка qi. Если значение τ заявки qi меньше чем значение τ добавляемой заявки, то перейти к пункту 8. Иначе взять следующую заявку qi+1 по списку и повторить пункт 6. Если по итогам поиска не нашлось заявок, удовлетворяющих условию, то перейти к пункту 3. Поставить добавляемую заявку в очередь перед найденной заявкой qi. Алгоритм завершён.
В результате выполнения данного алгоритма в качестве функции f put Ω, qα ,ε ,τ все заявки, поступающие на вход диспетчера задач,
(
)
будут гарантированно обслужены. При этом сохраняется отношение приоритетов, то есть заявки с более высоким приоритетом будут обслуживаться чаще, чем заявки с более низким приоритетом. При работе алгоритма в каждой обслуживаемой задаче происходит постепенное снижение значения τ до нуля. Если исходное значение ε было больше, то и количество квантов, полученное заявкой до того, как её значение τ станет равным нулю, также будет больше. После того, как значение τ всех задач достигнет нуля, цикл повторяется. Алгоритм позволяет производить динамическое изменение как значения τ заявки, так и значения ε. Значение τ можно увеличивать после окончания операции ввода-вывода этой задачи для более быстрого взаимодействия с аппаратными устройствами. Для повышения адаптивности обслуживания при активизации процесса на экране пользователя значение ε всех нитей процесса следует повысить на 1 или 2 пункта. Во время работы операционной системы постоянно возникает необходимость переключения между адресными пространствами процессов. Для операционных систем, работающих в архитектуре IA32, для этого необходимо, как минимум, перегрузить таблицу страниц процесса. Для центрального процессора работа по переключению адресных пространств есть весьма трудоёмкая задача. Одним из способов уменьшения частоты переключения адресных пространств и, как следствие, повышения производительности системы, является расположение заявок на обслуживание таким образом, чтобы подряд выполнялись нити одного и того же процесса, затем нити следующего процесса и так далее. Таким образом, производительность системы повысится. Для того, чтобы добиться такого повышения производительности, необходимо внести изменения в пункт 6 рассмотренного выше алгоритма. После внесения изменения пункт будет выглядеть следующим образом. Если значение τ заявки qi меньше чем значение τ добавляемой заявки, то перейти к пункту 8. Если значение τ заявки qi равно значению τ добавляемой заявки и обе заявки принадлежат одному процессу, то также перейти к пункту 8. Иначе взять следующую заявку qi+1 по списку и повторить пункт 6.
149
Заключение В докладе предлагается простой алгоритм диспетчера задач, позволяющий осуществлять диспетчеризацию заявок на обслуживание с использованием программных приоритетов. К особенностям алгоритма относятся: использование единой очереди заявок на обслуживание; реализация приоритетной дисциплины обслуживания заявок; простота реализации алгоритма; возможность динамического изменения приоритета заявок.
К минусам алгоритма можно отнести наличие массовой операции поиска места для добавляемой заявки. Предложенный алгоритм диспетчеризации заявок на обслуживание может быть использован при разработке операционной системы общего назначения. Литература 1. Соломон Д., Руссинович М. Внутреннее устройство Microsoft Windows 2000. Мастер-класс: Пер. с англ.– СПб.: Питер; Издательско-торговый дом «Русская редакция», 2001. – 752 с. 2. Таненбаум Э. Современные операционные системы. 2-е изд. – СПб.: Питер, 2002. – 1040 с. 3. Робачевский А.М. Операционная система UNIX. – СПб.: БХВСанкт-Петербург, 1999. – 528 с. 4. Гордеев А.В., Молчанов А.Ю. Системное программное обеспечение – СПб.: Питер 2001. – 736 с. 5. Бек Л. Введение в системное программирование: Пер. с англ. – М.: Мир, 1988. – 448 с. СОВРЕМЕННЫЕ ДИСЦИПЛИНЫ ДИСПЕТЧЕРИЗАЦИИ ЗАДАЧ В.Ю. Егоров
Пензенский государственный университет Введение При выборе метода, согласно которому следует реализовывать диспетчер задач интерактивной операционной системы, разработчик
150
сталкивается с определёнными трудностями, поскольку до настоящего времени не существует дисциплины диспетчеризации, однозначно признанной лучшей. Все эксперты сходятся во мнении о необходимости применения вытесняющей многозадачности и карусельного (round robin) принципа диспетчеризации для реализации вычислительной среды. Однако остаётся ряд вопросов, на которые нет чёткого ответа. Как должна быть реализована обработка прерываний: с относительными или абсолютными приоритетами? Какими критериями следует руководствоваться при выборе дисциплины диспетчеризации? Данный доклад рассматривает некоторые из поставленных вопросов. Краткий обзор дисциплин диспетчеризации Все дисциплины диспетчеризации подразделяются на два крупных класса – бесприоритеные и приоритетные. Бесприоритетные дисциплины диспетчеризации обусловливают крайне низкую скорость реакции системы на входящие запросы, а потому должны быть сразу отброшены. Приоритетные дисциплины диспетчеризации, в свою очередь, подразделяются на дисциплины со статическими и динамическими приоритетами. Дисциплины со статическими приоритетами предполагают, что приоритет события, возникающего в системе, должен быть определён заранее и должен оставаться неизменным в течение всего времени работы системы. Напротив, дисциплины с динамическими приоритетами декларируют непрерывную корректировку приоритета события. Каждый из подходов имеет и достоинства, и недостатки. Быстродействующие устройства в составе аппаратуры компьютера требуют немедленной реакции системы. Для обработки прерываний от этих устройств необходимо устанавливать очень высокий приоритет, не изменяющийся во времени. Как показывает практика, событие, однажды определённое как требующее немедленной реакции системы, продолжает оставаться таковым постоянно. К таким событиям можно отнести, например, необходимость подготовки новой порции данных для контроллера прямого доступа к памяти в составе накопителя на жёстких дисках или сетевого адаптера. Малейшее увеличение времени реакции здесь приводит к резкому снижению пропускной способности всей операционной системы. К тому же на изменение приоритета задачи, будь то программный или аппаратный способ реализации, уйдёт
151
значительное по меркам современных вычислительных систем время. Это позволяет утверждать о преимуществе системы со статическими приоритетами. С другой стороны, постоянно высокий приоритет прикладной задачи приводит к реальной дискриминации низкоприоритетных задач в составе операционной системы. Здесь более уместно говорить о превосходстве дисциплины диспетчеризации с динамическими приоритетами. Разработчики современных операционных систем нашли выход из положения в виде системы со смешанными приоритетами. При таком способе диспетчеризации весь интервал приоритетов разбивается на две части. Интервал более высоких приоритетов, предназначенный для функционирования аппаратных устройств компьютера, реализуется как дисциплина со статическими приоритетами. В литературе значения этого интервала обозначаются как IRQL (Interrupt Request Level). Такое название было применено при разработке операционной системы Windows. Низкоприоритетный интервал отводится для функционирования прикладных задач и реализуется как одна из дисциплин с динамическими приоритетами. В литературе значения этого интервала именуются английским словом Priority (собственно приоритет). Схема отношения интервалов приоритетов иллюстрируется на рис. 1.
MINIMAL DEVICE INTERRUPT DISPATCH APC
Priority 0 1 2 … 32
0
IRQL 1 2 3
… 32
HIGH
Максимальный приоритет прикладного процесса
Минимальный приоритет прикладного процесса Приоритет простоя
Рис. 1. Отношение аппаратных и программных приоритетов
Дисциплины диспетчеризации со статическими приоритетами делятся на два класса: дисциплины с относительными и с 152
абсолютными приоритетами. И те, и другие дисциплины нашли своё применение в современных операционных системах. В классическом варианте диспетчеризации, реализованном в операционной системе UNIX (в настоящее время – в Linux), для верхних половинок обработчиков прерываний (top half) использовались относительные приоритеты. В операционной системе Windows, напротив, используются абсолютные приоритеты прерываний. И та, и другая системы обладают примерно равноценным быстродействием, из чего можно сделать вывод о незначительном влиянии выбора той или иной системы приоритетов для обработки прерываний. Современная аппаратная поддержка диспетчеризации задач Всё изменилось при появлении в конце 1990-х годов в составе процессоров и материнских плат компьютеров так называемого «продвинутого» или «расширенного» контроллера прерываний – APIC (Advanced Programmable Interrupt Controller). Его появление было продиктовано необходимостью аппаратной поддержки многопроцессорной и многоядерной архитектуры в составе компьютера. С помощью APIC диспетчеризация прерываний и задач приобрела качественно другие черты. Контроллер APIC состоит из двух частей (рис. 2). Одна – в составе центрального процессора, называемая Local Apic, вторая в составе одной из микросхем материнской платы компьютера, называемая IoApic. И Local Apic и IoApic могут присутствовать в системе в нескольких экземплярах. Каждый IoApic имеет в своём составе некоторое количество линий (обычно 24), используемых как входы прерываний аппаратных устройств. Если объединить несколько IoApic, то можно значительно увеличить количество входов. В современных серверах имеется более пятидесяти линий для подключения сигналов прерываний от аппаратных устройств. Таким способом достигается расширение числа аппаратных прерываний от подключаемых устройств.
153
Процессор
Процессор
Local Apic
Local Apic Сигналы Apic
IoApic
IoApic
IRQ 0-23
IRQ 24-47
Рис. 2. Организация расширенного контроллера прерываний
Отличительной особенностью контроллера является то обстоятельство, что понятие IRQL в нём введено аппаратно. Такая организация позволяет обрабатывать прерывания значительно быстрее. При возникновении сигнала прерывания контроллер APIC переключает процессор на обработку прерывания и аппаратно повышает IRQL до уровня, заданного при установке обработчика на прерывание. После этого могут возникнуть только прерывания, уровень IRQL которых выше, чем текущий. Те сигналы прерываний, чей IRQL ниже или равен текущему, остаются ожидать понижения IRQL, выполняемого операционной системой по завершении обработчика прерывания. При таком способе естественной оказывается дисциплина обработки прерываний с абсолютными приоритетами. Выводы На основе существующих на данный момент аппаратных механизмов в составе ядра процессора и микросхем материнской платы архитектуры IA-32 удаётся построить диспетчер задач операционной системы, удовлетворяющий многочисленным предъявляемым требованиям. В современных операционных системах диспетчер задач делится на две обособленные части: обслуживание прерываний от аппаратуры компьютера с использованием аппаратных приоритетов и диспетчеризация заявок на обслуживание с использованием программных приоритетов. Литература 1. Соломон Д., Руссинович М. Внутреннее устройство Microsoft Windows 2000. Мастер-класс: Пер. с англ.– СПб.: Питер; Издательско-торговый дом «Русская редакция», 2001. – 752 с.
154
2. 3. 4. 5. 6. 7.
Таненбаум Э. Современные операционные системы. 2-е изд. – СПб.: Питер, 2002. – 1040 с. IA-32 Intel Architecture Software Developers Manual. Volume 3: System Programming Guide (www.intel.com). Intel 82371FB (PIIX) AND 82371SB (PIIX3) PCI ISA IDE XCELERATOR. April 1997 (www.intel.com). Робачевский А.М. Операционная система UNIX. – СПб.: БХВСанкт-Петербург, 1999. – 528 с. Гордеев А.В., Молчанов А.Ю. Системное программное обеспечение. – СПб.: Питер, 2001. – 736 с. Бек Л. Введение в системное программирование: Пер. с англ. – М.: Мир, 1988. – 448 с.
АРХИТЕКТУРА РАСПРЕДЕЛЕННОЙ ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЫ И АЛГОРИТМ ДИНАМИЧЕСКОГО ПЛАНИРОВАНИЯ ИСПОЛЬЗОВАНИЯ ВЫЧИСЛИТЕЛЬНЫХ РЕСУРСОВ И.Д. Ефремов, И.Д. Красинский
Самарский государственный аэрокосмический университет им. акад. С.П. Королева Введение В связи с ростом числа задач, требующих сверхбольших вычислительных затрат (например, решение задач дифракционной оптики, обработки изображений и др.), построение распределенных вычислительных систем (РВС), основанных на согласованной работе коллектива вычислителей, является актуальной задачей. Часто РВС работает в режиме обслуживания потоков вычислительных задач, где каждая задача представляет собой распределенную программу со случайными параметрами (числом ветвей, набором входных параметров, временем решения и т.д.). Так как поток задач случаен и заранее не определен, то возникает проблема динамического планирования распределения вычислительных ресурсов при распределенном решении вычислительных задач. Реальные РВС обладают рядом особенностей: они гетерогенны, многие распределенные алгоритмы позволяют выбирать количество параллельных ветвей, существуют простои при передаче данных,
155
потери, связанные с простоем вычислителей. Таким образом, алгоритм планирования должен учитывать гетерогенность РВС, выбирать количество параллельных ветвей и возможно минимизировать потери времени. Реализация алгоритма планирования зависит от архитектуры РВС. Существующие технологии построения РВС (MPI, GRID и т.д.) не лишены недостатков, основными из которых являются сложность создания программ и обслуживания. Настоящая работа посвящена разработке и анализу архитектуры вычислительной системы и алгоритма динамического планирования использования вычислительных ресурсов в РВС. Архитектура РВС и требования к алгоритму динамического планирования использования ресурсов РВС является инфраструктурой для распределенных программ и должна реализовывать общие для многих алгоритмов задачи: передачу данных по сети, репликацию данных, миграцию задач, подсчет различных метрик, построение оценок вычислительной сложности поступивших задач и вычислительного ресурса узлов РВС. Кроме этого, РВС должна планировать, распределять и балансировать нагрузку по узлам для оптимизации времени решения задач и минимизации простоев узлов. Часто параллельные алгоритмы (например, матричные алгоритмы [3]) не могут использоваться на практике без учета архитектуры распределенной ВС. Одним из неудобств разработки параллельных программ является то, что, кроме непосредственного решения задачи, они содержат алгоритмы передачи данных по сети. Предлагается решить эту проблему, переложив функции оптимальной передачи данных на РВС. Распределенная программа должна лишь определить логику распределения данных – топологию. Так как многие параллельные алгоритмы используют стандартные топологии (кольцо, тор и пр.), то разработчик во многих случаях может воспользоваться уже реализованной в РВС стандартной топологией. Для успешного развития и использования РВС должна предъявлять минимальные требования к разработчикам распределенных программ, упрощая их разработку. Такой подход позволяет сформулировать требования к архитектуре РВС.
156
1. 2. 3.
4. 5.
6.
РВС должна быть модульной. Это требование позволит гибко наращивать возможности самой РВС и расширять ассортимент программ. Распределенная природа РВС требует простого и распределенного инструмента обновления сервисов и программ на узлах РВС. Гетерогенность узлов РВС и каналов связи, возможность совместного использования пользователем и системой ресурсов узла ВС, стохастический и заранее неизвестный поток задач требуют наличия динамического алгоритма планирования использования вычислительных ресурсов (задачами этого алгоритма являются минимизация простоев узлов и балансировка нагрузки в зависимости от текущего вычислительного ресурса). Нестабильность узлов и каналов связи РВС требуют наличия системы репликации данных и миграции задач. Гетерогенность каналов связи требует наличия системы распределенной передачи данных, учитывающей топологию алгоритма (возможно, с применением пиринговых технологий). Работа этих и других элементов инфраструктуры требует постоянного подсчета метрик, например, оценки вычислительной сложности задач и вычислительного ресурса узлов.
Определив требования к архитектуре РВС, мы можем определить требования к алгоритму динамического планирования использования вычислительных ресурсов. Алгоритм должен: учитывать гетерогенность ВС при распределении задач по узлам; выбирать число параллельных ветвей (и, соответственно, узлов); минимизировать возможные потери времени на передачу данных через линии связи и потери, связанные с простоем вычислителей; строить оценки времени решения задачи на конкретном узле, учитывая вычислительный ресурс узла и вычислительную сложность задачи;
157
учитывать неизбежные погрешности следующих шагах работы алгоритма.
Алгоритм динамического планирования В работе [1] задача динамического сформулирована следующим образом.
планирования
планирования
на
была
Имеется РВС J = { J1, J 2 … J N } , состоящая из N узлов, а также I = { I1 , I 2 K I L } задач, каждая из которых конечный набор
характеризуется переменным рангом ri (числом параллельных ветвей в программе), ri − ≤ ri ≤ rr+ , i = 1,…, L и временем решения ti = ti ( ri ) . Каждую задачу I i будем представлять в виде совокупности ri
I i = U I ip
p =1 . параллельных ветвей Имеется конечный набор типов вычислительных задач P = {P1 , P2 ,…, PK } – так что ∀I i ∈ I ∃Pk ∈ P , i = 0, … L − 1 , k = 0, … K − 1 , т.е. существует соответствие между задачей и ее типом.
типов задач Pk характеризуется вычислительной r r сложностью s ( ni ) при заданном наборе входных данных ni . Каждый узел РВС J j характеризуется вычислительным ресурсом R j . Введем Каждый
из
k
эти характеристики таким образом, что время вычисления некоторой вычислительной задачи I i , распределенной для решения на вычислитель J j : r s k (ni ) . j (1) ti = Rj Общий вычислительный ресурс системы можно оценить как N −1 (2) R= R .
∑ j =0
j
Общую вычислительную сложность набора задач I оценим как: L −1 r s k ( ni ) ∑ . S = i =0 L Время вычисления задачи: 158
ti ( ri ) = tˆi + max ( tˆi j + ti j ( ri ) ) + β A( ri ) ,
(3)
J j ∈J
где tˆi j – время начала вычисления ветви I ip на узле J j ; ti j ( ri ) – время вычислений ветви I ip на узле J j ; ri – количество параллельных ветвей I ip решения задачи I i , A(ri ) – функция, характеризующая размер данных, передаваемых между вычислителями в рамках конкретного алгоритма. Будем считать, что в любой момент времени на каждом узле происходит решение одной задачи или подзадачи. Рассмотрим РВС в некоторый момент времени. Как видно из рисунка 1 (слева), из-за различного вычислительного ресурса узлов время вычисления ветвей I ip различно и время на решение задачи определяется временем решения последней ветви на узле j3.
Рис. 1
Рисунок 1 – пример графика выполнения ветвей задачи без равномерной балансировки нагрузки (а) и при равномерной балансировке нагрузки (б). Белые и черные прямоугольники – ветви двух разных задач. Видно, что требуется балансировка нагрузки на узлы РВС, учитывающая вычислительный ресурс узлов (т.е. гетерогенность РВС) и вычислительную сложность задач. Как видно из рисунка 1а, равномерная балансировка вычислительной нагрузки для нескольких задач позволяет освободить большее количество узлов ВС почти одновременно (с некоторой погрешностью, которую можно учесть на следующем шаге планирования). Это расширяет возможности следующего шага
159
планирования и позволяет более гибко выбирать количество ветвей распараллеливания. Выбор количества ветвей распараллеливания является нетривиальной задачей. Этот выбор ограничен, с одной стороны, минимальным количеством ветвей, определяемым алгоритмом, а с другой – убыванием выигрыша от увеличения количества ветвей. Также следует подбирать несколько задач, количество ветвей каждой и узлы РВС таким образом, чтобы на каждом шаге работы алгоритма были заняты все свободные узлы РВС и задачи вычислялись примерно одновременно. Так как новые задачи могут требовать данных, посчитанных другими задачами ранее, то выбор конкретных узлов для вычисления ветвей задачи зависит от месторасположения этих данных. Полученная задача многокритериального выбора может решаться перебором. Для ускорения времени решения этой задачи предлагается сортировать задачи в порядке убывания вычислительной сложности и сортировать вычислители в порядке убывания вычислительного ресурса. Также предлагается вести перебор от задач с меньшим выбором (большими ограничениями) к задачам с большей свободой выбора. Для минимизации потерь на время передачи вычислительной задачи предлагается передавать задачу и выполнять подготовительные действия на стороне вычислителя во время решения им предыдущей задачи. Таким образом, после решения текущей задачи вычислитель тут же переходит к решению следующей задачи, что минимизирует простои. Этот принцип накладывает ограничение сверху на время планирования и распределения задач. Определение вычислительной сложности задач и вычислительного ресурса узлов можно произвести тестовым прогоном всех типов программ, поддерживаемых РВС, с различными наборами входных параметров. Во время работы РВС можно уточнять полученные оценки вычислительной сложности и вычислительного ресурса. Сформируем набор задач I = { I1 , I 2 K I L } , L = KNM , где K – количество типов алгоритмов, N – количество вычислителей N = J , r M – количество тестов с различными входными параметрами nm , m = 0, M . В результате последовательного (сначала на всех компьютерах тестируем тип 0 M раз, потом тип 1 M раз и т.д.)
160
вычисления этого набора задач получим последовательность ti j . Тогда, учитывая (1), получим: r r s k (ni ) s k (n0 ) t00 Rj = = = j R0 . j ti j t jM t jM Общий вычислительный ресурс системы можно оценить как N −1 ⎛ N −1 1 ⎞ t0 t0 t0 R = ∑ R j = R0 + 10 R0 + 20 R0 +…+ j0 R0 = R0t00 ⎜ ∑ j ⎟ . ⎜ j =0 t ⎟ tM t2 M t jM j =0 jM ⎠ ⎝ Аналогично, получим: tj r r r j s kj (n0 ) = t jM R j и s kj (nm ) = jMj + m s kj (n0 ) , t jM r где s kj (n ) – оценка сложности вычислительной задачи при различных r
входных параметрах ( n ), полученная на j-ом вычислителе ( J j ). r Оценим вычислительную сложность s k ( nm ) задачи k -ого типа с N −1
∑s
k j
r (nm )
r j =0 . Для s% k (nm ) = N r получения непрерывной функции необходимо s k ( nm ) k r аппроксимировать дискретную функцию s% ( nm ) . Выбор M зависит от набором входных параметров
nm
как
количества входных параметров, необходимых для построения аппроксимирующей функции требуемой точности. Порядок аппроксимации может задавать программист вычислительной задачи. С помощью такого тестирования можно получить относительные оценки вычислительной сложности одной задачи относительно другой и относительные оценки вычислительного ресурса узлов. То есть если ввести некоторую задачу в качестве эталонной, то можно оценивать вычислительные ресурсы и сложности в абсолютных величинах. Экспериментальное исследование Предложенные выше идеи относительно структуры РВС и алгоритм динамического планирования были реализованы в РВС, основанной на использовании фреймворка OSGi. Для исследования системы и работы алгоритма были взяты задачи вычисления интеграла единичной окружности методом Монте-Карло и перемножения квадратных матриц. Эти задачи зависят от одномерного набора
161
входных данных, не предполагают взаимодействия вычислителей и хорошо распределяются по РВС. Объектами исследования были относительные оценки сложности вычислительных задач, зависимости сложностей вычислительных задач от набора входных параметров и вычислительный ресурс вычислителей. В качестве эталонной задачи использовалась задача вычисления интеграла единичной окружности, т.к. она проста и ее сложность линейно зависит от входного параметра (количества точек). Испытания проводились на компьютерах: (1) AMD Sempron 3000+(1.81 ГГц, 480 Мб ОЗУ), (2) Celeron (1.81 ГГц, 380Мб ОЗУ), (3) Pentium (2.4 ГГц, 480 Мб ОЗУ), (4) AMD Sempron 3000+ (1.81 ГГц, 512 Мб ОЗУ). На рисунке 2 представлена зависимость вычислительной сложности задачи вычисления интеграла методом Монте-Карло и задачи перемножения квадратных матриц в зависимости от размера матрицы. В таблице 1 представлены примеры декомпозиции данных при решении вычислительной задачи перемножения квадратных матриц размером 2000х2000 элементов. Во времени вычисления учитывается, в том числе, и время передачи результата по сети. Теоретическое время вычисления t%i j = 4074 мс, среднее время вычисления t%i j = 4105 . Анализ приведенных экспериментальных данных показывает, что задачу вычисления интеграла методом Монте-Карло действительно можно использовать в качестве эталонной: ее график вычислительной сложности близок к прямой, а график сложности перемножения матриц явно имеет вид квадратичной зависимости. 16000 14000 1,6
12000
1,4 вычислительная сложность
10000 8000 6000 4000 2000
1,2 1 0,8 0,6 0,4 0,2
0
0
8416670
16733336
25050002
33366668
41683334
50000000
1
2
3
4
5
6
7
8
9
10
размер матрицы
Рис. 2. Зависимость вычислительной сложности задачи вычисления интеграла методом Монте-Карло и задачи перемножения квадратных матриц от размера матрицы
162
Имя узла
Характеристики вычислителей
Выч. ресурс
Декомпозиция данных (строки)
Выч. сложность
KTK2 KTK10 KTK9 KTK5
(1) (2) (3) (4)
0,453691184 0,408243972 0,557553044 0,461904649
496 477 530 497
0,8079400 0,7183590 0,9841950 0,8128319
Время выч. (мс) 4079 3886 4389 4068
Таблица 1. Время вычисления и декомпозиция данных задачи перемножения матриц
Также нетрудно заметить, что практические результаты работы алгоритма планирования хорошо согласуются с теоретическими оценками. Это дает основания предполагать, что алгоритм будет также работать и в более сложных системах. Улучшение алгоритма планирования, совершенствование систем РВС исследование их работы на более сложных вычислительных системах рассматриваются авторами в качестве направлений дальнейшей работы. Заключение В работе представлены требования к архитектуре РВС и алгоритму динамического планирования, предложены математическая модель и методы равномерной балансировки нагрузки на узлы вычислительной системы, а также метод построения оценок вычислительного ресурса узлов РВС, и вычислительной сложности задач. Предложенные принципы реализованы в РВС, проведено исследование на тестовых примерах. Литература 1. Седельников М.С. Алгоритм распределения набора задач с переменными параметрами по машинам вычислительной системы // Автометрия.–2006.–№1.–С.68-75. 2. Хорошевский В.Г. Архитектура вычислительных систем.– М.: МГТУ им. Н.Э. Баумана, 2005. 3. Голуб Дж., Ван Лоун Ч. Матричные вычисления.– М.: Мир, 1999. 4. Седельников М.С. Точный алгоритм распределения набора задач по машинам вычислительной системы // Матер. Всерос. науч. конф. молодых ученых «Наука. Техника. Инновации»/ Новосибирск: НГТУ – 2004. – С.65–78.
163
5.
Сметанникова Е.Н. Численные методы: Конспект лекций / Самарский государственный аэрокосмический университет, Самара, 2002. – 98 с.
РЕАЛИЗАЦИЯ ЯВНОГО ЧЕБЫШЕВСКОГО МЕТОДА РЕШЕНИЯ ЗАДАЧИ ДИРИХЛЕ ДЛЯ УРАВНЕНИЯ ПУАССОНА В МЕЛКОЗЕРНИСТОМ ЛОКАЛЬНО–ПАРАЛЛЕЛЬНОМ СТИЛЕ ПРОГРАММИРОВАНИЯ Г.В. Заручевская
Поморский государсвенный университет, Архангельск Параллелизм супер-ЭВМ – магистральный путь развития вычислительной техники. Господствующим способом распараллеливания задач до сих пор является крупноблочное распараллеливание [1]. Однако с ростом числа процессоров блоки измельчаются, и вычисления в подавляющем большинстве случаев будут идти медленнее: параллелизм вырождается. Избежать вырождения можно при следующих условиях: обмены происходят и одновременно, и локально; задача должна быть разбита на множество небольших однотипных подзадач, которые будут исполняться параллельно на отдельных вычислительных машинах (ВМ); данные максимально распределены по системе, а программы в каждой ВМ используют минимально возможные наборы данных. Число обменов данными между ВМ имеет тот же порядок, что и число вычислительных операций. Такой подход к распараллеливанию алгоритмов носит название мелкозернистого локально-параллельного программирования (МЛПП). Рассмотрим два обязательных требования, при которых не происходит снижения производительности МЛПП [2]: 1. Локальность взаимодействий, когда обмен данными происходит только в пределах ограниченного физического и структурного радиуса независимо от размеров задачи и системы. 2. Параллелизм взаимодействий, когда все возможные в данный момент обмены совершаются параллельно и одновременно с процессом счета. 3. Количество глобальных операций не должно влиять на оценку временной сложности задачи. 164
При описании алгоритма параллельных вычислений на ЭВМ класса MIMD предполагается, что MIMD –машина состоит из p одинаковых процессоров, каждый из которых обладает определенным объемом своей локальной памяти (одинаковым для всех параллельных процессоров) и способен осуществлять численную обработку информации в автономном и управляемом режимах. Отметим существенные особенности архитектуры MIMD-машины, при которых стиль МЛП-программирования был наиболее эффективен. 1. Попарное соединение процессоров осуществляется за очень короткий промежуток времени и поэтому оно не учитывается. 2. Все возможные в данный момент обмены машинными словами совершаются параллельно и одновременно с процессом счёта за время, сравнимое со временем выполнения одной арифметической операции (из-за близости связанных процессоров в физическом пространстве). возможность программировать структуру 3. Имеется межпроцессорных связей. Обычно MIMD-машины имеют следующие структуры межпроцессорных связей: линейка, кольцо, кольцо с хордами, сетка (решетка), гиперкуб, дерево. Тем не менее, в теории однородных вычислительных структур [3], помимо вышеперечисленных типов структур межпроцессорных связей, рассматривается тор. Заметим, что эта евклидова структура изоморфна сетке (решетке) процессоров, в которой ВМ на противоположных сторонах решетки связаны регулярным каналом. При этом тор позволяет легко масштабировать сетку другой, отличающейся от него, размерности. Действительно, пусть сетка a×b вкладывается в тор C×D, a>C, b>D. Согласно [3], такую тороидальную евклидову структуру будем обозначать E2{C,D}. Каждому процессору тора (x,y) поставим в соответствие ячейку сетки (x+Ck,y+Dn), k,n∈N. При таком распределении сеточных узлов в тороидальной структуре параллельный алгоритм соответствует МЛП– стилю. Введем для дальнейшего использования понятие процессорного тороидально связанного куба C×D×E. Эту структуру можно рассматривать как продолжение процессорного куба размерностью C×D×E. Итак, пусть имеется процессорный куб C×D×E (рис.1). 165
Каждый процессор обозначается Pi,j,k, где i, j, k – координаты узла, в котором располагается процессор. Дополним процессорный куб следующими связями: каждый процессор P1,j,k соединим регулярным каналом с процессором PС,j,k , j=1..D, k=1..E; Pi,1,k соединим регулярным каналом с процессором Pi,D,k , i=1..C, k=1..E ; Pi,j,1 соединим регулярным каналом с процессором Pi,j,E , i=1..C, j=1..D. Получим новую структуру – тороидально связанный куб C×D×E. Заметим, что каждая плоскость, параллельная плоскостям COD, COE и DOE и содержащая процессорные узлы, представляет собой тороидальную структуру. Очевидно, что структура, состоящая из числа E вложенных друг в друга торов размерностью C×D, соединенных специальным образом, изоморфна тороидально связанному кубу C×D×E. Обе структуры вложимы в физическое пространство, однако не являются планарными. Гипотетически можно предположить, что конструкция вложенных торов позволит обеспечить теплоотвод: их внутренняя полость может быть использована как расширитель для испарения хладоагента. Конструкция вложенных торов содержит на порядок меньше удаленных связей, чем тороидально связанный куб, а значит, обеспечивает большую эффективность мелкозернистому локальнопараллельному стилю программирования. Разработка и исследование МЛПП для задач математической физики – одно из актуальных направлений современного параллельного программирования. В [4] для этих целей применяются модели клеточных автоматов. Целью настоящей работы является вложение данных МЛПП– алгоритма решения некоторых задач математической физики для массово-параллельных процессоров в соответствующие тороидальные структуры с иллюстрацией межпроцессорных обменов. В качестве модельной задачи рассмотрим задачу Дирихле для самосопряженного уравнения второго порядка в прямоугольнике Ω = Ω∪Г={(x, y): 0≤x≤l1, 0≤y≤l2}, Lu=– ⎛⎜ ∂ (k (x ) ∂u ) + ∂ (k (y ) ∂u ) ⎞⎟ = f(x,y), x∈Ω , u=g(x,y), 2 ⎜ ∂x 1 ∂x ∂y ∂y ⎟⎠ ⎝
(x,y)∈Г. (1) Предполагаем, что 0
166
ω = {( xi , y j ) ∈ Ω, xi = ih1 , i = 0,1,..., N1 , y j = jh2 ; j = 0,1,..., N 2 , Nα = l α / hα , α = 1,2}. Множество внутренних узлов обозначим ω, граничных – γ. Задаче (1) на сетке ϖ=ω∪γ поставим в соответствие разностную задачу:
(
)
Λv = − ( a1( x , y )vx )x + ( a2 ( x , y )v y )y = f ( x , y ), (x, y) ∈ ω , v = g(x, y), (x, y) ∈ γ .
(2) где a1(x, y)=k1(x-0,5h1, y); a2(x, y)=k2(x, y-0,5h2), а для разностных отношений использованы стандартные обозначения [5]. Для решения задачи (2) явным чебышевским методом задают на ω начальное приближение v(0) и величину ε, определяющую окончание итерационного процесса. Каждое последующее приближение вычисляется по формуле v(k+1) =v(k) +τk+1(f-Λ v(k)), v(k) γ =g, (3) где {τk}- оптимальный чебышевский набор параметров. Рассмотрим выполнение алгоритма параллельных вычислений, основанного на явном чебышевском методе в тороидальной структуре процессоров E2 {C,D}. Распределим ячейки области ω таким образом, чтобы каждому процессору тора E2{C,D} с координатами (x,y) поставить в соответствие ячейки сетки (x+Ck,y+Dn), k,n∈N, т.е. сетка произвольной размерности N1× N2 вкладывается в тор C×D, N1>C, N2>D. Итак, область ϖ разбивается на ([N1/C]+1)⋅([N2/D]+1) подобластей ωk,n, где k=1,…,([N1/C]+1), n=1, ..., ([N2/D]+1), размерности C×D прямыми, параллельными обеим координатным осям. Шаг 1. Задаем начальное приближение v (0). Вводим в каждый процессор счетчик итераций t, t=0 в начале выполнения программы. Он определяет окончание итерационного процесса. Вычисляем и храним во всех процессорах параметры{τk}. Шаг 2. Рассмотрим вычисление приближения v(1) в подобласти 1,1 ω . Все процессоры по регулярному каналу совершают сдвиги значений v i, j данных: вправо – получают значение от левого соседа v i-1,j и передают свое значение правому, влево – получают значение от правого соседа v i+1,j и передают свое значение левому, вниз – получают
167
значение от верхнего соседа vi,j+1 и передают свое значение нижнему, и вверх – получают значение от нижнего соседа vi, j-1 и передают свое значение верхнему. Граничные процессоры P(C,j) принимают данные 0 процессоров P(1,j), –они содержат значения v kC +1 , j ; аналогично 0
процессоры P(i,D) принимают данные vi ,nD+1 процессоров P(i,1). Неиспользуемые данные будут теряться либо не учитываться. 1
Шаг 3. Каждый процессор вычисляет значение vi , j в подобласти
ω1,1. 1
Вычисление значения vi , j в остальных подобластях ωk,n, где k=1,… ([N1/C]+1), n=1, ..., ([N2/D]+1), осуществляется аналогично (см. п. 2 и п.3.). Шаг 4. ВМ увеличивает значение счетчика t на 1. Если t=N+1, ВМ посылает флажок αi,j=1 на магистральный канал. Шаг 5. Как только все ВМ отправят на магистральный канал флажки, вычислительный процесс прерывается во всех ВМ и хост — машина через магистральный канал выводит вычисленные значения. Операция прерывания является единственной глобальной операцией. Пусть М – количество арифметических операций, необходимое для вычисления (t+1)-го приближения к решению по формуле (3) в одном узле сетки ω, Q=(N1-1)×(N2-1) количество узлов сетки ω, t – среднее время выполнения одной арифметической операции ПП, t0 время обмена одним машинным словом между двумя ПП. Для определения коэффициентов, характеризующих явный чебышевский метод с параллельной организацией вычислений, достаточно рассмотреть одну итерацию. Время для реализации одной итерации по формуле (3) равно T1=MQt. Так как шаги 2), 3) являются параллельными, то, предполагая время вычисления v (t+1) в каждой ωk,n одинаковым, Q=N1⋅N2 получим Tp=M([N1/C]+1)⋅([N2/D]+1)(t+t0), и, следовательно, коэффициент ускорения kу= T1 ≈CD и коэффициент
Tp
эффективности kэ ≈1, т.е. параллелизм максимален. По аналогии можно составить МЛП-алгоритм решения задачи Дирихле для самосопряженного уравнения третьего порядка в тороидальном кубе.
168
В заключение отметим, что существуют другие алгоритмы распараллеливания итерационных методов решения разностных схем эллиптических уравнений [5]. Однако эти алгоритмы крупноблочные и к ним трудно применять технологию мелкозернистого локальнопараллельного программирования, они, как правило, реализуются либо на кластерах, либо на планарных неразрезных процессорных матрицах. Предложенную идею можно использовать для распараллеливания других итерационных методов решения разностных схем эллиптических уравнений. Литература 1. Воеводин В.В., Воеводин Вл. В. Параллельные вычисления.Спб.: БХВ-Петербург, 2002. –608 с.: ил. 2. Воробьев В.А. Об эффективности параллельных вычислений // Автометрия.- 2000. - № 1. С. 50-58. 3. Воробьёв В.А. Теория однородных вычислительных систем: однородные структуры. – Архангельск: Изд-во ПГУ им. М.В. Ломоносова, 2001. – 95 с. 4. Бандман О.Л. Мелкозернистый параллелизм в математической физике // Программирование.- 2001.- №4. С.12-25. 5. Молчанов И.Н., Галба Е.Ф. Параллельные вычисления в методах сеток решения задач математической физики на MIMD- машинах. –Киев, 1990.-41 с. ИСПОЛЬЗОВАНИЕ КЛАСТЕРНЫХ ВЫЧИСЛЕНИЙ ДЛЯ ОБУЧЕНИЯ СТУДЕНТОВ ХИМИЧЕСКОГО ФАКУЛЬТЕТА МЕТОДАМ СОВРЕМЕННОЙ КВАНТОВОЙ ХИМИИ С.В. Зеленцов
Нижегородский государственный университет
Современный этап развития химии и химической технологии требует, чтобы студенты-химики овладевали квантово-химическими методами. Указанные методы становятся в химии столь же необходимы, как и инструментальные методы. Методы современной квантовой химии предъявляют чрезвычайно высокие требования к вычислительной системе для своей реализации. В методе Хартри-Фока-Руутана вычислительная сложность возрастает быстрее, чем N4, где N – число электронов в молекуле. Использование 169
методов с учетом электронной корреляции приводит к более сильной зависимости от числа электронов, часто вычислительная сложность становится пропорциональной N6 – N8. Кроме того, время квантовохимического расчета сильно зависит от объема оперативной памяти, доступной для задачи. Обмены с дисковой памятью для средних по размеру молекул занимают основное время при решении задачи на одноядерном персональном компьютере с объемом оперативной памяти менее 1 GB. Задача усложняется еще более при расчетах возбужденных состояний молекулы, расчет которых становится все более и более актуальным. Наиболее приемлемым вариантом реализации таких расчетов является использование параллельных (кластерных) вычислений. Особенно сильно возрастает роль квантово-химических расчетов на кластерах для обучения студентов. Благодаря высокой производительности и практически отсутствующим ограничениям на количество атомов в рассчитываемой молекуле, появляется уникальная возможность обучать студентов на примерах расчетов не упрощенных моделей, но молекул, которые интересуют студента в его учебно-научной деятельности. Кроме того, возможность дистанционного расчета молекул на кластере позволяет оптимально организовать учебный план обучающихся квантовой химии. В рамках ФНП «Образование» Нижегородским государственным университетом приобретены академические лицензии программного комплекса Gaussian-03. Кроме того, на вычислительном кластере ННГУ установлена программа NWChem фирмы PNNL (США). Эти ресурсы используются в режиме удаленного доступа по сети Интернет для обучения студентов и аспирантов методам вычислительной квантовой химии. ОПТИМАЛЬНОЕ РЕЗЕРВИРОВАНИЕ РАСПРЕДЕЛЕННЫХ ВЫЧИСЛИТЕЛЬНЫХ РЕСУРСОВ М.Б. Ильяшенко
Запорожский национальный технический университет Введение Очередным этапом развития распределенных вычислений стало появление технологии Grid, как инфраструктуры, состоящей из находящихся в разных местах ресурсов, соединяющих эти ресурсы
170
сетевых средств и согласованного по всей инфраструктуре связующего программного обеспечения, поддерживающего дистанционные операции, а также выполняющего функции контроля и управления операционной средой [1]. Современное состояние управления ресурсами недостаточно развито как с точки зрения качества реализации, так и с точки зрения богатства операций. В частности, к недостаткам можно отнести отсутствие средств совместного резервирования распределенных вычислительных ресурсов и пропускной полосы каналов передачи данных, что необходимо для запуска в сетях Grid параллельных и распределенных приложений [2]. В работе предлагается подход к оптимизации резервирования распределенных вычислительных ресурсов на основе предложенного автором алгоритма нахождения граф-подграф изоморфизма [3, 4]. Постановка задачи Для решения проблемы резервирования распределенных вычислительных ресурсов предлагается применить графовоаналитический подход. Пусть GN = ( E N , VN , I N , J N ) - граф вычислительной сети, где EN –
множество ребер, соответствующих физическим сетевым каналам связи, VN – множество вершин, соответствующих вычислительным узлам сети, IN – веса, приписанные ребрам графа, соответствующие пропускной способности (латентности) сетевых соединений, JN – веса, приписанные вершинам графа, соответствующие вычислительной производительности узлов сети (например в MIPS или MFLOPS); граф GT = ( ET , VT , I T , J T ) - граф параллельной задачи, требующей резервирования распределенных вычислительных ресурсов, где ET – множество ребер графа, соответствующих сетевым взаимодействиям между процессами задачи, VT – множество вершин графа, соответствующих вычислительным процессам распределенной задачи, IT – множество весов, приписанных ребрам графа, соответствующих потребностям задачи в пропускной способности (латентности) сетевых соединений, JT – множество весов, приписанных вершинам графа, соответствующих потребности процессов в производительности вычислительных узлов (в MIPS или MFLOPS). Тогда задача резервирования распределенных вычислительных ресурсов формулируется следующим образом. Необходимо найти
171
подстановку ϕ : VT → VN , такую, что для каждой пары вершин если то (vi , v j )∈ ET , (ϕ (vi ), ϕ (v j ))∈ E N , vi , v j ∈ VT ,
(i , i )∈ N i
j
T
≤ (φ (ii ), φ (i j )) ∈ N N
и
для
всех
ji ∈ J T
выполняется
ji ∈ J T ≤ φ ( ji ) ∈ J N . Это полностью соответствует постановке задачи граф-подграф изоморфизма на взвешенных графах. Такая постановка задачи характерна для систем реального времени, которые предъявляют жесткие требования к аппаратным ресурсам, для гарантированного обслуживания заданий при допустимых пиковых вычислительных нагрузках. Для задач параллельного программирования характерна несколько другая постановка задачи резервирования ресурсов, связанная с тем, что возможно совместное размещение двух и более процессов на одном вычислительном узле. При этом возрастает количество возможных вариантов размещения процессов задачи среди узлов вычислительной сети и связанные с этим временные затраты при использовании переборных алгоритмов. Для ускорения поиска в этом случае планируется применять гибридные алгоритмы, совмещающие в себе элементы как точного переборного, так и эвристического подходов. Алгоритм резервирования распределенных вычислительных ресурсов Описание алгоритма удобно производить в терминах поиска в пространстве состояний. Каждому состоянию соответствует частичная подстановка ϕ (s ) , содержащая лишь часть вершин графов, которые уже были совмещены. Алгоритм состоит из предварительной и основной части. Предварительная часть алгоритма Основной задачей предварительной части алгоритма является выполнение всех проверок, которые основаны на данных, известных до начала работы алгоритма и не базируются на информации об уже совмещенных вершинах частичной подстановки ϕ (s ) . На их основе формируется матрица возможных совмещений. Так же в предварительной части алгоритма производится сортировка вершин графов.
172
Центральным элементом предварительной части алгоритма является матрица возможных совмещений. Это бинарная таблица M i , j , каждая ячейка которой хранит агрегированное значение о возможности либо невозможности совмещения вершин VN ,i и VT , j . Значения матрицы формируются на основании предварительных проверок и могут принимать значения «истина» или «ложь» в зависимости от того, перспективно или нет совмещение соответствующих вершин в основной части алгоритма на основании проверок, выполненных в предварительной части алгоритма. В представленном алгоритме реализовано несколько базовых проверок, формирующих матрицу возможных совмещений M i , j . Если результат проверки условия – «истина», то значение матрицы, соответствующее проверяемым вершинам VN ,i и VT , j , устанавливается равным «ложь». Условия, формирующие ограничения предварительной части алгоритма, основаны на сравнении степеней вершин, сравнении весов, приписанных вершинам и ребрам графов, сравнении числа входящих и исходящих дуг и на сравнении числа, а также весов, приписанных вершинам и ребрам в волновом разложении графа [5]. Переборная часть алгоритма Переборная часть алгоритма объединяет в себе все действия, направленные на поиск полной подстановки ϕ , являющейся решением задачи. Алгоритм представлен рекурсивной функцией поиска в пространстве состояний, которая на каждом шаге вложенности генерирует новую частичную постановку ϕi+1 (s ) из предыдущей
частичной подстановки ϕi (s ) путем добавления одной вершины в частичную подстановку. Начальное состояние ϕ 0 (s ) = 0 . На каждом шаге функция
перебирает все вершины графа GN , которые имеют пометку «истина» в строке матрицы возможных совмещений, соответствующей вершине VT ,i , используемой на текущем уровне вложенности алгоритма i. Для каждой вершины VN , j алгоритм производит несколько проверок, имеющих целью удостовериться, что все необходимые условия для
173
включения
новой
вершины
в
частичную
подстановку
ϕi+1 (s )
выполнены. Основными являются проверки, основанные на значениях матрицы возможных совмещений, числе и сумме весов ребер, инцидентных подмножеству вершин, вошедших в частичную подстановку. Поиск оптимальной области резервирования Для поиска оптимальной области резервирования используется особенность реализации алгоритма, заключающаяся в том, что перебор возможных подстановок ϕ (s ) можно продолжать после нахождения первой полной подстановки и перебрать все полные подстановки, которых может быть несколько. Из всех полных подстановок, которые будут найдены алгоритмом, выбирается та, что соответствует критерию оптимальности. Оптимизация выделения распределенных ресурсов может производиться по следующим критериям: 1. По критерию минимального числа задействованных вычислительных узлов. Решение этой задачи основано на применении модифицированного алгоритма, в процессе работы которого из всех возможных совмещений выбирается то, при котором задействовано минимальное число вершин в исходном графе, соответствующих вычислительным узлам. 2. По критерию минимальной суммарной нераспределенной вычислительной нагрузки. В качестве решения используется частичная подстановка, отвечающая требованию минимальности суммы весов нераспределенных вершин. 3. По критерию минимального числа задействованных сетевых соединений. Для решения задачи находятся реберные графы вычислительной сети и резервируемой области и вычисления производятся на реберных графах согласно пункту 1. Результат соответствует резервируемой области с минимальным числом задействованных сетевых соединений. 4. По критерию минимальной суммарной нераспределенной пропускной полосы каналов связи. Решение получается, согласно пункту 2, для реберных графов вычислительной сети и распределяемой области.
174
Выводы В работе представлен переборный алгоритм оптимизации резервирования распределенных вычислительных ресурсов. В алгоритме использованы составные условия, ограничивающие область поиска переборной части алгоритма, в том числе, основанные на волновом разложении графов, значительно сокращающие время поиска оптимального решения. Рассмотренные в работе четыре направления оптимизации выделения резервируемой области покрывают возможные требования к оптимизации распределения зарезервированных областей вычислительной сети Grid, предъявляемые на данном этапе использования технологии. Совместное последовательное использование приведенных методов оптимизации дает эффект субоптимального распределения зарезервированных областей в масштабах всей сети. Строго оптимальное распределение можно получить при использовании в качестве графа резервируемой области составного графа, сформированного как сумма графов резервируемых подсетей, но ввиду экспоненциального характера вычислительной сложности алгоритма, применяемого для оптимизации, затраты времени на выполнение строгой глобальной оптимизации в масштабах реальных сетей Grid могут быть достаточно велики. В работе впервые предложены подходы к оптимизации резервирования распределенных вычислительных ресурсов в сетях Grid, основанные на применении модификации точного алгоритма поиска наибольшего подграфа. Литература 1. Коваленко В., Корягин Д. Организация grid: есть ли альтернативы? // Открытые системы. №12. 2004. 2. Коваленко В., Корягин Д. Эволюция и проблемы Grid // Открытые системы №01. 2003. 3. Ильяшенко М.Б. Разработка и исследование параллельного алгоритма проверки граф-подграф изоморфизма // Радиоэлектроника. Информатика. Управление. – 2006. – N 1. – С. 63-69. 4. Ильяшенко М.Б. Алгоритм нахождения граф-подграф изоморфизма для взвешенных графов и его применение // Радиоэлектроника, Информатика, Управление. – 2007. – №1. – С. 62-68.
175
5.
Пинчук В.П. Табличные инварианты на графах и их применение // Кибернетика и системный анализ. – 2001. – №4 – С.33-45.
РАСЧЁТ НА ВЫСОКОПРОИЗВОДИТЕЛЬНОМ КЛАСТЕРЕ ДИФФЕРЕНЦИАЛЬНО-РАЗНОСТНОЙ ЗАДАЧИ УПРАВЛЕНИЯ ТЕМПЕРАТУРОЙ Г.Г. Исламов, Ю.В. Коган, А.Г. Исламов, О.Л. Лукин
Удмуртский госуниверситет, Ижевск
Пусть
вектор
x = ( x1 ,..., x n ) T
пробегает
точки
n -мерного параллепипеда G = [a1 , b1 ] × L × [a n , bn ] . Рассмотрим в течение времени T процесс изменения температуры u ( x , t ) в параллепипеде G с удельной теплоёмкостью c(x ) , плотностью ρ (x ) и коэффициентом теплопроводности k (x ) при воздействии на него тепловыми источниками и стоками плотности F ( x, t ) = b( x ) w(t ) , где при t ∈ [0, T ] имеем wmin ≤ w(t ) ≤ wmax . Как известно, температура u ( x, t ) должна удовлетворять для ( x, t ) ∈ G × (0, T ) дифференциальному уравнению теплопроводности n ∂u ⎞ ∂u 1 n ∂ ⎛ (1) ⎜⎜ k ( x) pi ( x) ⎟⎟ + F ( x, t ). c( x ) ρ ( x ) = ∏ ∑ ∂t i =1 pi ( x) i =1 ∂xi ⎝ ∂xi ⎠ n
∏H Здесь
pi =
коэффициенты
j =1 j ≠i
j
Hi Ламэ
при
n>2
и
криволинейной 1
⎛ n ⎞ координат, такие, что H j = ⎜⎜ ∏ pi ⎟⎟ ⎜ i =1 ⎟ ⎝ i≠ j ⎠
pi =
1 при Hi
n = 1,2 ;
ортогональной
Hi
-
системы
( n −1)
при n > 2 .
Задачу управления температурой поставим следующим образом. Требуется построить такое кусочно-постоянное допустимое управление w(t ) ( wmin ≤ w(t ) ≤ wmax , t ∈ (0, T )) , 176
при котором уравнение (1) имеет гладкое решение u ( x, t ) , удовлетворяющее граничному условию (2) u ( x, t ) = μ ( x , t ), x ∈ ∂G и дополнительному ограничению вида (3) α ( x, t ) ≤ u( x, t ) ≤ β ( x, t ) в области ( x, t ) ∈ G × (0, T ) . Здесь функции α ( x , t ) и β ( x , t ) задают диапазон изменения температуры внутри параллепипеда G . Заметим, что мы не фиксируем начальную температуру u (x ,0) . Как раз её необходимо определить таким образом, чтобы с помощью управления w(t ) из заданного диапазона [ wmin , wmax ] можно было обеспечить заданный температурный режим для указанной температуры μ ( x, t ) на границе ∂G параллепипеда размерности n . Поставленная задача порождает дифференциально-разностный аналог задачи управления температурой, описание которой приводится ниже. Введём удобные для этого описания соглашения и обозначения. Если индекс i принимает значения 1,2,..., n , то будем писать i = 1, n . Пусть N = ( N1 ,..., N n ) есть целочисленный вектор с положительными компонентами. Пусть, далее, мультииндексная переменная ограничена условием J = ( j1 ,.., jn ) jk = 0, N k , k = 1, n . Тогда множество её значений образует целочисленную сетку 0 ≤ J ≤ N (неравенство векторов понимается покомпонентно). Как правило, мы будем отождествлять переменную J с её значением. Мультииндекс J назвается внутренним, если при всех k = 1, n имеем jk ≠ 0 и jk ≠ N k . Пусть J = ( j1 ,.., jn ) есть внутренний мультииндекс. Рассматривая уравнение (1) во внутреннем узле
x J = ( j1h1 ,..., jn hn ), hk = (bk − ak ) / N k , k = 1, n , параллепипеда G при всех t ∈ (0, T ) имеем точное равенство c( x J ) ρ ( x J )
n n 1 ∂u( x J , t ) ∂ ⎛ ∂u( x, t ) ⎞ + b( x J ) w(t ). =∏ J ∑ ⎜⎜ k ( x ) pi ( x ) ∂x ⎟⎟ p ( x ) x ∂t ∂ i =1 i =1 i i⎝ i ⎠ x=xJ
Для тех же t будем иметь α ( x J , t ) ≤ u( x J , t ) ≤ β ( x J , t ) .
(4)
(5)
177
конечномерное пространство Обозначим через F вещественнозначных функций, определённых на конечном множестве внутренних мультииндексов J целочисленной сетки 0 ≤ J ≤ N . Пусть вектор-функция определяется равенством y : (0, T ) → F
b( x J ) . c( x J ) ρ ( x J ) Тогда уравнение (4) может быть записано в виде конечномерной системы дифференциальных уравнений y ' (t ) = Ay (t ) + Bw(t ) + ν (t ), t ∈ (0, T ). (6) Здесь A есть матрица, порождённая одной из распространённых схем дискретизации оператора Лапласа, стоящего в правой части равенства (4). Вектор-функция ν : (0, T ) → F порождена граничным условием (2) и играет роль «помехи», которую необходимо компенсировать с помощью управления w(t ) из указанного выше диапазона. В дальнейшем континуальное неравенство (5) мы заменим дискретным аналогом
y (t )[ J ] = u( x J , t ) , а вектор B ∈ F задаётся как B[ J ] =
αi ≤ y (ti ) ≤ βi , i = 1, m .
(7)
есть моменты наблюдения за Здесь ti (0 < ti < ti +1 < T ) температурой, а векторы порождены αi , βi ∈ F (αi ≤ βi ) соответственно
выражениями
α ( x J , ti )
и
β ( x J , ti ) . В наших
обозначениях вектор y (0) ∈ F характеризует начальную температуру во внутренних узлах параллепипеда G. Теперь мы в состоянии применить результаты работы [1] для получения необходимых и достаточных условий разрешимости задачи (6)-(7) при заданном допустимом управлении w(t ) , а также принципа максимума для указания точек переключения кусочно-постоянного управления w(t ) , принимающего лишь крайние значения wmin и wmax . Если линейный функционал λ принадлежит сопряженному пространству F * и вектор g ∈ F , то λ ⋅ g обозначает значение этого функционала на элементе g . Функционал λ называется неотрицательным, если λ ⋅ g ≥ 0 для всех g ≥ 0, g ∈ F . Теорема 1. Задача (6)-(7) разрешима тогда и только тогда, когда неравенство 178
ti
m
∑ λ1i ⋅ ( β i − ∫ e A(t −s ) {Bw( s) + ν ( s)}ds) ≥ i
i =1
0
ti
m
∑ λi2 ⋅ (α i − ∫ e A(t −s ) {Bw( s) + ν ( s)}ds) i
i =1
0
(8) имеет место для любого семейства неотрицательных функционалов * {λ1i , λi2 }im=1 из сопряженного пространства F , удовлетворяющего уравнению m
m
∑ λ1i e At = ∑ λi2e At i
i
i =1
.
(9)
i =1
Замечание 1. В действительности неравенство (8) достаточно проверить на конечном числе образующих конуса неотрицательных решений уравнения (9), для отыскания которых можно применить вычислительную схему Н.В. Черниковой [1] либо воспользоваться модификацией симплекс-метода. Теорема 2. Пусть ν (t ) есть допустимая помеха для задачи управления (6)-(7), то есть найдётся такое допустимое управление w(t ) ( wmin ≤ w(t ) ≤ wmax , t ∈ (0, T )) , при котором указанная задача
разрешима. Тогда для некоторого семейства нетривиальных неотрицательных функционалов из сопряженного {λ1i , λi2 }im=1
F * , удовлетворяющего уравнению (9) , найдётся компенсирующее помеху ν (t ) допустимое управление w* (t ) , удовлетворяющее при почти всех s ∈ (0, T ) принципу максимума пространства
ϕ ( s ) w* ( s ) =
max ϕ ( s ) w ,
wmin ≤ w≤ wmax
где скалярная функция m
ϕ ( s) = ∑ sign (ti − s) (λ1i − λi2 ) ⋅ e A(t −s ) B . +
i
i =1
Здесь используется положительная часть σ + = (σ + | σ |) / 2 числа σ . Замечание 2. Заметим, что вид уравнения (9) и скалярной функции ϕ (s ) упростится, если ввести обозначение λi = λ1i − λi2 , при этом не надо требовать неотрицательности этого функционала. Кроме того, нетрудно установить следующее свойство кусочно-непрерывной функции ϕ (s ) , концы интервалов знакопостоянства которой 179
определяют точки переключения в нашей задаче управления температурой: ϕ ( s ) ≡ 0 при s ∉ (t1 , tm ) и ϕ ( s ) = γ k ⋅ e − As B при
s ∈ (tk −1 , tk ], k = 2, m ,
где
функционалы
m
γ k = ∑ λi e At , i
причём
i =k
m
γ 1 = ∑ λi e At = 0
λk
и для функционала
i
имеем представление
i =1
λk = (γ k +1 − γ k )e − At , k = 1, m − 1, λm = γ m e − At . k
m
Выбирая
произвольно
функционалы γ k , k = 2, m , и считая, что γ 1 = 0 , из последних формул получим любое решение системы
m
∑λ e i =1
i
Ati
= 0 . Теперь остаётся найти
положительную и отрицательную части λi+ и
λi− функционала λi и положить в теореме 1 соответственно λ1i = λi+ + δ и λi2 = λi− + δ , где δ есть произвольный неотрицательный функционал. На основе этих результатов разработаны эффективные алгоритмы расчёта точек переключения в диффенциально-разностной задаче управления температурой двумерных и трёхмерных параллепипедов. Дано сравнение численных результатов, полученных на вычислительном кластере с использованием различных технологий распределённого и параллельного программирования (sockets, PThreads, PVM, MPI, OpenMP) . Литература 1. Исламов Г.Г. О допустимых помехах линейных управляемых систем // Изв. Вузов. Математика. – 2002. - № 2. – С. 37-40.
180
ПАРАЛЛЕЛЬНЫЙ АЛГОРИТМ ДЛЯ ЗАДАЧИ ОПТИМАЛЬНОГО УПРАВЛЕНИЯ ВЫПЛАВКОЙ МЕТАЛЛА Р.Ф. Кадыров
Казанский государственный университет, Научно-исследовательский институт математики и механики им. Н. Г Чеботарева Введение Задача об охлаждении слитка стали в процессе его непрерывной выплавки моделируется двухфазной задачей Стефана с предписанной конвекцией [1, 2]. Качество производимой стали существенно зависит от теплового режима при затвердевании, при этом первостепенное значение имеет поведение поверхностной температуры и фронта затвердевания. Экспериментальный выбор режима охлаждения слитка является дорогостоящим и не всегда реализуемым процессом, поэтому актуальным является численное моделирование процесса охлаждения. Особенно важным аргументом в пользу численного моделирования служит необходимость управления процессом в режиме реального времени. В работе численно решается задача оптимизации процесса охлаждения в режиме реального времени, которая формулируется как задача идентификации коэффициентов и решается методами оптимального управления [3, 4]. Краевая задача Слиток представляет собой параллелепипед с закругленными вдоль оси z углами. В силу его симметрии краевая задача решается в области V = Ω× (0, Lz ) , представляющей собой четверть слитка. Ее граница Γ = ∂V состоит из частей Γ0 , Γ N , Γ S и Γ N , на которых
заданы различные граничные условия. Определению подлежит температурное поле T ( x, y , z , t ) в точках ( x, y, z ) ∈V в моменты времени t ∈ (0, T f ] . После дискретизации по времени с шагом τ решение задачи на одном временном слое представляется следующим интегральным тождеством: H ∈V H :
1
τ
∫ ( H − H% )η dx + ∫ ∇K ( H ) ⋅∇ηdx + ∫ g (T ( H ) , h )η dx = 0 ∀η ∈V
V
V
ΓN
где H (T ) и K (T ) - функции энтальпии и температуры Кирхгоффа,
181
0
,
V H и V0 - подпространства пространств Соболева, обеспечивающие выполнение
нужных
краевых
условий;
g (T , h )
-
функция,
моделирующая вторичное охлаждение на границе Γ N , а h( x, y , z , t ) известные параметры охлаждения. После МКЭ-аппроксимации краевая задача численно решается при помощи явной схемы Эйлера с циклом временных шагов [5]. Задача оптимизации Режим охлаждения в математической постановке определяется векторным параметром h в граничном условии. Считается, что граница Γ N разбита на M непересекающихся частей, в каждой из которых
функция h постоянна. Таким образом, параметром управления является вектор-функция h = (h1 , h2 ,K , hM ) , оптимальные значения которой должны быть найдены на каждом временном слое. Технологические ограничения приводят к следующему допустимому множеству управлений: U = {h ∈ M : h min h h max } , где векторы и являются минимальными и максимальными h min h max технологически реализуемыми параметрами в каждой из зон охлаждения. Ставится задача: найти пару (T * , h* ) такую, что,
f (T * , h* ) = min f (T (h), h) h∈U
где T (h) является решением задачи, функционал цели задается равенством 2 1 f (T , h) = ∫ (T ( h ) − T t ) dx, 2 ΓN
T t - заданная целевая температура на границе Γ N . В работе [4] предложен метод редукции многомерной задачи минимизации к последовательности одномерных, когда оптимальные параметры охлаждения hi* подбираются последовательно от первой зоны охлаждения к последней по направлению движения слитка. Экспериментально показано, что найденные параметры охлаждения оказываются близки к решению многомерной задачи. В данной работе также рассматривается метод редукции, однако алгоритм численного решения допускает распараллеливание процесса вычислений: оптимальный параметр охлаждения в каждой зоне отыскивается 182
независимо от остальных, затем производится уточнение найденного решения. Проведен ряд вычислительных экспериментов, в ходе которых показано: 1. Найденное численное решение близко к решению, полученному при помощи последовательного алгоритма. 2. Зависимость времени, потраченного соответствующей программой на решение задачи, от количества процессоров близко к линейному. Литература 1. Laitinen E, Neittaanmaki P. On numerical simulation of the continuous casting problem // J. Eng. Math. – 1987. – V. 22. – P. 335-354. 2. Louhenkilpi S., Laitinen E., Nieminer R. Real time simulation of heat transfer in continuous casting // Metall. Trans. B. – 1993. – V. 24B. – P. 685-693. 3. Сиразетдинов Т.К. Оптимизация систем с распределенными параметрами. М.: Наука, 1977 – 479 с. 4. Кадыров Р.Ф. Метод редукции в задаче оптимального управления выплавкой металла // Вестник Казан. гос. техн. унта им. А. Н. Туполева / Казань: Казан. гос. техн. ун-т, 2007. №1 – С. 44-46. 5. Кадыров Р.Ф., Лапин А.В. Применение явных разностных схем при решении задачи о непрерывной выплавке стали // Тр. Матем. центра им. Н.И. Лобачевского / Казань: Изд-во Казан. матем. о-ва. 2003. - Т. 20. - С. 140–150. АВТОМАТНАЯ МОДЕЛЬ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙ Е.И. Калиниченко
Пензенский государственный университет Введение Опыт создания распределенных и параллельных вычислительных систем (РВС, ПВС) показал, что при их эксплуатации часто выявляются ошибки в алгоритмах их функционирования. Это происходит даже в тех случаях, когда после создания система интенсивно тестируется на правильность работы, включая возможные критические ситуации. В зависимости от области использования таких
183
систем некоторые ошибки могут быть исправлены путем повторных вычислений после устранения причин их появления. Но ошибки в так называемых встроенных компьютерных системах (ядерная область, воздушное движение, автомобили и другие), в системах, использующих транзакции в реальном времени, являются необратимыми и могут вызвать разрушения, человеческие жертвы, необратимые финансовые потери. Объективной причиной возникновения ошибок является то, что размер РВС, ПВС очень быстро растет. Большие системы могут в итоге содержать такое количество ошибок, что они не смогут успешно работать. Некоторые большие программные проекты продемонстрировали это. Статистика показывает, что более 70% времени создания системы затрачивается на её отладку. Ошибки, найденные после начала эксплуатации, могут привести к перепроектированию системы, что, в свою очередь, ведет к задержкам в её маркетинге. Важно отметить несоответствие темпов роста сложности систем и темпов роста методов их проектирования, гарантирующих правильность работы. Как показывает анализ, в подавляющем большинстве случаев ошибки сделаны на стадии проектирования алгоритмов работы систем. Это объясняется тем, что разработка алгоритмов работы вычислительных систем, содержащих параллельные процессы, является очень сложной задачей. Одна из причин сложности проектирования заключается в том, что, как правило, здесь нельзя использовать ранее апробированное стандартное программное обеспечение. Для обеспечения эффективной работы таких систем нужно разрабатывать специализированное программное обеспечение. Другой причиной сложности при создании алгоритмов работы подобных систем является человеческий фактор (мышление человека по своей природе последовательно), потому что здесь нужно учесть вопросы надежности работы системы, обеспечиваемые решениями, принятыми на алгоритмическом уровне (должна быть полностью реализована заданная функциональность, обработаны все исключительные ситуации), так и производительности всей системы. Производительность системы будет определяться не только эффективностью полученного исполняемого кода для отдельного её узла, но и обеспечением минимального простоя (холостого хода) узлов системы в ожидании продолжения вычисления. Решение такой задачи даже для однопроцессорных систем было непросто, а сложность их решения при проектировании распределенных и параллельных систем 184
значительно возрастает. При разработке алгоритмов работы распределенных систем также должны быть учтены, как минимум: разность в скорости работы отдельных узлов системы; взаимодействие узлов через коммуникационные каналы; отказы коммуникационных каналов, как временные, так и постоянные. Решение этой проблемы видится в создании формальных методов и на их основе – инструментальных средств разработки и верификации проектируемых алгоритмов и программного обеспечения. Использование формальных методов позволяет представить программные компоненты (логические процессы в узлах, коммуникационные сообщения в каналах) как формальные объекты и обеспечивает возможность построения формальной модели, для того чтобы изучить поведение проектируемой системы, получить априорные характеристики её работы. Формальное описание обязательно должно учитывать поведение системы во времени, которое зависит от: скорости узлов и задержек коммуникационных каналов системы. доступности общих ресурсов. надежности коммуникаций, т.е. деления и воссоединения сетевых соединений. надежности работы узлов, т.е. учета их отказов ("стоп", "византийский"). возможности последующего восстановления их работоспособности. Такой подход при проектировании даст следующие преимущества: позволит обнаружить неопределенности, несогласованности, незавершенности в неформальном описании алгоритма работы системы, которые имеются в техническом задании на проектирование; обеспечит автоматический, машинно-связанный анализ правильности формального описания по отношению к исходным требованиям (верификация); обеспечит проверку поведения системы на интересующих разработчика тестовых наборах (моделирование);
185
обеспечит возможность оценки альтернативных вариантов алгоритмов работы системы без дорогостоящего создания её прототипа.
Кроме того, в работе системы могут быть выявлены "узкие" места, взаимоблокировки, доступность ресурсов и т.п. Модель Большинство алгоритмов работы РВС и ПВС относятся к классу так называемых систем, управляемых событиями, или "реактивных" систем. Все последующие рассуждения будут в первую очередь связаны с ними. Так как по своей сути "реактивные" алгоритмы работы ПВС и РВС есть взаимодействие параллельных процессов на событийном уровне, то наиболее подходящей математической моделью будет модель недетерминированных конечных автоматов (НКА) [1]. Почему? Во-первых, в модели НКА на уровне входов/выходов имеется естественный параллелизм. Во-вторых, естественным образом возникает структурированный подход к построению модели РВС ПВС. Для описания работы каждого узла и канала сообщения на уровне логических процессов используется отдельный автомат. Затем, объединяя эти автоматы в систему взаимосвязанных автоматов, получаем модель всей распределенной системы. В-третьих, имеем возможность иерархичной детализации алгоритма работы любого узла или канала, и, как следствие, всей системы в целом. То есть описание работы любого элемента системы может быть детализировано до нужного уровня. Таким образом, возможно описывать алгоритмы работы РВС любой степени сложности и с любой степенью детализации. Поведение каждого узла системы и канала передачи сообщений описывается недетерминированным автоматом Мура. В каждый автомат может быть включен логический процесс, учитывающий временные отношения. Поэтому предлагаемая модель может быть использована для описания как синхронных РВС и ПВС, так и асинхронных. Таким образом, при описании поведения РВС и ПВС используется система взаимосвязанных автоматов, что легко позволяет описывать параллельные процессы. При этом каждый автомат описывает логику работы узла или канала сообщений. Для обеспечения согласованного поведения во времени каждого автомата в составе всей системы автоматов используются "абсолютные
186
временные метки" (системное время). "Относительные временные метки" (такты времени) генерируются в каждом автомате отдельным логическим процессом. Автомат имеет внешние входы и выходы, через которые взаимодействует с другими автоматами. Автомат может иметь внутренние входы и выходы для реализации своей логики управления. Автомат может состоять, в свою очередь, из подавтоматов. Каждый подавтомат представляет логический процесс в узле или канале. Любой автомат, соответствующий узлу системы, работа которого должна быть согласована по времени с другими узлами, содержит специальный логический процесс, генерирующий временные метки. Автомат, представляющий каналы сообщений, также может содержать специальный логический процесс, генерирующий временные метки и используемый для моделирования задержек в каналах связи. Построение модели системы выполняется поэтапно (используется метод "сверху вниз"). На этапе описания алгоритма работы проектируемой системы (или же существующей, если выполняется анализ её работы) строится структурная схема системы, позволяющая получить представление об её узлах и коммуникационных каналах. Далее, на этапе анализа определяется начальный уровень детализации алгоритма работы каждого узла и канала этой структурной схемы. Каждому узлу и каналу ставится в соответствие автомат, описывающий алгоритм его работы. При этом в поведение автоматов могут быть введены дополнительные состояния, связанные, например, с отказом узла, потерей сообщений в каналах и т.п. Следующий уровень детализации модели системы достигается или модификацией логики поведения соответствующего автомата, или разбиением его состояний на подавтоматы. Входные воздействия разделяются на события, действующие извне системы и возникающие внутри системы. Внешние события, воздействуя на узлы системы, приводят к их запуску или останову. События, возникающие внутри системы, являются выходными сигналами одних автоматов, которые, в свою очередь, будут входными сигналами для других автоматов. Используя предложенный в [1] аппарат, получаем механизм, позволяющий легко производить вычисления (моделирование) на детерминированной системе – недетерминированной. Предложенный подход был использован для моделирования протокола репликации (2PC - 2 Phase Commit) однородной 187
распределенной базы данных с количеством узлов, равным 4, и соединенных каналами связи различной производительности. Результаты моделирования позволили определить "узкие" места системы и определить минимальные требования к каналам связи, обеспечивающим её стабильное функционирование. Заключение Подводя итоги вышеизложенного, можно утверждать, что достоинства предлагаемого подхода заключаются в следующем: естественно получаемая декомпозиция сложной системы; использование формализованного подхода для описания и анализа; простота последовательной иерархичной детализации; относительная простота программной реализации модели. Литература 1. Вашкевич Н.П., Вашкевич С.Н. Недетерминированные автоматы и их использование для синтеза систем управления. Учебное пособие. – Пенза: Изд-во ПГТУ, Пенза 1996. О ПАРАЛЛЕЛЬНОЙ РЕАЛИЗАЦИИ ВЛОЖЕННОГО МЕТОДА РОЗЕНБРОКА ДЛЯ СЛАБОСВЯЗНЫХ ЖЕСТКИХ СИСТЕМ ОДУ БОЛЬШОЙ РАЗМЕРНОСТИ В.Е. Карпов, А.И. Лобанов
Московский физико-технический институт, Долгопрудный В ряде приложений возникают системы жестких обыкновенных дифференциальных уравнений (ЖС ОДУ) высокой размерности со специальной структурой. В частности, при решении задач типа «реакция-диффузия-конвекция» с использованием разностных схем высокого порядка аппроксимации матрица Якоби возникающей системы ОДУ будет блочно-трехдиагональной. Поясним сказанное подробнее на примере простейшей системы уравнений, описывающих процессы переноса с учетом химических реакций. Возьмем уравнение непрерывности для фракций вещества ∂ ( y j ρ) + div( y j ρv) = w j . ∂t Здесь ρ — массовая плотность смеси реагирующих веществ, v — скорость смеси, yi — массовая доля фракции вещества в смеси. 188
Обозначение wi применено для скорости образования или расходования i-й фракции вещества в единице объема за единицу С использованием уравнения времени, wi = wi ( y1 ,... yk , T ) . неразрывности перепишем его в характеристической форме: ρ
∂y j ∂t
+ ρv
∂y j ∂x
= wj .
Обычно такого рода уравнения при параллельной реализации алгоритма решаются с помощью метода расщепления по физическим процессам. Так, на одном этапе расщепления для каждой фракции численно решается уравнение переноса, затем — система ОДУ, описывающая химические реакции, независимо решается для каждого узла введенной сетки. Такой способ решения уравнений приводит к разностным схемам невысокого порядка аппроксимации по пространственным переменным задачи, но с возможностью легко решить задачу балансировки загрузки процессоров при параллельной реализации. Обмены при таком способе аппроксимации минимальны. Рассмотрим в простейшем случае возможность повышения порядка аппроксимации схемы. Один из подходов для построения схем повышенного порядка аппроксимации на нерасширенном шаблоне заключается в учете неоднородности во всех точках шаблона с весами, обеспечивающими повышение порядка [1]. Проиллюстрируем метод повышения порядка аппроксимации на простейшем примере. Рассмотрим использование аналога сеточнохарактеристического метода [2]. Вдоль характеристики dx = v каждое dt уравнение системы переходит в обыкновенное дифференциальное уравнение
dy j dt
=
wj
ρ
.
Рассмотрим пространственный узел расчетной сетки с индексом i на двух соседних временных слоях. Для вычисления доли j-й фракции на новом временном слое значение правой части уравнений вычислим в точке пересечения характеристики, проходящей через i-ю точку на новом временном слое, со старым временным слоем с использованием линейной интерполяции. В каждом узле расчетной сетки получим разностные уравнения 189
dy j ,i dt
где σi =
= f j ,i
w ⎧ w j ,i (1 − σi ) + j ,i −1 σi , vi > 0 ⎪ ρi −1 ⎪ ρi =⎨ ⎪ w j ,i (1 − σ ) + w j , k +1 σ , v ≤ 0 i i i ⎪⎩ ρi ρk +1
vi τ
— число Куранта. h Запишем систему уравнений в векторном виде
dY = f ( Y, t ) , dt
(1)
где Y = ( y11,K, yk1,K, y1N ,K, ykN )T ,
f = ( f11,K, f k1,K, f1N ,K, f kN )T . Полученная система обыкновенных дифференциальных уравнений имеет размерность k·N, где k — количество фракций вещества в смеси, а N — число пространственных узлов внутри расчетной области. Для решения системы воспользуемся методом Розенброка. Значения переменных Yn+1 на новом временном слое вычисляются через значения переменных Yn с использованием вспомогательных векторов kj по следующей схеме: S Y n+1 = Y n + γ k , k = B −1δ Y n , k ,..., k ,
∑ j =1
j
j
i
i
i
(
1
i −1
)
где Bi = E − τμii J , i −1 i −1 ⎛ ⎞ δi ( Y n , k1 ,..., k i −1 ) = τf ⎜ Y n + ∑ βij k j ⎟ + τJ ∑ μij k j , j =1 j =1 ⎝ ⎠
i = 1,..., s .
Здесь E — единичная матрица, J — матрица Якоби системы, μij, γj, βij — коэффициенты метода Розенброка, s — количество стадий метода. Из структуры системы следует, что матрица Якоби имеет частично заполненный трехдиагональную структуру, подобную показанной на рис. 1.
190
Рис. 1. Пример структуры матрицы Якоби системы
Вычисление вспомогательных векторов в методе Розенброка [3] может эффективно производиться на параллельных вычислительных комплексах с общей памятью. Степень параллелизма определяется количеством стадий метода. Обращение матрицы B, похожей по структуре на приведенную на рис. 1, будем проводить итерационным методом, записанным в канонической форме: k im +1 − k im
ς
(
)
= Ci−1 δi ( Y n , k 1m ,..., k im−1 ) − Bi k im ,
где Ci = diag B i — блочно-диагональная часть матрицы Bi, ς — итерационный параметр. Тогда итерационный метод может быть записан в виде k im +1 − k im
ς
i −1 i −1 ⎛ ⎛ ⎞ ⎞ = Ci−1 ⎜τ f ⎜ Y n + ∑ β ij k j ⎟ + τ J ∑ μij k j − Bi k im ⎟ , ⎜ ⎟ = 1 = 1 j j ⎠ ⎝ ⎝ ⎠
или i −1 i −1 ⎛ ⎛ ⎞ ⎞ k im+1 = ( E − ς Di ) k im + ς Ci−1 ⎜τ f ⎜ Y n + ∑ βij k m j ⎟ + τ J ∑ μij k m j ⎟ , ⎜ ⎟ j =1 j =1 ⎠ ⎝ ⎝ ⎠
Матрица Di имеет блочно-трехдиагональный вид ⎛ E ⎜ ⎜ C2−1B 2l ⎜ ⎜ 0 ⎜ K ⎜ ⎜ 0 ⎝
C1−1B1
0
K K
E
C2−1B 2r
C3−1B3l
E
K
K 0
K 0
K K
0⎞ ⎟ 0⎟ ⎟ 0⎟ K⎟ ⎟ E ⎟⎠
с единичными диагональными блоками. В случае, если в рассматриваемой задаче скорость течения не меняет знак, то либо все блоки под диагональю, либо блоки над диагональю нулевые. Тогда при выборе итерационного параметра 0 < ζ <1 все собственные числа матрицы ( E − ς Di ) лежат внутри единичного круга, таким образом выполнено достаточное условие 191
сходимости итерационного метода. Скорость сходимости в этом случае максимальна при ζ = 1. Если скорость переноса может менять знак или схема строится для системы уравнений типа реакция–диффузия–конвекция, то примыкающие к главной диагонали блоки в матрице будут ненулевыми. В этом случае сходимость метода обеспечивается совместным выбором шага интегрирования по времени τ и итерационного параметра ζ. Действительно, при сколь угодно малых шагах интегрирования системы (1) матрица ( E − ς Di ) слабо отличается от единичной, так как все блоки, расположенные вне главной диагонали, прямо пропорциональны τ. Итерационный метод сходится при ζ = 1. Увеличение шага интегрирования приводит к тому, что оценка собственных чисел матрицы, отвечающей за изменение невязки на итерациях, становится трудоемкой, а априорная оценка в зависимости от шага — практически невозможной. Тем не менее, при надлежащем выборе итерационного параметра ζ возможно обеспечить сходимость итерационного процесса. Для тестирования итерационного метода была выбрана модельная система из 11 связанных осцилляторов Ван-Дер-Поля. Результаты расчетов по методу Розенброка с вычислением собственных векторов путем прямого решения линейных систем и с использованием описанного итерационного метода совпадают с точностью до машинного ε. В многочисленных работах, например, [4, 5] было показано, что вычисление вспомогательных векторов в методе Розенброка может эффективно производиться на параллельных вычислительных комплексах с общей памятью. При этом степень параллелизма определяется количеством стадий метода. Параллельная реализация метода Розенброка на машинах с распределенной памятью неэффективна из-за значительного объема информации, которой должны обмениваться между собой процессоры. Если не использовать схемы повышенного порядка аппроксимации по пространству, матрица Якоби J и соответствующие матрицы Bi для вычисления вспомогательных векторов получаются блочнодиагональными, причем каждый блок соответствует одной пространственной точке. При таком подходе эффективным становится распараллеливание по пространству, которое может быть реализовано как на машинах с общей памятью, так и на комплексах с 192
распределенной памятью, поскольку система кинетических уравнений расщепляется на совокупность независимых систем ОДУ более низкого порядка для каждой точки разностной сетки. Но такое упрощение приводит к уменьшению порядка аппроксимации разностных уравнений по пространственной переменной. Распараллеливание предлагаемого подхода, естественно, зависит от архитектуры вычислительного комплекса, на котором он будет реализовываться. Для параллельных вычислительных систем с общей памятью пространственное распараллеливание ограниченно числом имеющихся процессоров. Наибольший практический интерес представляет распараллеливание на системах с распределенной памятью, которое осложняется структурой матрицы Якоби, так как большой объем обменов информацией при точном вычислении вспомогательных векторов сводит на нет весь эффект от ускорения вычислений. Выходом из сложившейся ситуации является приближенное вычисление вспомогательных векторов на отдельных узлах комплекса.
Рис. 2. Зоны ответственности узлов вычислительного комплекса для матрицы в методе Розенброка (выделены светлым серым и пунктирными границами)
Разделим всю область интегрирования по пространству на зоны ответственности по количеству узлов в параллельной машине. Соответствующие зонам ответственности части матрицы в реализации метода Розенброка изображены на рис. 2. Это области, в которых процессоры будут вычислять значения соответствующих частей вектора Y. Как показано на рисунке, расчет значений только по областям ответственности ошибочен, так как он может не захватывать все ненулевые блоки матрицы. Поэтому расчет следует вести в
193
расширенных областях (работа с перекрытием), а полученные значения брать только в зонах ответственности (см. рис. 3). Очевидно, что точное решение системы ОДУ (1) можно получить лишь в случае использования полной матрицы. Тем не менее, в рамках используемого подхода расщепления по процессам такой метод декомпозиции задачи представляется оправданным. При учете лишь процессов переноса область влияния дифференциального уравнения в частных производных представляет собой одну точку — пересечение характеристики, проведенной из рассчитываемого узла сетки, с шаблоном разностной схемы. Учет правой части с весами является ее линейной интерполяцией на предыдущем слое по времени. Принятая схема разбиения по зонам ответственности позволяет проводить такую интерполяцию, при этом при обмене насчитанными значениями на верхнем временном слое для передачи значений, которые рассчитываются именно в областях перекрытия, необходимо учитывать направление характеристик. Данный алгоритм расчета в областях перекрытия позволит обеспечить порядок аппроксимации по пространству не ниже первого, а внутри каждой зоны ответственности – и более высокий.
Рис. 3. Зоны расчета узлов
На вычислительных комплексах с гибридной памятью (например, кластер из SMP или multi-core узлов) возможно расширение зоны ответственности каждого узла пропорционально числу процессоров. При этом уменьшается число зон перекрытия, соответственно можно ожидать уменьшения погрешности вычислений, связанных с используемым способом декомпозиции матрицы.
194
Описанный подход очевидным образом обобщается на случаи построения схем более высокого порядка аппроксимации для уравнений «диффузия-конвекция», или на случай систем уравнений «реакция-диффузия-конвекция» или «реакция-диффузия». В настоящее время проводятся тестовые расчеты для оценки погрешностей метода при решении модельных задач. Литература 1. Толстых А.И. Компактные разностные схемы и их применение в задачах аэрогидродинамики. — М.: Наука, 1990. — 230 с. 2. Магомедов М.–К. М. , Холодов А. С. Сеточнохарактеристические численные методы. — М.: Наука, 1988. — 290 с. 3. Хайрер Э., Ваннер Г. Решение обыкновенных дифференциальных уравнений. Жесткие и дифференциально– алгебраические задачи. — М.: Мир, 1999. — 685 с. 4. Botchev M.A., Verwer J.G. A new approximate matrix factorization for implicit time integration in air pollution modeling // J. of Comput. and Appl. Math., Vol. 157, 2003. pp. 309–327. 5. Voss D.A., Khaliq A.Q.M. Parallel Rosenbrock methods for chemical systems // Computers and Chemistry, 25, 2001. pp. 101– 107. АНАЛИЗ ХАРАКТЕРИСТИК ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ ПУТЕМ МОДЕЛИРОВАНИЯ В.А. Кичкидов, Р.А. Бикташев
Пензенский государственный университет В предыдущих выпусках данного сборника публиковались наши статьи, посвященные разработке стохастических сетевых моделей массового обслуживания, с помощью которых возможно проводить анализ архитектур вычислительных систем. Данный метод был проиллюстрирован анализом 4-процессорных систем на базе архитектур IA32 и AA64, а именно была проанализирована работа процессоров с подсистемой памяти. Данные архитектуры предлагают принципиально разные способы построения мультипроцессорной системы, и наибольшая разница ощутима именно в работе с памятью. 195
Однако разработанные модели не учитывают особенности функционирования современной памяти, работающей в пакетном режиме. Такая память в разных фазах обслуживания процессорного запроса ведет себя по-разному. В начальной, самой длительной фазе происходит чтение строки памяти и передача первого слова в один из регистров процессора и кэш. Другие фазы, связанные с пересылкой в кэш оставшейся части пакета, работают значительно быстрее: происходит только передача, причем по одному слову в каждом шинном цикле. В данной статье приведен простой пример сравнения одноканального и двухканального режима работы с оперативной памятью современного процессора персональной ЭВМ с использованием уточненных моделей. В качестве аппаратной основы принята система с общей шиной, работающая по технологии Intel Quad Pumped Bus. Такая шина за 1 такт может передать до 4 готовых к передаче 64-разрядных слов. Частоту работы шины возьмем равной 200МГц (800 МГц QPB). Такая шина обработает за 5 нс от 1 до 4 64-битных порций данных. В процессе работы процессор отправляет заявки в память с частотой, положим, 0.1 заявка/нс. Такой поток возможен при активной работе современного процессора с памятью с учетом низкого процента кэшпромахов. Используем в расчетах небуферизированные модули памяти DDR РС-3200 частотой 200 МГц и таймингами 3-3-3. Учитывая 3 различных варианта доступа к памяти (случайный, псевдослучайный и последовательный) и зная вероятности их возникновения, можно высчитать, что первая порция данных будет предоставлена модулем памяти в среднем через 25 нс. Следующие 3 порции будут предоставлены с промежутком в 5 нс – 1 такт модуля памяти. Работой контроллера памяти в данном случае пренебрегли в целях разгрузки модели. Также пренебрегаем сторонними нагрузками системной шины.
196
T ОПф1
ОШ
ЦП
ОПф2
ОПф3
ОПф4
Рис. 1. Модель ВС с одноканальным режимом работы памяти. Модель А
В модели типа А фазы 1 - 4 (рис.1) представляют собой задержки выдачи данных модулем оперативной памяти, описанные выше (25-55-5 нс). Процессор (ЦП) генерирует заявки, которые проходят через общую шину (ОШ), через все фазы ОП, снова через ОШ и возвращаются в ЦП (в данном случае уничтожаются на терминаторе Т). Заявки с каждой фазы ОП перемещаются как на следующую по порядку фазу обслуживания, так и на четырехканальную ОШ. Этим моделируется работа технологии QPB. Модель В (рис.2) отличается от А лишь количеством модулей и каналов памяти. Заявка попадает в модуль памяти 1 или 2 с равной вероятностью, соответствующие фазы модулей занимают одинаковое количество времени. T ОП1ф1
ЦП
ОШ ОП1ф2
ОП1ф3
ОП1ф4
ОП2ф1
ОП2ф2
ОП2ф3
ОП2ф4
Рис. 2. Модель ВС с двухканальным режимом работы памяти. Модель В
Результаты расчетов представлены в таблице 1.
197
1 канал (нс) 2 канала (нс) Δ Время обработки заявки 24 16.5 -31% Пребывание заявки в очередях 10.5 2.9 -72% Загрузка общей шины 0.16 0.2 +25% Таблица 1. Результаты расчета моделей систем с одним процессором
Итак, введение второго канала памяти уменьшает время работы процессора с памятью на треть в среднем, сводя время простоя заявок к минимуму. Но при этом на четверть увеличивается загрузка общей шины. Проведенное моделирование подкрепило количественно вполне предсказуемый результат. Данная модель пригодна и для моделирования памяти, работающей в многопроцессорной системе. Причем при увеличении количества процессоров изменение в модели затрагивает лишь входной поток заявок. Так, в двухпроцессорной системе он увеличивается в 2 раза, становясь равным 0.2 заявки/нс. Это еще раз показывает высокую гибкость подобных моделей. Результаты вычислений представлены в таблице 2. 1 канал (нс) 2 канала (нс) Время обработки заявки 107.5 19.5 Пребывание заявки в очередях 93.9 5.6 Загрузка общей шины 0.23 0.23 Таблица 2. Результаты расчета моделей систем с двумя процессорами
Здесь наблюдается специфика систем массового обслуживания открытого типа. При столь обильном входном потоке заявок в модели А “ОПф1” оказывается близкой к перегрузке. Происходит лавинообразный рост задержек, стремящийся к бесконечности. Сравнивать в данном случае расчеты моделей А и В нельзя. Но и эти результаты являются полезными. Столь высокие цифры свидетельствуют о несоответствии производительности системы запрашивающей и обрабатывающей систем. В данном случае по результатам расчетов можно сделать вывод, что одноканальный режим работы с памятью с точки зрения соответствия производительностей компонентов неприменим в двухпроцессорной системе, производящей работу с активным использованием памяти (согласно условию задачи). В нашем распоряжении в данный момент находятся несколько сформированных моделей, посвященных, в основном, подсистеме памяти вычислительных систем. На основе данных моделей создается методическое пособие для выполнения лабораторных работ по курсу 198
“Архитектура вычислительных систем”. Авторы работы с благодарностью примут помощь и сотрудничество в дальнейшей разработке данного вопроса. Литература 1. Кичкидов В.А., Бикташев Р.А. Анализ работы с памятью процессоров современных персональных ЭВМ и мультипроцессоров на их основе. - "Технологии Microsoft в теории и практике программирования" - материалы конференции под ред. Р.Г. Стронгина. Нижний Новгород. Изд-во Нижегородского университета. 2006 г. 338с. 2. Бикташев Р.А., Князьков В.С. Многопроцессорные системы: архитектура, топология, анализ производительности: Учебное пособие. - Пенза: Пенз. гос. ун-т. 2004 г. ОСОБЕННОСТИ РАСПАРАЛЛЕЛИВАНИЯ АЛГОРИТМОВ ОБУЧЕНИЯ МАШИН ОПОРНЫХ ВЕКТОРОВ В.Ю. Колеватов, Е.В. Котельников
Вятский государственный гуманитарный университет Машины опорных векторов в задачах классификации Задача классификации заключается в распределении множества объектов по нескольким заданным классам на основе общих признаков. В литературе часто употребляются синонимы термина «классификация», например, «распознавание образов» (Pattern Recognition) или «категоризация текстов» (Text Categorization) в зависимости от прикладной области. Для формальной постановки задачи классификации будем считать, что имеется всего два класса (задачу многоклассовой классификации можно свести к последовательности двухклассовых задач). Пусть заданы: множество Х обучающих объектов, заданных векторами признаков: X={X1, X2, ..., XN}, Х⊂Rd (Х является подмножеством евклидова пространства размерности d); множество Y ответов для обучающих объектов: Y={y1, y2, ..., yN}, yi∈{–1, +1}.
199
Задача классификации состоит в построении алгоритма, который каждому вектору Xi сопоставляет правильный ответ yi. В дальнейшем построенный алгоритм должен применяться для классификации произвольного вектора Х, о классовой принадлежности которого ничего не известно. Приведем геометрическую интерпретацию задачи. На плоскости заданы два множества объектов. Требуется найти уравнение линии f(x1,x2)=0, разделяющей оба множества (рис. 1). При этом для всех заштрихованных кружков-объектов должно выполняться неравенство f(x1,x2)>0, а для всех пустых – неравенство f(x1,x2)<0. х2 f(x1 ,x2)=0 f(x1,x2 )<0
f(x1,x2 )>0
х1
Рис. 1. Геометрическая интерпретация задачи классификации
Суть метода опорных векторов (Support Vector Machine, SVM – машина опорных векторов) удобно проиллюстрировать при помощи геометрической интерпретации задачи классификации. Пусть два множества точек можно разделить плоскостью (в двумерном пространстве – прямой). Тогда таких плоскостей будет бесконечное множество (рис. 2а).
200
х2
f2
f3
х2
f(x1 ,x2 )=0
f1
х1
х1
а
б
Рис. 2. Иллюстрация основной идеи SVM
Выберем в качестве оптимальной такую плоскость, расстояния до которой ближайших точек обоих классов равны (рис. 2б). Ближайшие точки-векторы называются опорными. Уравнение разделяющей плоскости для d-мерного пространства выглядит следующим образом: w1x1 + w2x2 + ... + wdxd + w0 = 0, где d – размерность пространства признаков; W=(w1, w2, ..., wd) – направляющий вектор разделяющей плоскости; w0 – скалярное смещение. Или в векторной форме: (W, X) + w0 = 0. Обучением SVM называют процесс получения вектора W и смещения w0. Алгоритмы обучения SVM Алгоритмы обучения SVM преобразуют задачу оптимальной разделяющей плоскости к следующей квадратичного программирования [1]:
поиска задаче
N 1 ⎧ = − ( , , ) ( , ) λi [ yi ((W , X i ) + w0 ) − 1] → min max L W w λ W W ∑ 0 ⎪ W ,w λ 2 i =1 ⎪ ⎨λi ≥ 0, i = 1,..., N, ⎪λ = 0, èëè y ((W , X ) + w ) = 1, i = 1,..., N, i i 0 ⎪ i ⎩ 0
где λi – множители Лагранжа. Поставленную задачу сложно решить, используя градиентные методы, поскольку на практике размер пространства входных векторов-признаков достигает нескольких сот тысяч признаков. Время 201
решения задачи такой размерности крайне велико, поскольку матрица частных производных функции Лагранжа не может целиком поместиться в памяти компьютера. Поэтому для обучения SVM были разработаны специальные методы. Одним из наиболее эффективных на сегодняшний день является алгоритм последовательной минимальной оптимизации (Sequential Minimal Optimization) [2], который решает поставленную проблему, последовательно оптимизируя два случайно выбранных вектора. Распараллеливание процесса обучения SVM Активное развитие многопроцессорных архитектур, методов и систем параллельного программирования вносит коррективы во многие сложные алгоритмы. Актуальной проблемой становится распараллеливание алгоритмов обучения SVM для ускорения их работы. Следствием такого ускорения является, например, возможность использовать алгоритмы обучения в режиме реального времени для классификации больших потоков информации (текста, графики, звука). Для параллельной реализации методов обучения SVM предлагается применить декомпозицию по данным. Метод декомпозиции по данным предполагает выделение из исходного обучающего множества примеров, принадлежащих первому классу, и разбиение полученного подмножества на М групп. То же самое выполняется с примерами другого класса. Далее выбираются пары групп из обоих подмножеств и для каждой пары строится отдельный классификатор. Затем результаты должны каким-то образом объединяться. В методе опорных векторов на этапе обучения из множества исходных примеров выделяются опорные векторы и разделяющая плоскость строится только на их основе, остальные примеры уже не учитываются. Этот факт можно использовать следующим образом – для каждой пары групп отбирать опорные векторы в общее множество опорных векторов, а итоговый классификатор строить только на основе этого множества. Такой алгоритм можно представить следующей блок-схемой:
202
Начал о
Р азбиение прим еров первого кл асса на M групп
Р азбиение примеров второго кл асса на M групп
Парал л ел ьная часть (2 ветви)
О бъед инение групп обоих кл ассов в пары
В ыд ел ение опорных векторов д л я 1-й пары групп
В ыд ел ение опорных векторов д л я 2-й пары групп
В ыд ел ение опорных векторов д л я М-й пары групп
Парал л ел ьная часть (М ветвей)
Построение кл ассификатора на основе всех опорных векторов К онец
Блок-схема параллельного алгоритма обучения SVM
Рассмотрим процессы разбиения исходного обучающего множества на группы объектов и объединения групп в пары. Разбиение и объединение произвольным образом не даст требуемого результата, так как может оказаться, что векторы, которые не являются опорными для пары, будут таковыми для задачи в целом. Пример такого неудачного разбиения приведен на рис. 3. Векторы V1–V5 рассматриваются совместно и оказывается, что для этих векторов опорными будут векторы V3 и V4, таким образом, вектор V1 далее не рассматривается, а он является опорным при рассмотрении множества в целом. х2
V1 V2 V3
V4
V5
х1
Рис. 3. Пример неудачного разбиения на группы
Следовательно, необходима стратегия, которая позволила бы не упускать на этапе выделения опорных векторов «настоящие» опорные векторы. В качестве такой стратегии предлагается использовать методы кластеризации для выделения групп объектов, а также объединять 203
группы по принципу максимальной близости центров кластеров. В качестве метода кластеризации можно выбрать метод k-means (k-средних) [3]. Процесс обучения при данном подходе можно описать следующим образом (рис. 4). х2
f(x1,x 2 )=0
К3 V3
К1
V1
V2
V4
К4 К2
х1
Рис. 4. Пример обучения с кластеризацией (число кластеров k=2)
Предварительно множество примеров каждого класса делится на кластеры – на рис. 4 это кластеры К1–К2 для одного класса и К3–К4 для другого. Затем вычисляются центры кластеров и формируются пары кластеров: в каждую пару входят кластеры, принадлежащие разным классам, центры которых наиболее близки друг другу. На следующем этапе осуществляется параллельное обучение всех пар кластеров (например, с использованием алгоритма последовательной минимальной оптимизации), результатом которого является выделение опорных векторов для каждой пары. После этого результаты объединяются – происходит построение итогового классификатора на основе полученных опорных векторов. Итоговый классификатор является приближенным решением, близким к оптимальному. При необходимости получения точного решения следует верифицировать классификатор на обучающем множестве и при обнаружении ошибочных примеров провести повторное обучение на данных примерах и известных опорных векторах. Заключение Таким образом, в докладе рассмотрены основы и алгоритмы обучения машины опорных векторов SVM. В настоящее время отсутствуют эффективные методы, позволяющие распараллеливать
204
процесс обучения SVM. В докладе предложено использовать для параллельной реализации обучения метод декомпозиции по данным в сочетании с кластеризацией обучающих примеров. Такой подход позволяет получить решение, близкое к оптимальному, которое при необходимости может быть уточнено. В дальнейшем планируется исследовать возможности применения данного подхода для линейно неразделимых задач. Литература 1. Burges C.A. Tutorial on Support Vector Machines for Pattern Recognition. Kluwer Academic Publishers, Boston, 1998. 2. Platt J. Sequential Minimal Optimization: A Fast Algorithm for Training Support Vector Machines // Advances in Kernel Methods Support Vector Machine, MIT Press, Cambridge, 1999. P. 185– 208. 3. MacQueen J. Some methods for classification and analysis of multivariate observations // Proc. 5th Berkeley Symposium on Mathematical Statistics and Probability, Vol. 1, 1967. P. 281–297. МЕТОДЫ ПАРАЛЛЕЛЬНОГО ЛОГИЧЕСКОГО ВЫВОДА ДЛЯ ОБРАБОТКИ ЗНАНИЙ НА КЛАСТЕРНЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМАХ О.В. Кошкин
Вятский государственный университет, Киров Введение Одним из основных направлений развития современных ЭВМ является разработка архитектур, ориентированных на обработку знаний. Обработка знаний – одна из сфер применения искусственного интеллекта, предполагающая использование компьютером знаний, которыми владеет человек, для решения проблем и принятия решений. Важную роль в обработке знаний играет логический вывод [1]. Особый интерес представляет достоверный логический вывод (дедуктивный) в логике предикатов первого порядка, который в отличие от правдоподобного (индуктивного, абдуктивного) вывода позволяет получить истинные заключения. Обработка баз знаний представляет собой трудоёмкий процесс, ввиду необходимости специфичной обработки большого объёма
205
информации (переборный характер процедур вывода), а также сложных нетрадиционных структур данных. С учётом современных тенденций в вычислительной технике, чёткой направленности на многопоточное программирование и параллелизацию вычислительных процессов, имеет место развитие параллельных методов логического вывода. В данном докладе приводится приблизительная оценка эффективности подходов к распараллеливанию логического вывода в системах обработки знаний. В соответствии с [2] на современном этапе различают несколько уровней параллелизма: параллелизм на уровне термов; параллелизм на уровне клозов (дизъюнктов); параллелизм поиска. Параллелизм на уровне термов является параллелизмом низшего уровня и применительно к исчислению предикатов первого порядка реализуется параллельной унификацией литералов. В условиях современных высокопроизводительных средств вычислительной техники реализацию данного уровня параллелизма рационально проводить в рамках одного многоядерного микропроцессора либо многопроцессорного вычислительного модуля (в том числе вычислительного модуля с многоядерными микропроцессорами). Это обусловлено высокой связностью между данными. На уровне клозов (дизъюнктов) применяется параллельная обработка формул. В Пролог-подобных системах имеет место OR-, AND-, DCDP-резолюционый параллелизм. Также существуют методы, отличные от резолюционных – метод деления дизъюнктов и его модификации. Количество процедур вывода на текущем шаге в зависимости от метода может быть различным (может достигать огромного количества при больших масштабах задачи). Реализация данного уровня параллелизма возможна на нескольких многопроцессорных мультиядерных вычислительных узлах Параллелизмом самого высокого уровня является параллелизм поиска. Здесь различают распределённый поиск и мультипоиск. В первом случае пространство поиска разбивается на ряд подпространств, в которых поиск происходит параллельно. В другом случае к одному и тому же пространству поиска применяются параллельно различные эвристики. В том и в другом случае количество вычислительных единиц, задействованных в процессе 206
поиска, будет зависеть от количества подпространств либо от количества планов поиска. При больших масштабах задачи рационально комбинировать оба метода. Параллелизм на уровне термов не требует особого анализа, так как на текущий момент не имеет сложной алгоритмической структуры – происходит параллельное выполнение операций унификации. Тем более что на данном уровне нет такого разнообразия методов, как на уровне параллелизма клозов. Сама операция унификации проста, поэтому затраты на её распараллеливание и выполнение могут не стоить полученного выигрыша в быстродействии. Самый высокий уровень (уровень поиска) может быть интересен с точки зрения эффективности организации параллельных процессов. Интересным для оценки эффективности методов распараллеливания является средний уровень – уровень дизъюнктов. Этому есть несколько причин: разнообразие методов вывода и их модификаций; для масштабных задач возможен «комбинаторный взрыв»; методы, применяемые на данном уровне, более требовательны к вычислительным ресурсам, поэтому от эффективности алгоритма распараллеливания на данном уровне в большей степени будет зависеть скорость вывода и эффективность использования ресурсов кластера. В качестве методов вывода предлагается рассмотреть наиболее распространённый резолюционный метод и метод деления дизъюнктов. Среди перечисленных выше резолюционных методов, согласно [2], достаточно рассмотреть только DCDP-резолюцию. ANDрезолюция эффективна в графах с большим количеством однолитеральных дизъюнктов, что в реальных задачах практически не встречается. OR-резолюция даёт хорошие результаты в задачах, представляемых сильносвязными графами, однако при этом генерируется самое большое среди аналогичных методов количество резольвент, часть которых впоследствии не принесёт результатов в выводе. На хранение дополнительных резольвент требуется дополнительный объём ОП, а это при решении масштабных задач может играть существенную роль.
207
Сравнение методов достаточно провести на примере небольшой задачи, по которой можно будет обнаружить преимущества и недостатки. Предлагается задача, приведённая в [1]: «Если я поеду автобусом, а автобус опоздает, то я опоздаю на работу. Если я опоздаю на работу и стану огорчаться, то я не попадусь на глаза моему начальнику. Если я не сделаю в срок важную работу, то я начну огорчаться и попадусь на глаза моему начальнику. Следовательно, если я поеду автобусом, а автобус опоздает, то я сделаю в срок важную работу». Исходные данные и посылки представлены в виде формул логического следования (секвенций), определённых в исчислении высказываний I [1]: A&B C; 2) C&D E; 3) K D&E; 4) A&B K. Рассмотрение метода DCDP-резолюции предлагается провести с использованием графа связей Ковальского. Граф связей Ковальского представляет собой структуру, построенную предварительно и отображающую связь между потенциально резольвируемыми дизъюнктами. Признаком выводимости того или иного утверждения является получение пустой резольвенты в процессе вывода. Ниже представлен логический вывод тремя параллельными резолюционными методами. Метод DCDP-параллельной резолюции. Приведённые выше секвенции преобразуются к дизъюнктивной форме по правилам, определённым в исчислении высказываний I: 1) А v B v C; 2) C v D v E; 3) K v D; 4) K v E; 5) A; 6) B; 7) K. На рисунке 1 изображён граф связей Ковальского для данного примера
208
A
B
1
2
5
AvBvC 3
K
6
KvE
KvD 4 7
CvDvE Рис. 1. Граф связей Ковальского для поставленной задачи
Для пояснения процесса вывода следует дать несколько определений, приведённых в [2]. Определение 1. Дизъюнкты называются смежными, если существует одна или несколько связей, соединяющих литеры одного с литерами другого. Определение 2. Множеством DCDP-связей называется множество связей, которые соединяют пары различных дизъюнктов, если дизъюнкты каждой пары не являются смежными со всеми дизъюнктами остальных пар. Резольвирование в данном методе осуществляется параллельно на множестве DCDP-связей. Шаги вывода приведены ниже. Шаг 1. Можно определить несколько DCDP-множеств: {1,5}, {2,5}, {1,6},{2,6}. Выбор конкретного множества в реальных задачах определяется эвристиками. В данном примере можно выбрать любое из множества связей, так как пример не велик, для того чтобы ощутить разницу в выборе того или иного множества. После проведения резольвирования по первому множеству получается граф, приведённый на рисунке 2 а. Шаг 2. Проведём резольвирование по DCDP-множеству {1,5}. Полученный граф изображён на рисунке 2 б.
209
B
K
1
5
BvC
KvE
D 3
2
D
C
E
2
1
4
3
CvDvE
CvDvE
а)
б)
Рис. 2
На последующих трёх шагах DCDP-множеств нет, и будет происходить последовательное резольвирование по связям 1, 2, 3. В результате вывод будет успешен, так как будет получен пустой дизъюнкт. Метод деления дизъюнктов В таблице 1 отражена последовательность действий при выводе методом деления дизъюнктов. Решение приведено в [1]. Исходные секвенции преобразованы в секвенции дизъюнкты по правилам исчисления I. Шаг 1 D1÷d1=b1=C
1
AvBvC _ _ _ CvDvE
1
KvD
D3÷d1=b3=D
1
KvE
D4÷d1=b4=E
1
_ _ d1=A v B v K
D2÷d1=b2=1
b1 b2 b3 b4=CDE≠0
Шаг 2
D2÷d1.1=0
_ _ _ d1.1= C v D v E
Таблица 1. Вывод методом деления дизъюнктов
Как можно видеть, вывод завершился на втором шаге. В данном случае параллельно осуществляются операции деления дизъюнктов. Сравнение методов По представленным выше выводам можно видеть, что метод деления дизъюнктов существенно сокращает количество шагов вывода. Так, выводимость в первом случае была доказана на пятом
210
шаге вывода, а в случае метода вывода делением дизъюнктов – на втором. Однако количество шагов является спорной оценкой скорости выполнения методов. Следует ориентировочно оценить сложность каждого шага. На каждом шаге вывода резолюционными методами по графу связей Ковальского перед получением очередной резольвенты (резольвент) происходит повторный анализ потенциальной резольвируемости дизъюнктов, то есть связи в графе анализируются повторно. Эта проблема лишь частично решается применением параллельных алгоритмов (количество связей может резко сокращаться), однако необходимость анализа всё же остаётся (появляются дополнительные дизъюнкты). При больших масштабах задачи с большим количеством дизъюнктов на эту процедуру может уйти довольно много времени, даже если подвергать оценке лишь связи, на которые могла повлиять полученная резольвента (резольвенты). Кроме того, выбор конкретного множества связей для резольвирования в реальных системах должен основываться на определённой эвристике. Для этого может понадобиться дополнительный анализ графа (который можно провести и параллельно с анализом связей, но, тем не менее, это потребует дополнительных вычислительных ресурсов и времени). Сама процедура резольвирования не представляет никакой сложности и не требует большого времени на осуществление, поэтому здесь выделение потока для каждой процедуры резольвирования может оказаться нерациональным – накладные расходы на создание потока могут превысить эффект от параллельного резольвирования. Однако в масштабных задачах с большим количеством литералов в дизъюнктах это может быть целесообразно. Как уже упоминалось выше, возможно организовать параллельно анализ графа и поиск множества связей, удовлетворяющих эвристикам, перед резольвированием. Метод деления дизъюнктов не требует какой-либо сложной предварительной подготовки. Процесс деления дизъюнктов не многим более сложный, чем резольвирование, поэтому и здесь следует оценить необходимость распараллеливания и определить количество порождаемых потоков в зависимости от количества и размера дизъюнктов. Кроме самого деления дизъюнктов на текущем шаге определяется условие необходимости дальнейшего вывода, и в случае необходимости формируется новая выводимая секвенция.
211
В итоге можно сделать вывод о том, что процедура деления дизъюнктов не только имеет меньшее количество шагов вывода, но и каждый шаг может оказаться меньшим по продолжительности. Прежде всего это утверждение обусловлено необходимостью анализа (а возможно и построения заново) графа связей и учёта эвристик для резолюционных параллельных методов. Выводы Приведённый пример демонстрирует особенности двух основных методов логического вывода. При этом видно преимущество метода, основанного на делении дизъюнктов. Вывод при использовании данного метода короче, а ориентировочная продолжительность каждого шага меньше. Однако стоит заметить, что реальные отличия между методами можно пронаблюдать лишь на реальной масштабной задаче. Недостатком метода DCDP-резолюции является не только большее количество шагов вывода, но и необходимость выбора определённых эвристик при выборе конкретного DCDP-множества. Комбинация трёх методов резолюционного вывода (OR, AND, DCDP) и применение эвристик позволяет сократить время вывода и уменьшить количество бесполезных порождаемых резольвент [2]. Однако в общем случае количество шагов будет большим, нежели в методе деления дизъюнктов. Литература 1. Страбыкин, Д.А. Логический вывод в системах обработки знаний [Текст] / Д.А. Страбыкин; под ред. Д.В. Пузанкова; СПбГЭТУ. СПб., 1998. – 164 с. 2. Вагин, В. Н. Достоверный и правдоподобный вывод в интеллектуальных системах [Текст] / В.Н. Вагин, Е.Ю. Головина, А.А. Загорянская, М.В. Фомина; под ред. В.Н. Вагина, Д.А. Поспелова. – М. : Физматлит, 2004. – 704 с. – ISBN 5-9221-0474-8.
212
ВОЗМОЖНОСТИ РАСПАРАЛЛЕЛИВАНИЯ ФУНКЦИИ DGEMM НА SMP-СИСТЕМАХ М.С. Кукушкин, Н.В. Фролова
СарФТИ, Саров На сегодняшний день все большую популярность приобретают вычислительные системы более чем с одним ядром (будь то SMP или распределенная система). С появлением новых процессоров с двумя (Intel Conroe, AMD Opteron), а теперь и четырьмя ядрами они становятся распространенными и на рынке настольных систем. Существует множество стандартов и средств для написания параллельных алгоритмов. Одни из самых известных - MPI и OpenMP. MPI (Message Passing Interface) – стандарт для написания параллельных приложений как на распределенной, так и на общей памяти. Существует большее количество реализаций MPI (MPICH, Intel MPI и др.) на различных платформах. OpenMP (Open Multi Processing) – стандарт для написания параллельных приложений на разделяемой памяти. Стандарт OpenMP должен поддерживаться компилятором. На данный момент это ICC, GCC начиная с версии 4.2.0, PGI, Pathscale. Несмотря на поддержку разделяемой памяти в MPI, MPI и OpenMP имеют разные области применения. На разделяемой памяти реализация на OpenMP логически проще и читабельней, чем с использованием MPI. Другой вариант распараллеливания на общей памяти – использование системных потоков. Этот вариант уступает по универсальности программного кода – код на OpenMP кроссплатформенный. ПАРАЛЛЕЛЬНЫЙ АЛГОРИТМ РЕШЕНИЯ МНОГОКРИТЕРИАЛЬНОЙ ЗАДАЧИ РАСПРЕДЕЛЕНИЯ РЕСУРСОВ В ИЕРАРХИЧЕСКИХ СИСТЕМАХ Е.А. Куликова
Нижегородский государственный университет Введение Задачи распределения ресурсов возникают при решении множества прикладных проблем: при проектировании сложных систем, в планировании расходов и управлении деятельностью
213
предприятий. Примерами таких задач являются задача объемнокалендарного планирования, задача распределения информационного ресурса в сети провайдера, транспортная задача с промежуточными пунктами и задача сбалансированного перераспределения загрузки в разнородной сети. Математическая модель задач рассматриваемого класса представляет собой систему линейных двусторонних алгебраических неравенств. Задано множество критериев оптимальности, определяющих эффективность функционирования системы. Необходимо найти все допустимые Парето-оптимальные решения поставленной задачи. В работе [1] рассматривается общий алгоритм решения подобных задач. В настоящей работе исследуется параллельный подход к решению многокритериальных задач распределения ресурсов. Общая математическая модель Многокритериальная задача распределения ресурсов в иерархической системе в наиболее общем виде ставится следующим образом. Заданы булевы матрицы A и B, размерностей соответственно r m×k и n×k, действительный неотрицательный вектор c размерности m r r и векторная функция F ( y ) , определенная на множестве n-мерных r r векторов из R n со значениями из {0, 1, …, p-1}. Функция F ( y )
отображает пространство R n на множество вершин n-мерного pr ичного куба. Требуется найти вектор x , удовлетворяющий r r r r ограничениям Ax ≤ c с учетом минимизируемых критериев F ( Bx ) . Получаем n-критериальную задачу с линейными ограничениями и критериями оптимальности, вид которых зависит от вида функции r r F ( y) . r r Для проверки на совместность систем неравенств вида Ax ≤ c могут быть использованы как общие методы линейной алгебры [2], так и алгоритмы сведения задачи о совместности к задаче линейного программирования. Для задач большой размерности целесообразно применять итерационные методы решения систем линейных неравенств, такие как метод ортогональных проекций Агмона-Моцкна. В некоторых частных случаях вопрос о совместности системы ограничений задачи может быть решен путем сведения этой системы к задаче поиска допустимого распределения ресурсов в иерархической системе. Данный подход исследован для систем неравенств, имеющих 214
эквивалентное представление в виде древовидной структуры [3], или в виде потоковой модели [4, 5]. Для данных частных классов рассматриваемых систем предложены эффективные алгоритмы проверки на совместность, отличные от общих методов. Постановка многокритериальной задачи r r Определим функцию критериев F ( y ) следующим образом. Для каждой компоненты i рассмотрим совокупность вложенных друг в друга сегментов Siti , Siti ⊆ Siti +1 , ti = 0, p − 2 , p≥1, i = 1, n . Тогда Fi (
∑x ) = t ,
j∈G ( i )
j
i
если
∑x
j∈G ( i )
j
∈ Siti
но
∑x
j
∉ Siti −1 .
После
этих
j∈G ( i )
преобразований многокритериальная задача распределения ресурсов в иерархической системе ставится следующим образом: требуется найти r вектор x , удовлетворяющий ограничениям ∑ x ≤ c , i = 1, m , с j
i
j∈R ( i )
учетом минимизируемых критериев Fi (
∑x )=t ,
j∈G ( i )
j
i
ti ∈ {0,1,..., p − 1} ,
i = 1, n . Получаем задачу с m линейными ограничениями и n кусочнопостоянными критериями. Для решения поставленной многокритериальной задачи могут быть применены различные схемы компромисса. Алгоритм решения задачи при лексикографическом упорядочении критериев оптимальности рассмотрен в работе [3]. В данной работе исследуется проблема построения для рассматриваемой многокритериальной задачи всего множества Парето-оптимальных решений. Пусть эффективной вершиной n-мерного p-ичного куба называется r такая вершина zr 0 = ( z10 , z 20 , ..., z n0 ) , для которой f ( z 0 ) = 1, и при этом r для любой вершины z 1 = ( z11 , z 12 , ..., z 1n ), zi0 ≥ zi1 , i = 1, n , для которой r существует по крайней мере одна компонента j , z 0j > z1j , f ( z 1 ) = 0. r Каждой вершине n-мерного p-ичного куба z = ( z1 , z2 ,..., zn ) поставим в соответствие систему линейных алгебраических r r r r r r неравенств транспортного типа S ( z ) : Ax ≤ c , F ( x ) ≤ z . Для каждой r вершины z эта система всегда включает исходные ограничения задачи r r Ax ≤ c (эта часть неравенств остается неизменной и от выбора вершины не зависит). Дополнительные условия накладываются на 215
значения критериев, которые не должны превышать границы, r r заданные вершиной z . То есть решениями системы неравенств S ( z ) будут являться допустимые решения рассматриваемой многокритериальной задачи, для которых принимаемые значения r критериев не превышают значения, определяемые вершиной z , то r есть выполняются дополнительные условия Fi ( x ) ≤ zi , i = 1, n . r Зададим на множестве вершин куба функцию f (z) , r принимающую значение 1, если система S ( z ) совместна, и 0 в r противном случае. Нетрудно показать, что функция f (z ) является r r r r монотонной: если z 1 ≤ z 2 (покомпонентно), то f ( z 1 ) ≤ f ( z 2 ) . Параллельный алгоритм решения многокритериальной задачи Алгоритм поиска всех эффективных вершин n-мерного p-ичного куба, представленный в работе [1], состоит из двух этапов: 1) проверка существования единственного решения задачи, 2) поиск решений задачи внутри области, полученной на этапе 1 в случае, если решение не единственно. Рассмотрим данный алгоритм, модифицированный для применения в многопроцессорных системах. Пусть h – количество параллельных процессоров, а T – это время проверки на совместность одной вершины на процессоре. На первом этапе алгоритма необходимо проверить n независимых направлений куба и в каждом из них произвести по log 2 p вычислений. В последовательном варианте это займет T ⋅ n ⋅ log 2 p единиц времени. Если h ≥ n, то время работы первого шага алгоритма сокращается в n раз и становится равным T ⋅ log 2 p . Если же h < n, то необходимо последовательно загружать процессоры заданиями по подсчету направлений от 1 до n, причем каждому освободившемуся процессору назначать следующее еще не обработанное задание. К сожалению, более мелкое разделение работ будет нецелесообразным в данной задаче, так как каждый шаг поиска по одному направлению сущесвенно зависит от всех предыдущих шагов. Данный подход позволит сократить время работы первого
216
этапа алгоритма в
n раз. В этом случае оценка времени работы n ⎡ ⎤ ⎢⎣ h ⎥⎦ + 1
⎛⎡n⎤ ⎞ первого этапа T ⋅ ⎜ ⎢ ⎥ + 1⎟ ⋅ log2 p . ⎝⎣h⎦
⎠
Если оптимальное решение единственно, то алгоритм заканчивает свою работу. Если же задача не имеет единственного решения, то выполняется вторая часть алгоритма. На втором этапе необходимо произвести поиск внутри некоторого гиперпараллелепипеда, полученного на первом этапе решения задачи. Пусть размер самого широкого ребра этого гиперпараллелепипеда равен k, 0 ≤ k ≤ p − 1, а индекс, соответствующий ему в n-мерном векторе значений критериев, равен j. Тогда на втором этапе алгоритма будут рассматриваться все вершины из гиперплоскости, перпендикулярной данному ребру, и будет проводиться двоичный поиск по этому направлению. Важным моментом здесь является то, что после того, как такой отрезок оказался полностью рассмотрен, r монотонность функции f ( z ) позволяет отсечь множества вершин куба, которые лексикографически предшествуют или последуют уже r исследованным вершинам. Свойство монотонности f ( z ) дает возможность определить значение функции в этих вершинах без непосредственного трудоемкого подсчета. Отсюда вытекает необходимость постоянной проверки, является ли узел, рассматриваемый на процессоре или запланированный на следующие шаги, предшествующим или последующим для уже просмотренных узлов. С одной стороны, такие регулярные проверки увеличивают общее время работы, потому что добавляется время на координацию процесcоров. С другой стороны, можно предполагать, что это время много меньше, чем время, затрачиваемое на подсчет одного узла (то есть на проверку совместности системы линейных неравенств). Предлагается следующий способ распределения работ по процессорам. Из h имеющихся процессоров выберем один координирующий. В этом вычислительном узле будет объединяться информация обо всех рассчитанных вершинах куба и тех вершинах, r значение функции f (z ) в которых определяется исходя из монотонности. По остальным h-1 процессорам будем распределять все имеющиеся отрезки для поиска. После подсчета каждой вершины 217
процессор передает координатору информацию об этой вершине и получает новые данные об уже рассчитанных вершинах. Происходит отсев уже исследованных вершин куба, а затем продолжение поиска. Пусть время обмена данными между процессором и координатором τ = αT , где 0 < α < 1 . Тогда, учитывая то, что в наихудшем случае нужно проверить k n −1 log2 k вершин куба, получаем, что общее время работы второго этапа алгоритма на параллельных процессорах будет составлять величину, строго меньшую, чем ⎛ ⎡ k n −1 log 2 k ⎤ ⎞ 1 ⎛ n −1 ⎞ τk n −1 log 2 k + ⎜⎜ ⎢ ⎥ + 1⎟⎟ ⋅ T ≤ T ⎜ k log 2 k ⋅ (α + h − 1 ) + 1⎟. − h 1 ⎝ ⎠ ⎦ ⎠ ⎝⎣ Здесь первое слагаемое отражает последовательную часть алгоритма, не подлежащую параллелизации, а второе показывает время работы параллельных процессоров. Тогда по сравнению с последовательным вариантом исполнения алгоритма на одном процессоре произойдет ускорение не менее чем в Tk n −1 log 2 k 1 h −1 = = 1 1 1 (α + β )( h − 1) + 1 Tk n −1 log 2 k (α + + )+T α + h −1 h − 1 k n −1 log 2 k раз. 1 1 Здесь β = < при k, n > 2. Отсюда видно, что при h > 2 n −1 k log 2 k 2
и α < ¼ и β < ¼ параллельное исполнение алгоритма дает преимущество перед однопроцессорным. Таким образом, общее время работы алгоритма при прохождении двух этапов будет оцениваться сверху величиной
1 ⎛ ⎞ T ⎜ log 2 p + k n −1 log 2 k ⋅ (α + ) + 1⎟ в случае, когда h ≥ n и h −1 ⎝ ⎠ ⎛⎛ ⎡n ⎤ ⎞ ⎞ 1 ) + 1⎟⎟ , если h < n. T ⎜⎜ ⎜ ⎢ ⎥ + 1⎟ log 2 p + k n −1 log 2 k ⋅ (α + h −1 ⎝⎝ ⎣h ⎦ ⎠ ⎠ Заключение В работе рассматриваются многокритериальные многоиндексные задачи транспортного типа с линейными ограничениями транспортного типа. Подобные задачи имеют большую размерность,
218
поэтому их решение с использованием однопроцессорных вычислительных систем требует значительных временных затрат. Целесообразно для решения таких задач использовать параллельные вычисления на многопроцессорных вычислительных системах. Представлен алгоритм решения многокритериальных задач поиска всего множества Парето-оптимальных решений, модифицированый для использования в многопроцессорных системах. Литература
1.
2. 3. 4. 5.
6.
Прилуцкий М.Х., Куликова Е.А. Многокритериальные задачи распределения ресурсов в иерархических системах. Электронный журнал «Исследовано в России», 085, стр. 891900, 2007 г. http://zhurnal.ape.relarn.ru/articles/2007/085.pdf. Черников С. Н. Линейные неравенства.- М.: Наука, 1968, 488с. Прилуцкий М. Х. Многокритериальное распределение однородного ресурса в иерархических системах. // Автоматика и телемеханика. Москва, 1996, с. 149-156. Афраймович Л.Г., Прилуцкий М.Х. Многоиндексные задачи распределения ресурсов в иерархических системах. // Автоматика и телемеханика, 2006, №6, с.194-205. Прилуцкий М. Х., Афраймович Л. Г. Условия совместности многоиндексных систем транспортного типа. Электронный журнал «Исследовано в России», 70, стр. 762-767, 2005. http://zhurnal.ape.relarn.ru/articles/2005/070.pdf. Воеводин В. В. Математические модели и методы в параллельных процессах. Москва: Наука, 1986, 296 с.
ОБ ОПТИМИЗАЦИИ РАСПРЕДЕЛЕНИЯ ВЕТВЕЙ ПАРАЛЛЕЛЬНЫХ MPI-ПРОГРАММ ПО ПРОЦЕССОРНЫМ ЯДРАМ ВЫЧИСЛИТЕЛЬНОГО КЛАСТЕРА М.Г. Курносов, А.А. Пазников
Сибирский государственный университет телекоммуникаций и информатики, Новосибирск Введение Эффективное использование ресурсов вычислительных систем (ВС) в немалой степени зависит от того, каким образом организовано
219
их функционирование. В большинстве случаев современные высокопроизводительные ВС имеют коммуникационные среды с неоднородными по производительности каналами связи между процессорными ядрами. Например, в системах Cray XT4 и IBM BlueGene/L время передачи сообщений между парой процессорных элементов зависит от их размещения в трехмерном торе, а в (мульти)кластерных и вычислительных GRID-системах коммуникационные среды имеют иерархическую организацию, в которых первый уровень коммуникационной среды – сеть связи между кластерами, второй уровень – сеть связи внутри кластеров, третий уровень – среда доступа процессоров вычислительного узла к общей памяти. Доминирующее положение при разработке параллельных программ для таких систем занимает стандарт MPI. Программа, разработанная в модели передачи сообщений, может быть представлена информационным графом, вершинам которого соответствуют параллельные ветви программы, а ребрам – коммуникации между ними. Обладая информацией о структуре параллельной программы, можно осуществить распределение ей ветвей по процессорным ядрам так, чтобы минимизировать накладные расходы на обмены между ветвями. В данной работе рассматривается задача назначения ветвей MPIпрограммы на процессорные ядра ВС с целью минимизации времени ее выполнения. Постановка задачи Считаем, что ВС функционирует в одном из основных режимов [1] - обработки набора или обслуживания потока задач. Пусть G = (V, E) – информационный граф параллельной программы, поступившей в систему, где V = {1, 2, …, M} – множество ветвей параллельной программы (процессов), а E ⊆ V × V – множество информационно-логических связей между ее ветвями (коммуникации). На множестве вершин V и ребер E могут быть заданы весовые функции, характеризующие количество арифметических и логических операций, выполняемых ветвями, а также объемы данных и размеры сообщений, передаваемые между процессами.
220
Обозначим через w(i), i ∈ V – весовую функцию, ставящую в соответствие ветвям количество арифметических и логических операций, выполняемых ими. На множестве ребер определим функции, характеризующие объемы данных d(i, j) и средние размеры сообщений m(i, j), передаваемых между ветвями за время выполнения программы ([d(i, j)] = байт, [m(i, j)] = байт, i, j ∈ V). Пусть Gs = (Vs, Es) – граф распределенной ВС, Vs = {1, 2, …, N} – множество процессорных ядер, Es = Vs × Vs – множество логических каналов связи (граф полный). На множестве процессорных ядер задана весовая функция ω(c), c ∈ Vs, ставящая в соответствие процессорным ядрам их производительности ([ω(c)] = FLOPS). На множестве ребер Es заданы функции l(c1, c2, m) и b(c1, c2, m) – латентность и пропускная способность канала связи между процессорными ядрами c1, c2 ∈ Vs при передаче сообщений размером m байт ([l(c1, c2, m)] = c., [b(c1, c2, m)] = бит/c.). Требуется найти распределение параллельных ветвей (процессов) по процессорным ядрам с целью минимизации ожидаемого времени выполнения программы. Иначе, необходимо построить инъективную функцию f: V → Vs, ставящую в соответствие ветвям параллельной программы процессорные ядра распределенной ВС. Требуется найти xij:
X = {x ij : i ∈ V , j ∈ V s } , xij = ⎧⎨1, если f (i) = j; ⎩0,
иначе.
Качество назначения ветвей параллельной программы на процессорные ядра будем оценивать ожидаемым временем ее выполнения. Время выполнения t ′ параллельной программы определяется максимальным из времен выполнения ее ветвей. Время t i′ выполнения ветви i ∈V параллельной программы складывается из времени выполнения арифметических и логических операций процессорным ядром и времени взаимодействия со смежными ветвями:
t ′ = max{t i′} = max{t icomp + t icomm } , где t icomp = i∈V
i∈V
N
∑x p =1
ip
⋅
w(i ) - время ω ( p)
выполнения арифметических и логических операций процессорным ядром, на которое назначена ветвь, 221
t icomm =
M
N
N
∑∑∑ x
ip
⋅ x jq ⋅ t (i, j , p, q ) - время
взаимодействия
со
j =1 p =1 q =1
смежными ветвями. Для оценки времени t(i, j, p, q) передачи сообщения между двумя процессорными ядрам p, q ∈ Vs, на которые назначены ветви i, j ∈ V , может быть использована модифицированная модель Хокни (Hockney) [2]:
t (i, j , p, q ) = l ( p, q, m(i, j )) ⋅
d (i, j ) d (i, j ) + . m(i, j ) b( p, q, m(i, j ) )
Учитывая дополнительные ограничения, накладываемые требованием инъективности функции f, получаем задачу (1) – (4) оптимального назначения ветвей параллельной программы на процессорные ядра распределенной ВС с целью минимизации времени ее выполнения. N w(i) M N N ⎪⎫ ⎪⎧ T ( X ) = max⎨ x ip ⋅ x ip ⋅ x jq ⋅ t (i, j , p, q )⎬ → min + (1) ( xij ) i∈V ⎪ ω ( p) j =1 p =1 q =1 ⎪⎭ ⎩ p =1 при ограничениях:
∑
N
∑x
∑∑∑
ij
= 1 , i = 1,2,..., M ,
(2)
ij
≤ 1 , j = 1,2,..., N ,
(3)
x ij ∈ {0,1} , i ∈V , j ∈Vs .
(4)
j =1 M
∑x i =1
Ограничения (2), (4) гарантируют назначение каждой ветви параллельной программы на единственное процессорное ядро, ограничения (3) обеспечивают назначение на ядро не более одной ветви. Для решения поставленной задачи разработана группа алгоритмов, позволяющих за приемлемое время получать субоптимальные распределения параллельных ветвей по процессорным ядрам. Первая группа алгоритмов относится к классу вероятностных алгоритмов локальной оптимизации [4], вторая основана на алгоритмах обхода графов и их разбиении.
222
Пакет оптимизации выполнения MPI-программ В Центре параллельных вычислительных технологий Сибирского государственного университета телекоммуникаций и информатики (ЦПВТ СибГУТИ) ведется разработка программного пакета MPITaskMap оптимизации выполнения MPI-программ на (мульти)кластерых ВС. В пакет входят средства анализа протоколов выполнения MPIпрограмм и построения их информационных графов, средства оценки производительности каналов связи коммуникационных сред, а также модуль субоптимального распределения ветвей параллельных программ по процессорным ядрам системы. На рисунке приведена структура пакета. MPI-Программа
1
otfstat Анализатор протоколов выполнения MPI-программ
Информационный граф программы
taskmap Модуль распределения ветвей 3 METIS
OTF Trace
2
PTA_GT
commperf Модуль оценки производительности каналов связи
Chain Monte-Carlo
0
PTA_PSA (Simulated Annealing)
VampirTrace
Распределение ветвей (скрипт mpiexec)
Рис. 1. Функциональная структура программного пакета MPITaskMap
Основные этапы работа с системой: 1. пользователь осуществляет инструментацию MPI-программы при помощи пакета VampirTrace и запускает ее на выполнение (например, на входных данных меньшей размерности). В результате выполнения инструментированной программы, формируются протоколы выполнения (трасы) в формате OTF (Open Trace Format); 2. сформированные протоколы поступают на вход модуля otfstat, который осуществляет их анализ и построение информационного графа MPI-программы; 3. на вход модуля taskmap подаются описание распределенной ВС (производительности каналов связи, процессорных ядер и т.д.), полученное средствами модуля commperf, а также информационный граф программы, полученный от otfstat или сформированный самим пользователем. Результат работы модуля taskmap – сценарий запуска mpiexec с субоптимальным распределением ветвей по процессорным ядрам.
223
Результаты экспериментов На вычислительном кластере ЦПВТ СибГУТИ проведено исследование разработанных алгоритмов и программного пакета. Кластер укомплектован четыремя двухпроцессорными узлами на базе двухъядерных процессоров Intel Xeon 5150 и сетями связи стандартов Gigabit/Fast Ethernet. В качестве тестовых задач использовались MPI-программы из пакетов NPB (NAS Parallel Benchmarks), HPL и SPEC MPI2007. В таблице 1 приведены результаты запуска тестов на различных сетях связи с распределением ветвей по ядрам алгоритмами Round Robin (RR, стандартный алгоритм утилиты mpiexec) и PTA_PSA [3]. В таблице 2 приведены результаты для алгоритма PTA_GT, основанном на обходе информационного графа задачи. Сеть
RR (mpiexec), с.
PTA_PSA, с.
TRR − TPTA _ PSA TRR
Тест NPB CG Fast Ethernet 726.02 400.36 0.44 Gigabit 97.56 42.05 0.57 Ethernet Тест HPL (PMAP=0, BCAST=5) Fast Ethernet 1108.69 911.81 0.17 Gigabit 263.15 231.72 0.12 Ethernet Таблица 1. Результаты экспериментов c алгоритмом PTA_SA
224
Сеть
RR (mpiexec), с.
PTA_TG, с.
TRR − TPTA _ TG TRR
Тест HPL Fast Ethernet 120.92 84.35 0.3 Gigabit 25.10 19.75 0.2 Ethernet Тест NPB CG Fast Ethernet 727.00 390.35 0.46 Gigabit 101.14 41.64 0.59 Ethernet Тест NPB MG Fast Ethernet 23.94 25.15 -0.04 Gigabit 4.06 4.18 -0.02 Ethernet Тест NPB FT Fast Ethernet 339.05 237.24 0.3 Gigabit 54.37 52.22 0.03 Ethernet Таблица 2. Результаты экспериментов c алгоритмом PTA_TG
Как видно из результатов, качество назначения в значительной степени зависит от структуры информационного графа задачи. Например, информационный граф теста NPB MG полный с однородными по объему данных связями, что существенно ограничивает возможности по оптимизации размещения его ветвей. Видно, что для программ с неоднородными информационными графами сокращение времени выполнения, относительно запуска с распределением ветвей алгоритмом RR может достигать 30 – 50 процентов. Заключение Результаты исследования разработанных алгоритмов и программного пакета показывают, что при организации функционирования распределенных ВС целесообразно учитывать производительности каналов связи коммуникационных сред и структуры параллельных программ. Литература 1. Хорошевский В.Г. Архитектура вычислительных систем. – М.: МГТУ им. Н.Э. Баумана, 2005.
225
2.
3.
Pjesivac-Grbovic J., Angskun T., Bosilca G., Fagg G.E., Gabriel E., Dongarra J. Performance Analysis of MPI Collective Operations: [http://www.netlib.org/netlib/utk/people/JackDongarra/PAPERS/c ollective-cc-2006.pdf], 2006. Курносов М.Г. Назначение ветвей параллельной программы на процессорные ядра распределенной вычислительной системы // Материалы Международной научно-технической конференции “Многопроцессорные вычислительные и управляющие системы”, пос. Дивноморское, Геленджик, Россия, 2007, с. 227 - 231. РЕАЛИЗАЦИЯ РЕШЕНИЯ СЕТОЧНЫХ ЗАДАЧ В РАСПРЕДЕЛЕННОЙ ВЫЧИСЛИТЕЛЬНОЙ СРЕДЕ НА ОСНОВЕ ИНСТРУМЕНТАРИЯ ALCHEMI Д. Ю. Лабутин, А. А. Алехин, Д. К. Боголепов
Нижегородский государственный университет Введение Решение сложных физических задач, описываемых уравнениями в частных производных, с помощью построения сеточных функций при большом количестве узлов приводит к решению систем линейных уравнений большой размерности. Это приводит к целому ряду трудностей, главная из которых — необходимость обработки большого объема информации, что не всегда соответствует быстродействию и объему оперативной памяти ЭВМ. Для устранения этих трудностей предложены различные модификации метода конечных элементов, имеющие целью понизить порядок разрешающей системы уравнений и увеличить вычислительные возможности программ. Наиболее удачной модификацией оказалась идея суперэлементов. Она основана на представлении сложной конструкции в виде набора подструктур, каждая из которых заменяется совокупностью базисных конечных элементов. Каждая из подструктур рассчитывается отдельно при закрепленных общих с другими структурами границах. Результатом этого расчета является получение матрицы жесткости подструктуры и матрицы нагрузок в ее узлах. Подструктура, для которой такие матрицы определены, называется суперэлементом [1].
226
Информация о суперэлементах используется для построения системы уравнений расчета связей на границах суперэлементов. Эта система уравнений содержит значительно меньше неизвестных, чем исходная система уравнений. На этом завершается так называемый прямой ход расчета. На обратном ходе расчета каждую из подструктур рассчитывают при заданной нагрузке и найденных на прямом ходе перемещениях ее граничных узлов. Такой расчет также выполняется без особых затруднений, так как подструктуры всегда описываются системой уравнений невысокого порядка. При расчете сложных и больших по объему конструкций представление их в виде совокупности подконструкций одного уровня может оказаться недостаточным из-за большого порядка уравнений, описывающих расчетную схему каждой из подконструкций. Поэтому расчетная схема в этом случае строится в несколько этапов. Исходная конструкция может быть представлена при этом в виде совокупности иерархически построенных суперэлементов нескольких уровней. Число этих уровней определяется как предполагаемой точностью решения, так и возможностями используемых ЭВМ. Рассмотрим некоторую расчетную область, в которой решается некоторая задача (например, задача Дирихле или задача прогиба пластины). Пусть в данной области задана сеточная функция и построена задача определения амплитуд, которая представлена в виде системы линейных алгебраических уравнений: Au = f где A – матрица жесткости задачи, u – вектор узловых значений (амплитуд), f – некоторый вектор правой части. Выделим в нашей области некоторые невзаимодействующие между собой группы соседних узлов, занимающих подобласти Si расчетной области и группу узлов, соответствующих оставшимся узлам расчетной области S0 . Для примера рассмотрим прямоугольную область, разбитую на четыре непересекающиеся подобласти: получается четыре подобласти и одна граница между областями. Тогда задача определения узловых значений может быть записана в следующем виде:
227
⎡A 11 ⎢ 0 ⎢ ⎢ 0 ⎢ ⎢ 0 ⎢⎣ A01
0 A 22
0 0
0 0
0
A 33
0
0 A02
0 A03
A 44 A04
A10 ⎤ ⎡ u 1 ⎤ ⎡ f 1 ⎤ A20 ⎥⎥ ⎢⎢u 2 ⎥⎥ ⎢⎢f 2 ⎥⎥ A30 ⎥ * ⎢ u 3 ⎥ = ⎢f 3 ⎥ ⎥ ⎢ ⎥ ⎢ ⎥ A40 ⎥ ⎢u 4 ⎥ ⎢f 4 ⎥ A 00 ⎥⎦ ⎢⎣u 0 ⎥⎦ ⎢⎣f 0 ⎥⎦
где Aii – матрицы жесткости узлов подобластей Si , Ai 0 = A0i – матрицы жесткости взаимодействия узлов подобласти Si и узлов подобласти S0 , ui – векторы узловых значений подобластей Si , f i – векторы правых частей, соответствующие подобластям Si . Полученная система уравнений совпадает с исходной системой с точностью до перестановки строк. Нулевые блоки в матрице появляются вследствие отсутствия прямого взаимодействия между узлами выбранных подобластей. Размер данной системы уравнений можно понизить. Распишем первую строку полученной системы уравнений: A 11u1 + A10 u 0 = f1 . Считая, что матрица A11 невырожденная, выразим вектор u1 через вектор граничных узлов u0 . Получим −1 u1 = A 11 ( f1 − A10 u 0 ) . Выражая аналогичным образом остальные три вектора ui и подставляя поочередно полученные выражения в систему, получим: A00 − A01 A11−1 A10 − A02 A22−1 A20 − A03 A33−1 A30 − A04 A44−1 A40 * [u 0 ] =
[ [f
]
]
−1 −1 −1 −1 0 − A01 ( A 11 f 1 ) − A02 ( A 22 f 2 ) − A03 ( A 33 f 3 ) − A04 ( A 44 f 4 ) Эта система линейных уравнений имеет размер, равный количеству узлов в подобласти граничных узлов S0 , что намного
меньше количества узлов в исходной области. Решением данной системы уравнений будет вектор u0 , соответствующий значениям амплитуд в узлах граничных элементов. Затем, зная вектор u0 , восстанавливаются решения задачи ui в остальных подобластях Si . В данном примере мы использовали такой подход, когда неизвестные узлы в системе исключаются группами. В данном случае указанные группы узлов рассматриваются как одно целое, что соответствует концепции метода суперэлементов. 228
Существуют различные вариации данного метода, основанные на выборе базисных функций для различных подобластей, построения различных сеток для выбранных подобластей и границ. Не исключается также повторная декомпозиция подобластей, что приводит к использованию иерархически построенных суперэлементов. Различные варианты постановки задачи, способов выбора сеток, как для подобластей Si , так и для узлов границы S0 , приводят к изменению структуры матрицы A . Данный факт вынуждает находить значения матриц Aii−1 Ai 0 и векторов Aii−1 f i при каждом решении задачи. Для нахождения указанных матриц необходимо решать матричное уравнение, что представляет собой достаточно трудоемкую задачу. Количество правых частей данных матричных уравнений будет равно числу узлов подобласти S0 , граничащих с текущей подобластью
S i . Процесс решения матричных уравнений может оказаться достаточно трудоемким и превзойти по сложности выигрыш по сведению исходной задачи к задаче для вектора u0 . Необходимо отметить, что процесс решения матричных уравнений для подобластей ui является независимым. Поэтому основную трудоемкую часть алгоритма решения задачи можно разбить на полностью независимые части и использовать для этого технологии параллельных или распределенных вычислений. Для реализации указанного выше алгоритма создается программный комплекс, основанный на использовании концепций распределенных вычислений. В качестве платформы был выбран инструментарий Alchemi, разрабатываемый в университете Мельбурна. Данный инструментарий распространяется с открытым исходным кодом и доступен для свободного использования (http://www.alchemi.net). Для оптимального решения рассматриваемой задачи данный инструментарий был модифицирован с целью обеспечения интерактивного взаимодействия с удаленными вычислительными узлами. При разработке программного комплекса закладывалось требование о гибком использовании доступных вычислительных ресурсов, объединенных в общую сеть на основе Ethernet. Характерной особенностью такого использования является возможность объединения различных компьютерных ресурсов для 229
решения одной задачи, а также возможность гибкой адаптации вычислительных мощностей в зависимости, например, от сложности задачи. Исходя из указанных требований, программный комплекс поддерживает работу на множестве доступных машин, которое может динамически изменяться в процессе работы. Для этого реализованы механизмы повторных перерасчетов подзадач и динамической балансировки нагрузки узлов. Для эффективного использования многопроцессорных SMP систем, и в частности систем с многоядерными процессорами, в расчетной части программного комплекса используется библиотека Intel MKL, которая специально создавалась оптимизированной для SMP (в т.ч. многоядерных) систем. В процессе работы программный комплекс предоставляет пользователю наглядную информацию о ходе выполнения расчетов. Пользователь имеет возможность выбора задачи для решения, а также настройки разбиения исходной области. После завершения очередного этапа расчетов программа визуализирует физическую модель упругой пластины. Для этого применяется библиотека трехмерной графики Open GL. Кроме того, пользователь может просматривать информацию о задействованных вычислительных узлах: их количество, информацию о решаемых в данный момент подзадачах и количестве переданных данных. Программный комплекс является демонстрацией новой модели использования библиотеки Intel MKL применительно к так называемым “слабо–связанным” задачам. Реализация расчетов в инструментарии Alchemi Работа приложений, предназначенных для использования в рамках инструментария Alchemi, основывается на следующей схеме: центральное приложение, работающее на машине клиента, в функции которого входят: разбиение задачи на независимые потоки; соединение с Менеджером и отправка потоков на исполнение; получение результатов исполнения потоков и склейка их в решение; Менеджер:
230
осуществляет регистрацию подключившихся Исполнителей; осуществляет планирование и запуск потоков на свободных исполнителях; обнаруживает сбои в работе системы и извещает о них центральное приложение; несколько Исполнителей, исполняющих потоки работающих в Alchemi приложений: загрузка исходных данных и кода потока; исполнение кода потока; выгрузка результатов исполнения потока менеджеру.
Инструментарий Alchemi был модифицирован с целью реализации механизма взаимодействия центрального приложения и выполняющихся потоков на исполнителях. Данное взаимодействие предусматривает посылку сообщений потоков путем вызова обработчика события получения сообщения от потока у центрального приложения, а также вызов метода класса потока на удаленной машине Исполнителя, исполняющего поток. Реализация механизма взаимодействия центрального приложения с потоками позволила: избежать повторных пересылок входных данных и их предварительную обработку при мелком разбиении задачи; сделать приложение независимым от реализованного в Менеджере планировщика заданий; реализовать в приложении механизм динамического планирования расчетов. Реализация расчетной схемы Расчет задачи методом суперэлементов можно рассмотреть в виде следующих этапов: Первым этапом метода суперэлементов является: решение матричных уравнений для нахождения матриц Aii−1 Ai 0 , которые затем умножаются справа на A0i с целью получения компонент матрицы
жесткости узлов граничных подобластей A0 i Aii−1 Ai 0 ; o решение уравнений для нахождения векторов Aii−1 f i ; 231
Второй этап состоит в подготовке исходных данных для вычисления значений узлов граничных элементов: вычисление матрицы A00 − ∑ A0 i Aii−1 Ai 0 i
вычисление правой части системы линейных уравнений: f 0 − ∑ A0 i ( Aii−1 f i ) i
расчет значений узлов на границе путем решения полученной системы уравнений; Третий этап состоит в получении значений узлов подобластей по формулам u i = A ii−1 ( f i − Ai 0 u 0 ) . Принципы динамического планирования вычислений При запуске расчетов создаются 2 грид-потока и посылаются Менеджеру Alchemi, где ставятся в очередь на исполнение. Для того чтобы задействовать все доступные ресурсы, подключенные к Alchemi сети, центральное приложение создает новые потоки, которые попадают в очередь Менеджеру Alchemi. После запуска грид-поток уведомляет центральное приложение о своем запуске, и ему центральным приложением назначаются расчеты в соответствии с принципами, описанными ниже. При отключении Исполнителя Менеджер Alchemi уведомляет центральное приложение об этом, которое в свою очередь производит перераспределение заданий с данного Исполнителя. Первый этап метода Задача решения матричного уравнения разбивается на задачи по количеству подобластей, каждая из которых соответствует обработке соответствующей области. Необходимо отметить, что обработка подобластей может выполняться независимо от других подобластей. Кроме того, каждая из полученных подзадач разбивается на части в соответствии с разбиением множества граничных узлов подобласти. Таким образом получается достаточно мелкое разбиение исходной задачи на вычисления по 2-4 секунды (Core 2 Duo). Однако для обработки узлов границы подобласти необходима предварительная факторизация матрицы подобласти ( Aii ), которая занимает некоторое
время. Однако после факторизации граничные узлы более быстро.
232
мы
можем
обрабатывать
Вначале между запущенными грид-потоками распределяются подобласти и отсылается по 2 задания на обработку границ узлов (одно задание всегда держится в запасе на удаленном узле, чтобы избежать простоев вычислительных ресурсов, связанных в передачей данных). Если грид-потоку нужно задание, а все подобласти уже распределены, то выбирается подобласть наименее посчитанная («медленный» узел или тяжелая подзадача) и передается потоку вместе с незанятыми другими грид-потоками узлами границы подобласти. Когда поток досчитает подобласть (или область будет досчитана другим потоком), то ему назначается другая подобласть. Таким образом, если уже все подобласти и узлы их границ распределены по потокам, то производится их повторное распределение. Это полезно в том случае, если некоторые удаленные машины очень сильно нагружены другими задачами и не могут с номинальной скоростью обработать наши задания, но у нас имеются свободные машины, которые также могут заняться этими вычислениями. Первый этап метода завершается, когда все подобласти обсчитаны (обсчитаны все узлы границ подобластей). Второй этап метода Данный этап полностью выполняется на центральной машине. Исполнители на данном этапе не выполняют никаких вычислений. Однако на Исполнителях сохраняются полученные данные о подобластях. Третий этап метода Выбор грид-потоков для расчета значений внутренних узлов подобласти происходит с учетом данных о подобластях, посланных грид-потоками на первом этапе. Таким образом, планирование происходит таким образом, чтобы уменьшить объем передаваемых данных. При этом также возможно дублирование расчетов одной и той же подобласти сразу на нескольких грид-потоках. Распределение подобластей между потоками происходит до тех пор, пока все подобласти не будут посчитаны. Литература 1. Ильин В.П., Карпов В.В., Масленников А.М. Численные методы решения задач строительной механики (справочное пособие) Минск 1990.
233
2. 3.
http://www.alchemi.net – официальный сайт проекта Alchemi .NET. http://www.intel.com/software/products/mkl – официальный сайт библиотеки MKL.
РАЗВИТИЕ СИСТЕМЫ ПАРАЛАБ ДЛЯ ИЗУЧЕНИЯ И ИССЛЕДОВАНИЯ ПАРАЛЛЕЛЬНЫХ МЕТОДОВ РЕШЕНИЯ СЛОЖНЫХ ВЫЧИСЛИТЕЛЬНЫХ ЗАДАЧ Д.Ю. Лабутин, А.А. Лабутина, С.В. Ливерко
Нижегородский государственный университет Характеристика системы В работе представлен программный комплекс ПараЛаб для изучения и исследования параллельных методов решения сложных вычислительных задач, который отвечает следующим основным требованиям: позволяет проводить как реальные параллельные вычисления на многопроцессорной вычислительной системе, так и имитировать такие эксперименты на одном последовательном компьютере с визуализацией процесса решения сложной вычислительной задачи. При проведении имитационных экспериментов предоставлена возможность для пользователя: определить топологию параллельной вычислительной системы для проведения экспериментов, задать число процессоров в этой топологии, установить производительность процессоров, выбрать характеристики коммуникационной среды и способ коммуникации; осуществить постановку вычислительной задачи, для которой в составе системы ПараЛаб имеются реализованные параллельные алгоритмы решения, выполнить задание параметров задачи; выбрать параллельный метод для решения выбранной задачи; установить параметры визуализации для выбора желаемого темпа демонстрации, способа отображения пересылаемых между процессорами данных, степени детальности визуализации выполняемых параллельных вычислений; выполнить эксперимент для параллельного решения выбранной задачи. При этом в системе ПараЛаб предусмотрена возможность сформировать несколько различных заданий для проведения экспериментов с отличающимися типами многопроцессорных систем,
234
задач или методов параллельных вычислений, для которых выполнение эксперимента может происходить одновременно (и режиме разделения времени). Одновременное выполнение эксперимента для нескольких заданий позволяет сравнивать динамику решения задачи различными методами, на разных топологиях, с разными параметрами исходной задачи. Для организации анализа полученных данных при проведении длительных вычислений система обеспечивает возможность проведения серии экспериментов в автоматическом режиме с запоминанием результатов в журнале экспериментов; накапливать и анализировать результаты выполненных экспериментов; по ним система позволяет построить графики зависимостей, характеризующих параллельные вычисления (времени решения, ускорения, эффективности), от параметров задачи и вычислительной системы. Одной из важнейших характеристик системы является возможность выбора способов проведения экспериментов. Эксперимент можно выполнить в режиме имитации, т.е. на одном процессоре без использования каких-либо специальных программных средств типа библиотек передачи сообщений. Кроме того, в рамках системы ПараЛаб обеспечивается возможность проведения вычислительного эксперимента в режиме удаленного доступа к вычислительному кластеру. Для реальных экспериментов на многопроцессорных вычислительных системах зависимости времени и ускорения от параметров задачи и вычислительной системы строятся по набору результатов проведенных экспериментов. При построении зависимостей для экспериментов в режиме имитации используются теоретические оценки в соответствии с имеющимися моделями параллельных вычислений. Используемые модели отображают реальные процессы, протекающие при решении вычислительной задачи при помощи параллельного алгоритма. Для каждого из проведенных экспериментов имеется возможность восстановить его для повторного проведения. Кроме того, обеспечено ведение журнала экспериментов с записью туда постановки задачи, параметров вычислительной системы и полученных результатов. Реализованные таким образом процессы позволяют освоить теоретические положения и помогают формированию представлений о
235
методах построения параллельных алгоритмов, ориентированных на решение конкретных прикладных задач. Расширение множества реализованных задач Первоначально в системе ПараЛаб были реализованы следующие основные классы задач: сортировка данных, матричные операции (задача умножения матрицы на вектор, умножения матриц и решения систем линейных уравнений) и задачи обработки графов (поиск минимального охватывающего дерева и кратчайшего пути в графе). Сейчас этот набор расширен задачей глобальной оптимизации и задачей решения дифференциальных уравнений в частных производных. Для решения задачи глобальной многоэкстремальной оптимизации реализован параллельный индексный метод. Для решения дифференциальных уравнений в частных производных (на примере решения задачи Дирихле для уравнения Пуассона) предлагается параллельное обобщение метода Гаусса-Зейделя. Для более наглядной визуализации процессов решения новых задач потребовалась визуализация трехмерных объектов, которая была реализована в системе ПараЛаб с использованием технологии Microsoft DirectX. Поддержка дополнительных модулей (плагинов) в системе ПараЛаб Текущая версия системы ПараЛаб допускает расширение функциональности путем добавления модулей для решения новых задач, не входящих в стандартную комплектацию системы. Для этого предусмотрена возможность написания дополнительных библиотек (плагинов) сторонними разработчиками. Система ПараЛаб разработана на платформе Microsoft .NET с использованием языка С# и объектно-ориентированного подхода. Каждая задача (например, задача умножения матриц) в системе ПараЛаб представлена абстрактным классом-наследником класса Task (MatrixMultTask: Task). Все поддерживаемые методы решения задачи представляются как классы, наследуемые от задачи (например, FoxMatrixMultTask: MatrixMultTask - алгоритм Фокса для умножения матриц). Чтобы добавить в систему новый тип задач, необходимо добавить в рабочий каталог системы ПараЛаб файлы динамических библиотек (.dll), представляющих собой библиотеки классов Microsoft .NET Framework. В одном из этих файлов должен содержаться класс,
236
производный от абстрактного класса Task, который описывает новую задачу. В остальных добавленных файлах должны быть реализованы классы-наследники этого промежуточного класса, которые будут соответствовать конкретным методам решения задач этого типа. Итак, создание описанных выше сборок и помещение их в рабочий каталог системы - это все, что необходимо для добавления поддержки в системе ПараЛаб новой задачи. После запуска система ПараЛаб произведет сканирование файлов с расширение DLL в своем рабочем каталоге и, используя механизм рефлексии типов .NET, определит те из них, которые содержат описания абстрактных классов, наследуемых от ParaLab.Task — они будут соответствовать добавляемым типам задач. Неабстрактные же классы, наследуемые от них, соответственно, определяют конкретные методы решения. Поддержка многопроцессорных и многоядерных архитектур в системе ПараЛаб Последняя версия системы ПараЛаб позволяет эмулировать параллельные эксперименты не только на системе, состоящей из «простых» однопроцессорных и одноядерных компьютеров. Каждый компьютер может содержать несколько процессоров, а каждый процессор - несколько ядер. Ядро системы не ограничивает количество ядер и процессоров, но для удобства визуализации были введены следующие ограничения: число процессоров в рамках одного вычислительного узла (сервера) может равняться 1 или 2, а число ядер в процессоре – 1, 2 или 4. При этом процесс обмена данными между ядрами разделяется на 3 этапа: 1. передача данных в рамках одного вычислительного узла (в том числе между ядрами разных процессоров), а также отправка ядрами данных во внешнюю сеть (через сетевой адаптер); 2. передача данных между отдельными серверами по локальной сети; 3. прием данных в рамках одного вычислительного узла (от сетевого адаптера).
В связи с тем, что архитектура вычислительной системы существенно усложнилась (по сравнению с более ранними версиями системы ПараЛаб), использование заранее определенных формул для 237
подсчета времени обмена данными невозможно. С этой целью используются результаты имитации. Разработчик модуля визуализации задачи должен указать следующее: 1. время выполнения базовой вычислительной операции алгоритма (например, для алгоритмов сортировки - это операция сравнения); время выполнения операции должно быть выражено в числе стандартных операций с вещественными числами; 2. количество базовых операций, которые выполняются каждым ядром вычислительной системы на каждой итерации алгоритма; 3. размер единицы обмена данными, выраженный в байтах; 4. при формировании списка пар ядер, которые будут обмениваться данными на текущей итерации, необходимо указать не только номера ядра-отправителя и ядра-получателя, но и объем передаваемых в этой паре данных в условных единицах. По этой информации можно произвести автоматизированный расчет времени, потраченного на вычисления и на передачу данных в соответствии с предлагаемой универсальной моделью параллельных вычислений. Как и ранее, для упрощения модели предполагается, что процессы передачи данных и выполнения вычислений ядрами разделены во времени: на время выполнения обменов данными вычисления на всех ядрах приостанавливаются. Интеграция модуля анализа трассы выполнения параллельной программы В настоящий момент система ПараЛаб предоставляет пользователю развитые средства анализа параллельных алгоритмов в режиме имитации. Среди таких средств - визуализация процесса решения задачи при помощи параллельного метода, в ходе которой отображаются вычисления, выполняемые процессорами кластера, а также коммуникационные операции. По результатам проведенных экспериментов система позволяет построить оценки эффективности параллельного алгоритма. Однако на практике часто встречается ситуация, когда конкретная реализация того или иного параллельного метода, будучи запущена на
238
реальной многопроцессорной вычислительной системе, не демонстрирует того ускорения, которое было получено при анализе модели данного параллельного метода. Возникает задача профилирования параллельного приложения. Библиотека передачи сообщений MPI имеет расширение – библиотеку MPE (Multi-Processing Environment), содержащую необходимые средства для анализа производительности MPI программ. Если параллельное приложение скомпилировано и запущено с библиотекой MPE, то по результатам запуска формируется файл с информацией о процессе выполнения приложения на вычислительной системе. Мы планируем интегрировать в систему ПараЛаб модуль анализа и визуализации MPE-данных. Это позволит анализировать процесс выполнения реального вычислительного эксперимента на реальной многопроцессорной вычислительной системе с использованием развитых средств системы ПараЛаб. Визуализация процесса выполнения эксперимента позволит обнаружить источники недостаточного ускорения параллельных вычислений, простаивающие процессоры, блокирующие передачи сообщений и т.п. ФОРМИРОВАНИЕ ОБУЧАЮЩЕЙ СРЕДЫ В ОБЛАСТИ ПРИКЛАДНОГО И ПАРАЛЛЕЛЬНОГО ПРОГРАММИРОВАНИЯ Е.С. Логунова, Н.В. Фролова, В.С. Холушкин
СарФТИ, Саров Параллельные вычисления на сегодняшний день перешли из узкоспециализированных технологий в повседневную жизнь, являясь перспективной и максимально востребованной областью IT. Технология является динамично развивающейся и соответственно требует инновационных подходов к образованию. Подготовка специалистов в сфере параллельных вычислений началась в СарФТИ ещё в 1990-х годах, благодаря уникальному кадровому потенциалу математического отделения ВНИИЭФ и востребованности специалистов данного профиля. Программы подготовки ориентированы на решение задач математического моделирования сложных физических проблем. В учебном процессе рассматриваются авторские методики решения 239
задач, классические схемы, гетерогенные вычислительные среды. Имеющаяся материально-техническая база позволяет проводить обучение не на эмуляторах, а на действующих неоднородных вычислительных кластерных системах с использованием специализированного программного обеспечения. Обучение ведётся в рамках образовательных программ двух специальностей: «Информационные системы и технологии», «Вычислительные машины, комплексы, системы и сети». Сверх часов, отведённых на освоение основной образовательной программы, студенты имеют возможность дополнительно участвовать в проектных работах в совместной с компанией «Интел» лаборатории, а также работать в Центре информационных технологий и программирования СарФТИ, получая педагогический опыт работы со студентами младших курсов и мотивированными школьниками. ПАРАЛЛЕЛЬНАЯ МОДИФИКАЦИЯ АЛГОРИТМА ДВОЙНОГО ОПИСАНИЯ ДЛЯ МНОГОГРАННОГО КОНУСА С.С. Лялин
Нижегородский государственный университет Пусть дана матрица A ∈ R m×d . Многогранным выпуклым конусом C в пространстве R d называют множество решений системы линейных неравенств Ax ≥ 0 : (1) C = x ∈ R d | Ax ≥ 0 . Кроме представления (1) конус C может быть записан в параметрическом виде, а именно для некоторой матрицы B ∈ R d ×n : (2) C = x ∈ R d | x = Bλ , λ ∈ R n+ , где R + – неотрицательные действительные числа. Алгоритм двойного описания [6], известный также как алгоритм МоцкинаБургера, по одному из описаний, (1) или (2), строит другое. При этом метод всегда находит неприводимую систему векторов в матрице B (неприводимую систему неравенств в матрице A соответственно). Везде далее мы будем считать, что рассматривается задача перехода от (1) к (2). Со времени публикации [6] появилось множество модификаций алгоритма (см. например, [2, 5]). На основе модификации [2] и
{
{
240
}
}
реализации [3] предлагается параллельная версия алгоритма двойного описания. Предварительные результаты по улучшению версии [2] уже докладывались ранее в [4]. Автору известна и другая параллельная реализация [1] модификации алгоритма [6]. Оригинальный алгоритм [2] имеет итеративный характер: на каждой из итераций рассматривается очередное неравенство из матрицы A и проводятся все необходимые вычисления, после чего алгоритм переходит к следующему неравенству. Анализ потока данных в [2] показал, что можно построить такой параллельный алгоритм, который не имеет обязательных барьеров (т.е. ситуаций, когда все потоки синхронизируются в одной точке исполнения) в вычислениях как между различными стадиями одной итерации, так и между соседними итерациями. Предлагаемый алгоритм работает на многопроцессорной машине с общей памятью и использует только дешёвый способ синхронизации через атомарно модифицируемые целочисленные переменные (interlocked-операции). Это позволило получить удовлетворительные результаты по масштабируемости алгоритма даже на тех входных данных, обработка которых занимает малое время и содержит достаточно много итераций («малые» данные). На графике показано ускорение в вычислениях полученное на 4-процессорной машине Intel Xeon 2.4ГГц при использовании различного числа процессоров. Подобраны такие исходные данные, на которых либо 1) последовательный алгоритм имеет малое среднее время исполнения одной итерации, т.е. данные, на которых параллельный алгоритм имеет высокую гранулярность параллелизма (данные A, C, D), либо 2) порождает большую (по сравнению со входом) матрицу B (данные B). В скобках указаны параметры решаемых задач и время, требуемое на решение последовательным алгоритмом. Реализация использует потоки Win32 API операционной системы Microsoft Windows.
241
Масштабируемость алгоритма для разных наборов входных данных
4.5
Данные A (d = 10, m = 100, n = 6522, 5.08 сек.)
4 Ускорение, раз
3.5
Данные B (d = 17, m = 32, n = 65536, 6.51 сек.)
3 2.5
Данные C (d = 9, m = 729, n = 4862, 46.7 сек.)
2 1.5 1
Данные D (d = 24, m = 3461, n = 168, 67.3 сек.)
0.5 0 1
2
3
4
идеальная масштабируемость
Число процессоров
Рис. 1.
В дополнение к высокоуровневой параллельности, по сравнению с оригинальной реализацией [3], схема вычислений была изменена так, чтобы использовать низкоуровневый параллелизм по данным через векторные инструкции целевой машины (использовались Intel SSE, Intel SSE 2). Особое внимание уделяется локальности вычислений, т.е. эффективному использованию кэш-памяти на многопроцессорной машине, что достигается специальным разбиением обрабатываемых данных на блоки и систематическим использованием предвыборки из основной памяти (prefetch-инструкции). Кроме нахождения двойного описания для «малых» задач, которые встречаются в приложениях, где алгоритм двойного описания многократно вызывается как часть другого алгоритма, представляет интерес решения поставленной задачи для «больших» данных, которые также появляются на практике и, порою, настолько велики, что либо время работы алгоритма на одной (хотя бы и многопроцессорной) машине с общей памятью не является практически удовлетворительным, либо данные просто не помещаются в память одной машины. С целью решения таких задач идёт работа над реализацией данного алгоритма для машин с распределённой памятью. Литература 1. Агафонов Е.А., Земскова Е.Л., Золотых Н.Ю. Параллельный алгоритм построения остова многогранного конуса и его программная реализация.
242
2.
3.
4.
5.
6.
Информационный бюллетень Ассоциации математического программирования № 10. Конференция "Математическое программирование и приложения" (тезисы докладов). - Екатеринбург: УрО РАН, 2003. - С.15–16. Золотых Н.Ю. Новая модификация метода двойного описания для построения остова многогранного конуса. III Всероссийская конференция «Проблемы оптимизации и экономические приложения». Тезисы докладов. – Омск, 2006. – С. 108. Золотых Н.Ю. Skeleton – программа построения остова многогранного конуса. Информационный бюллетень Ассоциации математического программирования. № 11. Конференция «Математическое программирование и приложения». – Екатеринбург, 2007. – C. 120–121. Золотых Н.Ю., Лялин С.С. Оптимизация одной модификации алгоритма двойного описания для многогранного конуса. Технологии Microsoft в теории и практике программирования. Материалы конференции. Под ред. проф. Р.Г. Стронгина. – Нижний Новгород: изд-во Нижегородского госуниверситета, 2007. – С. 333–336. K. Fukuda and A. Prodon. Double description method revisited. In M. Deza, R. Euler, and I. Manoussakis, editors, Combinatorics and Computer Science, volume 1120 of Lecture Notes in Computer Science, pages 91–111. Springer-Verlag, 1996. T.S. Motzkin, H. Raiffa, G.L. Thompson, and R.M. Thrall. The double description method. In H. W. Kuhn and A. W. Tucker, editors, Contributions to the Theory of Games – Volume II, number 28 in Annals of Mathematics Studies, pages 51–73. Princeton University Press, Princeton, New Jersey, 1953.
243
ПОДХОД К ПОСТРОЕНИЮ КАРКАСА ПАРАЛЛЕЛЬНЫХ ПРИЛОЖЕНИЙ МАТЕМАТИЧЕСКОГО МОДЕЛИРОВАНИЯ В ОБЛАСТИ МЕХАНИКИ СПЛОШНЫХ СРЕД, ОСНОВАННЫЙ НА DSL А.В. Медведев
GDT Software Group Многие из существующих пакетов прикладных программ, предназначенные для численного моделирования в области механики сплошных сред, обладают тем недостатком, что расширение их возможностей за счёт модификации используемых методов и алгоритмов практически невыполнимо. Кроме того, так как многие из них являются коммерческими продуктами, то они ориентированы на привлечение как можно большего круга покупателей и поэтому обладают лишь наиболее общими базовыми алгоритмами, что не позволяет проводить с их помощью специализированные исследования. Создание системы, в которой замена или расширение вычислительного модуля представляла бы относительно простую, а главное – независимую от значительных изменений в код самого пакета процедуру, является значительным шагом на пути всё более широкого внедрения в промышленную практику современных вычислительных комплексов. Идея создания разного рода каркасов приложений математического моделирования в области механики сплошных сред не нова и нетрудно обнаружить ряд успешных её реализаций на том или ином уровне. Главное в самой этой идее – снизить трудоёмкость кодирования сложных численных схем за счёт введения некоторой степени автоматизации многократно повторяющихся операций. Чаще всего предлагаются готовые блоки, такие как библиотеки функций или библиотеки классов или шаблонов для того или иного языка программирования. Программист может воспользоваться некоторыми базовыми численными методами, некоторыми примитивами для работы с сетками, так же как и некоторыми примитивами для распараллеливания кода. Однако, всё это лишь способы дать в руки разработчика готовые вспомогательные инструменты, в то время как главная трудность, связаная непосредственно с программированием численной схемы на одном из языков высокого уровня – Си, С++ или FORTRAN остаётся нерешённой. Трудность состоит в том, что 244
полноценное освоение этих языков не всегда доступно специалистам по численным схемам, и наоборот, эксперты в области одного из трёх этих языков редко являются одновременно и специалистами по численному моделированию. Кроме того, сами выразительные средства каждого из этих трёх языков многие считают не вполне развитыми для довольно сложных задач, которые встают перед современными программистами в сфере механики сплошных сред. Разработчики компании GDT Software Group на данный момент рассматривают возможность более радикального подхода к проблеме снижения сложности программирования численных схем. В основе его лежит, во-первых, идея модификации уже имеющейся связки законченных и отлаженных на параллельных системах пакетов GasDynamicsTool и ScientificVR (S-VR), чтобы воспользоваться уже заложенной в их архитектуру модульностью для построения универсального каркаса приложений, а во-вторых, в активном использовании идей метапрограммирования и, в частности, языков программирования предметной области (Domain Specific Languages). Остановимся подробнее на каждой из этих ключевых идей. Программные пакеты GasDynamicsTool и ScientificVR обладают следующими важными особенностями. GasDynamicsTool является сам по себе в высокой степени модульным приложением. Имеется модуль, предоставляющий развитый графический интерфейс пользователя, позволяющий легко задавать достаточно сложные конфигурации начальных и граничных условий. Имеются модули, обеспечивающие сохранение начальных условий в различных форматах с сохранением специфической объектной иерархии элементов счётной области. За восстановление и сохранение результатов расчёта в виде “снимков” счётной области в различных форматах отвечают также отдельные модули. Наконец, в виде изолированных модулей выполнены собственно коды численных схем, реализованных в пакете. Параллельность в пакете реализована таким образом, что однопроцессорный вариант отличается от параллельного опять же использованием набора модулей. Например, параллельная версия пакета имеет особую разновидность, называемую гибридной версией (GDT Hybrid, [1]) , которая позволяет запускать счётные задачи на параллельных системах и интерактивно управлять ими с рабочих станций, не включённых в состав кластера. При этом важно, что пользователь не видит разницы в работе с кластерной системой и однопроцессорной версией для персонального компьютера – 245
интерфейс пакета в обоих вариантах в точности совпадает, а “солверы” пакета просто вынесены в отдельный модуль, работающий удалённо, на кластере. Важно также отметить, что не в последнюю очередь благодаря такой архитектуре пакета достаточно широк диапазон поддерживаемых архитектур и операционных систем: поддерживаются все процессоры, которые наиболее популярны в сфере высокопроизводительных вычислений, все современные версии Linux, а также Solaris и MacOS X, работающие на различных аппаратных средствах для параллельных вычислений: c кластерной архитектурой Beowulf-типа, NUMA и SMP архитектурами, пакет готов к работе также и в системах GRID. Ещё одним важным следствием модульной архитектуры можно назвать тесную интеграцию пакета моделирования с визуализатором S-VR [2], который позволяет анализировать полученные в результате расчёта данные с использованием новейших подходов к трёхмерному Volume Rendering'у, в том числе с технологией Ray Tracing [3], реализованной на базе современных графических процессоров nVidia и ATI. Получаемые изображения отличаются особой реалистичностью и могут быть выведены в стереоскопическом формате на специальном оборудовании. Интеграция такова, что S-VR фактически можно рассматривать как отдельный модуль визуализации, входящий в пакет моделирования GasDynamicsTool. Это дало возможность реализовать уникальную для параллельных CFD-пакетов технологию – визуализацию на лету ("on-the-fly"), когда все операции по отображению данных могут быть выполнены непосредственно в ходе расчёта без его остановки – вы можете наблюдать развитие процессов в модели, даже если моделируется задача в несколько миллиардов ячеек без остановки процесса моделирования и сохранения промежуточных файлов. Таким образом, пакет GasDynamicsTool представляется неплохим плацдармом для построения универсального каркаса параллельных приложений численного моделирования. Единственная серьёзная функция, которая отсутствует в его составе – это сеточный генератор (все солверы на данный момент работают на равномерных кубических сетках). Далее, несколько слов о том, почему именно концепция языков программирования предметной области представляется разработчикам ключевой идеей. К сожалению, лишь три языка общего назначения 246
нашли широкое распространение в современном мире параллельного программирования численных моделей – Си, С++ и FORTRAN. Каждый из них достаточно универсален, но при этом не слишком развит для уверенно контролируемой и предсказуемой по качеству реализации действительно сложных задач. Это выражается в том, что даже несмотря на такие мощные концепции, как объектноориентированное программирование и простейшие элементы метапрограммирования с помощью шаблонов, внесённые в язык программирования С++, практика показывает, что он не способен действительно эффективно снижать сложность реализации численных схем. Это же касается и стандарта MPI, который также не слишком преуспел в сокращении сложности параллельного программирования. Использование давно проверенной концепции специализированных языков предметной области взамен универсальных языков кажется разумным выходом. Говоря о специализированных языках, имеется в виду не просто какой-то один синтетический язык для описания численной схемы какого-то определённого вида, речь идёт о целой группе описательных и не только описательных языков, которые могли бы помочь программисту в формулировании на машинном языке всего, что относится к реализации численной схемы в составе полноценного пакета, начиная от перечня используемых параметров и формального описания всех схемных вычислений, заканчивая текстовой справкой для пользователя по вводу констант и описанием вида диалоговых окон. Особенность этой идеи описываемого подхода именно в том, чтобы минимизировать сложность программирования новой схемы для человека, который в гораздо большей степени владеет предметной областью, то есть построением численных схем, чем приёмами работы с языками программирования общего назначения, такими как C++. Вся концепция языков программирования предметной области (DSL) направлена как раз на это, вот почему использование семейств или даже иерархий DSL-языков представляется тут многообещающим решением [4]. В докладе рассматривается примерная структура предлагаемого подхода на основе параллельного пакета GasDynamicsTool с учётом всех описанных идей, даётся краткое представление уже разработанных в рамках этого подхода описательных DSL и предварительных проектов DSL описания. схемных вычислений.
247
Литература 1. Babayev D.B., Medvedev A.V. Architecture of Parallel CFD Code for Hybrid Computer Systems // Parallel CFD 2003, May 13-15, 2003, Moscow, Russia. p. 285 - 287 2. Zibarov A.V., Babayev D.B., Mironov A.A., Komarov I.Yu., Konstantinov P.V. Modern Visualization Techniques in ScientificVR(R) Package. // Proceedings of 10th International Symposium on Flow Visualization. August 26-29, 2002, Kyoto, Japan. 3. Engel K., Hadwiger M., Kniss J., Rezk-Salama C. High-Quality Volume Graphics on Consumer PC Hardware. Course notes for course No 42 at SIGGRAPH 2002. 4. . Lugovsky V.S Using a hierarchy of Domain Specific Languages in complex Software systems design. ИДЕЯ ПАРАЛЛЕЛЬНОГО АЛГОРИТМА СИНТЕЗА СТРАТЕГИЙ ОБСЛУЖИВАНИЯ ГРУППИРОВКИ СТАЦИОНАРНЫХ ОБЪЕКТОВ Д.В. Минаев, Ю.С. Федосенко, А.Ю. Шлюгаев
Волжская государственная академия водного транспорта Введение Исследуется задача синтеза стратегий одностадийного обслуживания автономно перемещающимся процессором − mobileпроцессором [1] группировки стационарных объектов, дислоцированных в границах существенно протяженной двумерной рабочей зоны. На содержательном уровне рассматриваемая математическая модель обслуживания адекватно описывает технологию снабжения топливом группировки плавучих дизель-электрических добывающих комплексов (ПДК), осуществляющих русловую добычу нерудных строительных материалов (НСМ). За навигацию объемы добычи НСМ, широко используемых в дорожном, гражданском и промышленном строительстве, достигают нескольких десятков миллионов тонн. Рабочая зона группировки ПДК представляет собой крупномасштабный судоходный полигон со сложной русловой
248
топологией. Для иллюстрации дислокации группировки ПДК.
на
рис.1
представлен
9
2 1
11
10 12
6
13 8
7
пример
4
3
5
14
Рис. 1. Пример дислокации группировки ПДК в крупномасштабном судоходном полигоне
В условиях высоких расходов по содержанию ПДК и цен на дизельное топливо, сокращения возможностей предприятий по созданию его технически значимых оперативных запасов основная задача лица, принимающего решения, − диспетчера группировки заключается в минимизации экономических потерь, связанных с непроизводительными простоями добывающих комплексов. При этом существенным обстоятельством, оказывающим влияние на работу диспетчера, являются жесткие ограничения на допускаемую штатным регламентом длительность Δ формирования стратегий обслуживания. Очевидно, что при должной формализации технологических аспектов вышеописанная проблема может быть конструктивно решена путем создания компьютерных систем поддержки организационного управления процессами снабжения группировки ПДК дизельным топливом. Основным препятствием, сдерживающим создание таких систем, является отсутствие достаточно быстро работающих алгоритмов синтеза оптимальных и субоптимальных стратегий обслуживания. И хотя определенное продвижение в разработке таких алгоритмов было получено на основе идеологии динамического программирования [2–3], все же их вычислительная сложность в зависимости от n − количества стационарных объектов − остается высокой и оценивается величиной O(n 2 2 n −1 ) . Как показали представительные серии вычислительных экспериментов на случайных выборках начальных условий, уже для группировки из двенадцати – тринадцати объектов продолжительность синтеза оптимальной стратегии может существенно превышать значение Δ , что неприемлемо для управления снабжением топливом в оперативном режиме.
249
В силу указанного обстоятельства проблема разработки методик синтеза оптимальных и субоптимальных стратегий обслуживания, требующих при своей компьютерной реализации приемлемых для практического применения временных затрат, остается актуальной и, как представляется авторам, возможным направлением ее решения является разработка и реализация параллельных алгоритмов. Математическая модель обслуживания и постановка экстремальной задачи Имеется совокупность On = {o(1), o(2),..., o(n)} стационарных
связного объектов, расположенных в вершинах i = 1, n неориентированного графа G с базисной вершиной o . Все объекты совокупности подлежат однократному одностадийному On обслуживанию mobile-процессором P , в начальный момент времени находящимся в вершине o . Для каждого объекта o(i ) ( i = 1, n ) известен момент времени t (i ) , начиная с которого осуществимо его обслуживание; заданы функции: τ (i, t ) − продолжительности обслуживания, если оно начинается в момент и t, ϕ (i, t ) − индивидуального штрафа за обслуживание, завершающееся в момент t . Указанные функции являются монотонно возрастающими по второму аргументу в нестрогом смысле. Укажем, что типичным для практических приложений является задание функций продолжительностей обслуживания в виде констант ( τ (i, t ) = dt (i ) ) и функций индивидуального штрафа в виде кусочно-линейных зависимостей вида: 0, при t ≤ t (i ) + dt (i ) + tf (i ) ⎧ ϕ (i, t ) = ⎨ ⎩a (i ) ⋅ (t − tf (i )), при t > t (i ) + dt (i ) + tf (i ) Задана матрица V = {v(i, j )} размерности (n + 1) ⋅ (n + 1) , где
v(i, j ) − продолжительность перемещения процессора из вершины i в вершину j графа G непосредственно ( v(i, j ) = ∞ , если такое перемещение недопустимо); время перемещения из вершины i в вершину j может оказаться меньшим v(i, j ) , если переход осуществляется через некоторые промежуточные вершины. Также известны элементы матрицы L = {l (i, j )} − продолжительности 250
перемещений по кратчайшему пути между каждой парой вершин (очевидно, что матрица L получается из матрицы V путем применения алгоритма Флойда [4]). Стратегия обслуживания определяется перестановкой ρ = (i1 , i 2 ,..., i n ) элементов множества {1,2,...., n} . Объект с номером ik в стратегии ρ обслуживается k -м по очереди; момент завершения обслуживания объекта с номером i k обозначаем через t * ( ρ , i k ) . Считается, что реализация стратегии компактна, а перемещение от каждого обслуженного объекта к очередному выполняется по кратчайшему пути. Совокупный штраф при обслуживании объектов n
согласно стратегии ρ есть Q ( ρ ) = ∑ ϕ ( i , t * (ρ , i )) . Экстремальная i =1
задача записывается как min Q( ρ) .
(1)
ρ
Задача (1) NP-трудна, поскольку к ней полиномиально сводима задача коммивояжера; оценка продолжительности синтеза в зависимости от размерности задачи имеет экспоненциальный характер. Решение задачи (1) может быть получено путем пошаговой реализации вычислительного процесса по приводимым ниже рекуррентным соотношениям динамического программирования Σ(t , i, S ) = min {Σ p ( D * (i, t ) − l ( j , i ), i, S \ {o( j )}, j ) + ϕ (i, t )} o j ∈S
Σ(0,0, ∅) = 0 .
(2) В системе (2) приняты следующие обозначения: t – произвольный момент принятия решения; S – совокупность объектов из On , которые были обслужены раньше, чем o(i ) ; D * (i, t ) − требуемый момент начала обслуживания объекта o(i ) , если оно должно завершиться в момент времени t; Σ(t , i, S ) – минимально T p = [t ( j ) + τ ( j , (t ( j ))) + l ( j , i ), D * (i, t )] ; возможная величина суммарных затрат при переводе управляемой системы обслуживания из начального состояния A0 = (0,0, ∅) в состояние (t , i, S ) , определяемая по формуле
251
⎧⎪∑ ( D * (i, t ) − l ( j , i ), j , S \ {o( j )}), при D * (i, t ) > t (i ) ∑ (t , i, S , j ) = ⎨ min ∑ (t − l ( j, i), j, S \ {o( j )}), при D * (i, t ) = t (i) p
⎪⎩
t p ∈T p
p
Описание параллельного алгоритма синтеза оптимальных стратегий обслуживания Формулы (2) – рекуррентные соотношения динамического программирования для решения задачи (1), ориентированные на организацию "прямого счета", т.е. в порядке роста значений аргумента t функции Беллмана Σ(t, i, S). Описание соответствующей вычислительной процедуры приведено в [5]. Ниже излагается модификация указанной процедуры, использующая возможности распараллеливания, а также идеи метода ветвей и границ. Введем оператор R раскрытия состояния: если Х = (t, i, S) – произвольное, отличное от финального состояние системы (т.е. S ⊂ On \ {o(i)}), то R(t, i, S) – множество состояний, порождаемых состоянием Х, т.е. непосредственно следующих за этим состоянием. Раскрыв начальное состояние A0 и последовательно раскрывая все далее получаемые состояния, мы в конечном итоге дойдем до совокупности финальных состояний системы вида (t, i, On \ {o(i)}). Определим также оператор R*, который, в отличие от оператора R, раскрывает не состояния, а их расширения – записи. Записью будем называть кортеж (t, i, S, z, z*, c, h, v), где (t, i, S) = Х – состояние системы, z – получаемый номер этого состояния, z* – номер непосредственно предшествующего состояния, c – стоимость определяемой построенной совокупностью записей траектории от начального состояния до состояния Х, h и v – соответственно нижняя и верхняя оценки стоимостей всех возможных полных траекторий из A0 в финальные состояния, начальная часть которых совпадает с траекторией из A0 в X. Нижняя оценка h есть сумма с + ΣH(t, i, On\ S), где через H Σ (t, i, On\ S) обозначена сумма ∑ ϕ min (t , i, j ) , в которой o( j )∈S
ϕmin(t, i, j) = ϕ(i, tmin*(t, i, j)) – величина штрафа по объекту o(j) при
условии, что его обслуживание начинается вслед за объектом o(i), т.е. в момент времени tmin(t, i, j) = max(t + l(i, j), t(j)); при этом tmin*(t, i, j) – момент завершения обслуживания o(j), т.е. tmin(t, i, j) +τ(j, tmin(t, i, j)). Очевидно, что в силу монотонности функции штрафа, величина 252
ΣH(t, i, On\ S) является неуменьшаемой нижней оценкой оптимального штрафа по объектам множества On\ S. Верхняя оценка v есть сумма с + ΣV(t, i, On\ S), где ΣV(t, i, On\ S) – верхняя оценка оптимального суммарного штрафа по объектам множества On\ S при их обслуживании вслед за o(i). Значение последней предлагается вычислять согласно следующей пошаговой процедуры, относящейся к классу жадных алгоритмов[6]. 1. Производится инициализации первоначальных значений переменных алгоритма: S = On\ S, i = i , t = t , ΣV(t, i, On\ S) = 0. 2.1. В качестве очередного объекта, принимаемого к обслуживанию, выбирается тот объект o(k)∈ S , который обеспечивает минимум приращения нижней оценки суммарного штрафа по объектам множества S \ {o(k )} :
min{Σ H (t * (t , i, k ), k , S \ {o(k )}) − Σ H (t , i, S \ {o(k )})} . k ∈S
2.2. С учетом номера выбранного объекта обновление значений переменных алгоритма: S = S \{o(k)},
производится
t = tmin*(t, i , k), ΣV(t, i, On\ S) = ΣV(t, i, On\ S) + ϕmin( t , i , k), i = k. 2.3. Если S ≠ ∅, то переход на шаг 2.1, в противном случае – останов. Будем говорить, что запись Z = (t, i, S, z, z*, c, h, v) доминируется записью Z1 = (t1, i, S1, z1, z1*, с1, h1, v1), если t1 ≤ t, S ⊆ S1, c1 ≤ c, причем по меньшей мере одно из записанных соотношений выполняется как строгое (строгое включение или строгое неравенство). Очевидно, что в случае, когда запись Z1 доминирует запись Z, траектория, заканчивающаяся в итоге расширением Z1, предпочтительнее траектории, заканчивающейся расширением Z. Очевидно также, что если существует траектория, заканчивающаяся расширением Z2 = (t2, i2, S2, z2, z2*, с2, h2, v2), и такая, что v2 ≤ h, то в этом случае состояние X (соответствующее расширению Z) является бесперспективным направлением счета и может быть исключено из дальнейшего рассмотрения. Итак, предполагаем, что параллельная система (ПС) состоит из m вычислительных узлов cl1, …, clm и одного узла-координатора cl0, соединенных локальной сетью. 253
0. В начальный момент времени все вычислительные узлы находятся в режиме ожидания, т.е.: массив записей, раскрываемых узлом cli – пуст (Mi = ∅); массив всех сгенерированных параллельной системой записей, о которых на данный момент времени известно узлу cli, а также массив номеров записей, помеченных как удаленные,
пусты: Gi = ∅, Di = ∅ (i = 1, m ). множество номеров свободных узлов на координаторе содержит номера всех узлов ПС (J = {1, 2,…, m}), а массивы всех сгенерированных системой нефинальных и финальных записей, а также записей, помеченных как удаленные – пусты: G = ∅, F = ∅, D = ∅.
1. Координатор отправляет на cl1 начальную запись Z0=(0, 0, ∅, 0, 0, 0, h0, v0), отражая изменение состояния системы в массивах J и G: J = {2, 3, ..., m}, G = {Z0}. 2. На каждом узле cli: если узел находится в режиме ожидания (Wi = 0) и он получает от координатора пакет записей T, подлежащих раскрытию, то этот пакет переносится в массив Mi (Mi = T ) и узел переводится в рабочий режим (Wi = 1); если узел находится в рабочем режиме (Wi = 1): если Mi = ∅, то узел переводится в режим ожидания (Wi = 0) и об этом ообщается координатору (J = J ∪ {i}); если Mi ≠ ∅, начинает действовать основная часть алгоритма. 2.1. Узлом запрашиваются от координатора записи из массива G начиная с (|Gi|+1)-й и добавляются в конец Gi; аналогичным образом запрашиваются номера удаленных записей начиная с (|Di|+1)-го элемента массива D и добавляются в конец Di. 2.2. Из Mi изымаются все записи, к ним применяется оператор R* и результат сохраняется в Gi*. 2.3. Из числа записей массива Gi помечаются как удаленные те записи, которые либо доминируются записями из Gi*, либо их нижняя оценка превышает верхнюю для какой-либо записи множества Gi*. Совокупность записей, помеченных к удалению, добавляется в конец Di. 2.4. Если в Gi* есть финальные записи, то они перемещаются в Fi. 254
2.5. Устанавливается соединение с координатором, в рамках которого передается содержимое массивов Di, Gi* и Fi и сообщается о незанятости узла cli (J = J ∪ {i}). 2.6. Узел переводится в режим ожидания, т.е. Gi* = ∅, Fi = ∅, Wi = 0. 3. При установлении соединения по инициативе узла cli координатор принимает результаты работы узла (массивы Di, Gi* и Fi) и добавляет их в конец соответствующих совокупных массивов записей, сгенерированных всей ПС (D = D ∪ Di, G = G ∪ Gi*, F = F ∪ Fi). После этого в массиве F оставляются только записи с минимальным значением суммарного штрафа, а остальные записи удаляются. По завершении соединения принятая координатором совокупность нефинальных записей Gi* распределяется между узлами множества J, и соответствующие узлы изымаются из J. Заметим, что соединения узлов с координатором осуществляются в монопольном режиме c целью синхронизации процесса обновлений массивов D, G и F. 4. Процесс завершается, когда J = {1, 2, ..., m} и Gi* = ∅ (i = 1, m ), т.е. все узлы завершили вычисления и нераскрытые нефинальные записи отсутствуют. В этом случае массив F содержит все финальные записи с минимальным значением штрафа c. Определив траекторию системы, ведущую из начального состояния в состояние, определяемое некоторой записью массива F, очевидным образом можно построить соответствующую оптимальную стратегию. Литература 1. Коган, Д.И. Проблема синтеза оптимального расписания обслуживания бинарного потока объектов mobile-процессором / Д.И. Коган, Ю.С. Федосенко, А.В. Шеянов // Труды III Международной конференции «Дискретные модели в теории управляющих систем». – Москва. – 1998. – С. 43 – 46. 2. Коган, Д.И. Задача диспетчеризации: анализ вычислительной сложности и полиномиально разрешимые подклассы / Д.И. Коган, Ю.С. Федосенко // Дискретная математика. – 1996. – т. 8. – №3. – с. 135 – 147. 3. Коган, Д.И. Математическая модель и алгоритм синтеза субоптимальных расписаний однопроцессорного обслуживания пространственно рассредоточенной группы
255
4. 5.
6.
стационарных объектов / Д.И. Коган, Ю.С. Федосенко, А.Ю. Шлюгаев // Труды VI Международной конференции «Идентификация систем и задачи управления SICPRO’07». – Москва. – 2007. – С. 1026 – 1038. Асанов, М.О. Дискретная математика. Графы, матроиды, алгоритмы / М.О. Асанов, В.А. Баранский, В.В. Расин. – Ижевск: НИЦ «Регулярная и хаотическая динамика», 2001. Коган, Д.И. Задача оптимального управления обслуживанием mobile-процессором группы пространственно рассредоточенных стационарных объектов / Д.И. Коган, Ю.С. Федосенко // Вестник ВГАВТ. Межвузовская серия: Моделирование и оптимизация сложных систем. – Н.Новгород: Изд-во ФГОУ ВПО ВГАВТ. – 2005. – Вып. 14. – С. 95 – 98. Пападимитриу, Х. Комбинаторная оптимизация. Алгоритмы и сложность / Х. Пападимитриу, К. Стайглиц. – М.: Мир. – 1985. – 510 с.
ПАРАЛЛЕЛЬНАЯ РЕАЛИЗАЦИЯ ЭВОЛЮЦИОННОГО АЛГОРИТМА ОПТИМИЗАЦИИ СТРАТЕГИЙ БИРЖЕВОЙ ТОРГОВЛИ О.Г. Монахов, Э.А. Монахова
Институт вычислительной математики и математической геофизики СОРАН, Новосибирск Введение В практике биржевой торговли одним из основных направлений при выработке торговых стратегий (торговых алгоритмов) является технический анализ ценовых рядов с помощью множества индикаторов [1-6]. В соответствии с принятой торговой стратегией, выраженной в виде набора правил, с поведением ценового ряда и значениями индикаторов инвестор принимает решение о совершении/несовершении сделки купли-продажи в данный момент времени. При совершении сделки инвестор руководствуется соображениями максимизации доходности и минимизации риска. Принятый набор правил, составляющий торговую стратегию, и используемые индикаторы имеют эмпирический характер, и значения их параметров определяются в основном опытным путем (методом
256
проб и ошибок). Однако, как показывают эксперименты, такой подход с использованием известных правил и статически задаваемых параметров часто приводит к убыточным стратегиям. Целью данной работы является описание подхода к оптимизации торговых стратегий, основанного на эволюционных вычислениях, и его распараллеливанию. Представлен генетический алгоритм (ГА), который в процессе торговых сессий осуществляет автоматический поиск оптимальных параметров торговых стратегий и индикаторов с точки зрения максимизации показателей доходности. Постановка задачи В работе рассматривается проблема поиска параметров данной торговой стратегии S с целью оптимизации заданной целевой функции F, характеризующей ее качество. Будем считать, что цена на акцию представлена в виде ценового ряда { Ci }, 1 ≤ i ≤ N , с заданной
частотой (например, минутные или часовые цены), где Ci - цена закрытия в момент i. Пусть ri +1 = Ci +1 − Ci . Важными инструментами технического анализа рынка акций являются скользящие средние, индикаторы и осцилляторы, на основе которых формируются множество торговых стратегий и которые помогают инвестору принимать решения о купле-продаже акций [1-6]. Пусть мы имеем индикатор технического анализа: I i( n ) = f (Ci , Ci −1 ,..., Ci −n ). Обобщенная торговая стратегия S ( I i( n ) ) , основанная
на
индикаторе
I i( n ) ,
определяется
следующими
соотношениями: ⎧ 1 , если I i( n ) > ε 1 , ⎪ ϕ i +1 = ⎨ϕ i , если − ε 2 ≤ I i( n ) ≤ ε 1 , ⎪ (n) ⎩− 1 , если I i < −ε 2 . где ε 1 , ε 2 > 0 - уровни значимого изменения индикатора I i( n ) . Состояние покупки в данной торговой стратегии наступает при ϕ i +1 = 1 , а состояние продажи наступает при ϕ i +1 = −1 . Решение о сделке (купле/продаже) принимается при смене состояний: ϕ iϕ i +1 = −1 .
S ( I i( n ) ) будет использована как темплейт (с некоторыми модификациями) для определения торговых стратегий на Эта стратегия
257
основе различных индикаторов технического анализа, и поиск оптимальных значений свободных параметров (n, ε 1 , ε 2 ) , определяющих стратегию с наилучшими показателями доходности, будет осуществляться с помощью ГА. Например, одним из часто используемых индикаторов при анализе ценовых рядов является экспоненциальное скользящее среднее порядка k: (k) (k) (k ) (k ) 2 (Ci +1 − C i ); C 0 = C0 , C i +1 = C i + k +1 1≤ i ≤ N . Порядок скользящего среднего k определяет степень сглаживания цены: чем больше k, тем сильнее сглаживание. Рассчитывается также разность экспоненциальных скользящих средних порядков k1 < k 2 :
r i = (C i − C i ) C i . Приведем пример простейшей торговой стратегии на основе экспоненциальных скользящих средних [2]. Задается уровень значимого изменения сглаженных цен ε > 0 . Состояние покупки в данной торговой стратегии наступает при ri > ε , а состояние продажи ( k1 )
( k2 )
( k2 )
наступает при ri < −ε . Решение о сделке (купле/продаже) принимается при смене состояний. Стратегия имеет три свободных параметра k1 , k 2 , ε , изменение которых изменяет показатели доходности и риска торговой стратегии. Поиск оптимальных стратегий (с наилучшими показателями доходности и/или риска) может осуществлятся для каждого типа акций отдельно в динамике торговых сессий, с постоянной адаптацией к рыночной ситуации, или в квазидинамическом режиме, когда расчет оптимальных параметров происходит либо через заданные периоды времени либо по выполнению определенных условий (например, по достижении заданного уровня потерь). Пусть торговая стратегия S содержит параметры P = { pn }, n > 0 , описывающие значения целочисленных и действительных коэффициентов и переменных, значения индексов, параметры структур данных, константы и некоторые примитивные операции алгоритма (величины инкрементов и декрементов, знаки переменных, логические операции и отношения, типы округления переменных).
258
Целевая функция F оценивает величину доходности стратегии S, полученную при заданных значениях параметров P = { pn }, n > 0 и при входных данных ценового ряда { Ci }: Fi = Fi ( S ( P, C j )), j ≤ i, 1 ≤ i ≤ N . Таким образом, проблема оптимизации торговой стратегии состоит в следующем: для данной стратегии S и заданного набора значений ценового ряда { Ci }, 1 ≤ i ≤ N , необходимо найти такие значения параметров P* стратегии S, что FN ( S ( P * , Ci )) ≥ FN ( S ( P, Ci )), для 1 ≤ i ≤ N , при любых других значениях параметров P ∈ Dom(P ) . Для решения данной проблемы в работе предлагается подход, основанный на применении генетических алгоритмов (ГА) [7, 8] с использованием предварительного знания прикладной области (множества индикаторов), выборе обобщенной схемы торговой стратегии, задаваемой в виде темплейта с параметрами [9], и ограничении пространства поиска оптимальных параметров. Генетический алгоритм Генетический алгоритм основан на моделировании процесса естественного отбора в популяции особей, каждая из которых представлена точкой в пространстве решений задачи оптимизации. Особи представлены структурами данных Gen - хромосомами, включающими свободные (неопределенные) параметры pk торговой
стратегии S: Gen = {P} = { p1 , p2 ,..., pk }, k > 0 . Эти параметры определяют необходимую торговую стратегию S(Gen). Каждая популяция является множеством структур данных Gen и определяет множество стратегии S(Gen). Основная идея алгоритма синтеза состоит в эволюционном преобразовании множества хромосом (параметров стратегии) в процессе естественного отбора с целью выживания "сильнейшего". В нашем случае этими особями являются стратегии, имеющие наибольшее значение целевой функции. Алгоритм начинается с генерации начальной популяции. Все особи в этой популяции создаются случайно, затем отбираются наилучшие особи и запоминаются. Для создания популяции следующего поколения (следующей итерации) новые особи формируются с помощью генетических операций селекции (отбора), мутации, кроссовера и добавления новых элементов (для сохранения разнообразия популяции). 259
Примем, что целевая функция (fitness function, функция качества, функция пригодности) F вычисляет суммарную доходность DN , полученную в результате торговли в соответствии с данной стратегией S за N шагов для заданного ценового ряда { Ci }, 1 ≤ i ≤ N : N br
F = D N = ∑ ( d mbr − Comm ), m =1
d mbr =
C
− C mbuy C mbuy
sell m
,
где C msell , C mbuy - цены продажи и покупки в m-той сделке, N br - число сделок за N шагов моделирования, Comm - размер постоянных комиссионных за каждую сделку. Целью алгоритма является поиск максимума F. Экспериментальные результаты Предложенный генетический алгоритм с использованием темплейтов был успешно применен для адаптивной оптимизации торговых стратегий, основанных на следующих, наиболее популярных инструментах технического анализа: экспоненциальнных скользящих средних (EMA - exponential moving average), индекса относительной силы (RSI - relative strength index), темпа изменения цены (ROC - price rate-of-change), момента (Momentum) , метода схождения-расхождения скользящих средних (MACD Moving Average Convergence/Divergence) [1-6]. Для экспериметов были рассмотрены ценовые ряды с минутными интервалами для акций ГАЗПРОМа (65535 точек), РАО ЕС России (65535 точек), NIKKEI (42620 точек), DJIA - Dow Jones Industrial Average (65535 точек), для периода с 16.04.2006 по 16.04.2007. Мы использовали первые 15000 точек для обучения и остальные точки – для тестирования. Число итераций и размер популяции выбирались экспериментальным путем, основываясь на параметрах из [7, 8]. Значения основных параметров в экспериментах следующие: размер популяции (для однопроцессорной системы) – 16000, число итераций – 200, частота мутации – 0.15, частота кроссовера – 0.7, комиссионные – 0.001. Генетический алгоритм оптимизации торговых стратегий был реализован в системе эволюционного синтеза алгоритмов на основе
260
шаблонов (TES - template-based evolutionary synthesis) [9] на языке программирования C, стратегии также задавались на этом языке. Параллельная реализация генетического алгоритма оптимизации стратегий биржевой торговли выполнена на основе распараллеливания по данным [10] с использованием библиотеки MPI в системе НКС-160 (160 процессоров Itanium 2). Распараллеливание по данным в решаемой задаче сводится к равномерному распределению популяции по процессорам системы, которое минимизирует взаимодействия и позволяет получить почти линейное ускорение (см. Табл.1, где приведены результаты для оптимизации стратегии с EMA для акций ГАЗПРОМа при числе процессоров N, размере популяции на каждом процессоре Pop, времени исполнения T(сек.), полученном ускорении Sp и доходности DN ). N
Pop
T(сек.)
Sp
DN
1 2 4 8 16 24 32 36 40 48
16000 8000 4000 2000 1000 667 500 444 400 333
18700 9350 4680 2340 1166 784 583 518 467 389 Таблица 1
1 2 3.996 7.991 16.038 23.85 32.075 36.1 40.043 48.072
5.712 5.932 5.712 6.904 6.879 6.904 6.879 6.533 6.904 6.742
Используемый генетический алгоритм позволил найти значения параметров торговых стратегий, обеспечивающие увеличение функции суммарной доходности (на 14% - 250% для различных индикаторов, см. Табл.2) по сравнению с известными ранее [1, 3, 6]. Тип акции \ Индикатор EMA MACD RSI ROC ГАЗПРОМ 204% 14% 38% 12% РАО ЕС России 167% 15.7% 151% 14% NIKKEI 219% 38% 250% 21% DJIA 41% 35,6% 31% 16% Таблица 2. Увеличение суммарной доходности торговых стратегий
Заключение Представленый подход к оптимизации торговых стратегий, основанный на индикаторах технического анализа, эволюционных
261
вычислениях и темплейтах, был успешно применен для поиска свободных параметров стратегий с целью максимизации функции суммарной доходности. Параллельная реализация генетического алгоритма оптимизации стратегий биржевой торговли позволяет получить почти линейное ускорение и увеличить значения функции суммарной доходности. Дальнейшее развитие данного подхода будет направлено на эволюционный синтез [9] новых торговых алгоритмов, правил и стратегий с использованием комбинаций нескольких индикаторов, поиском новых функций для анализа ценовых рядов и исследованием новых подходов для распараллеливания. Литература 1. Achelis S.B. Technical analysis from A to Z. Chicago: Probus. 1996. 2. Артемьев С.С., Якунин М. Математическое и статистическое моделирование на фондовых рынках. - Новосибирск: ИВМиМГ СО РАН, 2003. 3. LeBeau Ch., Lucas D.W. Computer analysis of the futures market, New-York: IRWIN, 1992. 4. Weissman R.L. Mechanical Trading Systems, Hoboken, New Jersey: John Wiley and Sons, Inc., 2005. 5. Salov V. Modeling maximum trading profits with C++ : new trading and money management concepts, Hoboken, New Jersey: John Wiley and Sons, Inc., 2007. 6. Blau W. Momentum, Direction and Divergence, Hoboken, New Jersey: John Wiley and Sons, Inc., 2001. 7. Goldberg D.E. Genetic Algorithms, in Search, Optimization and Machine Learning. Reading, MA: Addison-Wesley, 1989. 8. Koza J. Genetic Programming. Cambridge: The MIT Press,1992. 9. Monakhov O., Monakhova E. Evolving Templates for Synthesis of Scientific Algorithms. Computational Technologies. N6, 2005, p.3-12. 10. Монахов О.Г., Монахова Э.А. Параллельные системы с распределенной памятью: структуры и организация взаимодействий. Новосибирск: Изд-во СО РАН, 2000.
262
ПРЕОБРАЗОВАНИЕ ЦИКЛОВ ВЫЧИСЛЕНИЯ РЕКУРРЕНТНЫХ ПОСЛЕДОВАТЕЛЬНОСТЕЙ В.В. Мялицин
Пензенский государственный университет Введение Значительная часть времени при выполнении программ приходится на циклы. Поэтому наибольшее внимание при преобразовании алгоритмов программ уделяется их оптимизации. Простые и эффективные методы преобразования циклических конструкций внедрены в оптимизирующие компиляторы языков программирования высокого уровня. Для многопроцессорных вычислительных систем используются специальные преобразователи, выполняющие распараллеливание алгоритмов программ и, в том Однако преобразование числе, циклических конструкций. циклических конструкций с неявной зависимостью по данным существующими средствами малоэффективно и часто требует специальной аппаратной поддержки. Существующие методы преобразования циклических конструкций Известны различные методы преобразований циклических конструкций с целью приведения их к виду, в котором тело нового цикла может выполняться несколькими вычислительными устройствами одновременно. Широко используются метод динамического определения параллелизма [1], метод гиперплоскостей и координатный метод [2]. В качестве составной части этих методов используются операции, не связанные с параллелизацией, такие как: перестановка, слияние и распределение циклов, переупорядочивание операторов и раскрутка [3]. Эффективным и распространённым преобразованием циклических конструкций на одном вычислительном устройстве является раскрутка цикла [3]. Требуемые для вычисления значений операции чтения и записи переменных снижают общую производительность. Раскрутка циклов заключается в дублировании тела циклической конструкции и сокращении числа итераций, что позволяет добиться значительного уменьшения количества операций чтения и записи и получить
263
очевидный выигрыш сокращения времени выполнения циклической конструкции. При использовании данного преобразования необходимо позаботиться, чтобы все вхождения переменной в тело цикла были заменены выражениями, вычисляющими требуемые значения при учёте изменения значения переменной цикла. С увеличением глубины раскрутки растёт и производительность, приближаясь в пределе к некоторому значению. В общем случае помимо раскрученного цикла необходима организация дополнительного цикла, осуществляющего вычисления для остатка итераций. Известны методы преобразования циклов, основанные на выявлении параллелизма по графу информационной зависимости. Одним из таких методов является анализ динамического графа зависимости данных [1]. Метод предполагает построение графа, показывающего зависимости вычисления порождаемых переменных от множества используемых переменных, где порождаемая переменная – это элемент массива, который появляется в левой стороне арифметического выражения, а используемая – в правой. Выявленное отсутствие зависимости вычислений по данным позволяет построить схему одновременного вычисления групп переменных. Недостатком метода является лишь выявление отсутствующих зависимостей вычислений по данным и невозможность преобразования последовательности вычислений для уменьшения числа этих зависимостей. Другие методы преобразования циклических конструкций [2], в которых производится анализ циклов по графу информационных зависимостей – метод гиперплоскостей и координатный метод. Метод гиперплоскостей подразумевает возможное преобразование циклов определённого вида, в которых имеется возможность одновременного порождения нескольких переменных из некоторого множества других переменных. В работе [2] приведён пример вычислений одного из циклов такого вида, где вычисление переменных, лежащих на одной и той же плоскости, можно производить одновременно, используя множество вычислительных устройств. Автор работы [2] предложил общий подход к преобразованию циклических конструкций данного типа (вычисления в которых можно представить параллельными плоскостями), который был использован при проектировании компилятора языка Fortran для системы параллельных вычислений ILLIAC IV. Координатный метод в отличие от метода гиперплоскостей предполагает синхронизацию 264
вычислений тела цикла (группы переменных) на множестве вычислительных устройств, что подразумевает наличие аппаратной поддержки синхронизации вычислений. Недостаток метода гиперплоскостей заключается в применении его только для циклических конструкций с простым определением параллельных плоскостей одновременных вычислений. Недостатком координатного метода является невозможность его применения в системах, не имеющих аппаратной поддержки синхронизации вычислений. Метод преобразования циклов вычисления рекуррентных последовательностей Формирование рекуррентной последовательности подразумевает вычисление элементов последовательности из некоторой совокупности предыдущих элементов этой последовательности или из одного элемента. Алгоритм вычисления значений элементов последовательности легко реализуется циклической конструкцией. Полученный алгоритм можно распараллелить, используя раскрутку и координатный метод. Однако эффективность данного преобразования невысока, так как требуется система с поддержкой синхронизации вычислений. Автором предложен новый метод преобразования циклов, подразумевающий изменение алгоритма вычисления элементов некоторой последовательности - распараллеливание алгоритма во время компиляции прикладной программы, написанной на языке высокого уровня или языке описания формул, таком как: язык системы MathCAD или язык НОРМА [3]. При этом учитывается количество вычислительных устройств многопроцессорного или многомашинного комплекса. Достоинством предложенного метода является то, что преобразованные циклические конструкции могут выполняться параллельно, то есть одновременно и независимо (без синхронизации) на нескольких вычислительных устройствах. Преобразование заключается в замене исходной зависимости вычисления очередного элемента последовательности на совокупность зависимостей таким образом, чтобы можно было вычислить К новых значений из К предыдущих значений и чтобы подсчитанные К новых значений использовать для подсчёта К значений на следующей
265
итерации циклической конструкции, то есть происходит формирование новых зависимостей. В новом методе используется стандартное оптимизирующее преобразование – раскрутка, что позволяет реорганизовать циклические конструкции вычисления рекуррентных последовательностей таким образом, что операторы циклов смогут выполняться одновременно и независимо (без синхронизации вычислений) на разных вычислительных устройствах. Технический результат, достигаемый предложенным методом, заключается в уменьшении количества операций, выполняемых последовательно, и, соответственно, времени выполнения циклической конструкции. Сокращение времени решения задач осуществляется одновременным вычислением групп порождаемых переменных несколькими вычислительными устройствами. Примеры использования предложенного метода Преобразование циклических конструкций вычисления рекуррентных последовательностей легко показать на примерах таких задач, как: вычисление количества зёрен на шахматной доске и числа Фибоначчи. В известной сказке за оказанную услугу было попрошено столько зерна пшеницы, сколько необходимо для заполнения шахматной доски по правилу: «На каждой следующей клетке должно быть вдвое больше зёрен». Количество зёрен на очередной клетке зависит от числа зёрен на предыдущей клетке, то есть это рекуррентная последовательность. Алгоритм вычисления легко реализуется циклической конструкцией. Граф информационной зависимости показывает, что вычисления элементов можно выполнить только последовательно. Однако возможно преобразование зависимости таким образом, чтобы можно было вычислить количество зёрен на клетке, отстоящей через одну. То есть получить зависимость чётного элемента последовательности от предыдущего чётного элемента, и то же для нечётных элементов последовательности. Теперь вычисления можно производить одновременно для чётных и нечётных элементов, используя, например, два вычислительных устройства. Рассуждая аналогично, можно выполнить преобразования, чтобы получить зависимость вычислений для трёх, четырёх и большего количества вычислительных устройств. Преобразование циклической конструкции выполняется по шагам:
266
раскрутка цикла - это дублирование тела цикла, сокращение числа итераций, замена переменных цикла на выражения; сокращение числа операций в теле цикла, приведение нескольких циклов к одному, размещение до цикла операторов вычисления значений первых элементов.
Другой интересный пример – числа Фибоначчи. Это тоже рекуррентная последовательность, где очередной элемент является суммой двух предыдущих. Граф информационной зависимости вычисления чисел Фибоначчи показывает, что вычисления элементов можно выполнить так же, как в предыдущем примере, только последовательно. Используя известные методы - раскрутку и координатный метод, предложенный в работе [2], можно преобразовать цикл вычисления чисел Фибоначчи к виду, допускающему одновременное вычисление двух элементов последовательности из двух предыдущих элементов последовательности. Координатный метод предполагает вычисление каждого из двух чисел на собственном вычислительном устройстве и их синхронизацию перед выполнением следующей итерации цикла. Однако, используя предложенное преобразование циклических конструкций, цикл вычисления чисел Фибоначчи можно преобразовать к такому виду, где каждое из двух устройств вычисляет по два новых значения из двух значений, полученных на предыдущей итерации, независимо и одновременно. Эффективность предложенного метода преобразования циклов Эксперименты на четырёхпроцессорном кластере Регионального центра суперкомпьютерных вычислений Пензенского государственного университета подтвердили прогноз по сокращению времени вычислений преобразованных циклических конструкций. Кластер состоит из двух узлов, на каждом из которых находятся два процессора. Вычислительные устройства, находящиеся на одном узле, могут обрабатывать данные в специально выделенной общей памяти одновременно. При использовании двух процессоров для рассмотренных примеров было достигнуто двукратное сокращение времени выполнения преобразованных циклических конструкций с учётом того, что общее число вычисляемых элементов последовательности было кратно четырём, то есть не требовалась
267
организация дополнительного цикла, осуществляющего вычисления для остатка итераций. Уменьшить время выполнения циклов вычисления рекуррентных последовательностей можно даже в вычислительных системах с разделяемой памятью при условии, что время вычислений на однопроцессорной системе превышает сумму времени выполнения вычислений на нескольких вычислительных устройствах и времени обмена данными для объединения полученных результатов вычислений каждого процессорного элемента. Предложенный метод позволяет выполнить преобразование значительного числа сложных циклических конструкций, содержащихся в алгоритмах настоящих программ. Использование предложенного преобразования в препроцессорах стандартных языков программирования или специальных компиляторах с языков описания позволит получить более эффективные алгоритмы решения прикладных задач. Литература 1. Yong Z., Jiahua Q. Dynamic Detection of Parallelism in PASCALlike Program. 2. Lamport Leslie. The Parallel Execution of DO Loops/ // Communications of ACM, Number 2, Volume 17, 1974. 3. Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. – СПб.: БХВ-Петербург, 2004. – 608 с.: ил. ЭФФЕКТИВНОЕ ИСПОЛЬЗОВАНИЕ РЕСУРСОВ ВЫЧИСЛИТЕЛЬНОГО КЛАСТЕРА В.В. Мялицин
Пензенский государственный университет Введение Прогресс в области сетевых технологий обусловил популярность вычислительных кластеров [1]. Эти вычислительные системы считаются самыми недорогими и простыми в организации. Они распространены в большинстве образовательных и коммерческих учреждений, на промышленных предприятиях. Простой вычислительный кластер может быть совокупностью компьютеров, объединенных в рамках некоторой сети для решения одной задачи.
268
Однако при проектировании вычислительного кластера для конкретной прикладной задачи требуется предварительный анализ ресурсной базы и алгоритма решения: необходимо оценить объём вычислительной работы и определить количество вычислительных устройств, при котором время решения будет наименьшим, что позволит максимально эффективно использовать имеющиеся ресурсы. Определение оптимального количества вычислительных устройств является нетривиальной задачей, так как время решения задачи зависит от множества факторов: количества оперативной памяти на узлах кластера, производительности дисков и коммуникационной среды и, наконец, программной реализации алгоритма решения задачи. Определение оптимального количества процессоров в кластере По закону Амдала время решения задачи складывается из двух составляющих: времени выполнения последовательных операций и времени выполнения параллельных операций с учётом числа процессорных элементов [2]. Однако при решении задач на вычислительных кластерах ко времени фактического решения прикладной задачи добавляется время выполнения дополнительных операций, необходимых для обмена информацией между вычислительными устройствами, то есть накладные расходы. Накладные расходы систем кластерного типа могут превысить вычислительные затраты. Они напрямую зависят от аппаратных характеристик вычислительной системы: скорости передачи данных по коммуникационной среде, производительности процессорных элементов и объёма памяти, а также от заложенного в алгоритме числа передаваемых сообщений для решения задачи. Таким образом, в системах кластерного типа при решении задачи необходимо учитывать время, затрачиваемое на обмен информацией между вычислительными системами. Часто это время зависит от количества используемых вычислительных устройств и представляется сложной зависимостью, уникальной для каждого конкретного случая – алгоритма и аппаратной платформы. Увеличение количества используемых вычислительных устройств, с одной стороны, позволяет сократить время решения задачи за счёт одновременной обработки нескольких блоков информации, но, с другой стороны, растущее количество передаваемых сообщений в кластерной системе производит обратный эффект.
269
Таким образом, для решения конкретной задачи на вычислительном кластере существует оптимальное, с точки зрения времени выполнения, число вычислительных устройств, так как накладные расходы с ростом числа процессорных элементов увеличиваются и в какой-то момент станут сопоставимы с вычислительными расходами. Автором предложена методика определения оптимального количества процессоров, которая предполагает анализ реализации аппаратно-программного обеспечения. По результатам анализа составляется зависимость времени выполнения задачи от величин, характеризующих решение задачи на многопроцессорной кластерной системе, с учётом отклонения экспериментального значения времени решения задачи от теоретического значения. В предложенной методике этими величинами считаются три значения времени: время выполнения последовательных участков алгоритма, время параллельных вычислений и время, необходимое для обмена сообщениями по коммуникационной среде с учётом её особенностей. Методика определения количества вычислительных устройств, при котором время решения задач будет минимальным, позволяет последовательным приближением определить оптимальное число процессорных элементов, используя в качестве исходных данных результаты проведённых экспериментов. Поскольку неизвестных величин – три, то необходимо провести как минимум три эксперимента при разном числе процессоров. На основе полученных экспериментальных данных составляется система уравнений времени решения задачи с отклонениями практических результатов от теоретических прогнозов. Коэффициенты (величины, составляющие время решения задачи) находятся с учётом того, что все они положительны, и из условия минимума суммы квадратов отклонений. Полученные значения коэффициентов подставляются в формулу зависимости, и строится график зависимости времени решения задачи от числа используемых вычислительных устройств, по которому определяется точка перегиба – оптимальное количество устройств. Для уточнения количества процессоров проводится эксперимент с использованием нового количества процессоров. Полученное значение времени решения задачи добавляется в систему уравнений, и снова определяются коэффициенты. После получения новых значений и построения графика определяется новая точка 270
перегиба. Все описанные действия повторяются до тех пор, пока новая точка перегиба не будет отстоять от предыдущей точки более чем на единицу (одно вычислительное устройство). Таким образом, будет определено количество процессорных элементов, при котором время решения задачи наименьшее, с погрешностью в один процессорный элемент. Эффективность использования предложенной методики Для проверки эффективности использования предложенной методики была выбрана задача решения систем уравнений методом Гаусса-Жордана. Результаты экспериментов на четырёхпроцессорном кластере Регионального центра суперкомпьютерных вычислений Пензенского государственного университета (ПГУ) и сетевом многомашинном комплексе Института информатики и вычислительной техники ПГУ [3] подтверждают эффективность использования систем кластерного типа для задачи решения систем уравнений, реализованных вложенными циклическими конструкциями. Результаты экспериментов на высокопроизводительном 24-процессорном кластере научно-исследовательского вычислительного центра Московского государственного университета [3] подтверждают существование такого количества процессорных элементов, при котором время решения систем уравнений минимальное. С использованием предложенной методики по результатам ряда экспериментов было определено количество вычислительных устройств, необходимых для решения задачи определённой трудоёмкости (количество операций, необходимых для решения системы уравнений некоторой размерности) за минимальное время. Для нескольких задач решения систем уравнений оптимальное количество устройств было найдено последовательным приближением за 4-5 шагов. Оно совпало с экспериментальными данными [3]. Для задачи решения системы уравнений, состоящей из 1024 уравнений, методом Гаусса-Жордана за минимально возможное время необходимо пятнадцать вычислительных устройств, при этом время решения системы сокращается в 10 раз. Использование предложенной методики при проектировании и построении кластерных систем для решения конкретных прикладных задач позволяет определить необходимый объём вычислительных ресурсов с целью максимально эффективного их использования.
271
Литература 1. Андреев А., Воеводин Вл., Жуматий С. Кластеры и суперкомпьютеры – близнецы или братья? // Открытые системы. – 2000. – № 5–6. – С. 9–14. 2. Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. – СПб.: БХВ-Петербург, 2004. – 608 с.: ил. 3. Мялицин В.В., Шашков Б.Д. Эффективность параллельной реализации алгоритмов помехоустойчивого кодирования Рида-Соломона // Прикладная информатика. – 2006. – № 3. – С. 120–129. ИНТЕГРИРОВАННАЯ СРЕДА СОЗДАНИЯ ПАРАЛЛЕЛЬНЫХ ПРОГРАММ НА ЯЗЫКЕ СВЕРХВЫСОКОГО УРОВНЯ НОРМА Д.В. Осипов
МГУПИ, Москва На данный момент предложено множество способов разработки параллельных программ (ПП), но все они требуют в той или иной степени достаточно сложной и трудоемкой работы опытного программиста. Также не оправдываются надежды на эффективное распараллеливание последовательных программ, несмотря на постоянно проводимые исследования в области нахождения скрытого параллелизма в алгоритмах. Давно муссируется мысль, что при создании новых ПП не только нецелесообразно, но и, пожалуй, даже вредно сначала создавать последовательную версию программы. Такой подход может быть реализован использованием функциональных языков программирования (напр., известный язык Haskell). В ИПМ им.М.В.Келдыша РАН с 60-х гг. ведется работа над языком НОРМА, предназначенным для решений задач моделирования сеточными методами [1]. Язык НОРМА называют декларативным (описательным) вследствие упора именно на описание правил вычисления значений, а не на подробную конкретизацию алгоритма. При этом на основе НОРМА-исходного текста синтезируется исходный текст программы в традиционной системе параллельного программирования (напр., MPI с использованием Fortran’а или C/C++), далее компиляция и редактирование связей [2]. 272
Однако для создания НОРМА-программы классическим методом все же требуется программист, знакомый с правилами языка и формально “набивающий” текст программы. Вышеуказанные особенности языка НОРМА наводят на мысль о еще большем упрощении последовательности создания параллельных программ. Логично будет максимально далеко уйти от текстового представления программы и снабдить язык НОРМА интерактивной оболочкой, которая будет являться как удобным интерфейсом для написания параллельных программ, значительно уменьшающим временные затраты прикладного специалиста на описание своей задачи в терминах НОРМА, и в то же время автоматической проверкой на синтаксические ошибки программирования [3]. Разрабатываемая система получила название «Интерактивная НОРМА» (далее ИН) и выполнена в виде web-сайта на технологии PHP (в целях достижения платформенной независимости); одно из интерфейсных окон ИН см. на рис.1. Работа с интерактивной средой создания НОРМА-программ, конечно, требует от разработчика определенных навыков работы с ЭВМ, однако нет необходимости усвоения полного синтаксиса этого языка программирования, наличие шаблонов программного кода еще более упрощает работу. ИН поможет пользователям сгенерировать их первые параллельные программы и не отнимет много времени на изучение различных языков программирования. Все, что требуется от пользователя, так это ввести необходимые данные, чтобы была создана программа на языке НОРМА. Плюсом является то, что в «Интерактивной НОРМЕ» присутствуют автоматизированные стандартные методы создания программ, которые являются заранее отлаженными методами программирования. За счет чего, пользователь, даже начинающий, не допустит ошибок в тексте программы (а вместе с тем не потратит время на поиски этих ошибок) и в то же время сможет получить априори работоспособный код программы. При создании параллельной программы с помощью интерактивной среды необходимо советовать пользователю наилучший выбор распределения его данных и вычислений по процессорам. Это связано прежде всего с тем, что при работе с матрицами в языках программирования C и Fortran, в которые компилируется НОРМА программа, данные в оперативной памяти сохраняются по-разному. В языке Fortran они располагаются последовательно в оперативной 273
памяти по столбцам, а в C по строкам. При нерациональном распределении данных по процессорам параллельная программа будет выполняться дольше, чем при правильном распределении (эффект кэширования). И соответственно, что для пользователя (особенно для начинающего) эти советы будут очень полезны. Также важно знать, что в языке НОРМА каждый раздел программы можно распараллеливать единожды и что в каждом разделе может присутствовать несколько областей вычисления. ИН должна проанализировать, по каким областям будет выгоднее распределить данные и вычисления. Выполнив вышеприведенные действия, мы практически можем гарантировать наилучшее (в смысле достижения максимальной скорости) выполнение нашей будущей параллельной программы. Конечно, пользователь может выбрать и другое распределение данных в этом разделе, но предлагаемый метод значительно упрощает операцию распределения данных по процессорам и освобождает пользователя от излишних временных затрат для расчета нагрузки распределяемых данных. Согласно синтаксису НОРМА распределение данных и вычислений по процессорам определяется инструкцией описания индексов распределения вида DISTRIBUTION INDEX (формально постулируется использование двумерной решетки процессоров). Это описание приводит к распределению между процессорными элементами, как данных, так и управления и автоматической генерации операторов обмена данными между ними. Распределению подлежат величины, участвующие в расчетах и имеющие индексы, совпадающие с указанными в описании. Например, если задано описание DISTRIBUTION INDEX i=1..12, j=1. , то все переменные, определенные на областях с индексами i и j, будут распределены по процессорным элементам (i,j) с виртуальными номерами строк i=1..12 в столбце с номером j=1 матрицы процессорных элементов. Заметим, что в современной реализации языка НОРМА допускается фактически только одномерная топология сетевого объединения процессоров (один из индексов двумерной матрицы процессоров должен быть равен 1). Приведем пример использования ИН на задаче создания ПП по умножению матриц. Матрица A размером (i × k) умножается на матрицу B размером (k × j), результатом становится матрица C размерностью (i × j).
274
Формула для вычисления произведения матриц выглядит следующим образом (умножение матриц по классической схеме):
cij = ∑ a ik b kj k
В этом простом примере наиболее загруженное направление соответствует направлению индекса (k), и, следовательно, по данному направлению целесообразно распределить данные и вычисления. Наиболее загруженным направлением можно назвать направление, соответствующее индексу цикла максимальной вложенности в рассматриваемом гнезде циклов. При использовании языка С/C++ направление (k) должно соответствовать строкам в оперативной памяти. В ИН распределение данных и вычислений по процессорам происходит в пункте меню «Разделы программы», в данном разделе выбирается «Задать решетку процессоров» и в появившемся окне задаются индексные направления, по которым следует распределять данные и вычисления, а уже в следующем окне непосредственно задается количество процессоров по каждому индексному направлению:
Рис. 1. Пример задания распределения данных по процессорам в «Интерактивной Норме»
В результате наших действий в ИН сформированная программа на языке НОРМА будет выглядеть так: MAIN PART Listing. BEGIN Oi: (i=1..300). Oj: (j=1..200). Ok: (k=1..100). OA: (Oi;Ok). OB: (Ok; Oj). OC: (Oi; Oj).
275
VARIABLE a DEFINED ON OA DOUBLE. VARIABLE b DEFINED ON OB DOUBLE. VARIABLE c DEFINED ON OC DOUBLE. FOR OA ASSUME a = ( i – 1 ) + ( k – 1 ). FOR OB ASSUME b = ( k – 1) + ( j – 1). COMPUTE Matrix(a ON OA, b ON OB RESULT c ON OC). OUTPUT c(FILE='pmatrix.out') ON OC. END PART. PART Matrix. a, b RESULT c BEGIN Oi: (i=1..300). Oj: (j=1..200). Ok: (k=1..100). OA: (Oi;Ok). OB: (Ok; Oj). OC: (Oi; Oj). VARIABLE a DEFINED ON OA DOUBLE. VARIABLE b DEFINED ON OB DOUBLE. VARIABLE c DEFINED ON OC DOUBLE. FOR OC ASSUME c = SUM((Ok) a[i,k] * b[k,j]). DISTRIBUTION INDEX k=1..4, j=1. END PART.
В этом случае при вычислении произведения матриц НОРМАинструкцией c=SUM((Ok) a[i,k]*b[k,j]). Данные и вычисления будут распределены по процессорным элементам (k,j) с виртуальными номерами строк k=1..4 в столбце с номером j=1 матрицы процессорных элементов. Правильность выбора данного распределения доказывают проведенные опыты, в которых при распределении данных на 4 процессора (линейная топологии связей) матриц размером 1000 × 1000 по направлению (k), для языка C с MPI-вызовами, было зафиксировано наименьшее время выполнения программы. При распределении данных по другим индексным направлениям, время выполнения программы увеличивалось более чем в 2 раза, что доказывает правильность выбора лучшего варианта распределения данных. Как уже было показано выше, этот эффект связан с распределением различных языков данных в оперативной памяти для программирования, рационального использования эффекта кэширования и с распараллеливанием наиболее нагруженного направления рассчитываемого раздела программы.
276
Данный пример примитивно прост и нагляден, и при распределении данных можно было бы не задействовать компьютер, чтобы определить рациональное индексное направление. В более сложных случаях сама система ИН самостоятельно (на основе анализа алгоритма) предлагает оптимальное (в смысле повышения быстродействия) индексное направление. Система «Интерактивная НОРМА» в настоящее время применяется при проведении лабораторного практикума по дисциплине “Параллельное программирование” на кафедре ИТ-4 “Персональные компьютеры и сети” Московского государственного университета приборостроения и информатики (МГУПИ). Литература 1. Задыхайло И.Б. Организация циклического процесса счета по параметрической записи специального вида. // ЖВМ и МФ, т.3. № 2. —M.: 1963, c.337 2. Андрианов А.Н., Бугеря А.Б., Ефимкин К.Н., Задыхайло И.Б. Норма. Описание языка. Рабочий стандарт. // Препринт ИПМ им. М.В.Келдыша РАН, № 120, —M.: 1995, -50 с. 3. Лацис А.О. Как построить и использовать суперкомпьютер. — M.: Бестселлер. 2003, -240 c. ПОДХОДЫ К РАСПАРАЛЛЕЛИВАНИЮ АЛГОРИТМА ВОЗВЕДЕНИЯ ДЛИННЫХ ЧИСЕЛ В СТЕПЕНЬ ПО МОДУЛЮ ДЛЯ КРИПТОГРАФИЧЕСКИХ СИСТЕМ П.Н. Полежаев, М.Ю. Нестеренко
Оренбургский государственный университет Введение В современном мире большое значение имеет защита информации, передаваемой по открытым каналам связи. В этом случае применяют различные криптографические схемы шифрования. В связи с широким распространением многоядерных процессоров и необходимостью использования затратных по времени, но криптостойких криптографических систем для защиты информации, возникает необходимость распараллеливания последних для систем с общей памятью.
277
Перечислим основные подходы к распараллеливанию асимметричных криптосистем: на уровне реализации длинной 1. Распараллеливание арифметики (распараллеливание арифметических операций для CRT-представления длинных чисел). на уровне реализации методов 2. Распараллеливание шифрования, дешифрования и генерации ключей (распараллеливание трудоемкого алгоритма возведения в степень по модулю, алгоритма генерации псевдослучайных чисел). на уровне блоков шифртекста 3. Распараллеливание (распараллеливание по независимым блокам). Операция возведения длинных чисел в степень по модулю является фундаментальной, т.к. используется во многих криптографических системах (RSA, Эль-Гамаля, Диффи-Хеллмана) и других областях криптологии (алгоритмы проверки чисел на простоту, алгоритмы факторизации и дискретного логарифмирования), алгебры и теории чисел. Данная операция является очень трудоемкой по времени, и поэтому именно ее имеет смысл распараллелить, что и было сделано в данной работе. Бинарный метод возведения в степень по модулю и варианты его распараллеливания В источниках [1, 2] приводится обзор последовательных алгоритмов возведения в степень по модулю, а также выполняется анализ возможности разработки их параллельных версий. Наиболее n
подходящими для распараллеливания являются – бинарный и 2 арный (как его обобщение) алгоритмы. Пусть необходимо вычислить (1) r = b p mod m , для чисел b , p и m длины k бит. Пусть p = pk −1... p1 p0 = p0 20 + p1 21 + ... + pk −1 2k −1 - представление показателя степени в двоичной системе счисления ( pi ∈ {0,1} ), тогда формула (1) примет вид:
278
0
1
b p mod m = (...((((b p0 mod m) 2 mod m)((b p1 mod m) 2 mod m)) mod m)... (2) k −1
...((b pk −1 mod m) 2 mod m)) mod m Бинарный метод заключается в последовательном возведении в j квадрат основания для вычисления (b mod m) 2 mod m и умножения результата на полученное значение при всех p j = 1 .
Данный метод может быть распараллелен несколькими способами. Первый способ распараллеливания заключается в j последовательном вычислении всех значений (b mod m) 2 mod m ( j = 0, 1, ..., k − 1 ), а затем – параллельное умножение по модулю m всех полученных значений, для которых
p j = 1 , с помощью
каскадной схемы умножения. Очевидно, что основным недостатком данного алгоритма является большая доля последовательных вычислений (оценку времени см. в таблице 1). Второй вариант распараллеливания предлагает на каждой итерации цикла, проходящего по всем битам показателя степени вычисление очередного ( j = 0, 1, ..., k − 1 ), j +1
j
выполнять (b mod m) 2 mod m = ((b mod m) 2 mod m) 2 mod m параллельно с умножением по модулю результата на j (b mod m) 2 mod m при p j = 1 . Основной недостаток – дисбаланс загрузки ядер процессоров. Так как в среднем число единичных бит показателя степени составляет половину его длины, то в половине случаев у потока, выполняющего умножение результата на очередную степень основания, не будет работы, и он будет ожидать другой поток для перехода к следующей итерации цикла. Также данный вариант распараллеливания не масштабируется. Рассмотрим третий вариант распараллеливания. Пусть необходимо вычислить (1), причем m = rt , где r и t простые числа. Последнее условие всегда выполняется, например, для алгоритмов шифрования и дешифрования криптосистемы RSA. Также возможно обобщение, если модуль удается представить в виде произведения двух и более попарно взаимно простых чисел. Любое число x ∈ [0, m − 1] может быть однозначно представлено своими остатками от деления на r и t /2/: (3) x = (q, w) , где q ≡ x(mod r ) и w ≡ x(mod t ) . 279
Представление (3) называется (q,w)-представлением числа x, представлением в остатках или CRT-представлением. Операции сложения, вычитания и умножения чисел, представленных в остатках, могут выполняться покомпонентно. Таким образом, если требуется производить большое количество умножений по модулю, как в алгоритме возведения в степень, то можно использовать умножение в остатках. Во-первых, оно в силу независимости компонент позволяет выполнять операцию параллельно. Во-вторых, т.к. нахождение представления в остатках можно выполнить в самом начале и восстановить результат в конце, то можно получить приблизительно хорошее ускорение работы алгоритма без учета распараллеливания. Основным недостатком данного алгоритма является отсутствие масштабируемости. Анализ параллельных алгоритмов возведения в степень по модулю По таблице 1 видно, что лучшую временную сложность имеет бинарный метод с параллельными вычислениями для (q,w)представления чисел. Для оценки ускорения и эффективности параллельных алгоритмов возведения в степень по модулю были созданы их программные реализации, распараллеливание осуществлялось с помощью OpenMP 2.0. Замеры времени работы производились с помощью Intel VTune Performance Analyzer. На рисунке 1 приведен график зависимости ускорений параллельных алгоритмов от длины в битах. По графикам видно, что наилучшее ускорение имеет бинарный метод с параллельными вычислениями для (q,w)-представления чисел, которое асимптотически приближается к теоретическому пределу 2.
280
Название алгоритма
Среднее время работы
Бинарный метод с каскадной схемой параллельного умножения
O ( 2k 3 +
k3 ) c
Бинарный метод с параллельным умножением и возведением в O(2k 3 ) , при условии c ≥ 2 квадрат Бинарный метод с параллельными вычислениями для (q,w)- O(k 3 ) , при условии c ≥ 2 представления чисел Таблица 1. Временная сложность параллельных алгоритмов возведения в степень по модулю (c - количество ядер вычислительной системы)
2.00 1.80 1.60 1.40 1.20 1.00 0.80 0.60 0.40 0.20 0.00
1.15
1.17 1.13
1.03
1.92 1.42
1.86
1.53
1.33
1.23
1.22
1024
Бинарный метод с параллельным умножением и возведением в квадрат Бинарный метод с параллельными вычислениями для (q,w)- представления чисел
0.77
0
Бинарный метод с каскадной схемой параллельного умножения
2048
3072
4096
Рис. 1. График зависимости ускорений параллельных алгоритмов от длины в битах
2n-арный алгоритм возведения длинных чисел в степень по модулю Используется представление показателя степени в системе счисления с основанием 2n: n 0 n 1 n l −1 (4) b p mod m = b p0 ( 2 ) + p1 ( 2 ) +...+ pl −1 ( 2 ) mod m , n k ⎡ ⎤ – количество 2 -ичных цифр в представлении показателя где l = ⎢⎢ n ⎥⎥ степени. Тогда формулу возведения в степень можно переписать следующим образом: n n n (5) b p mod m = (...((b pl −1 ) 2 b pl −2 ) 2 ...)2 b p0 mod m . Алгоритм вычисления заключается в следующем:
281
Сначала с помощью последовательного умножения на основание b вычисляются и сохраняются значения bt mod m для всех 0 ≤ t < 2n . 2. Затем используется следующая итерационная формула: n (6) rl = 1, ri−1 = (ri 2 ⋅ (b pi −1 mod m)) mod m, i = l ,...,1 .
1.
r0 - искомый результат вычислений. Оценка времени работы для данного метода 2k 3 Θ(2k 3 + + (2 n − 1)2k 2 ) n Данный алгоритм имеет смысл распараллеливать на основе представления чисел в виде остатков по некоторому набору модулей. 2n -арный алгоритм с представлением чисел в остатках по малым модулям Пусть p1 , p2 ,..., ps - набор целых чисел, удовлетворяющих
условиям:
∀i, j = 1, s i ≠ j ⇒ НОД ( pi , p j ) = 1 ; ∀i = 1, s 0 < pi < 216 ; s
s
i =1
i =1
P = ∏ pi > 4(m∑ pi ) 2 .
(7)
Любое число x ∈ [0, P − 1] может быть однозначно представлено своими остатками от деления на pi :
x = ( x1 ,..., xs ) , где xi ≡ x(mod pi ) .
(8)
Теорема 1 (Китайская теорема об остатках в явном виде). Пусть p1 , p 2 ,..., p s - попарно взаимно простые положительные целые
числа,
обозначим
s
P = ∏ pi .
Обозначим
w = ( w1 ,...,ws )
-
i =1
представление числа w в остатках по модулям pi, причем w < P , m 2 положительное целое число (модуль, по которому мы хотим найти
282
w = ( w1 ,...,ws ) ).
значение
Пусть
ri
-
решение
сравнения
hi P ≡ 1(mod pi ) , li ≡ ( wi hi ) mod pi . Обозначим pi s
t = ∑ li ( i =1
s P l mod m) − ( P mod m)round (∑ i ) , pi p i =1 i
(9)
s
тогда w ≡ t (mod m) и t ≤ m∑ pi . Функция round осуществляет i =1
округление до ближайшего целого числа. Данная теорема дает возможность восстанавливать по представлению числа w в остатках по модулям pi его обычный вид и вычислять остаток от его деления на заданный модуль m, причем большая часть вычислений может быть эффективно распараллелена. Тогда модифицированный вариант 2n-арного алгоритма с представлением чисел в остатках по малым модулям будет заключаться в следующем: 1. Перевод числа b mod m в представление в остатках по модулям pi (осуществляется параллельно). 2.
3.
Предварительные вычисления bt mod m для всех 0 ≤ t < 2n с помощью покомпонентного умножения по модулю m на основе теоремы 1 (большая часть вычислений осуществляется параллельно). Затем используется формула (6). На каждой итерации вычисление ri
2n
и умножение получившегося значения на
pi −1
b mod m осуществляется покомпонентно, причем не берется остаток по модулю m. Остаток по модулю m берется только n для получившегося значения ri 2 ⋅ (b pi−1 mod m) , при этом используется теорема 1. На каждой итерации большая часть вычислений осуществляется также параллельно. Также заметим, что используемые значения p1 , p 2 ,..., p s , P P mod m и hi могут либо вычисляться перед 1-м этапом 2n -арного алгоритма для заданного значения k (длины в битах чисел), либо могут браться уже «зашитые» значения для распространенных значений k = 512, 1024, 2048, 4096 . 283
В результате расчетов была получена следующая оценка времени работы данного алгоритма для случая дополнительных вычислений перед 1-м этапом алгоритма: 256 2 16 2 (16 + ) s k + sk 16 n +1 2 n n (10) O ((2 + − 2)k + ). n c Полученная оценка отражает неплохую масштабируемость алгоритма, при правильном выборе n, S и c можно получить неплохое ускорение. Заключение Рассмотрен ряд вариантов распараллеливания бинарного метода, из которых наиболее подходящий – на основе (q,w) представления чисел. Он дает значительное ускорение, но абсолютно не масштабируется. Он также показывает ранее недооцененную возможность эффективного распараллеливания на уровне реализации длинной арифметики. Распараллеливание 2n -арного алгоритма на основе представления чисел в остатках по малым модулями дает возможность получить значительное ускорение и масштабируемость. Дальнейшие направления продолжения работы: Распараллелить бинарный метод с CRT-представлением с малыми модулями, оценить его ускорение и масштабируемость (на кластере ОГУ). Сократить количество умножений путем использования метода движущегося окна в связке с параллельной CRT арифметикой. Литература 1. Нестеренко М.Ю., Полежаев П.Н. Подходы к распараллеливанию алгоритмов с открытым ключом // Математика. Информационные технологии. Образование: Материалы региональной научно-практической конференции в двух частях. Часть 1. – Оренбург: ГОУ ОГУ, 2006. 2. Нестеренко М.Ю., Полежаев П.Н. Разработка параллельного алгоритма возведения длинных чисел в степень по модулю для криптосистемы RSA //Материалы шестого международного научно-практического семинара «Высокопроизводительные вычисления на кластерных
284
3. 4.
системах». Том 2. /Под ред. проф. Р.Г. Стронгина. СанктПетербург, 2007. – с.105-112. Вельшенбах М. Криптография на Си и С++ в действии. – М.: Триумф, 2004. – 464 с. Фергюсон Н., Шнайер Б. Практическая криптография. – М.: Вильямс, 2005. – 424 с.
ОБЗОР МЕТОДОВ ДИНАМИЧЕСКОЙ БАЛАНСИРОВКИ НАГРУЗКИ В ГЕТЕРОГЕННЫХ КЛАСТЕРНЫХ СИСТЕМАХ А.А. Потапов
Пензенский государственный университет Введение Методы динамической балансировки нагрузки (БН) составляют важную часть механизма обеспечения эффективного использования ресурсов в кластерных системах. Существует множество методов балансировки, позволяющих достичь высокой производительности системы путем повышения эффективности использования ресурсов центрального процессора (ЦП) [1-4], оперативной памяти (ОП) [5,6], комбинации процессора и памяти [7-9], дисковых устройств вводавывода (УВВ) [10-14] и комбинации ЦП, ОП и УВВ [15-17]. В рамках этой работы рассмотрим наиболее известные и проработанные методы балансировки, учитывающие один или несколько (комбинацию) критических ресурсов. Методы БН на основе ЦП Для обозначения методов БН на основе центрального процессора (ЦП) в зарубежной литературе встречается обозначение “CPU-RE” [1,3,8,9,13,14]. Обозначим загрузку процессора i-го узла гетерогенной кластерной системы как loadCPU(i), тогда ее численное значение можно определить согласно выражению [3,14]: max nj=1 C j ) load CPU (i ) = Li ⋅ ( Ci где Li – количество выполняемых i-м узлом задач. Если значение loadCPU(i) является большим, чем заданный порог, то i-й узел системы считается перегруженным по ЦП и метод CPU-RE передает вновь
285
поступающие запросы на j-й узел, который имеет наименьшую загрузку по процессору. Методы БН на основе ЦП лучше всего подходят для систем c централизованной балансировкой нагрузки (ЦБН), имеющих стойкую тенденцию к возникновению нагрузки на центральные процессоры узлов. Основной недостаток всех методов ЦБН заключается в их невысокой надежности и низком потенциале производительности вследствие использования лишь одного активного узла БН. Попытки преодоления ограничений методов ЦБН предпринимались неоднократно. Наиболее удачной в этом плане оказалась работа группы ученых под руководством Харкол-Болтера (Harchol-Balter), в которой удалось усовершенствовать метод ЦБН путем добавления механизма приоритетной миграции [1]. В результате чего был получен метод распределенной балансировки однородной нагрузки (РБОН) на основе ЦП, более эффективный, чем исходный метод ЦБН [2]. Методы БН на основе ЦП и ОП Группа ученых под руководством Ин Чжана (Ying Zhang) усовершенствовала метод распределенной балансировки однородной нагрузки (РБОН), предложенный Харкол-Болтером, добавив в нее механизм учета дополнительного критического ресурса – оперативной памяти (ОП). Таким образом, был получен метод распределенной балансировки неоднородной нагрузки (РБНН), получивший обозначение в зарубежной литературе “CM-RE” [5,6,13,14]. Этот метод последовательно учитывает загруженность ЦП и ОП. Пусть объем ОП, требуемый для выполнения всех задач i-го узла гетерогенной кластерной системы обозначается как loadmem(i), тогда ее численное значение можно определить согласно выражению: load mem (i ) = ∑ mem( j ) j∈N i , где mem(j) – количество ОП, требуемое j-й задачей; Ni – количество задач, выполняющихся на i-м узле. Если количество ОП i-го узла больше или равно значению loadmem(i), то вместо метода CM-RE активизируется метод CPU-RE. Если значение loadmem(i) превышает объем доступной ОП, то метод CM-RE осуществляет передачу вновь пребывающих запросов на узлы с наименьшим значением загрузки памяти loadmem(i). В работе [8] приведено экспериментальное доказательство того, что полученный Ин Чжаном метод РБНН, построенный на основе
286
комбинации двух критических ресурсов – ЦП и ОП, является более эффективным, чем исходный, основанный лишь на ЦП. Поэтому метод РБНН CM-RE, учитывающий совокупность ресурсов ЦП и ОП, на практике применяется гораздо чаще, чем методы РБОН на основе ЦП или ОП. Методы БН на основе дисковых УВВ Большое количество литературы посвящено вопросу БН в дисковых УВВ [10-13]. Один из методов БН на основе сведений об интенсивности дисковых операций ввода-вывода был предложен в работе [13], где для ее краткого обозначения использовано сокращение “IO-RE”. Этот метод в отличие от рассмотренных двух предыдущих учитывает не степени загруженности ЦП и ОП, а загруженность подсистемы ввода-вывода, которая измеряется на основе анализа двух типов обращений к дисковым УВВ: явных и неявных. Неявные обращения к подсистеме ввода-вывода вызваны промахами при обращении к страницам ОП, вследствие неэффективности механизма кэширования, явные – связаны с необходимостью обмена данными с дисками по запросам задач. Пусть уровень загрузки диска i-го узла гетерогенной кластерной системы, создаваемый неявными обращениями к диску j-й задачи, обозначается как page(i,j), а IO(i,j) обозначает загрузку диска, создаваемую явными обращениями j-й задачи. Тогда уровень загрузки i-го узла можно определить согласно выражению: load IO (i ) = ∑ page(i, j ) + ∑ IO(i, j ) j∈N i j∈N i (1) Порог ввода-вывода i-го узла, означающий максимально возможный уровень загруженности узла по операциям ввода-вывода, не приводящий к перегрузке, обозначим как thresholdIO(i). Так, i-й узел считается перегруженным по операциям ввода-вывода с диском, если значение loadIO(i) является большим, чем thresholdIO(i). Величина порога thresholdIO(i) должна соответствовать мощности подсистемы ввода-вывода i-го узла и может быть подсчитана как: n D threshold IO (i ) = n i ⋅ ∑ load IO ( j ) D j j =1 ∑ j =1 (2) где левая часть произведения соответствует общей мощности подсистемы ввода-ввода i-го узла, а правая часть – суммарной
287
нагрузке, создаваемой на подсистему ввода-вывода выполняющимися заданиями гетерогенного кластера. Производительность дискового УВВ i-го узла (Di) может быть рассчитана по формуле: 1 Di = d Si + Ri + disk Bi (3) где Bidisk, Si и Ri обозначают соответственно пропускную способность диска, среднее время поиска данных и среднее время вращения диска i-го узла, а d – средний размер данных, передаваемых по запросам ввода-вывода. Таким образом, порог ввода-вывода для i-го узла thresholdIO(i) можно подсчитать при помощи формулы 2, подставив вместо loadIO(i). значение выражения 1. В общем случае метод «IO-RE» осуществляет балансировку поступающего на i-й узел j-го запроса за четыре этапа. Во-первых, обновляется нагрузка i-го узла путем добавления нагрузки, создаваемой явными и неявными обращениями j-й задачи к дисковой подсистеме. Во-вторых, подсчитывается порог ввода-вывода согласно выражению (2). В-третьих, если дисковая подсистема ввода-вывода iго узла не перегружена, то j-я задача выполняется на i-м узле. Если i-й узел перегружен по операциям ввода-вывода, то метод «IO-RE» отправляет j-ю задачу для выполнения на узел k, отвечающий двум основным условиям: дисковая подсистема ввода-вывода не перегружена; разность нагрузок на подсистему ввода-вывода k-го и i-го узлов больше, чем нагрузка по вводу-выводу, создаваемая j-й задачей. Если балансировщик нагрузки находит подходящий k-й узел, то запрос переправляется на него для выполнения соответствующей задачи, в противном случае задача либо устанавливается в очередь, либо распределяется на узел системы случайным образом, вызывая перегрузку. На четвертом этапе, после того как запрос поступил на узел, происходит обновление значения его загрузки по вводу-выводу в соответствии с нагрузкой, создаваемой j-й задачей. Известны также другие методы БН по УВВ. Например, Ли (Lee) и другие в работе [11] предложили два алгоритма распределения файлов, 288
которые позволяют осуществлять БН между всеми доступными дисками системы. Исерт (Isert) и Шван (Schwan) в работе [13] исследовали распределение потоков данных в режиме реального времени, осуществляемое путем миграции объектов между узлами системы. Методы балансировки однородной нагрузки по ресурсу УВВ, предложенные в их работе, так же как и метод, рассмотренный выше, являются достаточно эффективными и позволяют увеличить производительность системы в целом за счет наиболее полного использования ресурсов жестких дисков. Однако эти методы нельзя применять к гетерогенным кластерным системам, с неоднородной нагрузкой, в которых задачи с интенсивным вводом-выводом должны разделять общие ресурсы с множеством других задач, интенсивно использующих ЦП и ОП [15]. Методы БН на основе комбинации ЦП, ОП и УВВ Достаточно хорошие методы БН систем, задачи которых интенсивно используют комбинацию ресурсов ЦП, ОП и УВВ, предложены коллективами авторов в работах [8,14]. В их основу положены механизмы распределения запросов по узлам распределенной системы, основанные на усредненных весовых коэффициентах, подсчитываемых индивидуально для каждого узла. Методы позволяют осуществлять балансировку большого количества одновременно поступающих запросов таким образом, что время ожидания ответа на каждый запрос становится минимальным. К основным недостаткам методов можно отнести отсутствие механизма миграции задач от одного узла к другому, а также то, что они не предусматривают возможности для выполнения удаленных операций ввода-вывода. Попытку преодоления недостатков метода предприняла группа ученых под руководством Чжана (Zhang). Они добавили механизм приоритетной миграции задач [17]. Однако полученный в результате их доработки метод оказался слишком ресурсоемким и обладал невысокой производительностью на задачах с интенсивной загрузкой ОП, даже по сравнению с исходными методами [8,14]. Более того, величина стоимости миграции данных в работе [17] учитывает лишь затраты на миграцию содержимого ОП, игнорируя при этом накладные расходы, связанные с миграцией результатов выполнения операций ввода-вывода, которые являются важной составляющей в общей стоимости миграции и должны учитываться при БН.
289
Совместить положительные стороны методов, предложенных в [8, 14], и метода, полученного Чжаном (Zhang), сохранив при этом достаточный уровень производительности, удалось группе ученых под руководством Ксяо Чин (Xiao Qin). В качестве основы они использовали собственный динамический метод балансировки – «Input-Output/CPU/Memory» (IOCM) [14,15], что расшифровывается как метод балансировки комплексной нагрузки, использующий в качестве критических ресурсов совокупность дисковых УВВ, ЦП и ОП. Метод является достаточно простым и эффективным, даже, несмотря на то, что в IOCM отсутствует механизм приоритетной миграции (чтобы подчеркнуть этот факт, метод обозначают еще как «IOCM-RE»). Метод IOCM-RE позволяет учесть возможность выполнения задачами удаленных операций ввода-вывода, благодаря чему узлы, выполняющие вычисления, могут отсылать запросы на выполнение операций ввода-вывода к другим узлам и принимать результаты выполнения этих запросов. IOCM-RE построен на основе комбинации политик IO-RE и CM-RE и действует согласно следующему алгоритму: если явная загрузка подсистемы ввода-вывода узла отлична от нуля, то используется метод балансировки по вводу-выводу (IO-RE); если отсутствует явная загрузка подсистемы ввода-вывода или присутствует неявная загрузка, вызванная отсутствием необходимых страниц в ОП, то применяется метод балансировки на основе ОП (CM-RE); если узел способен справиться с растущими потребностями задач в ОП, то активируется метод балансировки на основе ЦП (CPU-RE). В работе [16] метод «IOCM-RE» был доработан путем добавления механизмов приоритетной миграции и управления обратной связью, в результате чего получил обозначение «WAL-PM». Метод «WAL-PM» учитывает значение весовых коэффициентов ресурсов узлов и позволяет достигать достаточно хорошей производительности гетерогенных кластерных вычислительных систем с неоднородной нагрузкой.
290
Литература 1. Harchol-Balter M., Downey A. Exploiting Process Lifetime Distributions for Load Balancing. ACM Transactions on Computer Systems. vol. 15, 1997. 2. Hui C. and Chanson S. Improved Strategies for Dynamic Load Sharing IEEE Concurrency, vol.7, no.3, 1999. 3. Du X., Zhang X. Coordinating parallel processes on networks of workstations. Journal of Parallel and Distributed Computing. vol. 46, No. 2. 1997. 4. Kunz T. The influence of different workload descriptions on a heuristic load balancing scheme. IEEE Transactions on Software Engineering, vol. 17, No. 7, 1991. 5. Acharva A., Setia S. Availability and utility of idle memory in workstation clusters. In: Proceedings of the ACM SIGMETRICS Conf. on Measuring and Modeling of Computer Systems (1999). 6. Voelker G. Managing Server Load in Global Memory Systems”, Proc. ACM SIGMETRICS Conf. Measuring and Modeling of Computer Systems, May 1997. 7. Xiao L., Chen S., Zhang X. Dynamic Cluster Resource Allocations for Jobs with Known and Unknown Memory Demands, IEEE Transactions on Parallel and Distributed Systems, vol. 13, no.3, 2002. 8. Zhang X., Qu Y., Xiao L. Improving Distributed Workload Performance by Sharing both CPU and Memory Resources. Proc. 20th International Conf. Distributed Computing Systems (ICDCS 2000), April 2000. 9. Xiao L., Zhang X., Qu Y. Effective load sharing on heterogeneous networks of workstations. In: Proc. Of International Symposium on Parallel and Distributed Processing (2000). 10. Cho, Y., Winslett, M., S. Kuo, J.L., Chen, Y. Parallel I/O for scientific applications on heterogeneous clusters: A resourceutilization approach. In: Proceedings of Supercomputing. (1999). 11. Lee L., Scheuermann P., Vingralek R. File Assignment in Parallel I/O Systems with Minimal Variance of Service time, IEEE Trans. on Computers, vol. 49, No. 2, 2000. 12. Scheuermann, P., Weikum, G., Zabback, P. Data partitioning and load balancing in parallel disk systems, The VLDB Journal (1998) 48–66.
291
13. Isert C. and Schwan K, ACDS: Adapting Computational Data Streams for High Performance. In: International Parallel and Distributed Processing Symposium (IPDPS), 2000. 14. Qin X., Jiang H., Zhu Y., Swanson D.R. Dynamic Load Balancing for I/O-Intensive Tasks on Heterogeneous Clusters. In: Proceedings of International Conf. on High Performance Computing (HiPC03). 15. Qin X., Jiang H., Zhu Y. Improving the Performance of I/OIntensive Applications on Cluster of Workstations. The Journal of Networks, Software Tools and Applications, vol. 8, No.4, Oct. 2005. 16. Qin X., Jiang H., Zhu Y., Swanson D.R. A Feedback control mechanism for balancing I/O- and memory-intensive applications on clusters. The Parallel and Distributed Computing Practices Journal, 2005. 17. Xiao, L., S. Chen, and X. Zhang, Dynamic Cluster Resource Allocations for Jobs with Known and Unknown Memory Demands. IEEE Trans. on Parallel and Distributed Systems 13(3), 2002. ПРИМЕНЕНИЕ ПРОЧНОСТНОГО ПРОГРАММНОГО КОМПЛЕКСА ABAQUS С ИСПОЛЬЗОВАНИЕМ МНОГОПРОЦЕССОРНЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ С.А. Рыжов
ООО «ТЕСИС», Москва Программный конечноэлементный комплекс ABAQUS – это универсальная программа общего назначения, предназначенная как для проведения прочностного инженерного анализа, так и для научноисследовательских и учебных целей. Основные сферы деятельности, где может и уже используется ABAQUS: Автомобилестроение (BMW, FORD, General Motors, Mercedes, Toyota, Volvo, Goodyear); Авиастроение/Оборона (General Dynamics, Lockheed Martin, US Navy, Boeing); Электроника (HP, Motorola, IBM, Digital); Металлургия (British Steel, Dupont); 292
Производство энергии (ABB, AEA Technology, EPRI, Атомэнергопроект); Нефтедобыча и переработка (Exxon/Mobil, Shell, Dow); Производство товаров народного потребления (3M, Kodak, Gillette); Общая механика и геомеханика (GeoConsult, ISMES, ВНИИГ Веденеева).
С помощью ABAQUS можно проводить анализ таких сложных проблем, как расчет прочности турбомашин, расчет двигательных установок, шасси и трансмиссий, производство шин, сварка, анализ аварийных столкновений (краш-тесты), тесты на падение, сверхпластичное формирование, пробивание материала, расчет композиционных структур, литье металлов, контактное взаимодействие большого числа тел и самоконтакт, сейсмические воздействия, взрывные воздействия, расчет надежности ядерных реакторов, расчет прочности электронных компонент. ABAQUS изначально ориентировался на решение самых сложных и ответственных задач, с учетом всех видов нелинейностей, а также проведения многодисциплинарного статического и динамического анализа в рамках единого алгоритма. Такой подход выгодно отличает ABAQUS от других программ подобного уровня, что позволяет с помощью ABAQUS в рамках единого подхода решать многоцелевые задачи, сочетая преимущества явной и неявной схем конечноэлементного анализа и их комбинацию. Одной из важнейших особенностей программного комплекса ABAQUS является его универсальность. Данный пакет может использоваться на всех этапах проектирования и создания современных изделий и практически всеми расчетными, проектными и технологическими службами предприятия. ABAQUS исповедует открытый подход к решению сложных проблем и предоставляет неограниченные возможности по подключению пользовательских программ на всех этапах расчета конкретной задачи. Необходимо отметить надежность программного комплекса ABAQUS, строгий контроль за сходимостью исследуемых процессов, автоматический выбор шага интегрирования, мониторинг задачи на всех этапах расчета, многочисленные функции контроля.
293
ABAQUS тесно интегрирован практически со всеми CADсистемами, имеет современный и мощный собственный препостпроцессор ABAQUS/CAE. Следует также отметить связь через интерфейсы с другими программными продуктами, такими как ADAMS (кинематика и динамика узлов и механизмов), SYSNOISE (акустика и виброакустика), Moldflow (литье пластмасс), FlowVision (аэро- и гидродинамика). Программный комплекс ABAQUS доступен на всех стандартных платформах от персональных компьютеров с Windows NT/2000/XP до рабочих станций под UNIX и многопроцессорных систем. ABAQUS удовлетворяет стандарту качества ISO 9001 и стандарту качества установленного Американской ядерной контрольной комиссией для проверки качества проектирования ядерных силовых установок (ANSI/ASME NQA-1, 1983). Приводятся результаты примеров расчетов задач из различных предметных областей на многопроцессорных вычислительных системах. ИНТЕРАКТИВНОЕ УПРАВЛЕНИЕ ПАРАЛЛЕЛЬНЫМИ ВЫЧИСЛЕНИЯМИ ПРИ РЕШЕНИИ ЗАДАЧ МНОГОМЕРНОЙ МНОГОЭКСТРЕМАЛЬНОЙ ОПТИМИЗАЦИИ В.В. Рябов, С.В. Сидоров, А.В. Сысоев
Нижегородский государственный университет Введение Во многих прикладных задачах возникает проблема нахождения минимума некоторой функции при дополнительных ограничениях, которые могут быть заданы функционально. f ( y , u ) → min ⎧ ⎪ ( g y , u ) ≤ 0, j = 1,..., k ⎨ j ⎪ y ∈ D = {( y ,..., y ) : y ∈ [a , b ],1 ≤ i ≤ n}, u ∈ U = {(u ,..., u ) : u ∈ {u ,..., u }} 1 n i i i 1 T 1 s ⎩
u – вектор дискретных параметров, который может принимать значения из конечного числа наборов {u1 ,..., u s } . Вектор y меняется непрерывно.
294
Также
предполагается,
что
функции
f ( y, u )
и
g j ( y, u )
удовлетворяют условию Липшица. Кроме того, эти функции существенно многоэкстремальны, что не позволяет применить быстрые методы локальной оптимизации. Для решения рассмотренного класса задач на кафедре МО ЭВМ факультета ВМК ННГУ им. Н.И. Лобачевского группой преподавателей, аспирантов и студентов разрабатывается параллельный программный комплекс «Абсолют Эксперт». Компоненты системы Программный комплекс «Абсолют Эксперт» состоит из двух основных подсистем. Возможности поиска глобально-оптимальных решений обеспечивает подсистема оптимизации, включающая в себя алгоритмы глобального поиска, а также средства хранения и обработки поисковой информации. Подсистема управления, в свою очередь, предоставляет возможности визуализации хода вычислений, средства интерактивного управления глобальным поиском, а также удобный пользовательский интерфейс. Обе подсистемы представляют собой отдельные приложения. При этом подсистема оптимизации может использоваться автономно с интерфейсом командной строки. Ввод пользовательской задачи осуществляется путём подключения динамической библиотеки, в которой реализованы пользовательские целевые функции и указаны параметры задачи с использованием правил именования. Алгоритмы глобального поиска, используемые в системе, существенным образом используют информацию, полученную в ходе предыдущих шагов поиска (далее «поисковую информацию»), поэтому её хранение и обработка имеют принципиальное значение. Обработка поисковой информации Подсистема оптимизации включает в себя реализацию алгоритмов глобальной оптимизации (в том числе параллельных), средства хранения и обработки поисковой информации и средства взаимодействия с подсистемой управления. Поскольку вычисление пользовательских функций зачастую занимает значительное время и специфика задач требует немалого числа испытаний (испытанием называется вычисление необходимых функций в конкретной точке), многие алгоритмы активно используют параллельное вычисление целевых функций. Однако даже при использовании нескольких
295
вычислительных узлов время решения задачи остаётся значительным, поэтому сбой аппаратуры на одном из узлов может привести к потере или повреждению текущей поисковой информации. Для повышения надёжности и гибкости системы на средства хранения и обработки поисковой информации возлагается задача по сохранению данных на жёсткий диск либо другую внешнюю память и загрузке этих данных при необходимости возобновления вычислений с сохранённой точки останова. При использовании параллельных алгоритмов с распределением поисковой информации по всем узлам, данные для сохранения передаются на нулевой процесс, где и сохраняются на одной машине. Загрузка происходит после предварительной рассылки данных каждому процессу. Это позволяет легко переносить текущую поисковую информацию на другую машину, а также возобновлять поиск на другом количестве вычислительных узлов, в том числе на одном с использованием соответствующего последовательного алгоритма. Интерактивное управление вычислениями Подсистема управления позволяет визуализировать двухмерные сечения многомерных функций вместе с точками испытаний, полученными от подсистемы оптимизации, а также предоставляет рычаги управления параллельным (или последовательным) глобальным поиском, которые включают в себя остановку вычислений с сохранением текущей поисковой информации, загрузку данных и возобновление вычислений с сохранённой точки останова. Если произошёл останов по максимальному количеству испытаний либо по точности, поисковая информация также сохраняется, чтобы пользователь мог возобновить вычисления, увеличив максимальное число испытаний и/или точность. Это очередной шаг на пути к максимально полному использованию имеющейся поисковой информации. И если в работе [4] используется математический подход, то подход, используемый в данной работе, можно назвать программно-эвристическим (потому что пользователь может корректировать параметры методов и задач, пользуясь эвристическими соображениями).
296
Рис. 1. Фрагмент окна настройки конфигурации запуска
Для удалённого запуска в подсистеме управления также имеются средства настройки конфигурации (списка хостов и количества процессов на каждом с проверкой их доступности). Обмен данными между подсистемами Необходимо отметить, что параллельное выполнение подсистемы оптимизации обеспечивается использованием средств параллельной библиотеки MPI. Взаимодействие же с управляющим приложением обеспечивается использованием сокетов в неблокирующем режиме (системная библиотека WinSock2, которая есть в стандартной поставке любой версии Microsoft Visual Studio). Общая схема обмена данными по сокетам выглядит следующим образом: Отправка задачи оптимизации
…
процесс N–1
точки испытаний
процесс 1
управляющее оконное приложение
процесс 0
Отправка кода dll-модуля
команда пользователя
сигнал о завершении вычислений
Рис. 2. Схема обмена данными между подсистемами
Как видно на рисунке 2, обмен данными происходит между управляющим приложением и нулевым процессом подсистемы оптимизации. И если постановка задачи, бинарный код 297
пользовательских функций и команды управления рассылаются затем остальным процессам средствами MPI, то передача точек испытаний визуализирующему приложению происходит только с нулевого процесса. Это стало возможным благодаря специфике используемых параллельных алгоритмов поиска. Для алгоритмов, использующих распределённую поисковую информацию, точки испытаний на каждом процессе хранятся в преобразованном виде так, что одна точка многомерного пространства области поиска биективно отображается на множество точек отрезка одномерной оси. Это множество точек и распределяется по процессам. Кроме того, результаты испытания, проведённого на одном процессе, рассылаются остальным (асинхронно) с той лишь разницей, что на каждом процессе хранится свой образ многомерной точки испытания, т.е. информации с одного процесса достаточно для визуализации. Результаты данной работы демонстрировались на международной конференции CEBIT 2007 в Германии. Литература 1. Гергель В.П., Сысоев А.В. О реализации параллельной версии индексного метода поиска глобально-оптимальных решений в многомерных задачах оптимизации в программном комплексе “Абсолют Эксперт” // Труды всероссийской конференции “Научный сервис в сети Интернет: технологии параллельного программирования”, 2006, с. 115-118. 2. Пояснительная записка к техническому проекту по созданию подсистемы принятия решений для АСНИ и САПР (подсистема СИМОП-НИПР). 1987. 3. Стронгин Р.Г. Численные методы в многоэкстремальных задачах. (Информационно-статистические алгоритмы). М., Наука, 1978. 4. Стронгин Р.Г., Баркалов К.А. О сходимости индексного алгоритма в задачах уcловной глобальной оптимизации с εрезервированными решениями. // «Вестник Нижегородского Университета. Мат. моделирование и оптимальное управление», вып. 2(21), 1999. 5. Strongin R.G., Sergeev Ya.D. (2000). Global optimization with non-convex constraints: Sequential and parallel algorithms. Kluwer Academic Publisher, Dordrecht.
298
ДЕМОНСТРАЦИЯ ВОЗМОЖНОСТЕЙ МНОГОЯДЕРНЫХ КОМПЬЮТЕРОВ ПРИ ОБУЧЕНИИ СТУДЕНТОВ ЕСТЕСТВЕННО-НАУЧНЫХ СПЕЦИАЛЬНОСТЕЙ А.М. Сивков, Д.А. Сивков
Удмуртский госуниверситет, Ижевск Введение Студентам естественно-научных специальностей часто приходится ставить эксперименты, в том числе вычислительные. Как правило, эти эксперименты требуют использования значительных ресурсов. Так, например, для полного понимания динамики происходящих процессов бывает полезным демонстрировать развитие процесса в режиме реального времени или даже ускоренно. Радикальное снижение стоимости многоядерных компьютеров и их доступность позволяют использовать их возможности при проведении лабораторного практикума. Однако, для того чтобы вычислительные ресурсы использовались эффективно, необходимо подготовить специальное программное обеспечение, ориентированное на применение таких систем, и расширить навыки студентов, которые будут его использовать. В данной работе в качестве одного примера из лабораторного практикума для студентов физических и математических специальностей, а также для студентов компьютерных специальностей предложено: полная математическая модель физического явления; программный комплекс; руководство по лабораторному использованию. Задача о горнолыжнике Пусть горнолыжник совершает спуск из точки А в точку В на плоском склоне горы, расположенном под некоторым углом к горизонту. Требуется найти такую траекторию, спуск вдоль которой занимает наименьшее время.
299
Рис.1. Положение точек старта и финиша на склоне
Заметим, что если бы скорость горнолыжника была постоянной и не зависела от вида траектории, то решением задачи была бы самая короткая из всех возможных траекторий: прямая, соединяющая точки А и В. Однако различные направления на склоне не равноправны. Горнолыжник начинает спуск, имея нулевую (или очень небольшую) начальную скорость. Затем, вследствие действия силы тяжести, его скорость растет. Быстрее всего скорость возрастает при спуске в направлении наибольшей крутизны склона. Если точка В лежит хотя и ниже точки А, но несколько в стороне, для горнолыжника может оказаться более выгодным, с точки зрения затраченного времени, двигаться не сразу в направлении к точке В, а по траектории, отличной от прямолинейной. Так возможно вначале набрать скорость, двигаясь круто вниз, и только потом повернуть к точке В.
Рис.2. Одна из возможных траекторий спуска из точки А в точку В
В простейшем случае такая траектория состоит из двух отрезков прямых. Точку сопряжения отрезков будем называть узлом. Найти оптимальную траекторию из двух отрезков прямых – значит найти положение узла, поскольку точки начала и конца траектории
300
фиксированы. Один из способов поиска оптимальной траектории – метод перебора. В рассматриваемой задаче наиболее «быстрой» траекторией является плавная кривая, а ломаная линия из двух отрезков прямых – всего лишь грубое приближение к ней. Тогда решение задачи можно искать в классе ломаных, состоящих из N отрезков прямых, и увеличивать N до тех пор, пока точность приближения не станет приемлемой. Задача о горнолыжнике является типичным представителем целого семейства задач. Среди них, например, – задача о пикирующем бомбардировщике или задача о перелете космического корабля с одной планеты на другую. Задание практикума для студентов физических специальностей В лабораторной работе рассматривается движение горнолыжника по скользкому склону под действием сил тяжести и трения. Под действием этих сил на прямолинейных участках траектории движение происходит с постоянным ускорением. Данный лабораторный практикум предназначен для изучения закономерностей подобного движения, закона сохранения энергии, законов Ньютона. Возможна постановка экспериментов для различных сочетаний исходных параметров, таких как: крутизна склона, ускорение свободного падения, коэффициент трения. Задание практикума для студентов математических специальностей Для студентов математических специальностей задача о спуске горнолыжника представляет интерес как задача оптимального управления. В лабораторной работе предоставляется возможность выбора точек переключения кусочно-постоянных управлений, приводящих к кусочно-линейной траектории движения. Цель управления состоит в достижении точки финиша за наименьшее время. Таким образом, студенты на практике знакомятся с решением одной задачи быстродействия. Возможна постановка эксперимента в ручном и автоматическом режимах. В ручном режиме студенту предлагается самостоятельно выбирать точки переключения, их число. По выбранным точкам программа строит траекторию движения и вычисляет общее время движения.
301
В автоматическом режиме происходит оптимизация выбранного управления таким образом, чтобы общее время движения было минимальным. Задание практикума для студентов компьютерных специальностей Студентам компьютерных специальностей предлагается проанализировать алгоритм работы программы, подготовить его параллельную версию, реализовать ее с использованием различных средств многонитиевого параллельного программирования. Предлагается исследовать процесс работы программы с использованием различных инструментов отладки и профилирования, оптимизировать параллельную программу для эффективного использования ресурсов многоядерной системы, достижения производительности, близкой к максимально возможной. Заключение Авторы располагают программно-методическим комплексом, описанным в данной работе. И планируют использовать его в читаемых ими курсах. ЭФФЕКТИВНЫЕ ПАРАЛЛЕЛЬНЫЕ АЛГОРИТМЫ И ПРОГРАММНЫЕ СРЕДСТВА ПОИСКА ГЛОБАЛЬНООПТИМАЛЬНЫХ РЕШЕНИЙ В МНОГОМЕРНЫХ МНОГОЭКСТРЕМАЛЬНЫХ ЗАДАЧАХ С.В. Сидоров, А.В. Сысоев, В.В. Рябов
Нижегородский государственный университет Введение Кафедра математического обеспечения ЭВМ факультета ВМК Нижегородского государственного университета им. Н.И. Лобачевского разрабатывает программный комплекс «Абсолют Эксперт», предназначенный для решения многомерных многоэкстремальных задач глобальной оптимизации с функциональными ограничениями. В настоящей работе рассматривается схема остановки и возобновления счета в последовательной и параллельной версии
302
индексного метода [1, 2], реализованного в программной системе “Абсолют Эксперт” [3, 5]. В рамках данной работы расширена функциональность комплекса за счет использования различных схем распараллеливания алгоритмов. Эффективная параллельная версия индексного метода с множественной разверткой Задачи оптимизации позволяют описывать многие ситуации принятия решения. Подобные задачи часто являются вычислительно ёмкими, многомерными, многоэкстремальными и многокритериальными. Как результат, алгоритмы, предназначенные для решения таких задач, требуют немало времени (дни, недели, месяцы) для отыскания оптимальных решений. Таким образом, становится очень актуальным наличие быстрых методов поиска оптимальных решений таких задач. При этом уменьшения времени поиска можно добиться за счет использования нескольких вычислительных узлов. Для эффективной организации вычислений на многопроцессорных высокопроизводительных вычислительных системах при решении задач оптимизации необходимо наличие параллельных методов поиска глобально-оптимальных решений. Авторами была выполнена реализация параллельной версии индексного метода с множественными развертками, основанная на равномерном распределении интервала поиска между вычислительными процессами. При этом каждый процесс на каждой итерации выбирает следующую точку испытания в своем интервале поиска. В предположении, что вычисление значений функционалов в различных точках может занимать существенно различное время, в реализации использованы неблокирующие посылки MPI. Схема обмена данными между процессами асинхронная. Предположение о длительном вычислении функционалов позволяет разбить пересылки данных на каждой итерации на два шага: рассылка новой точки испытания с признаком блокирования остальным, что гарантирует процессам одновременное проведение испытаний в разных точках и не даёт использовать интервалы, на одном из концов которых ещё не вычислено значение функции; рассылка результатов испытания в новой точке и её разблокирование.
303
0
1
2
… L-2
L-1
L
Рис. 1. Схема отображения многомерной точки на множество одномерных
Выполнение поиска глобально-оптимального решения сложных производственных задач может длиться от нескольких часов до суток ввиду вычислительной сложности функционалов, входящих в задачу. При этом возникает необходимость остановки и возобновления вычислений. Вместе с остановкой алгоритма сохраняется вся накопленная информация о проведённых испытаниях, а также исходные данные о решаемой задаче. Все данные после остановки счёта располагаются во внешней памяти и могут быть перенесены с одного вычислительного узла на другой с возможностью продолжения счёта на нем. При возобновлении поиска происходит загрузка всех данных о решаемой задаче с возможным некоторым изменением параметров задачи. Необходимость остановки счета обусловлена рядом факторов. Наличие такой возможности влияет на гибкость использования алгоритма поиска, обеспечивая возможность при решении реальных прикладных задач прекратить в определенный момент счет с получением текущей оценки глобального минимума. В дальнейшем можно использовать сохранённую поисковую информацию и продолжить нахождение ещё более точной оценки. Возможность остановки и возобновления счета серьезно расширяет функциональность системы, позволяя начать вычисления на одном узле, потом при необходимости прекратить счёт с сохранением всей накопленной информации, и затем продолжить вычисления на этом или другом узле через любой промежуток времени. Таким образом, в случае окончания квоты на использование вычислительных ресурсов можно прекратить вычисления и продолжить их при появлении таких ресурсов.
304
В рамках данной работы выполнена реализация остановки и возобновления вычислений для четырёх алгоритмов глобального поиска. Литература 1. Гергель В.П., Сысоев А.В. О реализации параллельной версии индексного метода поиска глобально-оптимальных решений в многомерных задачах оптимизации в программном комплексе “Абсолют Эксперт” // Труды всероссийской конференции “Научный сервис в сети Интернет: технологии параллельного программирования”, 2006, с. 115-118. 2. Стронгин Р.Г. Поиск глобального оптимума. Математика и кибернетика. – Знание, 2. 1990. 3. Сысоев А.В., Сидоров С.В. Использование чисел расширенной точности в реализации индексного метода поиска глобальнооптимальных решений // Материалы пятого Международного научно-практического семинара “Высокопроизводительные параллельные вычисления на кластерных системах”. 2005. Стр. 208-215. 4. Strongin R.G., Sergeev Ya.D. Global optimization with nonconvex constraints: Sequential and parallel algorithms. – Kluwer Academic Publisher. Dordrecht. 2000. 5. Sysoyev A.V. Program system of parallel computations for solving the tasks of global-optimum choice // VI International Congress on Mathematical Modeling/Book of abstracts. 2004. p. 62. ИСПОЛЬЗОВАНИЕ ТЕХНОЛОГИИ INFINIBAND ПРИ ПОСТРОЕНИИ КЛАСТЕРНЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ А.Н. Суслов
Рязанский государственный радиотехнический университет Кластеры - это мощное, масштабируемое, экономически эффективное решение для приложений, требующих больших объемов вычислений. Вычислительный кластер можно определить как совокупность компьютеров, объединенных в рамках некоторой сети для решения одной задачи. Архитектура системы определяется задачей, для решения которой предназначен данный кластер. Узлами могут быть 305
компьютеры, разнообразные по архитектуре и мощности, а также с разнообразным установленным программным обеспечением. Одним из ключевых факторов, влияющих на производительность системы, является коммуникационная среда, выбор которой определяется свойствами решаемых задач. На сегодняшний момент доступны несколько стандартов сетевого оборудования, обладающих высокой скоростью передачи данных и низкой латентностью. К их числу можно отнести такие технологии, как SCI (Scalable Coherent Interface), Fast Ethernet, Gigabit Ethernet, Myrinet 2000, QSW (Quadrics Supercomputers World), InfiniBand, каждая из которых имеет свои преимущества и недостатки. Одной из наиболее быстро развивающихся технологий является InfiniBand, поддерживаемая рядом ведущих мировых производителей, таких как Intel, IBM, Cisco, Sun, Qlogic и др. InfiniBand - это стандарт, описывающий новую архитектуру и спецификации на передачу данных между процессорами и интеллектуальными устройствами ввода/вывода. InfiniBand заменяет в серверах шину PCI, обещая тем самым большую пропускную способность, более распределенную структуру и большую гибкость в архитектуре серверов. Она предлагает гораздо более широкие возможности и высокую производительность, чем PCI. Хотя PCI достаточно надежна и обеспечивает приемлемую скорость, тем не менее, она во многом уступает канальной архитектуре InfiniBand. С помощью InfiniBand связь с удаленными модулями хранения, сетевые функции и соединения между серверами будут осуществляться за счет подключения всех устройств через центральную, унифицированную структуру коммутаторов и каналов InfiniBand. Именно таким образом InfiniBand решает «вопросы расстояния», возникающие при использовании архитектур на базе шин, таких как PCI, при которых расстояние между модулем ввода/вывода и материнской платой с процессором не может превышать нескольких дюймов или даже сантиметров. Канальная архитектура InfiniBand позволяет размещать устройства ввода/вывода на расстоянии до 17 м от сервера с помощью медной проводки, а также до 300 м с помощью многомодового волоконно-оптического кабеля и до 10 км — с помощью одномодового волокна. Данная возможность позволит проектировщикам пересмотреть внутреннее строение серверов, уменьшив размеры корпуса сервера, что позволит более
306
эффективно использовать полезное пространство серверных помещений. Спецификация InfiniBand предусматривает наличие в канальных адаптерах одного, четырех или 12 каналов, в зависимости от требуемого уровня производительности. Реализуемая ими скорость при двунаправленной передаче данных — 500 Мбит/с, 2 и 6 Гбит/с соответственно. InfiniBand использует расширенную адресацию, поддерживаемую IPv6. В заголовках InfiniBand Global Route Header пересылаемые пакеты содержат адреса отправителя (HCA) и получателя (TCA), что позволяет коммутаторам InfiniBand сразу направлять пакет на нужное устройство. Для обеспечения устойчивости к сбоям коммутаторы InfiniBand можно каскадировать. При использовании шин PCI серверы всегда имели критически уязвимую точку, а поскольку InfiniBand поддерживает более распределенную конструкцию и канальную архитектуру, можно организовать автоматическое резервное копирование и восстановление после сбоя, чего нельзя было сделать в системах с шинами. Боб Пирсон, вице-президент компании Vieo, считает, что InfiniBand позволит разработчикам создавать более быстрое программное обеспечение, поскольку они смогут получить приложения, способные напрямую обращаться к устройствам ввода/вывода вместо того, чтобы вовлекать в эти операции центральный процессор. РЕАЛИЗАЦИЯ ТИПОВЫХ АЛГОРИТМОВ ОБРАБОТКИ ИЗОБРАЖЕНИЙ НА МУЛЬТИЯДЕРНЫХ ПРОЦЕССОРАХ В.А. Фурсов, С.Б. Попов, И.И. Доровских
Самарский государственный аэрокосмический университет имени академика С.П. Королева (СГАУ), Институт систем обработки изображений Российской академии наук (ИСОИ РАН), Самара Постановка задачи Одним из следствий прогресса в развитии технических средств регистрации изображений является быстрый рост их размеров. Связано это в первую очередь с возрастанием требований к пространственному разрешению систем видеонаблюдения. Кроме
307
того, есть области (геоинформатика, аэрокосмический мониторинг Земли), где традиционно используются большеформатные изображения. Для улучшения качества этих изображений обычно осуществляют их обработку с использованием как линейных, так и нелинейных фильтров. Такая обработка особенно актуальна в ситуациях, когда получен единственный экземпляр изображения при плохих условиях регистрации. Ясно, что для обработки большеформатных изображений должны использоваться высокопроизводительные процессоры. В настоящее время массовое распространение получили многоядерные процессоры, которые показывают существенное повышение производительности на ряде задач [1]. Следует заметить, что компании, осуществляющие тестирование производительности процессоров, как правило, уделяют большее внимание компьютерным играм (ориентация на домашний компьютер) или задачам, использующим различные операции с матрицами (ориентация на компьютер в научном учреждении). Однако исследования производительности графических редакторов, таких как Photoshop®, Gimp, Digital Flash® (Retinex) и других, менее популярно. Существующие наборы тестов включают, например, исследование скорости конвертации фотографий (уменьшение размера). Вместе с тем такая типичная задача, как повышение контрастности, вообще не рассматривается. Настоящая работа посвящена исследованию реализации параллельных алгоритмов обработки изображений на многоядерных и мультитредовых процессорах. Основная цель работы – получить сравнительные характеристики эффективности различных схем реализации типовых алгоритмов обработки изображений, а также оценки производительности различных типов процессоров на этих задачах. Типовые схемы обработки изображений Среди схем обработки изображения выделяют [2] следующие основные типы: 1. операции поэлементной обработки, формирующие значение каждой точки результирующего изображения на основе одной точки исходного изображения (рис. 1а); 2. обработка локальной окрестности или локальная обработка скользящим окном (рис. 1б), специальным классом операций
308
3.
над локальной окрестностью является рекурсивная обработка локальной окрестности (рис. 1в); глобальные операции обработки, при которых в качестве опорной области используются значения всех точек исходного изображения.
а)
б)
в)
Рис. 1. Схемы обработки изображения
В задачах улучшения качества изображений обычно используется локальная обработка скользящим окном, которая реализуется с помощью линейных и нелинейных фильтров. К линейным фильтрам относятся фильтры с конечной импульсной характеристикой (вычисления для текущего отсчета производятся на основании информации об отчетах, расположенных вблизи данного – в окне опорной области конечного размера, рис. 1б) и бесконечной импульсной характеристикой (рис. 1в). При обработке квазиоптимальным линейным фильтром значение функции яркости в точке выходного изображения формируется как линейная комбинация значений функции яркости входного изображения в пределах выбранной области. Заметим, что наиболее характерными для регистрируемых изображений являются динамические искажения (дефокусировка, смаз и т.п.). Кроме того, изображения могут подвергаться воздействию как нормальных (зернистость фотопленки, шумы радиотехнических систем и т.п.), так и импульсных (могут вноситься цифровыми элементами системы) помех. Для их устранения могут применяться как линейные, так и нелинейные, например, медианные фильтры [3]. С точки зрения вычислительной схемы реализации они соответствуют схеме, использующей обработку локальной окрестности (рис. 1б). Качество изображение является неудовлетворительным, если на нем присутствуют аддитивные и импульсные (следствие использования цифровых систем передачи и хранения изображения) помехи, оно дефокусировано или смазано. Для устранения такого рода дефектов могут быть использованы типовые линейные фильтры и медианные фильтры (подкласс нелинейных фильтров). 309
Описание экспериментов Испытания проводились на компьютерах трех типов: мультитредовый – процессор Intel Pentium 2.4 GHz MultiThread, двухъядерный – процессор Intel Core Duo 2.4 GHz, восьмиядерный - 2 четырехъядерных процессора Intel Xeon 2.0GHz.
Разработанная тестовая система имеет в основе многопоточное приложение, написанное на Java. Количество потоков, создающихся в системе, может варьироваться. Общее время работы системы складывается из времени, затрачиваемого на считывание изображения из входного файла, времени его обработки и времени записи обработанного изображения в выходной файл (т.е. не учитывается время визуализации, а также время, необходимое для запуска javaмашины), и измеряется в секундах. Время обработки изображения, по сути, представляет собой максимальное время существования нити (потока, занимающегося обработкой). В качестве задачи для одного потока используется либо набор операций, связанный с получением одной точки выходного изображения или, в зависимости от способа распределения работы, набора точек. Задача включает в себя: считывание значений функции яркости в пределах выбранного окна, обработка – формирование функции яркости выходного изображении в центре окна, запись получившегося значения в выходное изображение. Под общей задачей будем понимать обработку изображения в целом. Исследовались два различных подхода к распределению общей задачи между потоками: 1. декомпозиция данных – закрепление за определенным потоком определенного набора входных данных (в нашем случае область исходного изображения) перед началом работы системы; 2. функциональная декомпозиция – каждый поток будет получать очередную задачу самостоятельно в процессе работы. Функциональную декомпозицию, в свою очередь, также можно выполнить различными способами:
310
1. 2.
поток получает на выполнение одну задачу – формирует одну точку выходного изображения; поток получает набор задач – формирует несколько точек выходного изображения.
В качестве набора задач рассматривались строка, столбец или блочная строка выходного изображения. Исследования проводились при различных схемах декомпозиции, в частности, рассматривались следующие варианты строчной декомпозиции: 1. Строки распределяются между потоками статически, то есть при обращении освободившегося потока за очередной задачей (строкой для обработки) он получает строку с номером вида k + n * i , где k – номер потока, n – общее количество потоков, i – количество задач, выполненное этим потоком. На каждом шаге обработки (при каждом положении окна) производится считывание информации обо всех отсчетах, попавших в это окно. 2. Строки распределяются между потоками статически, но на каждом шаге обработки производится считывание только тех отсчетов изображения, которые попали в окно при его последнем передвижении (столбец). 3. Строки распределяются между потоками динамически, т.е. при обращении освободившегося потока за очередной задачей он получает строку с номером, следующим за номером последней взятой строки. На каждом шаге обработки производится считывание очередного столбца. Кроме указанных выше способов исследовался также вариант со статическим распределением столбцов. Особенность такого варианта состоит в том, что при передвижении по столбцу (при сдвиге окна вниз) на каждом этапе производится считывание строки, а не столбца как при построчной обработке. Влияние направления движения определяется способом хранения изображения, т.е. временем, затрачиваемым на доступ к элементам. При статическом распределении задач отсутствует синхронизация, однако, если возникнет ситуация, когда одному из потоков система какое-то время не выделяет квантов времени для работы, этот поток завершит свою работу позже остальных. То есть при определенных 311
условиях фиксированное количество выделяемых для потока строк не очень эффективно. Однако по сравнению с блочным разбиением нет необходимости жестко задавать фрагмент для обработки на начальном этапе работы программы. Основные результаты Рассмотрим полученные зависимости общего времени обработки от числа запущенных потоков для выбранных тестовых компьютеров. Из рисунка 2 можно заметить, что для малого размера окна обработки медианная фильтрация на многоядерных процессорах требует практически столько же времени сколько линейная, а на мультитредовом она является более быстрой. При больших размерах окон линейная фильтрация становится более выигрышной, но разница в производительности для разного рода процессоров остается такой же.
Рис. 2. Время обработки изображения окном 3x3 и 9x9, где MT_med и MT_fir медианная и линейная фильтрации на мультитредовом, DUO_med и DUO_fir – на двухъядерном, XEON_med и XEON_fir – на восьмиядерном компьютере. Вертикальная шкала показывает время в секундах
На рисунке 3 представлены графики, иллюстрирующие соответствующие кривые для трех вариантов разбиения изображения. В первом случае каждый поток при обращении за задачей получает данные для расчета одной точки выходного изображения, во втором случае – для расчета строки. В третьем случае входное изображение изначально делится на блочные строки, которые передаются потокам до начала обработки. Из графиков видно, что наибольшее время занимает обработка изображения в случае, когда каждый поток обращается за очередной задачей. Этот факт объясняется наличием синхронизации в модуле распределения задач. Поскольку вычисление одной точки выходного изображения происходит достаточно быстро, потоки большую часть времени ожидают своей очереди при получении задачи. 312
Рис. 3. Время обработки изображения окном 3x3 и 9x9, где Single_MT, String_MT и Block_MT – позадачная, построчная и блочная декомпозиции на мультитредовом, Single_DUO, String_DUO и Block_DUO – на двухъядерном, Single_XEON, String_XEON и Block_XEON – на восьмиядерном процессоре
Построчное распределение практически не уступает блочному. То есть при построении многопоточных приложений в случае произвольных объемов обрабатываемых данных (заранее сделать декомпозицию по данным нельзя) следует воспользоваться построчной декомпозицией, так как она дает большой выигрыш по сравнению с позадачной декомпозицией и практически не проигрывает по сравнению с блочной. Отметим также, что при увеличении размера задачи, которую выполняет каждый поток, использование процессора с большим количеством ядер дает более заметное преимущество. На рисунке 4 приведены графики зависимости времени обработки изображения от количества запускаемых потоков при различных видах строчной декомпозиции.
Рис. 4. Время обработки изображения на одноядерном мультитредовом и двухъядерном процессоре, где 1 - статическое распределение строк (считывается все окно), 2 - статическое распределение строк (считывается столбец), 3 - статическое распределение столбцов (считывается строка), 4 динамическое распределение строк, 5 - динамическое распределение задач, 6 блочное распределение
Таким образом, можно утверждать, что статическое распределение строк, при котором на каждой итерации считывается все окно, по временным затратам близко к распределению задач. Статическое распределение столбцов, как видно из графика, так же относится к методам, требующим больших затрат времени. Данный 313
факт можно объяснить особенностями используемого формата представления изображения. Для него затраты на считывание строки оказываются большими, чем затраты на считывание столбца. Заключение Преимущество многоядерных процессоров над одноядерными (в том числе мультитредовыми) особенно сильно проявляется в следующих случаях: подверглось сильным динамическим 1. изображение искажениям, и требуется его обработка фильтром с большой опорной областью, 2. изображение имеет большие размеры, 3. изображение можно заранее разбить на блоки и распределить их между процессами, занимающимися обработкой.
Работа выполнена при поддержке РФФИ (гранты № 06-08-01024 и № 07-07-00210), а также гранта исследовательского конкурса компании «Интел» по многоядерным технологиям. Литература 1. Калышенко А.А. Обзор четыхядерного процессора Intel, http://samara.pragma.ru/files/reviews/intel_quad.html?shop=1ec58 f3b952fa19af12d6229423a7139, 2006 г. 2. R.G. Gonzales, R.E. Woods. Digital Image Processing. AddisonWesley, 1992. 3. Методы компьютерной обработки изображений / Под ред. Сойфера В.А. Москва: Физматлит, 2003. ВЛИЯНИЕ СИНХРОННЫХ И АСИНХРОННЫХ ВЗАИМОДЕЙСТВИЙ НА ПРОИЗВОДИТЕЛЬНОСТЬ ПАРАЛЛЕЛЬНОЙ ПРОГРАММЫ. Д.И. Харитонов, Д.С. Шиян
Институт автоматики и процессов управления ДВО РАН, Владивосток В настоящей статье предлагается сравнение эффективности применения синхронных и асинхронных взаимодействий в
314
параллельной программе, моделирующей двумерное нестационарное движение газа через пористый тепловыделяющий элемент. Введение Эффективность работы параллельной программы обычно оценивается как отношение времени работы однопроцессорной версии программы ко времени работы программы на многопроцессорной системе, то есть как ускорение программы в зависимости от количества используемых процессоров. Идеальным вариантом является совпадение ускорения программы с количеством процессоров. На практике же величина ускорения программы имеет верхний предел, который объясняется законом Амдала, то есть долей последовательных операций в программе. На графике времени работы программы этот эффект проявляется как предел, к которому стремится время работы программы при увеличении количества процессоров. Довольно часто этот предел наблюдается уже при количестве используемых процессоров порядка 10, что заставляет задумываться об альтернативных объяснениях этого явления, в частности о степени влияния синхронных взаимодействий на конечную производительность программы. В 2007 году в ИАПУ ДВО РАН была произведена адаптация последовательной программы, реализующей численный метод решения системы дифференциальных уравнений, к исполнению на многопроцессорной вычислительной системе. При оценке эффективности работы программы на многопроцессорном вычислительном комплексе МВС15000 (42 узла по 2 процессора IBM PowerPC 970+, объединённых сетью Myrinet), был получен график времени работы программы, после анализа которого были сделаны выводы о необходимости перехода от синхронного взаимодействия процессов к асинхронному. Далее в статье приводятся сравнительные характеристики эффективности работы программы в зависимости от типа взаимодействия. Описание программы Рассматриваемая в настоящей статье программа реализует численное решение системы уравнений, моделирующих двумерное нестационарное движение газа через пористый тепловыделяющий элемент. Пропуская математическую модель, используемую в этой программе [1,2], следует отметить некоторые особенности её реализации. Входные и выходные данные хранятся в шести
315
трехмерных статических массивах, каждый из которых отвечает за значения одной из следующих величин: температуры, давления и плотности газа, температуры твердой фазы, горизонтальной и вертикальной скоростей фильтрации. Первые две координаты массивов отвечают за размерность сетки вычислений, а третья за количество временных слоев, необходимых для организации вычислений. Сетка имеет прямоугольную форму, внутри которой располагаются три зоны вычислений, совокупная область которых имеет т-образную форму. Размерность сетки вычислений и количество шагов по времени зависят от значения шага по пространству, который задается в начале программы. Вычисления значений массивов реализуются в цикле по времени, за исключением значений используемых констант, начальных краевых условий, а также дополнительных вертикальных условий, которые определяются в начале программы.
Рис. 1. Шаблон вычислений
В реализованном в программе численном методе расчет значений в узлах сетки текущего временного слоя производится с использованием значений предыдущего временного слоя. В начале каждой итерации слои меняются местами. Для вычисления значений в узле сетки используются значения соседних узлов. На рис. 1 изображены в виде шаблонов взаимосвязи узлов в вычислениях, где серым цветом помечена ячейка с вычисляемыми значениями. Шаблон для вычисления значений температуры газа, горизонтальной и вертикальной скоростей фильтрации представлен на рис. 1а, для вычисления значений температуры твердой фазы - на рис. 1б. Порядок обхода ячеек узлов сетки изображён на рисунке 1в.
316
Рис. 2. Взаимодействие между процессами параллельной программы
Описанная выше схема вычислений практически идеально подходит для параллельной реализации. При этом сетка вычислений делится на вертикальные области, взаимодействующие только со своими соседями. На рис. 2 представлена схема взаимодействия для jго процессора. Каждая расчетная область состоит из: внутренней области (I), для вычисления значений которой не требуются значения из других областей; граничных значений (II), для вычисления которых необходимы значения из соседних расчетных областей; теневой области (III), значениями которой являются граничные значения соседней области, т.е. они не вычисляются на рассматриваемом узле. На каждой итерации процессы обмениваются с соседями, передавая им свои граничные и принимая от них теневые области. Таким образом, основной параллельный вычислительный процесс можно разбить на 2 стадии. Первая стадия – вычисление значений расчетной области, вторая стадия – синхронный обмен граничными областями. Оценка производительности работы программы Для оценки производительности программы использовался многопроцессорный вычислительный комплекс МВС15000. Объем вычислений в рассматриваемой программе возрастает в квадратичной зависисмости от размера сетки, а объем пересылаемых сообщений возрастает в линейной зависимости от размера сетки. Таким образом, с увеличением размера сетки доля коммуникаций в общем времени исполнения программы должна уменьшаться. Однако, описанные в настоящем разделе характерные особенности программы проявлялись при различном количестве итераций и размерностей сетки вычислений. Для анализа эффективности взаимодействий последовательно были произведены замеры следующих показателей: 1. время вычислений с синхронным обменом – первоначальное время работы программы;
317
2. 3. 4. 5.
время, затрачиваемое на синхронный обмен без вычислений – для оценки быстродействия MPI среды; время, затрачиваемое на асинхронный обмен данными без вычисления – для оценки влияния процедуры синхронизации; время непосредственно вычисления без учёта обмена сообщениями; время вычислений с асинхронным обменом данными.
В процессе исполнения программы на многопроцессороном вычислительном кластере получили графики (рис. 3), где на оси абсцисс использовалась логарифмическая шкала по степени 2. При использовании асинхронного типа обмена между процессорами время работы программы практически совпадает с временем работы программы без осуществления взаимодействий между процессорами, что заметно быстрее, чем при использовании синхронного взаимодействия. На графиках видно, что время, затрачиваемое на осуществление синхронного обмена между процессорами, возрастает с увеличением количества процессоров даже без осуществления вычислений, а время асинхронного обмена не зависит от количества взаимодействующих процессоров. Полученные результаты показывают, что использование синхронных взаимодействий при увеличении количества процессоров заметно уменьшает производительность программы, причем на примере использования 16 процессоров время синхронизации обмена занимает практически пятую часть от всего времени работы программы.
318
сек
с ек 71000
3500
61000
3000
51000
2500
41000
2000
31000
1500
21000
1000 11000
500 1000 0
1
2
3
4
0 0
Синхронны й обм ен с в ы чис лениям и
1 Синхронный обмен
А с инхронны й обм ен с в ы чис лениям и Вы чис ления без обм ена
Рис.1. Зависимость времени работы программы от количества процессоров (логарифмическая шкала).
2
3
4
Асинхронный обмен
Рис.2. Зависимость времени синхронных и асинхронных типов обменов от количества процессоров без вычислений (логарифмическая шкала).
Рис. 3
Заключение Производительность коммуникационной среды существенно влияет на общую производительность параллельной программы. При медленной коммуникационной среде большое количество процессоров могут использовать только программы, составленные из слабовзаимодействующих процессов. Переход к быстрой коммуникационной среде, например от Ethernet к Myrinet, позволяет увеличить пропускную способность канала и уменьшить латентность, но не всегда приводит к ожидаемому увеличению производительности параллельной программы. Как было отмечено ранее, применение синхронных взаимодействий может во много раз понизить производительность коммуникации, так как при использовании синхронных операций взаимодействия время, затрачиваемое на синхронизацию, существенно превышает время передачи сообщения. В результате доля последовательных операций, соответствующих операциям взаимодействия, по большей части состоит из простоя процессоров, вызванного ожиданием. Даже в лекционных курсах отмечается, что применение асинхронных взаимодействий предпочтительнее синхронных [4]. Однако на практике программирование с синхронными взаимодействиями является более простым. Например, а статье [5] отмечается, что точечные операции взаимодействия Send/Recv являются источниками ошибок. Между тем, как асинхронное взаимодействие, по сути, может быть организовано только при помощи точечных операций. Таким образом, в настоящее время у разработчиков программного обеспечения есть непростой
319
выбор между применением быстрых асинхронных операций взаимодействия или использованием более корректных синхронных взаимодействий, ограничивающих общую эффективность параллельных программ. Литература 1. Левин В.А., Луценко Н.А. Течение газа через пористую тепловыделяющую среду при учете температурной зависимости вязкости газа // Инженерно-физический журнал. 2006. Т.79, №1. С.35-40. 2. Левин В.А., Луценко Н.А. Численное моделирование двумерных нестационарных течений газа через пористые тепловыделяющие элементы // Вычислительные технологии. Т.11, №6. С.44-58. 3. Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. СПб.: БХБ-Петербург. 2002. 608с. 4. Group W., Lusk E., Skjellum A Using MPI — 2nd Edition: Portable Parallel Programming with the Message Passing Interface (Scientific and Engineering Computation). MIT Press, 1999 5. S.Gorlatch. Send-Recv Considered Harmful? Myths and Truths about Parallel Programming, in: Parallel Computing Technologies, ed. V.Malyshkin (Springer, 2001), P.243-257. ПРОГРАММНОЕ СРЕДСТВО ЦЕНТРАЛИЗОВАННОГО УПРАВЛЕНИЯ ПАРАЛЛЕЛЬНЫМИ ВЫЧИСЛЕНИЯМИ А.А. Чащин
Вятский государственный университет, Киров Введение При решении научных задач, требующих больших вычислительных расчетов, таких как моделирование сложных процессов, статистический анализ и др., научно-исследовательские организации используют кластерные системы, существенно сокращающие время обработки решаемых задач за счет разбиения задачи на отдельные потоки, обрабатываемые параллельно. Главный недостаток кластерных систем: системы дорогие и довольно быстро стареют. Одной из перспективных технологий параллельных
320
вычислений является GRID-технология – это технология создания эффективных территориально-распределенных гетерогенных (объединяющих компьютеры с самыми различными аппаратными и программными системами) сетей, что дает возможность распределенных вычислений на глобальных компьютерных ресурсах с помощью специализированного программного обеспечения (например, с использованием программного интерфейса передачи данных MPI (Message Passing Interface)). Основная идея GRID-систем – интеграция в систему: самых различных ресурсов, включаемых суперкомпьютеров, отдельных серверов, мэйнфреймов, систем хранения и баз данных. Очень важной причиной бурного развития концепции GRID сегодня является то, что она позволяет получить результат быстрее и дешевле. Автором разработано программное средство (ПС) [1], осуществляющее управление вычислениями заданного множества задач, выполняемых параллельно на разных компьютерах в сети. Разработанное ПС является подобием HPC (High-Performance Computing) кластера [2], объединяющего несколько компьютеров в сети для параллельной обработки нескольких задач [3]. Создание HPCкластера из большого числа маломощных однопроцессорных систем позволяет достичь гораздо большей производительности, чем производительность суперкомпьютеров [4]. Эффективность использования данного ПС тем выше, чем больше количество задач, которое может обрабатываться независимо и одновременно на разных компьютерах, количество которых соизмеримо или в несколько раз меньше числа одновременно обрабатываемых задач. Программное средство для параллельных вычислений Для реализации ПС на основе протокола TCP/IP [5] был разработан протокол прикладного уровня – протокол управления сетевыми вычислениями под названием ScienceNet Protocol (SNPпротокол). Полное название разработанного ПС: «SNP Calculation Center». Работа над первой версией данного ПС была начата в марте 2006 года. ПС состоит из двух основных приложений Windows: клиента (далее SNP-клиент) и сервера (далее SNP-сервер). С помощью SNP-протокола SNP-клиент обеспечивает управление SNP-серверами, располагающимися на удаленных компьютерах в сети. SNP-сервер не имеет визуального интерфейса и реализован в качестве службы (service) для операционных систем Windows XP и Windows
321
Server 2003, что обеспечивает автоматическую загрузку и функционирование SNP-сервера сразу же после загрузки Windows. SNP-сервер обеспечивает выполнение команд SNP-клиента и выполнение задачи, загружаемой из DLL-модуля (динамически подключаемой библиотеки). Текущая версия SNP-протокола (версия 1.1) обеспечивает следующие основные функции: 1. Получение информации о версии протокола и другой служебной информации. 2. Загрузка и выгрузка DLL-модуля исполняемой задачи. 3. Запуск и остановка загруженной задачи. 4. Задание приоритета выполнения задачи в момент запуска и во время выполнения задачи, что позволяет автоматически регулировать загрузку процессора на стороне SNP-сервера. 5. Временная приостановка и продолжение выполнения загруженной задачи. 6. Команда на завершение работы SNP-сервера. 7. Получение текущего статуса сервера и статуса выполняемой задачи: оценка времени выполнения задачи, загрузка процессора, прогресс выполнения задачи (в процентах), информация о текущих действиях выполняемой задачи и другие сообщения. 8. Команда обновления DLL-модуля загружаемой задачи на стороне SNP-сервера. Команда передает информацию о DLLмодуле, который нужно скопировать с указанного FTPсервера. 9. Команда на открытие диалога редактирования параметров задачи. Задание параметров задачи осуществляется посредством визуального интерфейса, загружаемого из DLLмодуля. Параметры задачи сохраняются (загружаются) тем же DLL-модулем в отдельном mop-файле. Эти файлы задач SNPклиент посредством SNP-протокола распределяет между SNPсерверами, которые загружают соответствующие DLL-модули для выполнения заданной задачи. SNP-клиент имеет визуальный интерфейс управления и располагается на одном управляющем компьютере в сети. Рассмотрим основные возможности SNP-клиента, являющегося центром управления сетевыми вычислениями:
322
Параллельное управление выбранными SNP-серверами с помощью SNP-протокола, обеспечивающего указанные выше функции. 2. Создание и редактирование списка SNP-серверов сети, используемых для выполнения заданных задач. 3. Периодический опрос статуса текущего состояния SNPсерверов, к которым подключен SNP-клиент. 4. Задание параметров копирования DLL-модуля с указанного FTP-сервера на выбранные компьютеры с SNP-серверами. 5. Ручная и автоматическая удаленная установка и запуск SNPсерверов на выбранных компьютерах по сети (при наличии соответствующих прав доступа к удаленным компьютерам сети с операционными системами Windows XP, Windows Server 2003). 6. Удаленное включение по сети выбранных компьютеров с использованием технологии Wake-On-LAN [6]. 7. Постановка выбранных задач в очередь задач. Отмеченные на выполнение задачи автоматически назначаются на «свободные» SNP-серверы. Под «свободными» понимаются SNP-серверы, готовые к выполнению новой задачи или завершившие выполнение ранее назначенной задачи. 8. Встроенный пакетный редактор параметров файлов задач в очереди задач, обеспечивающий автоматическое изменение заданных параметров для выбранных файлов задач. Данная функция позволяет значительно сэкономить время на редактирование значения заданного параметра каждой из задач (особенно если таких задач очень много: десятки-сотни). 9. Поддержка технологии Drag&Drop: возможность добавления в очередь задач выбранных файлов задач или папок с файлами задач путем их «перетаскивания» мышью из проводника Windows в очередь задач. 10. Возможность управления списком подключенных SNPсерверов, которым разрешено автоматически назначать задачи из очереди задач. 11. Независимость выполнения назначенных задач SNPсерверами при завершении работы управляющего SNPклиента или разрыве соединения с SNP-клиентом. 1.
323
DLL-модуль с исполняемой задачей может быть написан на любом языке программирования (Pascal Delphi, C++ Builder, MS Visual C++, Visual Basic и др.), компилятор которого поддерживает создание динамически подключаемых библиотек (DLL) для Windowsприложений [7]. При этом DLL-модуль должен поддерживать специально разработанный интерфейс обмена данными с приложением-загрузчиком DLL-модуля (например, SNP-сервером). Модификация базового шаблона программного кода DLL-модуля, поддерживающего интерфейс обмена данными с приложениемзагрузчиком (SNP-сервер), позволяет встраивать свои алгоритмы решаемых задач в базовый код DLL-модуля. Базовые функции DLL-модуля: 1. Главная функция – хранение исполняемого кода алгоритма обрабатываемой задачи, который будет загружен SNPсервером для обработки данной задачи. 2. Загрузка параметров обработки алгоритма из файла, переданного SNP-клиентом SNP-серверу перед началом запуска вычислений. 3. Функция открытия визуального редактора параметров алгоритма DLL-модуля. Интерфейс визуального редактора параметров определяется разработчиком алгоритма DLLмодуля. 4. Функции управления запуском, остановом и временной приостановкой (паузой) вычислений. 5. Функция получения информации о версии алгоритма загруженного DLL-модуля. Контекст данной информации задается разработчиком алгоритма DLL-модуля. 6. Передача информации о состоянии выполнения загруженной задачи приложению-загрузчику (SNP-сервер), которое в свою очередь отправляет ее SNP-клиенту по его запросу. 7. Генерация результатов вычислений в файлы на жесткий диск компьютера (на стороне SNP-сервера) и последующая передача этих файлов на любой указанный FTP или иной сервер (при наличии прав доступа к ресурсам сервера, которые могут быть указаны в файле параметров задачи DLLмодуля).
Вид главного окна программы «SNP-клиент» центра управления удаленными вычислениями в рабочем режиме представлен на рис. 1. 324
Рис. 1. Главное окно программы «SNP-клиент» – центр управления удаленными вычислениями (в рабочем режиме)
Опытные данные Пример из практики. Для исследования статистических характеристик различных алгоритмов фильтрации шумоподобных сигналов, на исход анализа которых влияет свыше 20 параметров, в очередь задач SNP-клиента было поставлено 480 задач. Число реализаций случайного процесса, воздействующего на исследуемые алгоритмы, при заданной точности анализа, задавалось равным 100 тысячам реализаций. Максимальное число используемых удаленных компьютеров с SNP-серверами составляло 23 единицы (в основном компьютеры с процессорами Celeron 2400 и Pentium 4 – 2,9 ГГц). Все множество задач в очереди можно условно разбить на четыре уровня сложности обработки по требуемым вычислительным и временным ресурсам. Ориентировочное время решения одной задачи для каждого из четырех уровней сложности составляло 18, 22, 38 и 43 минуты соответственно. Вычисления проводились в определенные часы времени в течение 5 дней. Результаты вычислений каждой из задач по окончании обработки автоматически копировались SNP-серверами на заданный FTP-сервер. В итоге по завершении вычислений было обработано 480 задач, сгенерировано 9248 файлов общим объемом около 21,6 Гигабайт. Полученные файлы содержали результаты анализа исследуемых алгоритмов в виде текстовых табличных данных, включая заголовки параметров анализа.
325
Выводы Разработанное ПС, организующее параллельную обработку множества задач, примерно равных по вычислительной сложности, на одинаковых по вычислительным мощностям компьютерах позволяет за единицу времени параллельно выполнить количество задач, равное числу используемых компьютеров в сравнении с одним компьютером, на котором эти задачи выполнялись бы последовательно. Параллельная обработка с помощью предложенного ПС множества независимых задач, выполняемых на компьютерах, количество которых соизмеримо или в несколько раз меньше числа решаемых задач, позволяет достичь даже большей производительности, чем производительность суперкомпьютера, за гораздо меньшую стоимость используемого оборудования на основе уже существующей вычислительной техники. Современный уровень науки и техники позволяет реализовать предложенное ПС в организациях, связанных с научными вычислениями и не имеющих возможности для приобретения суперкомпьютеров или параллельных вычислительных систем. Литература 1. Чащин А.А. Программное средство для параллельных вычислений нескольких задач, требующих больших вычислительных ресурсов. //Всероссийская НТК «Наукапроизводство-технология-экология»: Сборник материалов: В 9 т. – Киров: Изд-во ВятГУ, 2007. Том 9. Программа «У.М.Н.И.К.» – 75 с., С. 22-26. 2. Практическое руководство по параллельным вычислениям [Электронный ресурс] / Линукс. Параллельные вычисления; ред. Юрий Сбитнев – Электрон. дан, 2004 – Режим доступа: http://linux-cluster.org.ru/motiv.php, свободный. – Загл. с экрана. – Яз. рус. 3. Параллельные вычислительные системы [Электронный ресурс] / Материал из Википедии — свободной энциклопедии; Электрон. дан, 2007 – Режим доступа: http://ru.wikipedia.org/wiki/Параллельные_вычислительные_си стемы, свободный. – Загл. с экрана. – Яз. рус. 4. Суперкомпьютер [Электронный ресурс] / Материал из Википедии — свободной энциклопедии; Электрон. дан, 2007 –
326
5.
6.
7.
Режим доступа: http://ru.wikipedia.org/wiki/Суперкомпьютер, свободный. – Загл. с экрана. – Яз. рус. TCP/IP [Электронный ресурс] / Материал из Википедии — свободной энциклопедии; Электрон. дан, 2007 – Режим доступа: http://ru.wikipedia.org/wiki/TCP/IP, свободный. – Загл. с экрана. – Яз.рус. Wake-on-LAN [Электронный ресурс] / Материал из Википедии — свободной энциклопедии; Электрон. дан, 2007 – Режим доступа: http://ru.wikipedia.org/wiki/Wake-on-LAN, свободный. – Загл. с экрана. – Яз.рус. DLL [Электронный ресурс] / Материал из Википедии — свободной энциклопедии; Электрон. дан, 2007 – Режим доступа: http://ru.wikipedia.org/wiki/DLL, свободный. – Загл. с экрана. – Яз.рус.
ВАРИАНТЫ ИНТЕГРИРОВАНИЯ УРАВНЕНИЙ ДИНАМИКИ КОНСТРУКЦИЙ НА ГЕТЕРОГЕННЫХ МНОГОПРОЦЕССОРНЫХ СИСТЕМАХ С.К. Черников, Ю.В. Садчиков
Казанский физико-технический институт РАН Рост быстродействия процессоров последних поколений одновременно с повышением производительности и снижением стоимости Ethernet-сетей сделали привлекательным создание высокопроизводительных вычислительных систем с распределенной памятью (кластеров) на базе компонентов высокой степени готовности. Эффективность применения таких устройств может быть достигнута только при использовании на них программ, допускающих распараллеливание вычислений и учитывающих конструктивные особенности кластера. В работе приведены некоторые результаты разработки комплекса программ для моделирования механических процессов методом конечных элементов, ориентированного на семейство кластеров на процессорах AMD ATHLON/OPTERON и недорогой коммуникационной аппаратуре Gigabit Ethernet [1]. В предлагаемом комплексе программ обеспечивается моделирование исследуемых конструкций конечными элементами балки, треугольными и четырехугольными элементами мембраны,
327
пластины и оболочки. Возможно использование элементов вязкого трения и осевых пружин. Для дискретного момента времени t уравнение движения системы конечных элементов разрешаются относительно ускорений (1) &&t = M -1 [ Rt − Cu& t − Kut ] . u Здесь M, C и K – матрицы масс, демпфирования и жесткости; R – && – векторы узловых вектор внешней узловой нагрузки; u , u& и u перемещений, скоростей и ускорений. Скорости и перемещения для следующего шага определяются по схеме прямого явного интегрирования по времени методом центральных разностей: &&t Δt , u&t +Δt / 2 = u&t −Δt / 2 + u ut +Δt = ut + u& t +Δt / 2 Δt. При этом для обеспечения устойчивости счета для различных элементов шаг выбирается в соответствии с [2], как минимальный из значений Δtпрод. и Δtизг . . Принимая во внимание, что матрицы жесткости K и демпфирования C конструкции представляют собой суммы матриц жесткости и демпфирования элементов: ne
nC
i =1
i =1
K = ∑ Kie , C = ∑ Cie . Вычисления в правой части системы (1) могут быть распараллелены. При этом возможны различные варианты алгоритмов. && , u& и u делятся на равные В первом варианте алгоритма векторы u блоки по количеству доступных параллельных процессов. При этом, если рассортировать матрицы жесткости и матрицы демпфирования элементов в соответствии со степенями свободы, входящими в каждый из блоков, то в каждом процессе параллельно могут выполняться действия: nCj nej ⎡ ⎤ &&tj = M -1 ⎢ Rtj − ∑ Cie u& t - Δt 2 − ∑ K ie ut ⎥ u i =1 i =1 ⎣⎢ ⎦⎥ , j j j &&t Δt , u&t +Δt / 2 = u&t −Δt / 2 + u
utj+Δt = utj + u&tj+Δt / 2 Δt.
328
После завершения этих вычислений процессы должны обменяться результатами для формирования в каждом из них векторов u&t +Δt / 2 и
ut +Δt . В конкретной реализации алгоритма для этого использовалась процедура сбора данных MPI_Allgatherv. Алгоритм реализован средствами языка FORTRAN с использованием только технологии MPI. Эффективность этого алгоритма исследовалась при решении задачи динамического отклика конструкции, модель которой состояла примерно из 7000 элементов балки и оболочки и насчитывала около 16000 неизвестных (рис. 1).
Рис.1. Модель исследуемой конструкции
Рис. 2. Зависимость времени решения от количества задействованных процессоров
Зависимость времени решения задачи от количества задействованных процессоров для этого варианта алгоритма приведена на рисунке 2 (кривая «А»). Отметим, что использованный алгоритм 329
показал плохую масштабируемость - при использовании более 8 процессоров время решения задачи начинало возрастать. Причиной этого может быть как неравномерная загруженность вычислительных процессов, так и существенное, по сравнению с временем вычислений tcj , время сбора данных tTj . Неравномерная загруженность процессов
&& , u& и u , при котором обусловлена способом разделения векторов u каждый процесс в общем случае обрабатывает различное количество элементов. j tcj Для исследования влияния отношения и tT на масштабируемость алгоритма тем не менее предположим, что время вычислений обратно пропорционально числу используемых процессов T tcj = n Т - время решения задачи одним процессом. Для оценки времени сбора данных решалась вспомогательная задача (Тест 1), суть которой заключалась в следующем. Массив из 100000 чисел двойной точности в каждом из n процессов разбивался на n сегментов и затем с помощью процедуры MPI_Allgatherv «свой» сегмент передавался остальным j процессам. Характер изменения времени сбора данных tT для различных схем размещения процессов на кластере приведен на рис. 3. На этом рисунке кривая «а» соответствует последовательному размещению процессов (процессы 1 и 2 выполняются на первом узле, 3 и 4 – на втором и т.д.), а кривая «б» - циклическому размещению (процессы 1 и 9 выполняются на первом узле, 2 и 10 – на втором и т.д.). Из рисунка следует что, во-первых, время передачи информации увеличивается с увеличением числа используемых процессов, вовторых, последовательное размещение процессов более предпочтительно с точки зрения затрат времени на передачу информации, и, в третьих, в случае циклического размещения при использовании более 8 процессов увеличение времени происходит более интенсивно. Полагая в линейном приближении, что tTj = nΔt , получим время решения задачи на каждом узле t j = T n + nΔt . Эта зависимость имеет очевидный экстремум, определяемый выражением − T n 2 + Δt = 0 , из которого следует, что эффективно использоваться при решении задачи могут не более T Δt процессов. 330
Рис. 3. Характер изменения tTj для различной конфигурации процессов (Тест 1)
Для повышения эффективности решения рассматриваемого класса задач на вычислительных кластерах, имеющих многоядерные и многопроцессорные узлы, логично использовать алгоритмы, совмещающие многопоточность с разделением вычислений на несколько процессов. Такую возможность дает комбинация технологии MPI и OpenMP. Так, при вычислении ускорений на двухпроцессорных узлах подчеркнутые члены можно вычислять, используя многопоточность nCj nej ⎡ ⎤ &&tj = M -1 ⎢ Rtj − ∑ Cie u& t - Δt 2 − ∑ K ie ut ⎥ u i =1 i =1 ⎣⎢ ⎦⎥ На рисунке 2 (кривая «Б») приведены зависимости времени решения задачи от количества задействованных процессоров для варианта алгоритма, использующего многопоточность внутри вычислительного узла. Преимущества такого подхода перед первым вариантом очевидны. Рассмотренные варианты распараллеливания не позволяют равномерно распределить вычислительную нагрузку по процессам, так как в общем случае каждый из них обрабатывает различное количество элементов. Можно распараллелить задачу, обеспечив равномерную загрузку процессов, если равномерно распределить по процессам элементы каждого типа. Однако, это приведет к необходимости в каждом процессе вычислять вклад процесса в полный вектор u& t , передавать его целиком остальным процессам с одновременным суммированием вкладов. На рисунке 2 (кривая «В) 331
приведены зависимости времени решения задачи от количества задействованных процессоров для подобного алгоритма. Как видно из рисунка, несмотря на сбалансированность нагрузки, общее время решения и масштабируемость 3-го варианта алгоритма существенно хуже, чем у варианта 2 (кривая «Б). На рисунке 4 показано время передачи и суммирования массива из 100000 чисел двойной точности с помощью процедуры MPI_ALLREDUCE в зависимости от числа задействованных процессов при последовательном и циклическом их размещении на кластере (Тест 2). Очевидно, что эти операции существенно более затратны, чем операции в задаче «Тест 1». Этим и объясняется плохая эффективность третьего варианта алгоритма.
Рис. 4. Характер изменения времени выполнения процедуры MPI_ALLREDUCE для различной конфигурации процессов (Тест 2)
Работа выполнена при финансовой поддержке Фонда НИОКР РТ и Фонда содействия развитию малых форм предприятий в научнотехнической сфере. Литература 1. Черников С.К., Садчиков Ю.В., Ашихмин А.Н. Решение некоторых задач физики и механики на многопроцессорных вычислительных системах с распределенной памятью. Труды шестого международного научно-практического семинара «Высокопроизводительные параллельные вычисления на кластерных системах». Санкт-Петербург: Издательство СПГУ. 2007. С.226-234. 2. Черников С.К., Баскевич Т.П. Анализ динамической реакции конструкции на вычислительных кластерах. Труды шестого международного научно-практического семинара
332
«Высокопроизводительные параллельные вычисления на кластерных системах», Санкт-Петербург: Издательство СПГУ. 2007. С.217-225. ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ В ИВАНОВСКОМ ГОСУДАРСТВЕННОМ ЭНЕРГЕТИЧЕСКОМ УНИВЕРСИТЕТЕ Л.П. Чернышева
Ивановский государственный энергетический университет В настоящее время высокопроизводительные вычислительные системы (ВВС) применяются в научных и технических исследованиях, в экономике. Поэтому перед высшей школой стоит задача подготовки высококвалифицированных специалистов в области высокопроизводительных вычислений. В связи с этим, начиная с 1996 года, в Ивановском государственном энергетическом университете (ИГЭУ) в лаборатории параллельных вычислений, в 2000 году высокопроизводительных преобразованной в кафедру вычислительных систем, разработаны и продолжают расширяться и усовершенствоваться курсы обучения методам и технологиям параллельных вычислений. В 1995 году ИГЭУ была приобретена многопроцессорная вычислительная система Parsytec Power X’plorer. Она состоит из процессоров с сокращенным набором команд PowerPC-601 и транспьютера T805. Система включает в себя восемь процессоров. Parsytec Power X’plorer работает под управлением операционной системы UNIX, система параллельного программирования Parix на базе ANSI C. В 2006 году была приобретена кластерная система с рабочим названием "Энергет", содержащая 32 вычислительных узла, в каждом по два двухъядерных процессора AMD Opteron 2ГГц. Общее число процессоров – 128 процессоров. Кластерная система вошла в 7ую редакцию рейтингового списка Тор50. С 1 сентября 2007 года кластерная система запущена в учебный процесс. Студентам факультета информатики и вычислительной техники читаются курсы "Параллельные вычисления" и "Нейрокомпьютерные системы и параллельные вычисления". Данные курсы являются специализированными, рассчитанными на студентов, имеющих углубленные знания по программированию и прикладной математике. 333
Студентам электроэнергетического факультета читаются курсы по компьютерному моделированию электрофизических процессов на высокопроизводительных вычислительных системах. Для магистров этого же факультета читается курс по численным методам и параллельным вычислениям. Магистрам электромеханического читается курс по компьютерному моделированию электромеханических процессов на высокопроизводительных вычислительных системах. Курсы для студентов и магистров электроэнергетического и электромеханического факультетов являются вводными курсами в технологию высокопроизводительных вычислений. Данные курсы предназначены для инженеров, занимающихся прикладным программированием и не являющихся специалистами по компьютерным технологиям и методам программирования высокопроизводительных вычислительных систем. С 2006 года ведется подготовка магистров направления "Информатика и вычислительная техника" по программе 552802 "Высокопроизводительные вычислительные системы". Курсы, читаемые магистрам, направлены на формирование подготовленных к высококвалифицированных специалистов, деятельности, требующей углубленных знаний в области высокопроизводительных вычислительных систем. Задачей всех курсов является получение студентами и магистрами знаний по параллельному программированию, формирование у них умения навыков работы на высокопроизводительных вычислительных системах. Структура курсов по программированию на высокопроизводительных вычислительных системах подчинена следующим принципам: 1. Модульность – в зависимости от подготовки и специфики дальнейшей работы студентов и магистров выбираются необходимые им темы. Каждая тема является завершенной и посвящена одной определенной области программирования. – курсы по параллельному 2. Последовательность программированию основываются на знаниях, полученных на предыдущих курсах, не повторяют предыдущие курсы и являются более сложными. 3. Контроль – после прохождения и закрепления каждой темы задаются контрольные вопросы по изученному материалу. 334
4. 5. 6.
Адаптивность – последовательность прохождения тем и количество часов, отводимых на каждую тему, ставится в зависимость от специализации студентов и магистров. Каждый курс включает в себя лекционные занятия, практические занятия, лабораторные занятия и занятия под контролем. Альтернативность – магистры, занимающиеся по программе 552802 "Высокопроизводительные вычислительные системы", выбирают на альтернативной основе курсы, имеющие одинаковую сложность и посвященные взаимно не пересекающимся проблемам высокопроизводительных вычислений.
Студенты и магистры, изучающие данные курсы, участвуют в работе научных студенческих конференций, проходящих каждый год в университете. Они выступают с докладами в секции "Численные методы и параллельные вычисления". АНАЛИЗ ПАРАЛЛЕЛИЗМА В МЕТОДЕ ДЕДУКТИВНОГО ВЫВОДА ДЕЛЕНИЕМ ДИЗЪЮНКТОВ М.М. Шихов
Вятский государственный университет, Киров Введение Дедукция занимает важное место в составе интеллектуальных систем. Компонент дедуктивного вывода задействуется не только при использовании накопленных системой знаний, но и для проверки гипотез при получении новых. Качественная реализация компонента дедуктивного вывода во многом определяет эффективность самой интеллектуальной системы. Одно из направлений повышения быстродействия вычислительных систем – использование параллельных архитектур при их построении. С другой стороны, если отсутствуют возможности для распараллеливания алгоритма решения поставленной задачи, то это не позволяет эффективно использовать возможности таких систем. В данной работе приводится попытка анализа алгоритма параллельного дедуктивного вывода делением дизъюнктов в модифицированном исчислении предикатов первого порядка. Сам
335
метод подробно описан в монографии [2]. Модификация исчисления описана в [3]. Далее приводятся лишь основные идеи метода. Согласно [1] различают три вида параллелизма дедуктивного вывода: параллелизм на уровне термов (parallelism at the term level); параллелизм на уровне заключений (parallelism at the clause level); параллелизм на уровне поиска (parallelism at the search level). Первому виду параллелизма в рассматриваемом методе соответствует алгоритм унификации литералов – поиск наиболее общего унификатора, сводящего два различных литерала к одному (см. [2-4]). Данный алгоритм является базовым. Временные затраты определяются множеством факторов: количеством аргументов литералов, унифицируемыми термами (константами, переменными, функциональными буквами), рекурсивной вложенностью термов и т.д. В целом, операции, используемые данным алгоритмом, достаточно просты и затраты на создание параллельных потоков себя не оправдывают. Параллелизм на уровне заключений соответствует алгоритму частичного полного деления дизъюнктов. Суть данного алгоритма упрощенно можно представить следующим образом: пусть получен наиболее общий унификатор λ в процессе унификации N литералов делимого X и M литералов делителя Y. Если рассматривать делимое и делитель не как дизъюнкты, а как множества литералов, то в результате мы получим следующие непересекающиеся множества литералов:
M CD = λ ⋅ X ∩ λ ⋅ Y ,
336
M RX = λ ⋅ X − λ ⋅ Y
,
M RY = λ ⋅ Y − λ ⋅ X
.
Рис. 1. Результаты процедуры полного деления дизъюнктов
Если наиболее общий унификатор не был найден, то это соответствует тому, что MCD=∅, MRX=X, MRY=Y. Множество λ,X есть множество литералов X в котором все переменные заменены в соответствии с унификатором λ. Согласно [4] суть рекурсии сводима к следующему: большая задача делится на меньшие подзадачи; подзадачи решаются аналогично большой задаче, то есть рекурсивно (на некотором этапе решение становится тривиальным и не требует разбиения); решения подзадач объединяются (связываются) вместе так, чтобы получить решение исходной задачи. Процесс поиска всех возможных вариантов множеств MCD, MRX, MRY является рекурсивным. 1. В исходных множествах X, Y выделяются все возможные пары литералов, для которых возможно найти наиболее общий унификатор (НОУ). Получив таким образом варианты (…,<λi, MCD,i, MRX,i, MRY,i>,…); если же ни один НОУ не может быть найден, то тривиальное решение. 2. Множества MRX,i, MRY,i (а также MRX,i+MCD,i, MRY,i; MRX,i, MRY,i+MCD,i) используются в качестве исходных X и Y в подзадачах рекурсивно. 3. Полученные решения - множество вариантов (…,<λi, MCD,i, MRX,i, MRY,i>,…) объединяются так, чтобы не было дубликатов. Подзадачи можно решать параллельно. На этом же уровне параллелизма имеется возможность параллельного выполнения полного деления дизъюнктов для различных дизъюнктов базы знаний на один общий делитель Y (заключение). В данном случае предпочтителен вариант последовательного решения задачи полного деления дизъюнктов, но параллельного её выполнения для различных дизъюнктов базы знаний. 337
Y
БЗ
X0
Деление0
X1
Деление1
XN-1
ДелениеN-1
Результат
Рис. 2. Параллелизм данных на уровне заключений
Третий вид параллелизма – параллелизм на уровне поиска – это задача логического вывода, которая (упрощенно) также рекурсивна: 1. При доказательстве истинности некоторого заключения в виде D0 & D1 &… & DN-1 требуется доказать истинность всех дизъюнктов. Первый путь решения - поиск контрарных пар литералов в каждом дизъюнкте. Второй путь - выполнить полное деление всех дизъюнктов базы знаний на отдельный дизъюнкт заключения Di (0≤i
Также необходимо отметить первый путь доказательства в пункте 1 алгоритма логического вывода. Поиск контрарных пар можно проводить параллельно в каждом дизъюнкте и затем объединять полученные решения с временными затратами O(log2(N)). Если хоть в одном дизъюнкте контрарных пар нет или НОУ для таких пар не может быть найден, то данный путь решения доказательства не дает. Также возможно распараллеливание алгоритма преобразования формулы O0 & O1 &… & OM-1=ЛОЖЬ в формулу D’0 & D’1 &… & D’N’-1=ИСТИНА. В ряде случаев могут получаться достаточно большие множества дизъюнктов, формирование которых можно совместить во времени. Пусть Oi = Li,0|Li,1|…|Li,Mi-1 (0≤i<M) в составе O0 & O1 &… & OM-1. Mi – количество литералов в дизъюнкте Oi. Формула O0 & O1 &… & OM-1=ЛОЖЬ преобразуется в !O0 & !O1 &… & !OM-1=ИСТИНА. Затем !O0 & !O1 &… & !OM-1 преобразуется в D’0 & D’1 &… & D’N’-1, где D l = L 0 , k | L 1 , k | ... | L M −1 , k , 0 ≤ l < N ' . Где 0≤ki<Mi. В
(
0
1
M −1
)
соответствии с формулами M −1
N ' = ∏ M i , (1) i =0
M −1
i −1
i =1
j =0
l = (k 0 , k1 ,..., k M −1 ) = k 0 + ∑ k i ∏ M j .
(1)
При имеющихся K вычислительных узлах можно выполнить параллельное формирование дизъюнктов Dl на k-м узле:
k ⋅ N ' / K ≤ l < (k + 1) ⋅ N ' / K при 0 ≤ k < K .
Заключение Были выделены основные алгоритмы, временные затраты на выполнение которых могут быть уменьшены за счет их распараллеливания. Практически все рассмотренные алгоритмы имеют связь по данным. При решении подобных задач предпочтительно использование систем с общей памятью. Реализация параллелизма на уровне поиска влечет параллельное решение достаточно больших подзадач, требующих для своего решения значительных ресурсов и слабо связанных по данным. Представляется целесообразным использовать для реализации компонента дедуктивного вывода
339
кластерные системы. Современные вычислительные узлы кластера, как правило, являются многопроцессорными или многоядерными. Параллелизм на уровне поиска (parallelism at the search level) в данном методе дедуктивного вывода может быть реализован на уровне кластерной системы (например с использованием прикладных интерфейсов MPI), а параллелизм оставшихся уровней (parallelism at the term level, parallelism at the clause level) на уровне отдельных узлов кластера (прикладных интерфейсов Threads, Open MP). Также интерес представляет использование средства разработки Cluster OpenMP, как сочетающего перечисленные возможности. Литература 1. Вагин В.Н. Достоверный и правдоподобный вывод в интеллектуальных системах [Текст] / В. Н. Вагин, Е. Ю. Головина, А. А. Загорянская, М. В. Фомина ; под ред. В. Н. Вагина, Д. А. Поспелова. – М. : Физматлит, 2004. – 704 с. – ISBN 5-9221-0474-8. 2. Страбыкин Д.А. Логический вывод в системах обработки знаний [Текст] / Д. А. Страбыкин ; под ред. Д. В. Пузанкова ; СПбГЭТУ. СПб., 1998. – 164 с. 3. Шихов М.М. Использование дополнительного типа переменных для унификации функторов в исчислении предикатов. / М.М. Шихов // Всероссийская научнотехническая конференция «наука-производство – технологияэкология»: Сборник материалов : в 8 т. – Киров : Изд-во ВятГУ, 2006. Том 1. ФАВТ, ФПМТ – с. 227 4. Люгер Дж.Ф. Искусственный интеллект: стратегии и методы решения сложных проблем, 4-е издание [Текст] / Люгер, Джордж, Ф. – Пер. с англ. – М. : Издательский дом 'Вильямс', 2003. – 864 с. – С.5-217.
340
ПАРАЛЛЕЛЬНЫЙ АЛГОРИТМ РАСПОЗНАВАНИЯ ИЗОБРАЖЕНИЙ НА ОСНОВЕ АНАЛИЗА ХАРАКТЕРНЫХ ОБЛАСТЕЙ А.В. Шлянников
Казанский государственный университет Аннотация Предложен метод идентификации фотографий лиц, основанный на неортогональном wavelet-преобразовании. Материнская функция преобразования представлена матрицами ранга 1, что позволяет ускорить вычисление преобразования. Преимуществом предлагаемого подхода является устойчивость результата к небольшим поворотам и кадрированию фотографии. Для реализации процедуры распознавания предложен вариант распараллеливания вычислений. Приведены результаты экспериментов. Математическая модель Решается задача распознавания образов в следующей форме. Имеется база данных, содержащая некоторое количество фотографий, и конкретный образец. Требуется выделить в базе ту из фотографий (или целый класс фотографий), обладающую наибольшей схожестью с представленным образцом. Для описания сравниваемых изображений применяется метод их аппроксимации с помощью стандартных компонентов, находящихся в специальном словаре. Суть данного метода состоит в сжатом представлении заданного набора векторов одной размерности. В результате процедуры сжатия понижается размерность векторов, после чего применяется тот или иной алгоритм идентификации. Для этого используется неортогональное wavelet-преобразование на основе базисных функций специального вида. Пусть имеется два изображения, для которых необходимо определить меру их соответствия друг другу. Для определения наиболее характерных областей фотографии и аппроксимации изображения используется метод, предложенный в [1]. Множество базисных векторов, по которому ведется разложение, состоит из матриц вида α T β , где α ∈ Vec(m, w, c) , β ∈ Vec(n, w′, c′) ,
представляющих
собой
изображения
колоколообразной
формы. 341
Вектор α∈Vec (N, w, center ) размерности N получен из нулевого вектора путем помещения в него вектора + π ( 1 ) i ⎛ ⎞ таким образом, что Sn(w) : γ (i ) = sin ⎜ ⎟, i = 0,...,2w−2, γ ⎝ 2w ⎠ координата с номером w + 1 вектора становится координатой с номером center вектора α . После этого вектор нормируется, чтобы его длина стала равной 1. Зафиксируем одно значение w = w′ , определяющее размер колоколообразного базисного изображения, и n - число слагаемых в сумме, аппроксимирующей заданное изображение базисными. После аппроксимации обоих изображений согласно одинаково зафиксированным параметрам, для каждого изображения получаем набор дескрипторов следующего вида: d i = (ci , xi , yi ) , i = 1,...n , где ci - коэффициент разложения изображения по данному базису, xi и yi - координаты центра вектора Sn(w) в векторах α ∈ Vec( N , w, center) и β ∈ Vec( N , w, center) соответственно. Далее каждый набор дескрипторов можно рассматривать как множество точек на плоскости с координатами xi и yi . Дискриминантная
а
функция, определяющая соответствие данных изображений, строится как некоторая метрика на множествах точек на плоскости. В качестве такой метрики была выбрана метрика Хаусдорфа: если A, B - два множества точек, соответствующие первому и второму изображениям, то для каждой точки a ∈ A находится расстояние от a A( B ) = sup d (a, B ) . После этого до B , а затем подсчитывается A множества меняются местами и подсчитывается аналогичная величина. Метрикой считается значение d ( A, B) = max( A( B), B( A)) . Использование данной методики сравнения является устойчивым при таких искажениях изображения, как кадрирование и масштабирование. Но чтобы достичь этого эффекта, требуются преобразования изображений в процессе подсчета расстояния, направленные на устранение этих искажений. Суть этих преобразований состоит в итеративном улучшении вычисляемой метрики. Изначально предполагается, что оба изображения принадлежат к одному и тому же классу, и требуется определить 342
преобразования искажения, максимально приближающие первое изображение ко второму по расстоянию, определяемому как метрика Хаусдорфа на совмещенных множествах. К одному из множеств векторов итеративно применяются преобразования масштабирования и переноса на малую величину. Если в процессе преобразования метрика была уменьшена, то считается, что второе изображение было подвергнуто данному искажению, и запоминается новое положение точек на плоскости. Изложенный выше подход применим в ситуациях, когда предполагается, что все фотографии сделаны при одной и той же позиции лица. Для того чтобы компенсировать возможность поворота фотографии, был использован следующий метод. Рассмотрим преобразование Фурье в полярных координатах: x j cos(ϕ ) y j sin(ϕ ) 1 K −1 + )) , F (r , ϕ ) = ∑ f ( x j , y j ) exp(−2πir ( K j =0 M N где ( x j , y j ) - координаты центра i-го шаблона в аппроксимации изображения, f ( x j , y j ) - коэффициент, с которым данный шаблон входит в аппроксимирующую сумму. Если F ′( r , ϕ ) - преобразование Фурье в полярных координатах для повернутого изображения, а F ( r , ϕ ) – для исходного, то имеет место соотношение: F ′( r , ϕ ) = F ( r , ϕ − α ) . Но данное соотношение имеет место только том случае, если все точки множества были повернуты на одну и ту же величину. В реальном же случае такого может и не быть (например, если человек на фотографии наклонил голову и т. д.). Поэтому для определения таких искажений использовался следующий метод. Фиксируется дискретный набор значений r , ϕ и вычисляются значения функций F ( r , ϕ ) и F ′( r , ϕ ) в данных точках. Между полученными матрицами коэффициентов вычисляется построчно корреляция, и затем находится итоговый вектор корреляций как среднее значение корреляции в столбце. Выбирается максимальное значение в данном векторе и определяется соответствующий ему угол поворота. Считается, что второе изображение было повернуто на найденную величину относительно первого.
343
Алгоритм сравнения пары изображений 1. Предварительный этап: совмещение множеств и компенсация возможного поворота. 1.1. Наборы точек масштабируются таким образом, чтобы величины среднеквадратического отклонения положения точек от центра медиан стали равными. 1.2. Наборы точек совмещаются таким образом, чтобы совпали их центры медиан. 1.3. Определяется предположительный поворот второго изображения относительно первого. 2. Итеративное улучшение метрики: компенсация возможного кадрирования и масштабирования. 2.1. Второе множество точек растягивается/сжимается на малую величину. Если метрика улучшается, то запоминается новое значение метрики и положение точек. 2.2. Координаты второго множества сдвигаются на малую величину. Если метрика улучшается, то запоминается новое значение метрики и положение точек. 2.3. Второе множество точек поворачивается на малую величину. Если метрика улучшается, то запоминается новое значение метрики и положение точек. 2.4. Если на шагах 2.1 – 2.3 метрика не была уменьшена или достигнут максимум по количеству итераций, то текущее значение метрики считается итоговым и алгоритм сравнения пары изображений заканчивает свою работу. В противном случае осуществляется возврат на шаг 2.1. Таким образом, получаем набор численных характеристик соответствия исходного изображения каждому изображению из заданного множества. Если для какой-либо пары значение характеристики меньше заданного порогового значения, то считается, что данная пара представляет собой одно и то же изображение исходное и искаженное. Параллельная реализация алгоритма Первая очевидная оптимизация состоит в том, что коэффициенты аппроксимации для всех фотографий, присутствующих в базе данных, могут быть вычислены заранее и сразу использованы при подаче фотографии для сравнения со всеми экземплярами из базы данных на вход алгоритма.
344
Распараллеливание вычислений происходит на двух стадиях работы алгоритма. Первой стадией является процедура аппроксимации изображения по указанному алгоритму, представляющая наибольшую вычислительную сложность. Как было указано выше, процедуру аппроксимации можно выполнить заранее для всех изображений из базы. Поэтому все присутствующие в базе фотографии разделяются по процессам вычислительной системы и обрабатываются параллельно. Вторым этапом является сравнение представленной фотографии со всеми образцами из базы данных. Сравнение ведется попарно, поэтому процедура разделяется по процессам согласно количеству фотографий в базе данных, соответствующему количеству попарных сравнений. Результатом каждой процедуры сравнения является значение метрики. По завершению работы процедуры во всех процессах полученные значения собираются и формируется набор фотографий, представляющих наибольшую схожесть с представленным образцом. Результаты расчетов
Рис.1. Пример исходного изображения и искаженного (поворот, кадрирование, масштабирование)
Рис. 2. Соответствующие представления изображений (число слагаемых в аппроксимирующей сумме равно 100)
В общем случае пороговая величина, определяющая изображения как одинаковые, зависит от размера изображения и от числа слагаемых в аппроксимирующей сумме: чем больше размер изображения, тем 345
больше значения метрики, и чем больше выделено точек, тем заметнее разница в значениях метрики для пар одинаковых изображений и различных. Поэтому при тестировании пороговое значение выбиралось опытным путем таким образом, чтобы минимизировать величину ошибок при приемлемом времени работы алгоритма. В процессе расчетов были получены результаты, при которых для различных исходных изображений и множеств предполагаемых искаженных при нулевой ошибке первого рода ошибка второго рода не превышает 10%. Литература 1. Столов Е.Л. Параллельный алгоритм для отыскания водяных знаков в изображении. // Вестник Казанского государственного технического университета, 2006, № 3 с.3742. 2. Ming-Hsuan Yang, D. J. Kriegman, N. Ahuja, Detecting Faces in Images: A Survey // IEEE TRANS PATTERN ANALYSIS AND MACHINE INTELLIGENCE, VOL. 24, NO. 1, 2002, pp. 34-57. 3. Айвазян С.А. и др. Классификация и снижение размерности .М.: Финансы и статистика, 1989. 607 с. 4. Song H., Chung S. J., Park Y.H. An Online Face Recognition System Using Multiple Compressed Images over the Internet // WISE 2005, LNCS 3806, Springer-Verlag, 2005, p. 569 – 576/ 5. Yang J., Zhang D., et al. Two-Dimensional PCA: A New Approach to Appearance-Based Face Representation and Recognition // IEEE TRANS PATTERN ANALYSIS AND MACHINE INTELLIGENCE, VOL. 26, NO. 1, p. 131-137. 6. Huang Y. S, Tsai Y.H., Shieh J.W. Robust Face Recognition with Light Compensation // PCM 2001, LNCS 2195, Springer-Verlag, 2001, p. 237–244. 7. Sing J. K., et al. Face recognition using point symmetry distancebased RBF network // Applied Soft Computing , V.7, 2005, p. 58– 70. 8. Phillips P.J. Matching pursuit filters applied to face identification // IEEE Trans. Image Process. 7 (1998) 1150–1165. 9. Cand`es E.J., Donoho D.L. New tight frames of curvelets and optimal representations of objects with piecewise C2 singularities. Comm. on Pure and Appl. Math. 57 (2004), p. 219–266.
346
10. Гонсалес Р., Вудс Р. Цифровая обработка изображений. М.: Техносфера, 2006. РАСПРЕДЕЛЕНИЕ ЗАДАНИЙ В КОМПЬЮТЕРНОЙ СИСТЕМЕ НА БАЗЕ НЕЙРОННОЙ СЕТИ М.Ю. Юрич, Р.К. Кудерметов
Запорожский национальный технический университет Введение В последнее время быстродействие стало весомым параметром определения качества компьютерной системы. Применение параллельных технологий значительно увеличивает эффективность работы многопроцессорных вычислительных систем, которые являются мощным средством для решения задач больших размерностей. Однако при использовании подобного рода систем возникает такая проблема, как распределение нагрузки между узлами сети. Эта проблема найдет эффективное решение при равномерном распределении задач между ними. Но при распараллеливании потока задач между большим количеством машин возникает проблема насыщения межсетевого взаимодействия [1]. Для минимизации общего времени выполнения задач в сети необходимо решить две взаимопротиворечащие проблемы – обеспечение равномерности распределения задач между большим количеством компьютеров и минимизацию насыщения межсетевых взаимодействий. Существуют различные подходы к решению задач распределения, и каждое из них имеет свои преимущества и недостатки [2,3]. В данной работе предпринята попытка решить эту проблему с помощью нейронной сети. Авторами выбрана нейронная сеть Дж. Хопфилда, поскольку она обладает необходимым быстродействием в силу распараллеленности работы, и минимизирует свою энергию, что дает возможность с наименьшими временными затратами решить поставленную задачу. Постановка задачи Пусть задана распределенная система, в которой поступают n потоков заданий, задачи которых необходимо равномерно распределить между m компьютерами сети. Предполагается, что
347
задания по объему вычислений равны, а загрузка компьютеров в момент распределения заданий различна. Наша цель состоит в назначении заданий потока n одному из m компьютеров, чтобы общее время выполнения заданий, с учетом загруженности компьютеров и связей между ними, было минимальным. Для решения поставленной задачи с помощью нейронных сетей Хопфилда введем следующие обозначения: ci – матрица–столбец, каждое значение в которой есть
количество задач i –го потока, которые необходимо решить на одном из компьютеров j в момент времени t; c j – матрица–строка, каждое значение в которой есть
максимальное количество задач, которое может быть решено на j –м компьютере при равномерной загрузке компьютеров; t ij – матрица n × m , где в качестве элементов есть количество связей между компьютерами i и j, при решении задач i–го потока на j–м компьютере. Данное значение вычисляется как ci − c j , если ci ≥ c j и c j − ci , если ci ≤ c j и чем меньше будет это значение, тем быстрее будет найдено оптимальное решение.
Необходимо найти количество задач U ij , которое необходимо решить из i–го потока на j–м компьютере. То есть, необходимо найти матрицу U ij , в которой в i–й строке и j –м столбце будет стоять n×m
единица, если i –е задание назначено j –му компьютеру, и нуль – в обратном случае. При этом для нахождения решения поставленной задачи необходимо, чтобы для U ij , не равного нулю. n
m
∑∑U i =1 j =1
ij
⋅ t ij → min ,
(1)
т.е. время выполнения перераспределения задач должно быть минимальным. Матрицу U ij назовем планом. При этом количества задач U ij n×m
должны удовлетворять следующим условиям (2): 348
U ij ≥ 0 – количество задач неотрицательно;
∑U
m
j =1
ij
= ci , i = 1, n
– количество задач потока, которые
необходимо решить, должно совпадать с количеством задач этого потока; n
∑U
ij
= cj ,
j = 1, m – количество задач потока, которые
i =1
необходимо решить, должно совпадать с количеством задач, которое возможно решить на данном компьютере. План, удовлетворяющий ограничениям (2), называется допустимым планом. Допустимый план, удовлетворяющий критерию (1), назовем оптимальным планом. Как и любая задача целочисленного программирования, данная задача (транспортная задача или задача о назначениях) имеет необходимые и достаточные условия своей разрешимости и имеет решение тогда и только тогда, когда выполняется условия баланса: n
m
∑c = ∑c i
i =1
j
.
(3)
j =1
Распределение заданий в сети При моделировании сети Хопфилда необходимо иметь первоначальные данные, такие как количество задач, которое возможно решить при условии равномерной загрузки узлов в сети, CJ[j], и количество задач, которые необходимо оптимальным образом распределить между узлами сети, CI[i]. Оба этих показателя получаем путем расчета, используя данные из сформированного статистического файла. Для того, чтобы определить, какое распределение заданий является оптимальным, на выходе нейронов, обеспечивающих минимальное суммарное количество связей, должна стоять единица. В результате выполнения программы, решающей поставленную задачу, а значит отработки нейронной сети до своего устойчивого состояния, получаем значения V[i][j][k], значения которых от нуля до единицы. Именно те значения, которые равны единице и будут искомыми значениями матрицы U. Индексы i и j будут указывать
349
расположение в этой матрице. А в реальности, зная эти значения, будем знать какому j–му узлу назначить сколько задач i–го узла. Далее значения i и j (в том случае, когда V[i][j][k]=1) используются в файле machines, который уже непосредственно и отвечает за распределение задач в сети между узлами. Особенностью проведения испытаний в компьютерной лаборатории является независимая работа каждого пользователя за его рабочей станцией. При этом каждая рабочая станция, за которой работает студент, одновременно является и вычислительным узлом. Программа, реализующая нейронную сеть, осуществляет расчет эволюции нейронной сети с учетом различных коэффициентов, некоторые из которых были найдены опытным путем, при моделировании, поскольку на данный момент не существует определенной методики их определения или вычисления [4]. Испытание условно можно разбить на несколько этапов. На первом этапе были измерены значения загрузок машин и записаны в текстовый файл. На втором – эти значения преобразовывались к необходимому для поступления на входы нейронной сети виду и проводилась эволюция нейронной системы. На третьем этапе по результатам, полученным со входов нейронной сети, выполнялась процедура распределения задач между узлами в сети. Выводы и результаты исследований В результате испытания были задействованы компьютеры с номерами 1, 2, 3, 4. Процессорное время, выделяемое на решение одной задачи на компьютере, было соответственно равным 19,2%, 24,8%, 87,3% и 49,8%. При переводе в необходимые нам единицы – количество задач, выполняемых в данный момент на компьютере, – это будет означать следующее. На первом компьютере выполняется пять задач, на втором – четыре, на третьем – одна, на четвертом – две. Эти данные применяются при расчете эволюции нейронной сети, которая должна работать так, чтобы каждая задача была распределена между всеми компьютерами равномерно и при этом все задачи, распределенные в данный момент времени, также равномерно были распределены между всеми компьютерами, причем все заданные условия ограничения, описанные в поставленной задаче должны быть соблюдены.
350
С учетом последней написанной фразы, после равномерного перераспределения задач между компьютерами на каждой машине должно выполняться по три задачи. Таким образом, значения CI[i] и CJ[j] для испытываемой нейронной сети будут следующими: CI[0] CI[1] CI[2] CI[3] CJ[0] CJ[1] CJ[2] CJ[3]
= = = = = = = =
5; 4; 1; 2; 3; 3; 3; 3;
Но для того, чтоб нейронная сеть правильно функционировала, одним из наиважнейших моментов есть установление правильных значений коэффициентов A, B, C и D. В настоящий момент отсутствует общепринятая процедура вычисления подходящих параметров A, B, C и D [3,5]. Они подбираются на основе опыта предыдущих результатов, существенно, что такая ситуация не является особенностью нейронных сетей, это – особенность сложных оптимизационных задач. В данном случае значения коэффициентов были приняты со следующими значениями: B_k = 1200, C_k = 2000, D_k = 900, AK = =3000, BK = 500, CK = 2000, DK = 100. Здесь B_k, C_k, D_k – коэффициенты, использующиеся для определения весов синаптических связей между нейронами сети, AK, BK, CK, DK – коэффициенты, использующиеся для внешних смещений нейронной сети. При таких значениях коэффициентов A, B, C и D в результате функционирования нейронной сети были получены результаты, представленные на рисунке 1.
351
Рис. 1. Результаты работы нейронной сети
Значения V[i][j][k] = 1 – это значение возбужденного нейрона, которое в такой сети соответствует тому, что задача из потока i должна решаться на j – м компьютере. Значения s[i] должны совпадать со значениями CI[i], а значения t[j] – со значениями CJ[j]. На экране они представлены для подтверждения правильности вычислений. Поскольку каждое s[i] соответственно равно CI[i], а значения t[j] соответственно равны значениям CJ[j], то это гарантирует выполнение заданных в поставленной задаче ограничений. Объясним полученные результаты более подробно. Рассмотрим поток с номером 0. Так как V[0][0][0] = 1, то одна задача из потока 0 будет распределена на нулевой компьютер, то есть останется решаться на том же компьютере. Значение V[0][0][1] = 1 указывает на то же, что и V[0][0][0] = 1, только из данных значений видно, что на нулевом компьютере будут решаться уже две задачи. Значение V[0][1][0] = 1 показывает, что третья задача из нулевого потока будет решена на первом компьютере. Соответственно значение V[0][2][0] = 1 указывает на то, что четвертая задача из нулевого потока будет решаться на втором компьютере, а V[0][3][0] = 1, что пятая задача будет распределена на третий компьютер. Таким образом, поток задач равномерно распределен на все компьютеры. Аналогичным образом распределяются задачи между компьютерами и из всех оставшихся потоков. При этом постоянно соблюдаются ограничения, накладываемые на нейронную сеть в целом.
352
Таким образом, можно сделать вывод, что построенная модель оптимального распределения потока задач в компьютерной сети на основе нейронной системы полностью работоспособна и при взятых экспериментальных значениях работает абсолютно верно, выполняя необходимую оптимизацию. Литература 1. Алгулиев Р.М., Алыгулиев Р.М., Алекперов Р.К. Подход к оптимальному назначению заданий в распределенной системе // Проблемы управления и информатики, 2004. – №5. – С. 140 – 145. 2. Нейроматематика: Учебное пособие для вузов. Кн. 6./ Под ред. А. И. Галушкина. – М.: ИПРЖР, 2002. – 448 с. 3. Назаров А.В., Лоскутов А.И. Нейросетевые алгоритмы прогнозирования и оптимизации систем – СПб.: Наука и техника, 2003. – 384 с. 4. Ачасова С.М. Вычисления на нейронных сетях // Программирование, 1991. – №2. – С. 40 – 52. 5. Козырев Г.И., Лоскутов А.И. Решение задачи коммивояжера на основе динамической нейронной сети Хопфилда с подбором коэффициентов синаптических связей комбинированным генетическим алгоритмом // Нейрокомпьютеры: разработка, применение, 2001. – №1. – С.3- 9. ПАРАЛЛЕЛЬНЫЙ АЛГОРИТМ ГЕНЕРАЦИИ НОРМАЛЕЙ ПО ПОЛЮ ВЫСОТ Е.А. Юсов
Нижегородский государственный университет Введение В последние годы проблема эффективного распараллеливания алгоритмов приобрела особую важность, поскольку тактика наращивания производительности процессоров путем повышения частоты столкнулась с серьезными проблемами и производители были вынуждены пойти по пути увеличения числа вычислительных ядер, расположенных на одном кристалле. Устройствами, которые имеют сегодня наиболее ярко выраженную параллельную архитектуру,
353
являются графические ускорители. Например, типовая графическая карта компании NVidia® может содержать от 32 до 128 исполнительных блоков, работающих одновременно. Таким образом, в распоряжении практически любого пользователя ПК на самом деле имеется специализированный параллельный вычислительный комплекс. Еще одной важной тенденцией в современных компьютерных технологиях является использование сильно распараллеленного графического ускорителя для решения неграфических задач, то есть задач, не связанных непосредственно с формированием изображения. В связи с вышесказанным, проблема распараллеливания вычислений в настоящее время является актуальной и не только при решении очень сложных задач, которые требуют использования целого вычислительного кластера. Она также важна при выполнении менее сложных алгоритмов, выводя их на качественно новый уровень. Примером такой задачи является генерация нормалей по полю высот, которая возникает при моделировании и вузуализации рельефа, а также других объектов, задаваемых матрицей высот. Предлагаемая реализация алгоритма с использованием графического ускорителя наглядно демонстрирует, как эффективно использовать его параллельную архитектуру. Описание алгоритма Исходными данными для алгоритма является матрица высот в узлах равномерной решетки, размером n × m , или поле высот. Высоту в (i,j) узле решетки будем обозначать через hi , j . В результате работы
алгоритма требуется получить матрицу того же размера, каждый элемент которой является вектором нормали к поверхности в данной точке. Возможность эффективной параллельной реализации алгоритма обеспечивается тем, что нормаль для каждой вершины может быть вычислена независимо от результатов обработки соседних элементов.
354
(i,j+1)
T
N4 (i-1,j)
(i,j)
L
N1 R
(i+1,j)
N2 B
N3
(i,j-1)
Рис. 1
Вектор нормали для каждой вершины предлагается вычислять как среднее значение нормалей четырех треугольников, образованных с его верхним, нижним, левым и правым соседями (Рис.1). Обозначим эти нормали через N 1 , N 2 , N 3 и N 4 соответственно. N1 + N 2 + N 3 + N 4
Тогда N = N + N + N + N 1 2 3 4 Далее, обозначим через L , R , B и T вектора, направленные от текущего узла к левому, правому, нижнему и верхнему соседнему узлу соответственно. Шаг сетки высот постоянный, обозначим его чере S. Тогда: L = ( − S , 0, hi −1, j − hi , j ) R = ( S , 0, hi +1, j − hi , j ) B = (0, − S , hi , j −1 − hi , j ) T = (0, S , hi , j +1 − hi , j ) ,
где через hi , j обозначена высота (i,j) узла сетки высот. Далее, для векторов N 1 , N 2 , N 3 и N 4 можно записать следующие выражения: N1 = R ×T , N 2 = B × R , N 3 = L × B и N 4 = T × L . 355
Распишем более подробно компоненты векторов: N 1x = − S (hi +1, j − hi , j )
N 1 y = − S (hi +1, j − hi , j )
N 2 x = − S (hi +1, j − hi , j )
N 2 y = S ( hi , j −1 − hi , j )
N 3 x = S (hi −1, j − hi , j )
N 3 y = S ( hi , j −1 − hi , j )
N 4 x = S (hi −1, j − hi , j )
N 4 y = − S (hi , j +1 − hi , j )
Тогда для выражение:
суммы
N1 + N 2 + N 3 + N 4
N 1z = S 2 N 2z = S 2 N 3z = S 2 N 4z = S 2 .
получим
следующее
N sum = N 1 + N 2 + N 3 + N 4 = ( 2 S (hi −1, j − hi +1, j ), 2 S ( hi , j −1 − hi , j +1 ), 4 S 2 ) .
Поскольку вектор N sum необходимо подвергать нормировке, все его компоненты можно разделить на 2S, тогда: N sum = ( hi −1, j − hi +1, j , hi , j −1 − hi , j +1 , 2 S ) .
Таким образом, мы получили простую и удобную и формулу для вычисления компонентов вектора нормали. Последним шагом является нормировка полученного вектора. Реализация Приведенный алгоритм был реализован при помощи DirectX10® API с помощью вершинных шейдеров 4 версии. Исходный код пиксельного шейдера, выполняющего вычисление нормалей, представлен в Листинге 1. struct GenerateQuadGS_OUTPUT { float4 m_ScreenPos_PS : SV_POSITION; float2 m_ElevMapUV : TEXCOORD0; }; float3 GenerateNormalMap_PS(GenerateQuadGS_OUTPUT In) : SV_TARGET { // Получаем размеры текстуры, содержащей поле высот uint ElevMapWidth, ElevMapHeight, Levels; g_tex2DElevMap.GetDimensions(0, ElevMapWidth, ElevMapHeight, Levels); float2 ElevMapSize = float2(ElevMapWidth, ElevMapHeight); // Считываем высоты левого, правого, верхнего и нижнего соседних элементов из текстуры. samPointClamp – сэмплер, выполняющий точечную фильтрацию текстуры float Height1 = g_tex2DElevMap.SampleLevel(samPointClamp, In.m_ElevMapUV.xy + float2(1/ElevMapSize.x, 0), 0); float Height2 = g_tex2DElevMap.SampleLevel(samPointClamp, In.m_ElevMapUV.xy - float2(1/ElevMapSize.x, 0), 0); float Height3 = g_tex2DElevMap.SampleLevel(samPointClamp,
356
In.m_ElevMapUV.xy + float2(0, 1/ElevMapSize.y), 0); float Height4 = g_tex2DElevMap.SampleLevel(samPointClamp, In.m_ElevMapUV.xy - float2(0, 1/ElevMapSize.y), 0); // Вычисляем нормаль float3 SummN;
}
SummN.x = Height2 - Height1; SummN.y = Height4 - Height3; SummN.z = g_fCellEdgeLen * 2.f; float3 Normal = normalize( SummN ); return Normal;
Листинг 1. Исходный код пиксельного шейдера, выполняющего вычисление нормалей
Для запуска алгоритма необходимо установить 4-канальную текстуру, компоненты r, g, и b которой будут содержать координаты вектора нормали, в качестве внеэкранного буфера, и вызывать команду Draw() (компонента a не используется). Отображаемой геометрией является прямоугольник, точно покрывающий всю текстуру. В результате, в процессе выполнения команды графической картой, пиксельный шейдер будет вызван для каждого тексела обрабатываемой текстуры и в него будет записана вычисленная нормаль. Поле высот ландшафта содержится в текстуре g_tex2DElevMap, каждый ее элемент является числом с плавающей точкой формата float. Входными данными для шейдера является структура, содержащая координаты обрабатываемого тексела в экранном пространстве, а также текстурные координаты соответствующего элемента карты высот. Для получения значений элементов поля высот используется встроенная функция SampleLevel(), позволяющая прочитать данные из текстуры по заданным координатам. Чтобы считать данные соседнего тексела, необходимо изменить соответствующую текстурную координату текущего тексела на значение равное 1, деленной на размер текстуры, - что и делается в шейдере. Преимуществом реализации данного алгоритма на графическом процессоре является еще и то, что все данные находятся в видеопамяти, и нет необходимости в пересылке их из системной памяти через медленную шину PCI-E. Заключение Мы продемонстрировали, как задача вычисления карты нормалей по полю высот может быть эффективно распараллелена и реализована
357
на графическом процессоре. Представленный алгоритм был успешно использован в системе визуализации рельефа, описанной в [1]. Литература 1. Yusov E., Turlapov V.E. GPU-optimized efficient quad-tree based progressive multiresolution model for interactive large scale terrain rendering // Conference Proceedings of the 17th International Conference on Computer Graphics and Vision “GraphiCon’2007” p. 53-60, Moscow, June 23-27, 2007. ПРОБЛЕМЫ МОДЕЛИРОВАНИЯ ДИНАМИКИ ЧАСТИЦ В ЦИКЛИЧЕСКИХ УСКОРИТЕЛЯХ С.Н. Андрианов
Санкт-Петербургский государственный университет Введение Современные задачи физики ускорителей приводят к необходимости проведения на начальном этапе проектирования многочисленных вычислительных экспериментов, на основе которых как разрабатываются конструктивные проекты, так осуществляется текущее управление уже существующими установками. Именно тщательное предварительное моделирование (как математическое, так и компьютерное) является практически единственным инструментов для исследования всех процессов, на основе которых осуществляется функционирование ускорителей, поскольку натурный эксперимент для такого рода установок практически не реализуем в силу его дороговизны. Объем вычислений, необходимый для реализации соответствующих вычислений, требует использования высокопроизводительной вычислительной техники для получения в достаточной мере адекватных результатов. Сложность физической задачи приводит к необходимости тщательного отбора математических моделей, позволяющих проводить как качественный, так и количественный анализ нелинейных процессов различной природы. Особое значение приобретают методы и средства компьютерной алгебры, поскольку с одной стороны исследователь получает возможность аналитического анализа возможных вариантов системы управления пучками частиц, с другой – существенно повышает эффективность проводимых численных исследований с
358
использованием современной вычислительной техники. Иными словами, математический аппарат, используемый в физике пучков, должен обеспечивать возможность проведения качественного анализа нелинейной динамики, синтеза оптимальных систем управления на основе эффективных вычислительных экспериментов с использованием технологии параллельных и распределенных вычислительных систем. В настоящей работе в качестве математического аппарата рассматривается матричный формализм для алгебраических методов Ли [1]. Матричный формализм позволяет строить конструктивные алгоритмы построения операторов эволюции пучка частиц при описании динамики пучков частиц, как с учетом нелинейных внешних (управляющих), так и собственных полей. Именно подобный подход позволяет эффективно использовать технологии распараллеливания и распределения вычислительных операций. В настоящей работе используются два понятия: параллельные и распределенные вычисления. Под первым типом мы будем понимать процедуру выполнения однородных операций по возможности с использованием однородных вычислительных систем. Второй тип предполагает, что в исходной задаче проведена декомпозиция на две группы вычислительных потоков. Первый тип состоит из независимых (слабо зависящих) вычислительных потоков. В качестве простого примера второго типа можно привести два вычислительных потока: первый позволяет проводить вычисления по динамике частиц в пучке, второй – с использованием полученных в первом потоке данных, осуществлять их обработку для получения каких-либо вспомогательных результатов, например, визуализации динамики частиц. Несмотря на то, что эффективность предлагаемого подхода в полной мере проявляется в задачах, допускающих применение методов теории возмущения, следует отметить, что данный класс задач достаточно представителен и находит свое отражение в самых различных областях физики ускорителей. Основные представления и понятия Рассмотрим основные понятия матричного формализма для алгебраических методов Ли. В качестве математической модели динамики пучков частиц рассматривается задача Коши для системы обыкновенных дифференциальных уравнений следующего вида
359
dX(t ) (1) = F ( X, U, B, t ), X(t0 ) = X 0 ∈ Μ 0 , dt где X - n -мерный фазовый вектор, описывающий состояние частиц пучка, U (t ) - m -мерная вектор-функция, описывающая управляющие (внешние) электромагнитные поля и B - r -мерный вектор управляющих параметров (определяющих функционирование системы), t - независимая переменная, в качестве которой обычно выбирается длина, измеряемая вдоль некоторой (опорной) кривой. Мы будем также предполагать, что функция F ( X, t ) допускает разложение в ряд в окрестности точки X = 0 . Пусть Μ 0 - множество начальных данных, описывающее начальное состояние пучка как совокупности N частиц. Обычно в ускорительных системах число частиц N лежит в пределах N ∈ [1010 , 1016 ] . Очевидно, что непосредственное интегрирование системы (1) для столь большого набора начальных данных не является возможным даже при использовании суперкомпьютеров. Уравнению (1) сопоставим операторное уравнение вида dM (t | t0 ) ∂ (2) = L(t ) o M (t | t0 ), M (t0 | t0 ) = Id , L(t ) = F* ( X, t ) , dt ∂X где Id - тождественный оператор и L (t ) - оператор Ли [1]. Оператор будем называть оператором эволюции M (t | t0 ) (пропагатором), так как имеет место равенство
X(t ) = M (t | t0 ) o X 0 , ∀X 0 ∈ Μ 0 . После введения базиса Пуанкаре-Витта {1, X, X[ 2] ,K, X[ k ] ,K} , где X[ k ] = 1 X⊗ ⊗K ⊗3 X - кронекерова степень вектора X , содержащая 4X 42 44 k
все мономы k -порядка относительно компонент вектора X уравнения движения частиц (1) можно переписать в следующем виде (для простоты записи опускаем U, B ): ∞ dX(t ) (3) = F( X, t ) = ∑ P1k (t ) X[ k ] , dt k =0 где матрицы P1k (t ) описывают нелинейные эффекты k -го порядка и легко могут быть вычислены в символьном виде (при известной
360
функции F ( X, t ) ) с помощью, например, кодов Maple. Следуя [1] решение уравнения (3) будем искать в виде ∞
X(t ) = M (t | t0 ) o X 0 = ∑ M1k (t | t0 ) X 0
[k ]
.
(4)
k =0
Матрицы
M1k (t | t0 ) описывают аберрации соответствующих порядков. Заметим, что вычисление этих матриц (аберрационных матриц) возможно как в аналитическом (символьном) так и в численном виде. Согласно идеологии матричного формализма [1] для вычисления аберрационных матриц в символьном представлении можно воспользоваться различными алгоритмами, описанными, например, в работах [1, 2]. Например, подобное вычисление можно реализовать, используя следующие соотношения ∞
t
M 1k (t | t 0 ) = ∑ ∫ M 11 (t | τ )P 1 j (t )M jj (τ | t 0 ) dτ , j =1
t0
M jj (τ | t 0 ) = (M 11 (τ | t 0 ))[ j ] .
Вычисление аберрационных матриц не вызывает принципиальных трудностей для достаточно широкого класса функций. В частности, использование, например, кодов Reduce и Maple позволило провести подобные вычисления вплоть до 7-го порядка (вполне достаточных для многих практических задач физики пучков) в случае кусочнопостоянной аппроксимации внешних полей. Для численного вычисления матриц M1k (t | t0 ) можно воспользоваться следующими уравнениями dM1k (t | t0 ) ∞ 1 j = ∑ P (t )M kj (t | t0 ), dt j =1
M11 (t0 | t0 ) = E n ,
M kk (t0 | t0 ) = E d [ n , k ] ,
d [n, k ] = C kn + k −1 .
Здесь E n - единичная матрица m -го порядка. Естественно, что решение уравнений (6), как и в случае символьных вычислений, осуществляется вплоть до некоторого порядка аппроксимации N appr . В отличие от решения уравнений (1), мы получаем матричное представление искомого (приближенного) оператора эволюции без использования начальных условий для фазовых векторов огромного числа частиц. Можно заметить, что число уравнений даже в случае аберраций высоких порядков (величина k до 5-го или 7-го порядка) намного меньше, чем при решении системы уравнений (1) даже в 361
случае небольшого ( 100 ÷ 1000 ) числа частиц. Таким образом, при использовании матричного формализма снимается основная трудность, связанная с необходимостью интегрирования огромного числа дифференциальных уравнений в случае использования традиционных численных методов. Именно это обстоятельство позволяет утверждать, что матричное представление оператора эволюции является более эффективным при описании эволюции пучков частиц (т.е. ансамбля большого числа частиц). Реализация матричного формализма Опишем изложенный в предыдущих разделах метод более подробно в виде следующей последовательности операций. 1. Вычисление матриц P1k (t | t0 ) для некоторых классов дифференциальных уравнений движения, используемых в физике пучков. 2. Вычисление аберрационных матриц M1k (t | t0 ) для некоторых
3. 4.
5.
6. 7.
362
классов функциональных зависимостей, представляющих практический интерес для физики пучков. Построение баз данных из этих матриц и соответствующих систем управления ими. Построение баз данных, содержащих дополнительные операции над операторами и матрицами, позволяющие существенно повысить эффективность численного моделирования (в частности, длительной эволюции динамических систем). Используя знания экспертов, строятся базы знаний (основанные, например, на системах ориентированных графов), позволяющие сопоставлять тем или иным «физическим» эффектам соответствующие матрицы, как в уравнениях движения, так и в решении. Строятся базы данных, содержащие необходимые символьные выражения для построения аппроксимантов для инвариантов и симметрий. Строится пользовательский интерфейс (с использованием естественного языка для данной предметной области), обеспечивающий гибкое и эффективное «изъятие» необходимых данных, построение алгоритмов уже численного моделирования на том или ином языке высокого уровня.
Естественно, что перечисленные выше этапы моделирования не покрывают полностью потребности физики пучков, в частности, не перечислены объекты, необходимые для моделирования влияния сил пространственного заряда. Укажем на дополнительные возможности, предоставляемые матричным формализмом: при описании математических моделей физических объектов (соответствующих управляющим элементам, например, таким, как мультипольные линзы, дипольные магниты, соленоиды и т.п.) можно ввести декомпозицию соответствующих описаний на виртуальные подобъекты, каждый из которых самостоятельного (с физической точки зрения) не имеет. Подобное представление позволяет более гибко вводить в процесс исследования (численного моделирования) те или иные модели и исследовать их влияние на динамику пучка. Данный формализм получил название технологии LEGO-объектов [11]. Следует заметить, что в случае численного представления аберрационных матриц, мы в определенной степени теряем гибкость в манипулировании объектами. Декомпозиция задачи на вычислительные потоки Ранее уже указывалось, что на практике полная задача моделирования динамики пучков частиц может быть представлена в виде совокупности (вообще говоря, взаимодействующих) потоков, которые в процессе вычислений обмениваются информацией. Укажем основные типы потоков, возникающих в физике пучков, и опишем характер их взаимодействия. 1. Поток динамики – предназначен для вычисления текущих значений блочных матриц M1k (t | t0 ) , является основным
2.
3.
4.
поскольку «поставляет» объекты, необходимые для моделирования динамики пучка. Поток фазового портрета пучка – предназначен для вычислений характеристик текущего фазового портрета пучка (характеристик текущего множества Μ (t ) = M (t | t0 ) o Μ 0 ).
Поток визуализации динамики пучка – позволяет реализовать графическое отображение текущей информации, вычисления геометрических, топологических и других характеристик пучка, вычисления наблюдаемых величин (огибающих и т.п.) и их сравнения с экспериментальными данными. Поток сил пространственного заряда – предназначен для вычисления необходимых для расчета динамики компонент 363
5. 6.
электромагнитного поля, порождаемого текущим распределением заряженных частиц, составляющих пучок. Поток оптимизации – предназначен для решения задач оптимизации (например, на основе методов нелинейного программирования [4]). Поток вспомогательной информации – предназначен для контроля качества и точности вычислительного процесса (например, при использовании инвариантов, симметрий, присущих исходной системе).
Вычислительный эксперимент Эффективность распараллеливания при решении задач физики пучков во многом определяется способом декомпозиции исходной задачи на вычислительные потоки и адекватности предлагаемой декомпозиции архитектуре вычислительной системы. В качестве тестового варианта рассматривался вопрос о реализации двухпотоковой декомпозиции, при которой рассматриваются только два потока: основной – поток динамики, и вспомогательный – поток визуализации. Каждый из потоков был реализован на отдельных кластерных системах. При этом поток динамики был реализован в кластере, состоящем из пяти 2-процессорных машин (процессор Xeon, 1.8 MHz), поток визуализации – на кластере, состоящем также из пяти подобных машин. Процесс синхронизации данных в простейшем случае отсутствия влияния сил собственного заряда является односторонним: от потока динамики к потоку визуализации. По сути дела в определенные моменты времени (определяемые «местоположением» на опорной траектории пучка) информация о характеристиках пропагатора «сбрасывалась» в поток визуализации и там обрабатывалась. Основное распараллеливание осуществлялось внутри указанных вычислительных потоков. Заметим, что в первом потоке распараллеливание реализовывалось достаточно обычными средствами с использованием стандартных операций матричной алгебры. В качестве возможных топологий кластера рассматривались топологии двумерного и трехмерного тора, а также гиперкуба. Во втором потоке была реализована схема параллельности данных, так как на вход подавались данные о состоянии пучка в виде матричной информации о фазовых состояниях частиц, входящих в состав пучка. Число частиц варьировалось от 10 4 до 106 . Временные
364
затраты при варьировании числа используемых процессоров (как и следовало ожидать) изменялись практически линейно. Временные затраты по первому потоку также продемонстрировали практически линейную зависимость от числа задействованных процессоров. Литература 2. Andrianov S.N. A Matrix Representation of the Lie Algebraic Methods for Design of Nonlinear Beam Lines // AIP Conf. Proc. 1997. No 391. NY. P. 355-360. 3. Андрианов С.Н. Динамическое моделирование пучками заряженных частиц. СПб: СПбГУ, 2004. 4. Dragt A.J. Lectures on Nonlinear Orbit Dynamics. Physics of High Energy Particle Accelerators. AIP Conf. Proc., No 87. NY, 1982. P. 147-313. 5. Andrianov S.N., Edamenko N.S. Some Problems of Optimization Computing Process // Proc. Volume from Eleventh IFAC Int. Workshop on Control Application of Optimization - CAO'2000, SPb., 2000. Oxford (UK), 2000. P. 419-424. ОПЫТ УСТАНОВКИ ПО NORDUGRID НА КЛАСТЕР С ДВУХЪЯДЕРНЫМИ ПРОЦЕССОРАМИ С.Н. Андрианов, А.В. Богданов, М.А. Воротынский, А.Б. Дегтярев, Н.В. Тиц
Санкт-Петербургский государственный университет В докладе описывается опыт установки и портирования приложений на кластер, построенный на базе стандартных двухпроцессорных двухъядерных персональных компьютеров, объединенных локальной сетью. В таблице приведены основные характеристики и архитектура использованного кластера.
365
АППАРАТНАЯ СОСТАВЛЯЮЩАЯ Компьютер
Сетевая карта
Колво 1
Процессор
ОЗУ
Dual Core 1024 AMD MB Opteron Processor 270 8 Dual Core 1024 AMD MB Opteron Processor 270 EtherExpress Pro100 (100 Mbps)
Диски
Назначение
120 GB (доступно – 80 GB)
Сервер. Архитектуру x86_64
120 GB (доступно – 80 GB)
Вычислительный узел. Архитектуру - x86_64
-
ПРОГРАММНАЯ СОСТАВЛЯЮЩАЯ Операционная система Менеджер ресурсов Файловая система GRID Локальная сеть Конфигурация
RedHat Enterprise Edition 4.0 Torque (версия 2.1.6) Все компьютеры имеют файловую систему ext3fs и NFS (Network File System) (директории /scratch и /software со всеми поддиректориями на сервере доступны всем узлам) Globus Toolkit (globus-4.0.3-0.5) NorduGrid (nordugrid-arc-0.6.0) Все компьютеры объединены в локальную сеть. Доступ в Интернет: сервер – прямой доступ, узлы – через сервер
В результате для работы было доступно суммарно 32 вычислительных ядра. В докладе обсуждаются особенности установки, настройки и тестирования MPICH, NSF и NorduGrid применительно к выбранному кластеру. Указаны дополнительные скрипты и условия, необходимые для успешного запуска промежуточного программного обеспечения на многоядерной архитектуре с целью нормальной инициализации всех ядер для проведения вычислений. Для выявления особенностей портирования приложений была использована программа для расчёта статистической суммы системы двух тождественных невзаимодействующих фермионов в гармоническом внешнем поле. Для решения был применен метод Монте-Карло в расширенном ансамбле с настройкой балансировочных параметров по алгоритму Ванга-Ландау. Программа была реализована на языке С++ с использованием стандарта MPI-2 и его реализации MPICH2.
366
Кроме портированого приложения на кластере была установлена система тестов NAS benchmark. В докладе приводятся результаты выполнения тестов и портированного приложения. Показан эффект раздельного использования всех ядер в отдельности и возможность линейного масштабирования на выбранном приложении. При помощи системы тестов NAS benchmark исследованы особенности взаимодействия различных вычислительных элементов на выбранной многоуровневой кластерной архитектуре: ядро – процессор – узел – кластер. В качестве примера приведены результаты систематических расчетов портированного приложения. На рисунке показан рост ускорения вычислительной системы в зависимости от количества задействованных ядер на узлах кластера. В качестве числителя в формуле для ускорения (speed up) принималось время выполнения программы на отдельном ядре двухъядерного процессора. На рисунке приведены результаты для чисто кластерной системы (при использовании только MPICH в качестве средства распараллеливания и автоматического распределения нагрузки между используемыми ядрами) – нижняя линяя (красный цвет); а также при использовании промежуточного программного обеспечения NorduGrid – верхняя линия (синий цвет). Пунктирная линия является биссектрисой в данной системе координат и отражает максимально возможное ускорение. На основании графика можно сделать заключение о высокой эффективности для хорошо распараллеливаемого приложения применяемого промежуточного программного обеспечения.
367
40
30
20
10
0
0
5
10
15
20
25
30
35
Рис. 1
Данный кластер доступен в системе NorduGrid под именем ECO GRID cluster SPbSU, а его состояние может быть определено при помощи монитора NorduGrid (http://www.nordugrid.org/monitor/). ПОТОКОВОЕ СКОРОСТНОЕ ШИФРОВАНИЕ ИНФОРМАЦИИ И СЕАНСОВЫХ КЛЮЧЕЙ В НЕЗАЩИЩЁННЫХ КАНАЛАХ СВЯЗИ В.М. Денисов
Нижегородский государственный архитектурно-строительный университет Введение В ближайшее время появятся глобальные мобильные системы третьего поколения с высокой пропускной способностью, обеспечивающие не только высококачественную речевую связь абонентов, но и свободный доступ в Интернет и возможности мультимедиа. В связи с тем, что новое поколение таких систем будет 1 соответствовать международным стандартам ITU , это должно 1
ITU – (International Telecommunication Unit) – Международная Телекоммуникационная организация, занимающаяся разработкой стандартов в структуре ISO – International Standards Organization.
368
привести к повышению спроса на более мобильные и удобные в пользовании системы передачи информации. Одним из существенных свойств этих систем является защищённость информации, передаваемой в сетях. Это требует поддержки режима онлайнового шифрования данных непосредственно в сеансе связи абонентов. Все существующие системы передачи шифрованной информации в сети можно разделить на 2 большие группы: асимметричные, использующие 2 ключа (открытый для шифрования и секретный для расшифрования); симметричные, имеющие единственный ключ. Все существующие протоколы шифрования являются комбинированными и работают в 2 этапа: вначале с помощью асимметричного алгоритма формируется и передаётся ключ шифра, а затем с помощью этого ключа осуществляется шифрование данных у источника, передача их в сети и расшифрование у получателя данных. Асимметричное шифрование примерно в 1000 раз медленнее симметричного, поскольку требует возведения чисел в очень большую степень (примерно 1200 десятичных разрядов). По этой причине первый этап является вспомогательным – только для передачи ключей. Существующие асимметричные системы используют протоколы RSA, Диффи – Хеллмана, Эль Гамаля и др. Все они слишком медленные, чтобы обеспечить непосредственное шифрование данных. На втором основном этапе средствами шифрования являются продукционные шифры, использующие быстрые симметричные алгоритмы. Эти шифры появились достаточно давно, и в настоящее время приняты стандарты шифрования ГОСТ 28147-89, DES-3 и AES. Криптостойкость этих шифров обеспечивается довольно длинным ключом: от 112 до 256 разрядов, однако, передачу ключей они обеспечить не могут. Пропускную способность в десятки мегабайт в секунду существующие системы шифрования обеспечить не могут из-за сложности алгоритмов передачи сеансовых ключей и шифрования данных. Другой проблемой является и недостаточная безопасность таких систем, несмотря на их сложность и громоздкость. Необходимость длительного хранения ключей порождает дополнительную проблему их защиты от подмены.
369
Базовые принципы шифрования В данной работе систематизируются базовые принципы обеспечения криптостойкости системы и на этой основе формулируется принципиально новый протокол, позволяющий: производить передачу ключей и шифрование данных за один этап вместо двух, используя только быстрые симметричные алгоритмы; добиться принципиальной невозможности взломать шифр протокола защиты передаваемых данных; избежать необходимости хранить ключи длительное время (ключ хранится в течение одной транзакции - это около 107 сек., а затем удаляется).
Таким образом, данный протокол является необходимым для существующих и перспективных систем. Один и тот же ключ симметричного шифрования и расшифрования должен храниться у обоих абонентов; именно секретность этого ключа и его длина определяет криптостойкость шифра, поскольку методика шифрования, образцы открытых и зашифрованных текстов, и даже используемые алгоритмы рано или поздно становятся известны оппонентам. Это так называемый принцип Керкхофа. Все симметричные криптографические системы, основанные на этом принципе имеют существенный недостаток: они не позволяют передавать ключ в незащищённой среде. Именно это обстоятельство потребовало включения в существующие системы асимметричного шифрования. В асимметричном шифре необязательно иметь один и тот же ключ шифрования для обоих абонентов секретной связи: ситуация напоминает дверь с английским замком, которую можно захлопнуть и совсем без ключа, а открыть её можно только секретным ключом. Однако, при этом возникают другие серьёзные проблемы: медленная работа таких алгоритмов, недостаточная криптостойкость и опасность подмены ключей. Новый подход заключается в предложении использовать как для симметричного шифрования, так и для передачи самого сеансового ключа для этого шифра один и тот же специальный протокол, в котором секретность обеспечивается вместо принципа Керкхофа другим принципом непредсказуемости генератора псевдослучайных чисел. В результате криптостойкость и скорость шифрования 370
увеличится, а сложность алгоритма можно уменьшить, поскольку определяющее значение имеет не длина ключа, а скорость его смены генератором псевдослучайных чисел. В приложении 1 приводится доказательство возможности обеспечить абсолютную криптостойкость этого шифра, как следствие теоремы Шеннона, утверждающей, что принципиально невозможно взломать шифр, если длина ключа равна длине открытого текста при использовании даже простейшей логической операции XOR [1]. Если же в системе происходит достаточно быстрая смена ключа шифра, то для очередной серии блоков применяется уже совершенно другой ключ, вырабатываемый генератором псевдослучайных чисел, а прежний уничтожается. Криптостойкость в этом случае определяется: качеством генератора псевдослучайных чисел. С помощью этого генератора работает как протокол передачи ключа симметричного шифра, так и протокол передачи данных, зашифрованных этим ключом. Описание протокола Протокол передачи сеансовых ключей в онлайновом режиме и шифрованной информации в незащищенной среде приведён в приложении 2 и включает 4 операции. с помощью генератора 1. КОМПЬЮТЕР-ИСТОЧНИК1: псевдослучайных чисел выбирает два случайных целых числа: ключ А для передачи сеансового ключа и сам сеансовый ключ K для симметричного шифра; вычисляет XA = (A+K) mod 2; посылает XA в незащищённой сети КОМПЬЮТЕРУ-ЦЕЛИ. с помощью генератора 2. КОМПЬЮТЕР-ЦЕЛЬ: псевдослучайных чисел выбирает случайное целое число ключ B для передачи сеансового ключа K; вычисляет XAB = (B+XA) mod 2; посылает XAB в незащищённой сети КОМПЬЮТЕРУ-ИСТОЧНИКУ. расшифровывает своим 3. КОМПЬЮТЕР-ИСТОЧНИК: секретным ключом XAB, для этого вычисляет XB = (A+XAB) mod 2; фактически эта операция снимает только одну "половину" ключа XAB, поэтому секретный ключ К остаётся зашифрован ключом передачи КОМПЬЮТЕРА1
Здесь необходимо отметить, что в публикациях, профессионально посвящённых информационной безопасности, обычно КОМПЬЮТЕР–ИСТОЧНИК называют Алисой, а КОМПЬЮТЕР–ЦЕЛЬ – Бобом.
371
4.
ЦЕЛИ; посылает XВ в незащищённой сети КОМПЬЮТЕРУЦЕЛИ. КОМПЬЮТЕР-ЦЕЛЬ: вычисляет К = (B + XВ) mod 2. В результате КОМПЬЮТЕР-ИСТОЧНИК и КОМПЬЮТЕРЦЕЛЬ оба имеют один и тот же секретный ключ К, поэтому могут применять его в любых симметричных алгоритмах, описанных ранее; незашифрованный ключ нигде в незащищённой среде не появляется.
Протокол передачи секретных ключей с помощью симметричных алгоритмов позволяет избавиться от существенных недостатков существующих протоколов, использующих асимметричное шифрование. Криптостойкость алгоритма не зависит от его сложности, поэтому возможно применение простейших операций, выполняемых процессором очень быстро (по сравнению с асимметричным алгоритмом - на три порядка). Появляется возможность шифровать аудио и видеоинформацию в онлайновом режиме. Выводы протокол передачи секретных ключей с помощью симметричных алгоритмов позволяет избавиться от существенных недостатков существующих протоколов, использующих несимметричное шифрование; криптостойкость алгоритма не зависит от его сложности, поэтому возможно применение простейших операций, выполняемых процессором очень быстро; появляется возможность шифровать аудио и видеоинформацию в онлайновом режиме.
В заключение хочу отметить, что использование данной идеи может найти применение в криптографических системах, в частности, в создании эффективных протоколов генерации ЭЦП и т.п. Приложение 1 Как было доказано Шенноном, если длина используемого при шифровании ключа равна длине шифруемого текста, то такой шифр является нераскрываемым. Если же весь текст разбивается на элементарные блоки, шифруемые каждый своим уникальным непредсказуемым ключом:
372
то зашифрованный текст после преобразования
будет аналогичен тому, который был бы получен в результате применения одного длинного ключа. Следовательно, зашифрованный текст не содержит никакой информации об открытом тексте для криптоаналитика, поэтому может считаться нераскрываемым никаким методом. Приложение 2 Схема протокола для передачи сеансовых ключей.
Литература 1. Ярочкин В.И. Информационная безопасность : учебник для вузов / В.И.Ярочкин. - 2004, М. : Академический Проект : Гаудеамус. - (Gaudeamus)
373
2. 3. 4. 5. 6.
Кулаков В.И.. и др. Информационная безопасность телекоммуникационных систем : учебник для вузов / Кулаков В.И. и др. - 2004, М. : Радио и связь Садердинов А.А. Информационная безопасность предприятия: учебное пособие / А.А. Садердинов, В.А. Трайнев и др.. изд.3-е. – 2006 Барнс К. Защита от хакеров корпоративных сетей / К. Барнс. 2005, М. : ДМК Пресс - (Информационная безопасность). Защита от хакеров Web-приложений/ Дж. Форристал и др.; пер. с англ. - 2004, М. : АйТи : ДМК Пресс. (Информационная безопасность) Анин Б. Ю. Защита компьютерной информации / Б. Ю. Анин. - СПб.: БХВ-Петербург, 2000. - 368 с.: ил. - (Мастер. Соврем. технологии) ПАРАЛЛЕЛЬНЫЕ АЛГОРИТМЫ МНОГОМЕРНОЙ РОБАСТНОЙ РЕГРЕССИИ О.А. Комалева, А.В. Бухановский
Санкт-Петербургский государственный университет информационных технологий, механики и оптики Широкое распространение компьютеров с многоядерными процессорами и кластерных систем на их основе приводит к необходимости разработки и (или) модификации алгоритмов, применяемых для решения различных прикладных задач, связанных с ресурсоемким моделированием или обработкой больших объемов данных. В частности, к ним относятся параллельные алгоритмы многомерного статистического анализа [1-2], в том числе, построения и исследования регрессионных зависимостей (например, [3]). В корреляционном приближении для решения регрессионных уравнений обычно используется метод наименьших квадратов (МНК), распараллеливание которого не представляет особых сложностей [4]. Однако оптимальность этого метода доказана только при выполнении строгих статистических предположений об исходных данных; отклонение от этих ограничений встречается достаточно часто и приводит к непредсказуемым результатам работы МНК. Это делает оправданным использование других методов регрессионного анализа, эффективность которых слабо зависит от статистических свойств 374
исходных данных, такие методы называются робастными (robust regression) [5]. В отличие от классических матричных алгоритмов, применяемых для процедуры МНК, технологии робастной регрессии не допускают столь очевидного способа распараллеливания. В общем случае они основаны на решении задачи поиска минимума нелинейной многомерной функции, ресурсоемкость вычисления которой как минимум линейно зависит от объема выборочных данных. В работе предлагаются параллельные алгоритмы для нескольких видов робастной регрессии. Рассматриваются метод наименьших абсолютных значений (MHAЗ, или L-регрессия), метод наименьшей медианы квадратов (МНМК), метод наименьших усеченных квадратов (МНУК). В общем случае все эти методы сводятся к задаче глобальной оптимизации функционала, который вычисляется (на основе операции сортировки), используя вариационный ряд значений невязки. Для решения задачи оптимизации был выбран алгоритм рекурсивного случайного поиска (РСП, recursive random search) [6]. Он состоит из двух вложенных процедур: изучение (exploration) области, в которой функционал может принимать минимальное значение, и эксплуатация (exploitation), или собственно поиск локального минимума в заданной области. Процедура эксплуатации может быть проведена независимо на различных областях данных. Как следствие, вычислительный алгоритм робастной регрессии допускает, как минимум, два способа параллельной декомпозиции: распараллеливание процедуры случайного поиска, когда нужно вычислить значения целевой функции в нескольких точках, или непосредственное распараллеливание вычисления значения целевой функции (процедуры сортировки). Эксперименты, выполненные на системах с общей памятью, показали, что распараллеливание процедуры случайного поиска привносит значительный выигрыш в производительность (параллельная эффективность 80-90%). В то же время распараллеливание процедуры расчета целевой функции (быстрая сортировка [7]) дает существенно меньший эффект (25-30%). Это обусловливается тем, что в ходе выполнения программы в процессе вычисления целевой функции многократно осуществляется переход из последовательного режима выполнения в параллельный. При использовании инструментария OpenMP это требует дополнительных затрат по времени на порождение и синхронизацию потоков. 375
Важной особенностью вычислительных алгоритмов робастной регрессии является то, что время их работы меняется от запуска к запуску, и, по сути, является случайной величиной. При распараллеливании для оценки эффективности работы этих алгоритмов возникает необходимость учитывать случайный характер их параллельного ускорения. Для этого нами использован подход к описанию эффективности параллельных стохастических алгоритмов с недетерминированным временем работы как в терминах случайной функции, аргументы которой суть случайные величины с некоторым законом распределения, зависящим от ряда параметров задачи и вычислительной системы. В докладе приводятся оценки функций распределения параллельного ускорения в зависимости от количества процессоров и особенностей алгоритма случайного поиска. Литература 1. Boukhanovsky A.V, Ivanov S.V. Stochastic simulation of inhomogeneous metocean fields. Part III: High-performance parallel algorithms // Proceedings of ICCS’03, LNCS 2658, Springer-Verlag, 2003, p. 234-243. 2. Bogdanov A.V., Boukhanovsky A.V. High performance parallel algorithms for data processing // Proceedings of ICCS’04, Lecture Notes in Computer Sciences (LNCS), vol. 3036, Springer-Verlag, 2004. 3. Gatu C., Kontoghiorghes E.J. Parallel algorithms for computing all possible subset regression models using the QR decomposition // Parallel Computing, 29, 2003, pp. 505-521. 4. Голуб Дж., Лоун Ван Ч. Матричные вычисления. М. Мир, 1999, 548 с. 5. Rousseuw R.J., Leroy M.A. Robust regresion and outlier detection. - John Wiley & Sons, 1987 341 p. 6. Ye T., Kalyanaraman S. A recursive random search algorithm for large-scale network parameter configuration // Joint International Conference on Measurement and Modeling of Computer Systems Proceedings of the 2003 ACM SIGMETRICS international conference on Measurement and modeling of computer systems. – NY, USA. ACM Press, 2003. – p. 196-205. 7. Sanders P., Hansh T. On the efficient implementation of massively parallel quicksort // Gianfranco Bilardi, Afonso Ferreira, Reinhard Lüling, José D. P. Rolim (Eds.): Solving Irregularly Structured
376
Problems in Parallel, 4th International Symposium, IRREGULAR '97, Paderborn, Germany, 1997. – p. 13-24. ЧИСЛЕННОЕ МОДЕЛИРОВАНИЕ ДИНАМИКИ АНСАМБЛЕЙ НЕЙРОНОПОДОБНЫХ ЭЛЕМЕНТОВ НА МНОГОПРОЦЕССОРНОМ КОМПЛЕКСЕ С ИСПОЛЬЗОВАНИЕМ СРЕДСТВ MPI М.А. Комаров, А.С. Корнеев, А.К. Крюков, Г.В. Осипов
Нижегородский государственный университет Введение Численное моделирование динамических процессов в сетях сильно нелинейных осцилляторов предъявляет экстремальные требования к возможностям вычислительной техники. Для задач нелинейной динамики это обусловлено рядом факторов. Во-первых, для большинства задач, например по изучению спиральных волн, образованию и взаимодействию отдельных структур, развитию пространственно-временного хаоса, необходимо исследовать пространственные области, достаточные не только для формирования и взаимодействия отдельных структур, но и для изучения динамики коллективных движений таких структур. Учет при этом еще и двумерности среды приводит к необходимости проводить исследования в широких диапазонах пространственных переменных. Во-вторых, различные пространственные возбуждения, наблюдаемые в нелинейных средах, характеризуются существенно различными инкрементами, причем многие неустойчивости развиваются лишь на фоне неоднородных состояний. Так, при исследовании режимов развитого пространственно-временного хаоса времена выхода системы на аттрактор, зависящие от пространственных размеров исследуемой области и близости параметров к точке бифуркации, могут быть очень большими. Следовательно, и временные масштабы моделирования велики. Таким образом, исследование сложных нелинейных процессов в динамических системах, с одной стороны, практически не поддается аналитическому анализу, с другой – при численном моделировании требует вычислительных средств с высокой производительностью. Такие средства предоставляет нам кластер ННГУ с
377
производительностью не менее 2.7 TFlops, имеющий 64 узла по 2 Intel XEON 5150 Dual Core (4x2.66 Ghz ядра) в каждом. Постановка задачи В последнее время одной из важнейших задач в теории нейронных сетей является задача распространения и преобразования информации ансамблями нейроноподобных элементов, организованных в различные пространственные структуры. Мы рассматриваем регулярные решетки локально связанных нейронных клеток, каждая из которых описывается с помощью математической модели ХубераБрауна [1]. Модель представляет собой систему дифференциальных уравнений четвертого порядка в форме Коши и описывает динамику протекания ионных токов через клеточную мембрану и изменение мембранного потенциала: Базовое уравнение динамики мембранного потенциала:
Cm
dV = − g l (V − Vl ) − I d − I r − I sd − I sr dt
Уравнения для быстрых токов:
I d = ρ (T ) g d ad (V − Vd ) I r = ρ (T ) g r ar (V − Vr ) dar / dt = ∅(T )(ar∞ − ar ) / τ .
Уравнения для медленных токов:
I sd = ρ (T ) g sd asd (V − Vsd ) I sr = ρ (T ) g sr asr (V − Vsr ) dasr / dt = ∅(T )(asr∞ − asr ) / τ dasd / dt = ∅(T )(asd∞ − asd ) / τ .
Типичные реализации активности нейронной клетки (изменение мембранного потенциала), моделируемой уравнениями Хубера-Брауна приведены на рис. 1.
378
Рис. 1
Локальная электрическая связь между элементами моделировалась с помощью добавления внешнего синаптического тока в базовое уравнение динамики мембранного потенциала:
Cm I syn
dV post
= − g l (V − Vl ) − I d − I r − I sd − I sr + I syn dt = d syn (V pre − V post ) .
Vpre - потенциал пресинаптического нейрона, Vpost – потенциал постсинаптического нейрона и dsyn – проводимость синаптического канала или сила электрической связи. Таким образом, перед нами встала задача исследования регулярной решетки, состоящей из 360000 элементов (600 по обоим измерениям), т.е. решения системы из 1440000 обыкновенных дифференциальных уравнений. Результаты численного расчета Для решения данной системы дифференциальных уравнений мы использовали кластер и параллельный алгоритм расчета, реализованный на языке C c использованием библиотеки MPI. Суть алгоритма состоит в распределении исходных элементов решетки между различными процессами и организации обмена и сохранения данных. Все процессы, за исключением одного, были организованы в виртуальную двумерную декартову топологию, что впоследствии облегчило реализацию алгоритма. Каждый такой процесс получал в свое распоряжение часть элементов решетки и выполнял вычисления с помощью метода Рунге-Кутта 4-го порядка. Схематично распределение элементов показано на рис.2. Кроме исходных элементов, каждому процессу добавлялись дополнительные обрамляющие элементы для учета взаимодействия.
379
Рис. 2
Каждую итерацию соседние процессы обменивались данными по схеме, изображенной на рис.2. Отдельный процесс не задействовался в вычислениях, но осуществлял сбор посчитанных данных и сохранение их на жесткий диск. Результаты тестирования алгоритма на производительность изображены на рис.3.
Рис. 3
График отображает зависимость отношения времени выполнения тестовой программы параллельного алгоритма к времени выполнения последовательного аналога в зависимости от числа используемых процессов. Максимум отношения равный, 11.9, достигается при 50 используемых процессах. Численный анализ поставленной задачи показал, что исследуемая решетка нейроноподобных осцилляторов способна генерировать волны последовательно синхронной активности, которые участвуют в преобразовании и распространении информации [3]. Рис. 4
380
иллюстрирует взаимодействующие волны синхронного возбуждения в решетке в различные моменты времени.
Рис. 4
Подводя итог, отметим, что программный продукт преимущества параллельного программирования производительность метакластера является весьма средством для изучения процессов, происходящих активных средах.
использующий и высокую эффективным в дискретных
Работа выполнена при финансовой поддержке РФФИ-ННС, проект 05-02-90567, РФФИ-МФ проект 05-02-19815 и РФФИ проект 06-0216596. Литература 1. Braun H.A, Voigt K, Huber M.T (2003) Oscillations, Resonances and Noise: Basis of Flexible Neuronal Pattern Generation. Biosystems 71: 39-50. 2. Sosnovtseva O.V., Postnova S.D., Mosekilde E., Braun H.A. Interpattern transitions in a noisy bursting cell. Fluctuation and Noise Letters Vol. 4, No. 3. 2004.
381
3.
Mikhail I. Rabinovich et al. Dynamical principles in neuroscience. Reviews of modern physics, volume 78. October-December. 2006.
ВОЗМОЖНОСТИ РАСПАРАЛЛЕЛИВАНИЯ ВЭЙВЛЕТНОСПЛАЙНОВОГО СЖАТИЯ НА НЕРАВНОМЕРНОЙ СЕТКЕ Ю.К. Демьянович, О.М. Косогоров, А.А. Макаров
Санкт-Петербургский государственный университет Введение Известно, что на двукратно измельчающейся сетке полиномиальные B-сплайны образуют телескопическую систему пространств, на основе которой строятся вэйвлетные разложения (см. [1-5]); для равномерной сетки это устанавливается с помощью преобразования Фурье (см., например, [3]), а для неравномерной сетки - использованием специального дробно-рационального тождества (см. [6-8]) и калибровочных соотношений [6, 9]. Применение неравномерной сетки позволяет улучшить приближение функций без усложнения вычислений. Однако, для дальнейшего улучшения приближения, могут понадобиться различные степени измельчения сетки в разных частях рассматриваемого промежутка: для этого двукратное измельчение недостаточно. Особую заботу представляет вэйвлетное разложение в случае неравномерной сетки, поскольку обычно применяемое на равномерной сетке преобразование Фурье в условиях неравномерной сетки использовать затруднительно. Оказалось, что использование биортогональной системы функционалов позволяет построить вэйвлетные разложения при произвольном измельчении сетки (это ведет к упрощениям и в случае равномерной сетки). В данной работе рассматривается вэйвлетное разложение телескопической системы пространств В-сплайнов второй степени при произвольном способе измельчения сетки (вывод формул см. в работе [8]). Первоначально с каждой сеткой связываются B-сплайны второй степени. Если новая сетка получена из исходной удалением одного узла, то пространство минимальных сплайнов, построенных для крупной сетки, содержится в пространстве аналогичных сплайнов, построенных для мелкой сетки. Использование биортогональной (к Bсплайнам) системы функционалов позволяет получить прямое сплайнвэйвлетное разложение и соответствующие формулы декомпозиции и
382
реконструкции; отсюда следует, что последовательное удаление или добавление узлов в исходную сетку приводит к телескопическим системам пространств рассматриваемых сплайнов и к прямому разложению исходного пространства. От исходной сетки можно перейти к любой более мелкой сетке добавлением любой конечной совокупности узлов, не совпадающих с узлами расширяемой сетки (между любыми двумя узлами исходной сетки число добавляемых узлов может быть различным в зависимости от выбранной пары соседних узлов). Формулы декомпозиции и реконструкции получаются использованием соответствующих биортогональных систем функционалов. Все результаты верны в случаях конечного отрезка и бесконечного интервала. Сжатие модельных числовых потоков Предлагается алгоритм, который целесообразно использовать для обработки больших потоков числовой информации с резко меняющимися характеристиками. В первом приближении упомянутые числовые потоки характеризуются наличием регулярной и сингулярной частей. Сжатие информации может быть осуществлено путём отбрасывания потока с несущественной информацией (при этом важно грамотно выделить поток с несущественной информацией из исходного информационного потока в каждом отдельном случае). Алгоритм восстановления позволяет провести восстановление с потерей (т.о. сжав информацию) или (при необходимости) полностью восстановить исходный числовой поток. Написана программа на языке C++, реализующая сжатие и восстановление модельных числовых потоков. Некоторые результаты работы этой программы приводятся в следующей таблице:
383
Таблица 1.
Программная реализация декомпозиции и реконструкции показала быструю и эффективную работу алгоритма на ряде модельных примеров. Также рассматривается возможность распараллеливания предлагаемого алгоритма. Предлагается параллельная версия, позволяющая полностью загрузить двухъядерную или двухпроцессорную архитектуру и допускающая эффективную программную реализацию. Литература 1. Петухов А.П. Введение в теорию базисов всплесков. СПб. 1999. 132 с. 2. Добеши И. Десять лекций по вейвлетам. Москва-Ижевск. 2004. 404 с. 3. Чуи К. Введение в вейвлеты.-М.: Мир, 2001.- 412 с. 4. Малла С. Вэйвлеты в обработке сигналов. М. 2005.671 с. 5. Новиков И.Я., Стечкин С.Б. Основы теории всплесков // Успехи математических наук.-1998. - Т.53.- № 6 (324). - С. 53128.
384
6. 7. 8.
Демьянович Ю.К. Калибровочное соотношение для Bсплайнов на неравномерной сетке// Математическое моделирование.- 2001.- Т.13.- № 9.- С. 98-100. Демьянович Ю.К. Всплесковые разложения в пространствах сплайнов на неравномерной сетке //Докл. РАН.-2002.- Т.382.№ 3. - С.313-316. Демьянович Ю.К. Локальный базис всплесков на неравномерной сетке // Записки научных семинаров ПОМИ. – 2006. - Т.334. - С.84-110.
РАЗРАБОТКА ПАРАЛЛЕЛЬНОГО АЛГОРИТМА МНОГОЭКСТРЕМАЛЬНОЙ ОПТИМИЗАЦИИ ФУНКЦИЙ МНОГИХ ПЕРЕМЕННЫХ А.Н. Коварцев
Самарский государственный аэрокосмический университет им. С.П. Королева Организация параллельных вычислений - один из наиболее перспективных способов повышения эффективности разрабатываемых программных продуктов. Несмотря на очевидность преимуществ от распараллеливания вычислительных процессов, данная схема организации управления вычислениями чревата значительными проблемами [1]. Проблема организации параллельных вычислений носит комплексный характер. Здесь переплетаются в один клубок проблемы, связанные с конфигурацией компьютера, эффективностью структурной его системного программного окружения, эффективностью самой программы организации параллельных вычислений. Часто достаточный ресурс параллелизма содержится в самом алгоритме организации вычислений. Однако в этом случае при разработке алгоритма необходимо изначально учитывать фактор его параллельного исполнения, а не пытаться разложить на параллельные процессы уже имеющуюся последовательную программу решения исходной задачи. Рассмотрим проблемы разработки параллельных алгоритмов на примере задачи многоэкстремальной оптимизации функций многих переменных. Выбор области исследований обусловлен двумя причинами. Во-первых, методы глобальной оптимизации имеют большое количество практических приложений. Во-вторых, алгоритмы 385
оптимизации для функций многих переменных становятся чрезвычайно трудоемкими, и единственным способом повышения их производительности является распараллеливание вычислительных процессов. В качестве объекта исследований выберем, разработанный автором, эвристический, двоичного деления, алгоритм глобальной оптимизации (ЭДАГО). Идея численного метода во многом основывается на методе характеризации, предложенного Р.Г. Стронгиным для решения задач многоэкстремальной оптимизации функций одной переменной [2]. Для простоты рассмотрим задачу двумерной многоэкстремальной оптимизации. Пусть областью поиска глобального максимума является единичный квадрат D = [ 0;1 ] × [ 0;1 ] . В дальнейшем область D подвергается последовательному двоичному делению на подобласти Di таким образом, что в центрах каждой из подобластей содержится точка
X i = ( xi , yi )′ ,
в
оптимизируемой функции, а
которой
D = U Di .
вычисляется
значение
Каждое следующее (j+1)-е
i
деление области
Dj
производится перпендикулярно относительно
направляющего вектора
a j = X j − X j −1 .
Центры двух новых
областей можно определить из системы уравнений:
⎧⎪( a j , X j +1 ) = 0 , ⎨ ⎪⎩ X j +1 − X j = h j / 2 ,
где
hj
- длина направляющего вектора
aj.
На рисунке 1
схематично представлен процесс деления области D на подобласти. Его можно интерпретировать как один из методов редукции задачи оптимизации функции двух переменных к одномерной задаче, с помощью «ветвящихся», непересекающихся, древообразных ломанных кривых, всюду плотно покрывающих исходную область D. Тогда в вычислительной схеме алгоритма можно использовать характеристическую функцию, предложенную Р.Г. Стронгиным:
386
Рис. 1
R( i ) = m X j +1 − X j + где
( z j +1 − z j )2 m X j +1 − X j
+ 2( z j +1 + z j ) ,
m = M ⋅r,
M = max
z j +1 − z j . X j +1 − X j
В качестве критерия остановки работы алгоритма использовалось условие h ≤ 1 , где N del - количество уровней двоичного j N del 2 деления (размер «зерна», не подлежащего дальнейшему делению). Алгоритм ЭДАГО показал неплохие результаты при оптимизации функций размерности n ≤ 6 . Дальнейшее увеличение размерности функции требует значительных затрат вычислительных ресурсов ЭВМ на вычисление функции в центрах локальных областей. Повысить размерность оптимизируемой функции можно только за счет распараллеливания вычислительных процессов. Исследования проводились в предположении, что наиболее трудоемким процессом является вычисление функции в точках деления. Исследование распараллеливания вычислительных процессов производилось на двух тестовых функциях для случая поиска глобального максимума функции двух переменных: 1. Griewank - непрерывная функция, имеющая один глобальный экстремум и множество локальных экстремумов, близких по своей величине к глобальному z = 10 − (( x 2 + y 2 ) / 400 − cos x ⋅ cos y ) + 1, x , y ∈ [ −20;20 ] .
2
387
Функция, имеющая 19 локальных экстремумов и один глобальный, случайным образом распределенных на единичном квадрате 20 ( X − X k )2 , z = ∑ k exp( − ) 0.01 k =1 ( X − X k )2 X ∈ [ 0;1] − exp( ), максимумы функций . Xk
2.
0.01
На рисунках 2 и 3 представлены образы тестовых функций. При разработке параллельного алгоритма, первой приходит мысль – разбить исходную область поиска на частичные подобласти, в каждой из которых параллельно организовать поиск глобальных экстремумов. Тогда глобальным экстремумом исходной области является одним из глобальных экстремумов ее подобласти. Мотивом для данного способа организации параллельных вычислений является очевидное уменьшение числа экстремумов в каждой из подобластей, что должно повышать производительность оптимизационных алгоритмов. Однако, как это не странно, для данного метода построения параллельного алгоритма, не наблюдается сколько-нибудь значительного ускорения вычислительного процесса (см. рис. 4, 5). Из рисунка 4 видно, что при количестве процессоров n=1000, достигается всего лишь 10-кратное ускорение, при этом эффективность распараллеливания составляет 0.01. Для тестовой функции №2 результаты еще менее обнадеживающие (см. рис. 6). При n=1000 ускорение равно 3.5, а эффективность – 0.003. С чем же связаны столь неожиданные результаты?
388
Рис. 2. Тестовая функция №1
Рис. 3. Тестовая функция №2
Алгоритм глобальной оптимизации является адаптивным алгоритмом и независимо от количества экстремумов какое-то время требуется для его адаптации к наблюдаемым свойствам оптимизируемой функции. Косвенно это подтверждается характером (см. рис. 4, 6), посчитанных на основе графиков ускорений S n ср среднего времени поиска оптимума по совокупности процессоров. Видно, что если бы на всех процессорах оптимизация реализовалась за одинаковое время, то ускорение для функции №1 было бы равно 40, а для функции №2 – 25. 389
Для проверки этого предположения был выбран самый простой алгоритм, не обладающий адаптивными свойствами, – метод случайного равномерного поиска. 40 30 S 20 10 0 0
200
400
n
Sn
600
800
1000
Sn ср
Рис. 4. Ускорение для функции №1
1 0,8 En
0,6 0,4 0,2 0 0
200
400
n
600
800
1000
Рис. 5. Эффективность для функции №1
390
40 30 S 20 10 0 0
200
400 Sn
n
600
800
1000
Sn ср
Рис. 6. Ускорение для функции №2
Пусть
ε
- требуемая точность (по каждой координате) поиска
глобального экстремума; δ - заданный уровень доверительной вероятности его обнаружения; а – размер частичного квадрата, в котором ищется оптимум. Очевидно, что вероятность обнаружения 2 2 глобального экстремума равна p = ε a . Вероятность того, что в ε окрестности глобального экстремума попадет, по крайней мере, одна точка, равна P{ m ≥ 1 } = 1 − P{ m = 0 } = 1 − ( 1 − p ) N = δ . Здесь N – число испытаний. Откуда
N =
ln( 1 − δ )
ln( 1 − ε 2 a 2 ) .
Используя полученную формулу, несложно подсчитать ускорение и эффективность параллельных вычислений на базе метода случайного поиска, имеющего заведомо одинаковое количество обращений к оптимизируемой функции. Из рисунка 7 видно, что наблюдается существенный рост ускорения и эффективности распараллеливания процессов. Однако все это происходит на фоне очень низкой эффективности метода случайного поиска относительно однопроцессорной схемы. Так на 256 процессорах эффективность метода случайного поиска ниже, чем для ЭДАГО на одном процессоре. 391
Полученные результаты наглядно показывают, что при разработке параллельных алгоритмов многоэкстремальной оптимизации необходимо отыскивать иные ресурсы для организации параллельных вычислений, во всяком случае, нельзя игнорировать адаптивные механизмы последовательных алгоритмов, повышающие их эффективность. И действительно они находятся. 10000000 1000000 100000 S
10000 1000 100 10 1 0
200
400
600
800
1000
n Sn
En
Рис. 7. Метод случайного поиска
Если исходить из того, что основная доля вычислительных ресурсов тратится на вычисление функции, то распараллеливать следует в первую очередь процессы вычисления функции. В алгоритме ЭДАГО на каждом его шаге делится частичная область D j , для которой характеристическая функция
R( j ) в данный момент
принимает наибольшее значение. В принципе ничто не мешает делить не один сегмент, а первые, например, четыре сегмента с наилучшими показателями характеристической функции. На следующем шаге опять первые 4 наилучшие сегмента и т.д. Если алгоритмы деления сегментов разместить на «своих» процессорах, а обращение к функциям выполняется только при делении сегмента, то процесс деления будет реализовываться на разных процессорах приблизительно за одинаковое время. Вычислительные эксперименты с функцией №1 показали, что ускорение в этом случае достигает величины 3.52 . Это позволяет сделать вывод о том, что наибольшей эффективности от распараллеливания алгоритмов можно ожидать, когда параллелизм в 392
явной форме «вшит» в канву модифицируемого алгоритма, в тех местах, где это наиболее полезно. В этом случае чрезвычайно полезны явные методы разработки алгоритмов параллельных вычислений, позволяющие не только описывать алгоритмы, но и исследовать их корректность. Литература 1. Андреев А.Н., Антонов А.С., Воеводин В.В., Воеводин Вл.В., Жуматий С.А. Комплексный подход к анализу эффективности программ для параллельных вычислительных систем. // Седьмая Межд. конфер. "Высокопроизводительные вычисления и их приложения", Черноголовка, 2000. 2. Стронгин Р.Г. Численные методы в многоэкстремальных задачах. – М.: Наука, 1978. 3. Коварцев А.Н. Автоматизация разработки и тестирования программных средств // Самар. гос. аэрокосм. ун-т, Самара. 1999. О НЕКОТОРОЙ ПАРАЛЛЕЛЬНОЙ МОДИФИКАЦИИ АЛГОРИТМА ОТОБРАЖЕНИЯ ФРАГМЕНТА ЭЛЕКТРОННОЙ КАРТЫ З.А. Матвеев
Нижегородский государственный университет Введение В данном докладе рассматриваются предварительные результаты, полученные при распараллеливании алгоритма отображения фрагмента электронной карты. Данный алгоритм был разработан в рамках программного продукта, позволяющего осуществлять просмотр большеформатных точных электронных карт в векторном формате HPGL (графический язык, разработанный фирмой Hewlett Packard для управления плоттерами). Рассматривая задачу просмотра файла в графическом формате, мы подразумеваем, во-первых, собственно задачу просмотра листа карты на экране монитора, и, во-вторых, возможность удобного перемасштабирования листа карты, возможность удобной навигации в пределах листа карты.
393
Специфика предметной области такова, что на вход программного продукта как правило поступает весьма большой объём данных. Так, вполне типичными являются электронные карты размером в 20-40 Мб, содержащие описание порядка миллиона графических примитивов. В то же время, требования к точности генерируемого изображения достаточно велики, т.к. программный продукт планируется использовать для детальной верификации топографической карты. В связи с упомянутыми ограничениями перед автором была поставлена задача разработки различных алгоритмов по минимизации времени, затрачиваемого на построение изображения при сохранении достаточно высокой степени точности карты. В результате было создано несколько последовательных алгоритмов а также внутренний древовидный формат, позволяющие существенно уменьшить время, затрачиваемое на построение фрагмента электронной карты, особенно при большом коэффициенте увеличения. В дальнейшем автором было принято решение попытаться распараллелить тот или иной фрагмент разработанных алгоритмов с тем, чтобы ещё более увеличить производительность приложения. При этом в качестве среды разработки была выбрана MS Visual C++ 2005, одним из преимуществ которой является встроенная поддержка стандрата openMP. Последовательная версия алгоритма Исходный распараллеливаемый участок кода может быть записан в следующей упрощённой форме: For (i) do CreateIndex(i) For (i) do begin if inIndex(i) then begin Transform(i) Draw(i, DC) end end
Листинг 1
Рассмотрим подробнее приведённую запись. Индекс i в данном случае является номером большеформатного объекта верхнего уровня (слоя). Дело в том, что в рамках 394
разработанного алгоритма входной векторный формат преобразуется в древовидную структуру, где корню дерева поставлен в соответствие объект векторной электронной карты, его прямым потомкам – объекты-слои, а узлам, расположенным на втором уровне иерархии (глубины 2) - сложные векторные объекты (ломаные, кривые). Таким образом, везде в приведённом фрагменте кода осуществляется перебор лишь объектов верхнего уровня, которые являются непосредственными потомками корневого узла. Перебор остальных объектов осуществляется рекурсивно. Операция CreateIndex (i) в этом случае является рекурсивной процедурой построения индекса для всех потомков i-го слоя. inIndex (i) – является операцией проверки на принадлежность i-го слоя индексному массиву верхнего уровня. Transform (i) – это рекурсивная операция преобразования мировых координат в экранные для всех объектов i-го слоя. Draw (i, DC) – это рекурсивная операция вывода i-го слоя на устройство с дескриптором DC. На нижнем уровне сводится к последовательности вызовов функций GDI (в основном Polyline(DC)). Отсюда легко можно выделить следующие основные разделяемые ресурсы: графические объекты в рамках внутренней древовидной структуры; индексные массивы; дескриптор графического устройства (Handle Device Context). Параллельная модификация алгоритма На основании анализа алгоритма и разделяемых ресурсов была предложена следующая параллельная модификация:
395
#pragma omp parallel for For (i) do CreateIndex(I, MappingRect(i_THREAD)) #pragma omp parallel For (i) do begin if inIndex_i_THREAD(i) then begin Transform(i) Draw(i, DC_i_Thread) end end
Листинг 2
Здесь MappingRect(i_THREAD) – окно отсечения, поставленное в соответствие текущему потоку; inIndex_i_THREAD – индексный массив потока i_THREAD. Основная идея данного алгоритма заключается в том, что мы разбиваем отображаемую область на N прямоугольных подобластей, где N – число используемых потоков. Для каждой подобласти строится свой индексный массив. Каждой подобласти ставится в соответствие свой собственный DC_i_Thread. В результате при использовании подобного алгоритма мы получаем сравнительно небольшое количество совместно используемых ресурсов: индексный массив верхнего уровня; окна отсечения; Device Context для каждого подокна. По окончании работы алгоритма изображения с различных DC совмещаются и результирующий фрагмент выводится на экран. Можно отметить следующие преимущества разработанного алгоритма. Малое количество совместно используемых ресурсов (только индексы, и только на верхнем уровне; нет необходимости синхронизировать саму внутреннюю древовидную структуру данных; нет необходимости синхронизировать рекурсивные алгоритмы) и как следствие меньшее количество критических секций или замков (точнее их полное отсутствие).
396
Сравнительно незначительная модификация исходного последовательного алгоритма – сохранение ясной структуры алгоритма. Тривиальный способ аккумулирования результатов различных ветвей алгоритма по их окончании. Масштабируемость.
Следует отметить в то же время и одну проблему реализации. Дело в том, что при индексировании слоёв, лежащих на стыке подобластей, возникает необходимость дополнительного распараллеливания на более низком уровне (сложных векторных объектов). В противном случае слой отображается частично, так, как будто бы он принадлежал лишь одной подобласти. Данная проблема находится сейчас в стадии исследования. Сравнительный анализ полученных результатов Для тестирования использовалась рабочая станция на базе процессора AMD Athlon 64 x2 Dual, объём ОЗУ 1,87Gb. Электронная карта
1.plt (2.048.тыс. объектов, 2100. слоёв) 1 2
2.plt (471 тыс. объектов, 7576 слоёв) 1 2
3.plt (386 тыс. объектов, 8255 слоёв) 1 2
Коэффициент увеличения Последовательный 187 93 94 63 120 47 алгоритм Параллельный алгоритм 140 47 63 45 200 63 Таблица 2. Сравнительный анализ времени отображения фрагмента карты для последовательной и параллельной версии алгоритма (мс)
В результате при тестировании первой версии параллельного алгоритма был отмечен прирост производительности порядка 25%30% (см. таблицу 1). Однако необходимо отметить, что данный прирост наблюдался лишь при работе с картами, разбитыми на сравнительно крупные слои. На картах, представляющих собой совокупность небольших слоёв, включающих в себя небольшое количество объектов, распараллеливание практически не принесло прироста производительности, а в отдельных случаях напротив привело к ухудшению временных показателей (при однократном 397
увеличении). Также было отмечено, что значительный прирост демонстрируется лишь на процессорах AMD. В связи с неоднозначностью полученных результатов обе версии алгоритма были подвергнуты анализу с применением профилировщиков Automated AQTime 5.0 и Intel VTune 9.0. В результате было выявлено, что сама операция Draw поддаётся распараллеливанию достаточно плохо (прирост порядка 10%), в то время как операция Transform в параллельном алгоритме демонстрирует хороший прирост производительности (порядка 3040%). На основании данного анализа автор планирует дальнейшую доработку параллельной версии алгоритма; возможно распараллеливание будет использоваться лишь на этапе преобразования координат. В любом случае применение параллельной версии алгоритма отображения позволило добиться определённого прироста производительности уже на текущем этапе. МОДЕЛИРОВАНИЕ ДИНАМИКИ АНСАМБЛЕЙ СЕРДЕЧНЫХ КЛЕТОК С ИСПОЛЬЗОВАНИЕМ СРЕДСТВ MPI В.С. Петров, Л.С. Аверьянова, Г.В. Осипов
Нижегородский государственный университет Введение Анализ динамических свойств нелинейных сред является сегодня весьма актуальным и распространенным направлением теоретической физики. С точки зрения математики, дискретную среду можно описывать системой большого количества обыкновенных дифференциальных уравнений (ОДУ), связи между которыми имеют топологию правильной решетки на плоскости или в пространстве. Наиболее интересными для исследования являются модели систем, которые изначально, по своей физической природе, обладают свойством дискретности. В качестве примера здесь можно привести биологические ткани, имеющие клеточное строение. Так, описание и исследование культуры сердца как дискретной возбудимой среды особенно актуально с точки зрения медицины. Данный подход позволяет изучать процессы возникновения режима фибрилляции и возможные способы ее подавления. Также к пространственнодискретным системам можно отнести кристаллические решетки
398
твердых тел и некоторые искусственные системы: сети синхронизации (например, в фазированных антенных решетках), решетки джозефсоновских контактов, искусственные нейронные сети [1]. Следует также заметить, что аналитическое рассмотрение подобных задач практически не представляется возможным, а численное моделирование требует очень больших вычислительных мощностей. При решении наших задач мы использовали высокопроизводительный кластер факультета ВМК ННГУ. Характеристики кластера следующие. Пиковая производительность 2.7 TFLOPS. Общий объем оперативной памяти 256 Gb. 64 вычислительных узла. CPU: 2xIntel XEON 5150 Dual Core (4x2.66 GHz cores). RAM: 4Gb DDR2. Постановка задачи Основной целью работы было исследование динамики больших регулярных двумерных решеток, состоящих из клеток сердечной мышцы, описываемых моделью Луо-Руди для мембранного потенциала клетки. В основе данной модели лежит широко известный формализм моделей типа Ходжкина-Хаксли [2]. Скорость изменения потенциала V, согласно данной модели, определяется выражением: (1) V = −1 / cm ( I ionic + I ext ) .
Здесь cm - мембранная емкость, которая в наших экспериментах равнялась 1, I ionic - суммарный ионный ток, протекающий через мембрану и I ext - постоянный внешний ток. I ionic состоит из шести ионных токов, определяющих динамику изолированной клетки: I Na быстрый натриевый ток; I si - медленный обратный ток; I k нестационарный калиевый ток; I Kl - стационарный калиевый ток; I Kp I b - стационарный фоновый ток. Величина этих токов определяется шестью так называемыми «воротными» переменными – m, h, g , d , f , X , которые представляют собой долю открытого ионного канала и изменяются соответственно от нуля до единицы. Для нахождения воротных переменных необходимо решить уравнение вида: y& = ( y∞ − y ) / τ y ,
платообразный калиевый ток;
399
где y∞ = α y (V ) /(αν (V ) + β y (V )), τ y = 1 /(α y (V ) + β y (V ))
.
Здесь y – одна из воротных переменных. Кроме этого, в системе есть еще одно уравнение для переменной [Ca]i , определяющей величину тока Ist: [Ca]i = -10-4Isi+0.07(10-4-[Ca]i) . В итоге мы имеем 8 нелинейных обыкновенных дифференциальных уравнений, определяющих динамику изолированной клетки. Детальное описание модели можно найти в оригинальной статье Луо и Руди [3]. Мы рассматривали решетку размером 600х600 подобных осцилляторов, которые были диффузионно электрически связаны с ближайшими соседями, т.е. образовывали регулярную 2D решетку. Решение систем уравнений динамики подобных сильно нелинейных релаксационных систем, как правило, требует применения таких точных методов численного интегрирования, как, например, алгоритм Рунге-Кутта четвертого порядка. К сожалению, данный алгоритм не является оптимальным при использовании параллельных вычислений. Это связано с тем, что в таком случае на каждом шаге интегрирования мы вынуждены четыре раза производить синхронизацию и обмен данными между различными процессами, производящими расчет. При достаточно больших размерах исследуемой системы, это становится существенным фактором, заметно понижающим скорость и эффективность вычислений. Учитывая подобные обстоятельства, мы решили использовать другой алгоритм, специально предназначенный для интегрирования систем типа (1) и построенный таким образом, что позволяет осуществлять обмен данными между процессами один раз за итерацию. Суть алгоритма сводится к раздельному интегрированию правой части первого уравнения системы (1) – отдельно нелинейные функции, описывающие динамику одного элемента, и отдельно слагаемое, отвечающее за диффузионную связь с другими клетками – а также использованию адаптивного дробления шага интегрирования в зависимости от текущего значения производной интегрируемой переменной. Подробнее об этом алгоритме в [4]. Параллельный алгоритм Разработка параллельного приложения на основе готового последовательного кода осуществлялась с использованием MPI. Основными задачами, которые необходимо было решить, являлись:
400
создание виртуальной топологии процессов осуществляющих вычисления, реализация обмена данными между этими процессами, осуществление сбора результатов со всех процессов и сохранение этих данных.
Рис. 1. Виртуальная топология процессов
Виртуальная топология процессов, созданная нами, представляла собой регулярную решетку NxN процессов, где N = ProcNum − 1 , ProcNum – общее число процессов, инициализированных при запуске приложения функцией MPI_init (один процесс используется для сбора и сохранения информации и, таким образом, в виртуальную решетку не входит). Теперь каждому процессу виртуальной решетки отводилось (600/N)2 элементов для вычислений (600 должно нацело делиться на N). Кроме того, каждому процессу добавлялась еще рамка из элементов для имитации связей с элементами других процессов и/или граничных условий. На рис.1 приведена наглядная иллюстрация виртуальной топологии процессов. Для реализации обмена данными между процессами использовалась функция MPI_Sendrecv с наложением маски – т.е. созданием специализированного типа данных MPI_Datatype column, который представлял собой столбец элементов предназначенных для пересылки. рис. 2 иллюстрирует описанный процесс обмена.
401
Рис. 2. Иллюстрация обмена данными между соседними процессами
Для сбора и сохранения информации использовалась функция MPI_Gather также с наложением маски на решетку элементов каждого процесса. Маска накладывалась таким образом, чтобы отбросить все искусственно добавленные элементы. Далее выделенный процесс получал сообщения с данными от всех «вычислительных» процессов и сохранял их на диск в бинарном формате. Результаты Здесь мы приведем некоторые результаты вычислений с использованием кластера. Так в решетке 600х600 сердечных клеток была смоделирована спиральная волна, которая соответствует аритмии в реальном сердце. На рис.3 приведен результат расчета.
Рис. 3. Существование спиральной волны в решетке сердечных клеток и движение ее ядра
Со временем ядро спиральной волны выходит за пределы решетки, и волна перестает существовать.
402
Приведем также график, иллюстрирующий ускорение вычислений при использовании кластера по сравнению с последовательной программой. Здесь на рис.4 изображено время выполнения параллельной программы, отнесенное ко времени выполнения в последовательном режиме в зависимости от числа процессов, использованных при параллельных вычислениях.
Рис. 4. Коэффициент ускорения вычисления программы в зависимости от числа процессов
Как видно из графика, использование 140 процессов позволяет в 70 раз увеличить быстродействие по сравнению с последовательным алгоритмом. Такое быстродействие дает возможность производить длительные эксперименты для больших ансамблей сердечных клеток для широкого спектра управляющих параметров. Данная работа выполнена при финансовой поддержке РФФИ-ННС проект 05-02-90567, РФФИ-МФ проект 05-02-19815 и РФФИ проект 06-02-16596. Литература 1. Иванченко М.В., Канаков О.И., Мишагин К.Г., Шалфеев В.Д. Материалы третьего международного научно-практического семинара «Высокопроизводительные параллельные вычисления на кластерных системах», 2003. 2. Hodgkin A.L., Huxley A.F. A quantitative description of membrane current and its application to conduction and excitation in nerve: J Physiol, 1952.
403
3. 4.
Luo C.-H., Rudy Y. A Model of the Ventricular Cardiac Action Potential: Circ. Res., 1991. Qu Z., Garfinkel A. An advanced algorithm for solving partial differential equation in cardiac conduction: IEEE Transactions on biomedical engineering, 1999. ОРГАНИЗАЦИЯ ПАРАЛЛЕЛЬНОЙ ОБРАБОТКИ КРУПНОФОРМАТНЫХ ИЗОБРАЖЕНИЙ С.Б. Попов
Институт систем обработки изображений Российской академии наук (ИСОИ РАН), Самара Введение В настоящий момент растет интерес к системам параллельной или распределенной обработки изображений. В первую очередь это связано с тем, что появилась насущная потребность в обработке крупноформатных изображений. Наблюдается устойчивая тенденция к увеличению размеров формируемых изображений. Изображения земной поверхности большого размера становятся все более доступными, существует несколько спутников, которые предоставляют информацию в режиме реального времени в свободном доступе. Современные электронные микроскопы обеспечивают формирование наборов данных высокого разрешения объемом в несколько гигабайт. Увеличение размера изображения порождает проблемы при их обработке, хранении и передаче данных. В первую очередь это связано с тем, что постоянное наращивание вычислительной мощности персональных компьютеров сформировало устойчивый выбор интерактивного способа проведения исследований в области обработки изображений: подбор параметров обработки, момент завершения итерационных процедур осуществляется пользователем визуально. Вместе с тем, если объем обрабатываемых данных сопоставим с объемом оперативной памяти современного компьютера или превышает его, тогда время выполнения даже простейших операций над крупноформатным изображением становится неприемлемо большим для пользователей интерактивных систем. При проведении реальных исследований хранение достаточно представительного набора крупноформатных изображений может
404
занимать значительную часть объема данных постоянного хранения, что может существенно снизить эффективность работы всего компьютера. Централизованное размещение крупноформатных изображений на специализированных хранилищах данных предъявляет повышенные требования к пропускной способности сети, а обработка изображения непосредственно на сервере хранения данных предполагает существенное увеличение вычислительной мощности сервера, а, значит, и стоимости хранения данных на нем. Обработка изображений с использованием параллельных или распределенных систем решает многие из рассмотренных выше проблем. В процессе построения и обсуждения таких систем, полезно иметь некоторое формальное описание того, что включает в себя понятие обработки изображений, и понимание, какие основные операции этого процесса возможно и удобно распараллеливать. Формализация описания процесса обработки изображений Выделяют три вида операций [1, 2], актуальных для большинства приложений в области обработки изображений, включая создание систем технического зрения. 1. Низкоуровневые операции. Эти операции выполняют преобразования над всеми точками изображения и формируют либо измененное изображение, либо некую векторную структуру или даже одно значение. Обычно вычисления имеют локальную природу и определяются как набор операций, необходимых для формирования соответственно пикселя изображения, элемента вектора или результирующего значения. Примерами таких операций являются операции фильтрации, повышения контраста, подчеркивания контуров, геометрические преобразования изображений, формирование гистограмм, получение различного рода статистических параметров и т.п. 2. Операции промежуточного уровня. Сюда относят разнообразные операции сегментации изображений, которые формируют некие структурные описания изображений. Например, списки описаний границ объектов на изображении. 3. Высокоуровневые операции. На этом уровне выполняется семантическая обработка различного рода структурных описаний, полученных на промежуточном уровне, формируется некое решение. В качестве примеров можно указать различного рода операции распознавания образов, семантической интерпретации сцен и т.п.
405
Следует отметить, что именно выполнение некой последовательности операций низкого уровня над набором исходных изображений является отправной точкой для многих типичных приложений в области обработки изображений и систем технического зрения. Основные затраты в рассматриваемых приложениях связаны с низкоуровневыми операциями. Эти операции требуют значительных вычислительных ресурсов, ресурсов хранения. Время реакции всего приложения в целом определяется в большинстве случаев именно временем, затрачиваемым на выполнение низкоуровневых операций. В общем виде процесс решения задачи обработки изображений предполагает либо изначальное указание последовательности некоторого числа шагов решения, либо возможность декомпозиции метода решения на составляющие части, реализуемые в виде низкоуровневых операций. На каждом шаге решения обрабатываются и/или вырабатываются элементы решения. Формально этот процесс можно представить следующим образом. На I-ом шаге формируются с помощью преобразования FI необходимые элементы решения, представляемые, в общем случае, некоторым множеством параметров SI и множеством изображений {X}I
{{ X } I , S I } = F I ({ X }, S , P), { X } ⊂ U { X }i , S ⊂ U S i , I −1
I −1
i =0
i =0
где {X}, S, P − множества входных изображений, входных параметров и собственных параметров преобразования FI соответственно. Любое из этих множеств на некотором конкретном шаге может быть пустым. {X}0, S0 − исходные множества изображений и параметров для рассматриваемой задачи. При обсуждении проблем организации процесса вычислений в системах обработки изображений нет необходимости в детальной конкретизации отдельных шагов технологии обработки, это задача разработчика прикладной программы, реализующей определенный этап решения. В данном случае существенен только информационный тип программы обработки изображения, то есть способ ее работы с данными изображений. Большинство исследователей выделяют следующие виды низкоуровневых операций над изображениями [3-5]: поэлементная обработка (PO – point operators), обработка локальной окрестности (LNO – local neighborhood operators) или локальная обработка скользящим окном, 406
глобальные операции обработки (GO – global operators), как правило, основанные на двумерном преобразовании Фурье или другом подобном преобразовании, глобальные операции редукции или операции вычисления параметров изображения, в.т.ч. статистических, геометрические преобразования.
Более общая классификация подразделяет операции на глобальные и локальные. Методы глобальной обработки изображений характеризуются тем, что для вычисления значения каждой точки результирующего изображения Y = { yi j } , в принципе, используются значения всех точек исходного изображения X: yi j = Fi j ( X ) , yi j ∈ Y , где Fi j − оператор
преобразования для точки yi j ; i, j − здесь и далее целочисленные координаты точек цифрового изображения. Задачей глобальных операций редукции является получение некоторой оценки (или описания) обрабатываемого изображения. Под оценкой можно понимать, например, некоторые интегральные характеристики исходного изображения, геометрические характеристики различных объектов на изображении, отнесение исходного изображение или его частей к заданным классам. Преобразование редукции R по множеству изображений {X } определяет необходимые параметры из множества S: S = R ({X }) . Методы локальной обработки изображений формируют каждую выходную точку по результатам анализа ее окрестности на входном изображении. В свою очередь, они включают в себя поэлементные операции и обработку скользящим окном. Поэлементная обработка включает в себя как унарные, так и бинарные операции. Унарные операции поэлементной обработки каждую точку исходного изображения X преобразуют в соответствующую ей точку выходного изображения Y: yi j = F xi j ,
( )
где xi j ∈ X , yi j ∈ Y . Бинарные операции поэлементной обработки формируют каждую точку выходного изображения Y как результат некой операции над соответствующими точками двух исходных изображений X ′ и X ′′ : yi j = F xi′ j , xi′′j , где xi′ j ∈ X ′, xi′′j ∈ X ′′, y i j ∈ Y .
(
)
407
Операции локальной обработки скользящим окном формируют изображение Y, каждая точка которого является результатом преобразования над некоторой соответствующей ей окрестностью Q точек исходного изображения: y i j = F xi + k , j +l (k , l ) ∈ Q .
({
})
Наиболее популярным видом обработки в данном случае является взвешенное суммирование окрестных отсчетов, а в качестве окна обработки – квадратная окрестность, симметрично расположенная относительно текущего отсчета
yi, j =
K
L
∑ ∑a
k =− K l =− L
k ,l
⋅ xi + k , j +l , i = 0, M − 1, j = 0, N − 1 ,
При K = L = 1 это соответствует локальной обработке скользящим окном 3×3, при K = L = 2 – окном 5×5 и т.д. Специальным классом операций над локальной окрестностью является рекурсивная обработка локальной окрестности (RNO – recursive neighborhood operator). В данном случае каждая точка результирующего изображения Y зависит не только от точек некоторой окрестности Q исходного изображения X, но и от точек окрестности Q ′ самого результирующего изображения Y : y i j = F xi + k , j +l , y i + m , j + n (k , l ) ∈ Q, (m, n) ∈ Q ′ .
({
})
Обычно такие операции реализуются с помощью следующей итерационной процедуры:
xip, j =
K
L
∑ ∑a
k =− K l =− L
p k ,l
xip+−k1, j +l , i = 0, M − 1, j = 0, N − 1, p = 1, P ,
т.е. к исходному изображению
x0 последовательно применяется P
операций обработки. Геометрические преобразования сложно отнести как к глобальным, так и к локальным операциям. При геометрических преобразованиях задается некоторая функция преобразования координат G ⎧ k = G1 (i ) , (k , l ) = G(i, j ) : ⎨ ⎩l = G2 ( j ) которая ставит в соответствие некоторой точке исходного изображения с координатами (i, j) точку результирующего изображения с координатами (k, l). В общем случае, каждая точка
408
результирующего изображения Y = { y k l } формируется как результат некоторого комплексирования тех точек исходного изображения X , которые пространственно близки к координате (i, j ) = G −1 (k , l ) : y k l = F xi j , xi +1 j , xi j +1 , xi +1 j +1 [i, j ] = G −1 ( k , l ) , yi j ∈ Y , где [·] означает
({
})
формирование целочисленных координат путем отбрасывания дробной части. Данная операция не относится к глобальным, поскольку для вычисления некоторой точки результирующего преобразования необходимо не более четырех точек исходного изображения. Но и локальной операцией ее нельзя назвать, так как расположение этих четырех точек в общем случае не находится в локальной окрестности формируемой точки. Таким образом, несмотря на то, что основной особенностью изображений как данных является их двумерность, большинство алгоритмов и методов обработки изображений носят последовательный характер. Это проявляется, с одной стороны, в структуре вычислений "внутри" алгоритма. Очень популярно использование построчной, последовательной развертки отсчетов изображений и преобразований, имеющих локальный характер (поэлементных или на основе скользящего окна) [3, 4]. С другой стороны, значительное число методов сложной обработки изображений могут быть реализованы как последовательное применение некоторых законченных типовых операций над изображениями. Именно это обстоятельство определяет эффективность применения разнообразных программных систем обработки изображений, разработанных для использования на универсальных компьютерах, к решению широкого спектра исследовательских и прикладных задач обработки и анализа видеоинформации. К счастью, структура большинства алгоритмов низкоуровневых операций такова, что позволяет выполнить естественное распараллеливание алгоритмов на основе заложенной в них регулярности. Распараллеливание обработки изображений Рассмотрим основные варианты распараллеливания низкоуровневых операций обработки изображений.
409
Наиболее естественным вариантом распараллеливания является декомпозиция по данным на базе выходного изображения [5]: отсчеты результирующего изображения разбиваются на непересекающиеся фрагменты, и каждый фрагмент формируется параллельно на отдельном узле многопроцессорного кластера или компьютере распределенной системы, затем фрагменты, при необходимости, собираются в единое изображение. Декомпозиция изображения может быть выполнена следующими способами: одномерная декомпозиция по одной из координат, двумерная декомпозиция [5]. Соответствующая декомпозиция исходного изображения зависит от типа операции обработки. Поэлементная обработка. При параллельном выполнении алгоритмов, осуществляющих поэлементную обработку, разбиение исходного изображения (или нескольких исходных изображений) полностью соответствует разбиению выходного изображения. Эффективность поэлементной обработки как одиночной операции, так и последовательности таких операций не зависит от способа разбиения изображений на фрагменты. Локальная обработка скользящим окном. Данные алгоритмы очень хорошо распараллеливаются, но при этом необходимо исходное изображение разбивать на перекрывающиеся фрагменты. Размер перекрывающихся областей зависит от размеров окна обработки. Здесь так же возможен вариант как одномерной, так и двумерной декомпозиции. Поскольку в результате обработки рассматриваемого типа операций формируется распределенное изображение, содержащее непересекающиеся фрагменты, то при последовательном применении данных операций (вариант RNO) необходимо производить обмен перекрывающимися частями перед очередным этапом. Временные затраты на такое согласование данных распределенного изображения при различных вариантах декомпозиции различны и зависят от количества фрагментов и параметров коммуникационной среды. Например, при небольшом числе фрагментов и значительной величине латентности одномерный вариант декомпозиции более предпочтителен. Однако при увеличении числа фрагментов размер передаваемой при синхронизации информации значительно меньше для варианта двумерной декомпозиции. Локальность обработки на каждом шаге операции RNO позволяет применить альтернативную стратегию декомпозиции, основанную на функциональном подходе. Тот факт, что определенная часть 410
информации готова значительно ранее полного завершения текущего шага обработки, позволяет использовать схему с параллельным выполнением всех шагов алгоритма и непосредственной передачей по мере готовности строк изображения от одной операции к другой. В данном случае единицей разбиения служит операция, выполняющая один шаг обработки. Все операции выполняются параллельно. Данные передаются от одной операции к другой по мере готовности, т.е. после завершения обработки строки изображения на iом шаге, она передается другой задаче и является исходной для выполнения (i+1)-ого шага. Фактически формируется поток данных изображения, элементы которого на i-ом процессоре подвергаются преобразованию в соответствии с алгоритмом i-ого шага и передаются последующему процессору для дальнейшей обработки. При этом результаты всего процесса обработки формируются с той же скоростью, с которой производится и ввод, но, после задержки, пропорциональной числу выполняемых шагов обработки. Глобальные операции редукции. Операторы редукции, как правило, являются аддитивными, поэтому данный вид операций практически нечувствителен к способам разбиения обрабатываемых изображений на фрагменты. Но для определения некоторых параметров полезно наличие перекрывающихся областей у фрагментов изображения. Глобальные операции обработки. Наиболее простым вариантом распараллеливания для этих операций является любой вариант декомпозиции выходного изображения и репликация полного исходного изображения по всем компьютерам, участвующим в обработке. Если полная репликация обрабатываемого изображения по каким-либо причинам невозможна, то при параллельном выполнении операций данного типа будет осуществляться интенсивный обмен данными между параллельно выполняющимися задачами обработки. В этом случае оптимальный выбор распределения данных очень часто зависит от используемого варианта алгоритма выполнения операции, и заранее сделать этот выбор очень сложно. Геометрические преобразования. Данный вид операций включает в себя операции масштабирования и поворота, а так же нелинейного преобразования координат общего вида. С точки зрения минимизации затрат на передачу данных при осуществлении геометрических преобразований общего вида над распределенными изображениями наиболее оптимальным является разбиение на квадратные блоки. Однако при выполнении поворота изображения на небольшой угол 411
более эффективным является одномерная декомпозиция. Причем как в том, так другом случае исходное изображение полезно разбивать на соответствующие фрагменты с перекрытием. Наиболее популярным вариантом организации вычислений при распараллеливании низкоуровневых операций на основе декомпозиции по данным является использование программыменеджера в сочетании с централизованным хранением обрабатываемых изображений. Специальная программа-менеджер осуществляет декомпозицию исходных изображений и распределение их фрагментов по задачам обработки, а также последующую сборку результирующего изображения. В зависимости от конкретного набора операций графа решения задачи обработки программа-менеджер для изображений, являющихся промежуточными элементами решения, либо выполняет сборку полного изображения и последующую рассылку в соответствии с новой схемой декомпозиции, либо производит обмен перекрывающимися частями фрагментов изображения на узлах обработки, если разбиение не изменяется при переходе к следующему шагу обработки. Эффективность такого варианта параллельной или распределенной обработки изображений существенно снижается из-за наличия следующих узких мест: канал доступа к подсистеме хранения обрабатываемых изображений, когда задачи, обрабатывающие фрагменты изображения, практически одновременно запрашивают необходимые данные, и собственно программа-менеджер, осуществляющая декомпозицию и распределение фрагментов по задачам обработки, а также последующую сборку результирующего изображения [6, 7]. Крайне желательно устранить или существенно сократить необходимый, но непроизводительный этап распределенной обработки изображений в виде рассылки данных исходных изображений по компьютерам распределенной системы и последующего сбора обработанных фрагментов в единое изображение. Это возможно, если данные обрабатываемых изображений распределить по компьютерам заранее, то есть хранить их там, где выполняется обработка. Каждая программа обрабатывает тот фрагмент, который расположен на данном узле компьютерной сети, результат обработки сохраняется здесь же, как часть нового распределенного изображения, полученного в результате работы всех узлов, участвующих в распределенной обработке. Перспективной 412
основой таких распределенных систем обработки и хранения изображений в настоящий момент становится сервис-ориентированная архитектура. Заключение В Институте систем обработки изображений РАН ведутся работы по созданию распределенной системы обработки и хранения крупноформатных изображений на основе сервис-ориентированной вычислительной среды SORCER (Service Oriented Computing Environment), разработанной в SORCER Research Group, Texas Tech University. Предлагаемая в рамках этих работ концепция организации данных в виде распределенных изображений снимает большинство из существующих на сегодня проблем, позволяет для большинства операций формировать новые изображения без обмена данными между компьютерами в процессе распределенной обработки, осуществляя при этом динамическое распределение нагрузки с помощью децентрализованного алгоритма балансировки, обеспечивает необходимый уровень отказоустойчивости распределенного хранения фрагментов изображений, организует визуализацию распределенных изображений с достаточной степенью интерактивности.
Работа поддержана грантом РФФИ № 07-07-00210. Литература 1. D. Ballard and C. Brown. Computer Vision. Prentice Hall, 1982. 2. Chaudhary V., J.K. Aggarwal. Parallelism in Computer Vision: a review. In Vipin Kumar, P.S. Gopalakrishnan, and Laveen N. Kanal, editors, Parallel Algorithms for Machine Intelligence and Vision, pages 271–309. Springer-Verlag, 1990. 3. Методы компьютерной обработки изображений. Под редакцией В.А. Сойфера. Издание 2-ое исправленное. – М.: Физматлит, 2003, 784 с. 4. R.G. Gonzales and R.E. Woods. Digital Image Processing. Addison-Wesley, 1992. 5. I. Pitas. Parallel Algorithms for Digital Image Processing, Computer Vision and Neural Networks. John Wiley&Sons, 1993. 6. D. Koelma, P.P. Jonker, and H.J. Sips. A software architecture for application driven high performance image processing. In Proceedings of SPIE Conference, vol. 3166, pages 340-351, 1997.
413
7.
F. Serot, D. Ginhac, and J.P. Derutin. SKIPPER : A skeleton-based programming environment for image processing applications. In Proceedings of the Fifth International Conference on Parallel Computing Technologies, 1999.
РЕАЛИЗАЦИЯ ПОДМНОЖЕСТВА ФУНКЦИЙ ПАКЕТА ЛИНЕЙНОЙ АЛГЕБРЫ BLAS НА SIMD АРХИТЕКТУРЕ ГРАФИЧЕСКОГО УСКОРИТЕЛЯ С ПОВЫШЕНИЕМ ТОЧНОСТИ ДО ДВОЙНОЙ В.В. Березовский, А.В. Рудалев
Поморский государственный университет имени М.В. Ломоносова, Архангельск Введение На сегодняшний день существует большой спектр задач находящих широкое применение в различных областях человеческой деятельности, которые требуют применения высокопроизводительных компьютерных технологий. Использование компьютерных кластеров часто становится единственной возможностью получения новых научных результатов и дает возможность исследовать сложные физические, химические и биологические процессы и явления. Проведение расчетов в современных областях естественных наук требует привлечения значительных вычислительных мощностей, что невозможно без применения параллельных вычислений. Одним из наиболее эффективных и дешевых способов создания мощной вычислительной системы является построение кластера на базе нескольких компьютеров, быстродействующей локальной сети и использования открытого программного обеспечения. Производительность полученной системы определяется количеством включенных в систему узлов, их вычислительной мощности и производительностью коммуникационной сети связывающей узлы. Так как последние два фактора ограничены уровнем развития современных технологий и высокой стоимостью высокопроизводительного оборудования, наиболее доступным оказывается первый. Тем не менее, увеличение производительности системы только за счет добавления новых узлов в систему не всегда оправданно. Согласно закону Амдала рост производительности системы не может быть линейным в зависимости от количества узлов.
414
Еще одним ограничивающим фактором являются коммуникационные затраты, нелинейно увеличивающиеся с ростом числа узлов. С другой стороны, одним из ресурсов любой современной вычислительной системы является ее графический ускоритель, который аппаратно реализован для увеличения производительности системы в элементарных математических расчетах используемых в графической обработке. Таким образом, полное использование этого ресурса может позволить на порядок увеличить производительность системы без дополнительного ее увеличения. В последние годы, все больше возрастает интерес к использованию графических процессоров для вычислений задач общего назначения [1-3]. Модуль обработки графики аппаратно реализован как высокопроизводительный процессор, максимально использующий принципы суперскалярной, конвейерной и векторной обработки данных, что позволяет получать производительность для определенного круга задач, от двух до десятков раз большую, в сравнении с производительностью центрального процессора. Тем не менее, на сегодняшний день генеральной тенденцией в увеличении вычислительной мощности систем, является увеличение количества вычислительных узлов, оставляя за “кадром” еще не реализованные внутренние возможности систем. Библиотека BLAS является ”промышленным” стандартом в прикладной математике, в частности модули для решения систем линейных уравнений, нахождения собственных значений и векторов матриц и другие задачи линейной алгебры, реализуются с использованием ее процедур. Скорость выполнения таких операций как умножение матриц, является узким местом в производительности большинства программных пакетов физических, химических и технических расчетов. Ее реализация с помощью графического ускорителя (GPU) позволяет значительно увеличить производительность вычислительной системы. К сожалению, сегодня GPU большинства производителей реализован так, что позволяет проводить операции лишь одинарной точности. Повышение точности Авторам не удалось найти в литературе алгоритм повышения точности с одинарной до необходимой, поэтому он приведен ниже.
415
Рис. 1. Представление числа с плавающей точкой одинарной (вверху) и двойной (внизу) точности (IEEE Standard 754 for Binary Floating-Point Arithmetic)
Пусть z=xy, z,x,y – числа плавающей точки необходимой точности. Рис.1 дает наглядное представление о структуре чисел различной точности. Разложим их на составляющие в представлении числа с одинарной точности. Для простоты изложения рассмотрим первоначальную точность такую, что мантисса имеет 44 значащих бита E
E
X1...X1 1X2...X2 1X3...X3 1X4...X4
X1...X1
0...0
E-11-e2
X2...X2
0...0
E-22-e3 X3...X3
0...0
E-33-e4 X4...X4
Рис. 2. Разложение числа плавающей точки произвольной точности в сумму чисел одинарной точности (e2, e3, e4 - число нулей перед первой единицей в соответствующей части числа)
Тогда каждое число может быть представлено как сумма четырех чисел одинарной точности (см. рис.2): ⎧ x = x1 + x 2 + x3 + x 4 ⎪ (1) ⎨ y = y1 + y 2 + y 3 + y 4 ⎪z = z + z + z + z 1 2 3 4 ⎩
416
EX
X1...XN
0...0
×
EY
Y1…YN
0...0
EX
X1...XN
0...0
Z1…Z2N+1
EY
Y1…YN
=
= EZ
+
0
EZ
Z1…ZN+1
0...0
Рис.3. Произведение и сложение чисел плавающей точки (в случае сложения должно выполняться EX=EY)
Тогда результат произведения будет ⎧ z 4 = x1 y 4 + x 2 y 3 + x3 y 2 + x 4 y1 ⎪z = x y + x y + x y ⎪ 3 1 3 2 2 3 1 (2) ⎨ = + z x y x y 1 2 2 1 ⎪ 2 ⎪⎩ z1 = x1 y1 Рис. 3 показывает, что результатом произведения чисел с мантиссами из N значащих бит, является число с мантиссой из 2N+1 значащих бит, а результатом их сложения – количество значащих бит, равное N+1, а в случае суммы четырех чисел соответственно N+2. Это и выражение (2) накладывает ограничение на возможное количество значащих бит в разложении на числа одинарной точности. Следует отметить, что в случае нахождения результата произведения чисел с плавающей точкой двойной точности требуется разложение числа в выражении (1) на шесть слагаемых одинарной точности и, соответственно число произведений в выражении (2) будет 21, т.е. вычислительная сложность в сравнении с приведенной удвоится. Сложение чисел с плавающей точкой требует приведения к одинаковой экспоненте и для его реализации, проще всего перевести числа в большие целые с последующими их сложениями и преобразованиями обратно в число одинарной точности. Стоит отметить что последнюю операцию требуется сделать лишь однократно для каждого элемента матрицы результата, накапливая частичную сумму в аккумуляторе. Алгоритмы сложения больших целых широко освещена в литературе (см. например [4]) Тестирование Тестирование проводилось с использованием видеокарты nVidia GeForce EW 8800 GTS.
417
Число арифметико-логических устройств в графическом процессоре: 96. Общая память: 320 МБ. Программное обеспечение: CUDA Toolkit/CUDA SDK.
Использование возможности выполнения SIMD инструкций графическим процессором видеокарты позволило выполнять все операции преобразования чисел с повышенной точности в числа одинарной точности внутри GPU. Максимальный размер тестируемой матрицы был 1000х1000. Тестирование показало выигрыш в производительности при умножении матриц 2-5 раз по сравнению с центральным процессором – Intel Core 2 Duo 2.4 GHz. Заключение Результатом данной работы явилась демонстрация возможности использования внутренних ресурсов вычислительных систем, таких как графические ускорители, для проведения массивных вычислений. К сожалению, отсутствие возможности проведений операций двойной точности значительно сужают круг приложений данного аппаратного обеспечения. Тем не менее, его можно значительно расширить используя методы повышения точности, что позволяет приблизить производительность обычного персонального компьютера к производительности небольших кластерных систем.
Работа выполнена при поддержке гранта администрации Архангельской области «Приоритетные направления развития науки в архангельской области», 2007 г., проект № 03-3. Литература 1. Buck I., et. al. Brook for GPUs: Stream Computing on Graphics Hardware. SIGGRAPH (2004). 2. Owens J., et. al., A Survey of General-Purpose Computation on Graphics Hardware. Eurographics 2005, State of the Art Reports, (2005). 3. Göddeke D., Strzodka R. Turek S. Accelerating Double Precision FEM Simulations with GPUs. Proceedings of ASIM 2005 - 18th Symposium on Simulation Technique (2005). 4. Вельшенбах М. Криптография на Си и Си++ в действии. М.: Издательство ТРИУМФ (2003).
418
5.
NVIDIA CUDA Compute Programming Guide. http://www.nvidia.com (2007).
Unified Device NVIDIA
Architecture, Corporation.
СОЗДАНИЕ СИСТЕМЫ ДИНАМИЧЕСКОГО РАЗВЕРТЫВАНИЯ КЛАСТЕРА В.В. Березовский, И.А. Шаврин, А.В. Рудалев
Поморский государственный университет имени М.В. Ломоносова, Архангельск Введение Сложность задач решаемых с помощью ЭВМ в последние десятилетия неуклонно растет, а следовательно, растут и потребности в вычислительных ресурсах. Сегодня сложно найти область естественно-научных знаний, в которой нет острой необходимости в проведении массивных расчетов. Такое положение привело к тому что лимитирующим фактором в развитии многих сфер научной и практической деятельности является стоимость современных высокопроизводительных вычислительных комплексов. Одна из возможностей построения недорогой высокопроизводительной системы - это создание кластера. Заманчивость этой технологии обусловлена тем, что элементы, из которых она строится, широко распространены и, можно сказать, лежат под рукой. Современные компьютерные аудитории учебных заведений оснащаются такими машинами, характеристики которых превышают необходимый для нормального учебного процесса порог. Как избежать потерь драгоценного процессорного времени и пустить его в другие сферы научной деятельности? Вычислительный кластер в компьютерной аудитории, выполняющий сложные математические вычисления, но в тоже время не блокирующий компьютеры для основного их предназначения кажется самым заманчивым решением данной проблемы. С помощью технологии тонких клиентов, когда пользователь работает удаленным терминалом с сервером приложений, можно освободить ресурсы занимаемого им узла для выполнения других задач, например работы в составе кластера. Данная схема создания высокопроизводительной системы на доступном оборудовании уже была воспроизведена [1, 2] и хорошо
419
себя зарекомендовала при проведении квантово-химических расчетов свойств углеродных наноструктур [3]. Целью данной работы стало построение системы, аналогичной вышеописанной, но уже с возможностью динамического расширения кластерной вычислительной системы с помощью сетевой загрузки операционной системы (ОС). Это позволит подключать свободные в данный момент времени узлы к кластеру и динамически изменять его состав и производительность. Описание работы Загрузка ОС через сеть возможна благодаря сетевому протоколу DHCP (расширенный BOOTP). Сервер DHCP, настроенный в нашей системе разделяет все клиент-машины на зарегистрированные и нет. За каждым сетевым интерфейсом закреплен MAC адрес, который служит для авторизации в системе. Новый (освободившийся от выполнения своих непосредственных задач, таких, которые не позволяли ему работать в составе кластера) узел, при перезагрузке, запрашивает у DHCP сервера образ ОС. Сервер, в свою очередь, отправляет ему образ ядра ОС, оптимизированное под его аппаратное обеспечение и работу в составе кластера. Узел затем подключается к сетевой файловой системе, где он может получить необходимое ему программное обеспечение, например терминальный клиент rdesktop, набор необходимых для работы в составе кластера системных библиотек. А также сообщает фронтальному узлу, где работает система пакетной обработки и планировщик очередей, о своем появлении. Фронтальный узел добавляет вновь прибывший узел в состав кластера. Рассмотрим случай, когда неизвестный для системы MAC адрес (машины beta) запрашивает у DHCP-сервера (alpha) IP адрес. 1. Определяет MAC адрес beta как неизвестный. 2. С помощью BOOTP и TFТP beta получает ядро LINUX и специальную корневую файловую систему. 3. На beta произойдет полный тест аппаратного оборудования. 4. Отчет отсылается к alpha. 5. Получив отчет alpha регистрирует beta, закрепляя за ней определенное ядро и настройки.
В дальнейшем, когда beta обратится к BOOTP-серверу, alpha выдаст для нее систему, оптимизированную под ее аппаратные характеристики. 420
Система, которая запускается теперь на beta, похожа на ту, что описана в [1,2], различия лишь в том, что в [1,2] ОС установлена на жесткий диск узла, а в текущей реализации ОС загружается через сеть. Достоинства и недостатки разрабатываемой системы Недостатки. Увеличивается общая загрузка сети Усложняется система пакетной обработки, так как желательно, чтобы узлы, выполняющие одну и ту же задачу, имели одинаковую производительность.
Достоинства. Легкое и динамичное масштабирование вычислительной системы. Возможность развертывания кластера ”с нуля”.
кластерной
Заключение Компьютерные классы многих учебных заведений располагают современными рабочими станциями, использование которых, при создании вычислительного кластера, позволило бы построить высокопроизводительную вычислительную систему, для проведения массивных вычислений. С другой стороны, эти компьютеры заняты в учебном процессе, что не позволяет постоянно использовать их для других целей. Система, созданная вышеописанным образом, позволяет получить доступ к проведению серьезных расчетов, требующих значительных вычислительных ресурсов. Она не требует отрыва вычислительных узлов от учебного процесса, и количество рабочих мест в компьютерном классе не уменьшается. Кроме того, она позволяет динамически увеличивать свою вычислительную мощность. Благодаря тому, что используется уже существующее у организации оборудование, и достаточно высоким показателям производительности полученной системы, данный метод построения вычислительного кластера является хорошей возможностью как для проведения современных научных исследований требующих большие вычислительные ресурсы, так и для обучения высокопроизводительным параллельным вычислениям на кластерных системах.
421
Работа выполнена при поддержке гранта администрации Архангельской области «Приоритетные направления развития науки в Архангельской области», 2007 г., проект № 03-3. Литература 1. Березовский В.В. Построение кластерной вычислительной системы на базе учебного класса. Тезисы докладов Шестого Международного научно-практического семинара и Всероссийской молодежной школы ”Высокопроизводительные параллельные вычисления на кластерных системах”. С.Петербург, 2006. 2. Березовский В.В. Кластерная вычислительная система на рабочих станциях. Вестник математического факультета. Вып. 7: межвуз. сб. науч. трудов. Архангельск: Поморский университет, 2006. В.В., Воробьев В.А. Исследование 3. Березовский геометрических и вибрационных свойств углеродных нанотрубок. Вестник математического факультета. Вып. 8: межвуз. сб. науч. трудов. Архангельск: Поморский университет, 2007. ОБЗОР РЕАЛИЗАЦИИ ФАЙЛОВЫХ ПОДСИСТЕМ ДЛЯ МУЛЬТИПРОЦЕССОРНЫХ КОМПЛЕКСОВ А.В. Пичугов
СарФТИ, Саров Введение Скоростной доступ к большим объемам данных стал одной из важнейших проблем в сфере параллельных вычислений. Высокопроизводительные мультипроцессорные системы предъявляют высочайшие требования к скорости доступа, надежности и объему систем хранения данных. Можно выделить 3 основные модели: DAS, NAS, SAN. Технология DAS подразумевает прямое подключение системы хранения данных к серверу. NAS – сетевые системы хранения данных, подключаемые к сети как любое другое сетевое устройство.
422
Рассмотренные технологии, несмотря на некоторые достоинства, не подходят для использования в мультипроцессорных системах. SAN – комплексное решение, представляющее собой специализированную сетевую инфраструктуру для хранения данных. Оптимальная топология SAN зависит от конкретной реализации мультипроцессорного комплекса и типа решаемых им задач. К основным преимуществам технологии SAN можно отнести высокую производительность, высокий уровень доступности данных, отличную масштабируемость и управляемость. Файловая подсистема, построенная на основе SAN, имеет двухуровневую структуру: серверный уровень, работающий под управлением параллельной и сетевой файловых систем и обеспечивающий необходимый доступ к устройствам непосредственного хранения данных; дисковый уровень, обеспечивающий непосредственное хранение данных. RAID – массив из недорогих дисков, обеспечивающий надежное хранение данных. Дисковый уровень файловой подсистемы реализуется на основе RAID. Высокоскоростной доступ к массивам производится по шине FiberChannel с протоколом передачи SCSI. Скорость передачи информации в таких решениях достигает 800 Мб/сек. МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ СВОЙСТВ СПЛАВА Ni3Al ИЗ ПЕРВЫХ ПРИНЦИПОВ Ю.С. Митрохин
Удмуртский госуниверситет, Ижевск Введение Расчеты физических свойств твердых тел из первых принципов (ab initio) стали в настоящее время доступными широкому кругу исследователей. Это связано с бурным развитием вычислительной техники и с появлением мощных, хорошо отлаженных и хорошо документированных программных комплексов (пакетов программ), многие из которых доступны в Интернете. Такие расчеты дают очень ценную информацию как с теоретической, так и с практической точек зрения. Уровень теории и ее реализация в указанных выше пакетах позволяет получать результаты многие из которых очень хорошо совпадают с экспериментом, в пределах 5-10 %. В основе этих
423
расчетов лежет теория функционала электронной плотности (DFT) [1] совместно с приближением локальной электронной плотности (LDA) [2]. Для вычисления постоянной решетки и упругих констант твердого тела из первых принципов ab initio можно использовать несколько методов. Наиболее точным и теоретически хорошо обоснованным является метод функции линейного отклика [3] на внешнее воздействие. Он реализован в программном комплексе ABINIT [4]. Однако он требует очень больших вычислительных затрат, как по оперативной памяти, так и по времени счета. По этой причине он не может быть использован для больших суперячеек, содержащих несколько десятков атомов. Другой метод называется методом конечных разностей (или "ручной" метод). Он состоит в том, что вторые производные энергии по объему и деформациям:
(1) вычисляются численно методом конечных разностей, по ранее вычисленным полным значениям энергии всех атомов в элементарной ячейке. Этот метод проще и экономнее первого. Другое очень важное его достоинство заключается в том, что его можно использовать с любым пакетом расчета электронной зонной структуры кристалла. Он обычно бывает реализован как вспомогательная постпроцессорная утилита, которая использует полученные ранее значения полной энергии элементарной ячейки при различных значениях объема или напряжений. Такой пакет программ был разработан автором и применен для расчета упругих констант сплава Ni3Al с двумя известными программными комплексами PWSCF [5] и ABINIT [4]. Оба этих пакета основаны на методе первопринципного псевдопотенциала (ab initio PP) [6]. В пакете PWSCF использовался сепарабельный (нормосохраняющий) ультрамягкий псевдопотенциал Вандербильта USPP [6]. Для учета обменно-корреляционных эффектов использовалось приближение GGA [7] (PBE). В последних версиях пакета ABINIT реализован самый современный метод расчета электронной зонной структуры – PAW-метод (Projector Augmented Wave) [8]. Этот метод совместно с приближением GGA [7] (PBE) дает наиболее точные результаты, но требует больших вычислительныx затрат по сравнению с LDA [2] приближением для обменнокорреляционного функционала. Оба этих варианта были использованы 424
автором для расчета постоянной решетки и упругих констант сплава Ni3Al: пакет PWSCF c USPP и пакет ABINIT c PAW. В обоих случаях использовалось приближение GGA для обменно-корреляционного функционала. Детали расчета Элементарная ячейка кристалла Ni3Al имела форму куба и содержала 4 атома. Атом Al располагался в вершине куба, а три атома Ni располагались в центрах трех граней, примыкающих к вершине с атомом Al (табл. 1). атом x y Al 0.0 0.0 Ni 0.0 0.5 Ni 0.5 0.0 Ni 0.5 0.5 Таблица 1. Координаты атомов в элементарной ячейке
z 0.0 0.5 0.5 0.0
a(Ang) V(Ang) E(PWSCF) 6.25 244.140 -261.819 6.35 256.047 -261.868 6.45 268.336 -261.903 6.55 281.011 -261.926 6.65 294.079 -261.939 6.75 307.546 -261.943 6.85 321.419 -261.940 6.95 335.702 -261.931 7.00 343.000 -261.924 Таблица 2. Полная энергия атомов E(Ry) в элементарной ячейке Ni3Al при различных значениях постоянной решетки a и объема V (для PWSCF расчета).
425
Рис. 1. График зависимости полной энергии E от постоянной решетки a и объема V (PWSCF)
Рис. 2. График зависимости полной энергии E от постоянной решетки a и объема V (ABINIT)
426
ϵ(001) E(PWSCF) E(ABINIT) -0.03 -261.9401066 -1185.108509 -0.02 -261.9421274 -1185.109527 -0.01 -261.9433253 -1185.109848 0.00 -261.9437032 -1185.109949 0.01 -261.9433180 -1185.109848 0.02 -261.9421073 -1185.109527 0.03 -261.9400710 -1185.108509 Таблица 3. Полная энергия атомов E(Ry) в элементарной ячейке Ni3Al при различных значениях тетрагональной деформации ϵ(001) (для двух вариантов расчета).
Для расчета постоянной решетки a и объемного модуля упругости B полная энергия всех атомов в элементарной ячейке рассчитывалась на равномерной сетке при различных значениях a и V (табл. 2). Затем полученные данные аппроксимировались c помощью сплайнов, и вычислялась вторая производная от энергии по объему в точке минимума (рис. 1, 2). Постоянная решетки соответствовала точке минимума. Модуль B вычислялся по формуле:
(2) Для расчета упругих констант вычислялась полная энергия атомов в ячейке при различных значениях тетрагональной деформации ϵ(001) в направлении вектора (001) (табл.3). Затем аналогичным образом вычислялась вторая производная полной энергии по деформации:
(3) Модуль сдвига g вычислялся по формуле: (4) Упругие константы c11 и c12 вычислялись по формулам: (5) Результаты этих расчетов приведены в таблице 3 и на рис. 3. Для расчета упругих констант вычислялась полная энергия атомов в ячейке при различных значениях ромбической деформации ϵ(111) в 427
направлении вектора (111). Затем аналогичным образом вычислялась вторая производная полной энергии по деформации:
(6) Упругая константа c44 вычислялась по формулe: (7)
Рис. 3. График зависимости полной энергии E от тетраэдрической деформации ϵ(001) (PWSCF)
Результаты этих расчетов приведены на рис. 4. Окончательные результаты приведены в табл. 4. a B c11 c12 c44 Пакет 3.357 171 251 132 146 PWSCF 3.562 164 202 145 140 ABINIT 3.560 169 212 147 149 Exper. Таблица 4.Постоянная решетки a(Angstrem) и модули упругости (GPa) для сплава Ni3Al
428
Рис. 4. График зависимости полной энергии E от ромбической деформации ϵ (111) (PWSCF)
Литература 1. Hohenberg P., Kohn W. // Phys. Rev. 136 864. 1964. 2. Kohn W., Sham L. // Phys. Rev. 140 1133. 1965. 3. Baroni S., Giannozzi P., Testa A. // Phys. Rev. Let. B 58 1861. 1987. 4. Gonze X., Bueken J-M., Caracas R., Detraux F., Fuch M., Rignanese G-M., Sindic L., Verstraete M., Zerah G., Jollet F., Torrent M., Roy A., Mikami M., Ghozes P., Raty j-Y., Allan D. // Comput. Mater. Sci. 25 478. 2002. 5. Baroni S., de Gironcoli S., Dal Corso A., Giannozzi P. // Rev. Mod. Phys. 72 515-562. 2001. 6. Vanderbilt D. // Phys. Rev. B 41 7892. 1990. 7. Perdew J.P., Burke S., Ernzerhof M. // Phys. Rev. Lett. B 77 3865. 1996. 8. Blochl P.E. // Phys. Rev. B 24 17953. 1994.
429
СУПЕРКОМПЬЮТЕРНЫЕ РЕШЕНИЯ КОМПАНИИ Т-ПЛАТФОРМЫ
Т-Платформы, Москва О компании Компания «Т-Платформы» – ведущий российский разработчик комплексных решений для высокопроизводительных вычислений и центров обработки данных. По данным аналитического агентства IDC компания «Т-Платформы» занимает более 20% рынка высокопроизводительных решений СНГ. Доля решений «Т-Платформы» в списке самых мощных компьютеров СНГ Тор50 составляет 32%. «Т-Платформы» – единственная российская компания, три собственных решения которой вошли в число самых мощных компьютеров мира Тор500 (www.top500.org). Так, суперкомпьютер «СКИФ К-1000», созданный в 2004 году в рамках суперкомпьютерной программы «СКИФ» Союзного государства, занял 98 позицию списка мощнейших компьютеров мира, а построенный в 2007 году для Томского государственного университета суперкомпьютер «СКИФ Cyberia» на момент поставки явился 72-м по мощности компьютером в мире. Компания «Т-Платформы» специализируется на разработке готовых программно-аппаратных комплексов для высокопроизводительных вычислений и центров обработки данных, оптимизированных под прикладные задачи каждого заказчика. Компания сотрудничает с ведущими поставщиками прикладных программных пакетов для выпуска высокопроизводительных комплексов «под ключ», полностью готовых к использованию в науке и образовании, промышленности, нефтегазовой отрасли и корпоративном управлении. Компания разрабатывает готовые решения, позволяющие достичь наиболее выгодного соотношения цена/производительность для работы с такими приложениями как ANSYS, ABAQUS, CFX, Cadence, Fluent, LS-DYNA, STAR-CD, Schlumberger, Paradigm Geophysical, Landmark, Oracle и многими другими. Компания «Т-Платформы» предлагает широкий спектр продуктов для высокопроизводительных вычислений и центров обработки данных, включая кластерные системы и «персональные
430
суперкомпьютеры», серверы, графические станции, системы хранения данных, системное и прикладное программное обеспечение, а также предоставляет полный комплекс услуг от индивидуального проектирования решений до гарантийной поддержки и сопровождения, обучения специалистов заказчика, аренды машинного времени и инфраструктуры дата-центра. За 3 года существования компания поставила более 50 многоузловых кластерных систем. Среди клиентов компании – более 15 университетов России, включая МГУ им. М.В. Ломоносова, Нижегородский государственный университет им. Н.И. Лобачевского, Санкт-Петербургский государственный политехнический университет, Санкт-Петербургский государственный университет информационных технологий, механики и оптики, Томский государственный и Томский политехнический университеты, Южно-Уральский государственный университет, Якутский государственный университет, Московский энергетический институт (технический университет), Оренбургский государственный университет, Башкирский государственный университет, Киргизскороссийский славянский университет, Академия маркетинга и социальных отношений. Так, в Нижегородском государственном университете им. Н.И. Лобачевского установлен 64-узловой кластер T-Edge128 производства компании «Т-Платформы». Кластер ННГУ на базе 128 двухъядерных процессоров Intel® Xeon® и системной сети Gigabit Ethernet пиковой производительностью 2.7TFlops занял десятое место в последней (7-ой) редакции списка 50 наиболее мощных компьютеров СНГ. Высокопроизводительное оборудование компании также используют Московский авиационный институт, Центральный институт авиационного моторостроения им. П.И. Баранова, ОКБ «Сатурн», РУСАЛ, Ленинградский Металлический Завод, Саровский инженерный центр, предприятия нефтегазовой отрасли СибНАЦ, Paradigm Geophysical, Schlumberger, Волгоградрегионгаз и Газпромтранс, Объединенный институт ядерных исследований, Международный научно-технический центр, 6 российских банков, телекоммуникационные компании Yandex, Rambler, «Комстар» и другие. Компания «Т-Платформы» реализует комплексные проекты по созданию национальных, региональных и отраслевых суперкомпьютерных центров, в том числе специализированных центров инженерных расчетов, обработки геолого-геофизических 431
данных, центров компьютерных расчетов в областях биотехнологий и биоинженерии, ядерной физики, нанотехнологий и др. Компания «Т-Платформы» проектирует суперкомпьютерные центры различного масштаба с учетом индивидуальных требований заказчиков, а также предоставляет полный комплекс услуг по обслуживанию СЦ. Специалисты компании возьмут на себя все стадии организации СЦ, от проектирования и реализации наиболее выгодной конфигурации программно-аппаратных комплексов, укомплектованных глубоко интегрированными системами хранения и резервирования данных, системными и прикладными программными продуктами, до формирования комплексной инженерной инфраструктуры в месте установки СЦ, сопровождения и обеспечения непрерывной доступности систем, в том числе гарантийного обслуживания сроком до 5 лет. Дополнительные услуги могут включать обеспечение информационной безопасности СЦ, виртуализацию ресурсов и внедрение грид-технологий, обучение и подготовку специалистов, бюджетирование и управленческий консалтинг. Компания «Т-Платформы» реализует индивидуальные сервисные контракты, включающие комплекс мер по поддержанию непрерывной доступности оборудования СЦ в режиме 24x7, сохранности и восстановления данных, обеспечению наиболее эффективной работы прикладного ПО и др. Среди успешных проектов внедрения суперкомпьютерных центров «Т-Платформы» – Межрегиональный вычислительный центр Томского государственного университета на базе суперкомпьютера «СКИФ Cyberia» пиковой производительностью 12 триллионов операций в секунду, ставший 12-м по мощности университетским вычислительным центром мира. Суперкомпьютерный комплекс «СКИФ Cyberia» не имеет аналогов в странах СНГ и Восточной Европы по производительности, концентрации инновационных технологий, комплексности решения и надежности инфраструктуры энергопитания и охлаждения. Разработки компании «Т-Платформы» – единственная российская компания, имеющая запатентованные разработки в области собственных платформ для суперкомпьютеров. Преимущества отечественных платформенных решений можно продемонстрировать на примере суперкомпьютера «СКИФ Cyberia».
432
Пиковая производительность процессоров, TFlops
Реальная производительность, TFlops
Эффективность (отношение реальной производительности к пиковой производительности процессоров), %
Нормированная производительность (реальная производительность на 1ГГц процесссорной мощности), GFlops
12.00
9.019
75.1
5.97
12.86
8.564
66.6
5.3
12.28
8.564
69.7
5.5
Система
СКИФ Cyberia «Т-Платформы» (двухъядерный Intel Xeon 2.66 Ггц, интерконнект InfninBand) Bladecenter HS21 Cluster IBM (двухъядерный Intel Xeon 3.0 Ггц, интерконнект InfninBand) Endeavor – Intel Cluster Intel (двухъядерный Intel Xeon 3.0 Ггц, интерконнект InfninBand)
Таблица 1. Сравнительная эффективность зарубежных и отечественных кластерных решений (стандартный тест реальной производительности Linpack)
В таблице сравниваются практически идентичные по архитектуре и близкие по пиковой производительности кластерные решения IBM, Intel и «Т-Платформы» (по опубликованным данным текущего списка самых мощных компьютеров Тор500). Отличие состоит в том, что в системах IBM и Intel процессоры имеют более высокую тактовую частоту, и, соответственно, большую теоретически возможную (пиковую) производительность. Однако, как видно из таблицы, кластер «СКИФ Cyberia» достигает большей реальной производительности по результатам стандартного теста Linpack, чем кластеры IBM и Intel, при меньшей пиковой производительности процессоров. При этом процессоры «СКИФ Cyberia» используются более эффективно, т.е. дают до 12% больше реальной производительности, чем у Intel и IBM. Эти преимущества достигнуты за счет собственного дизайна платформы вычислительного узла, а также тонкой настройки программных компонентов системы.
433
Те же факторы обеспечивают лучшие характеристики кластеров «Т-Платформы» при использовании коммерческих прикладных программ. Таблица 2 демонстрирует эффективность работы одного из индустриальных стандартов промышленного проектирования в автомобиле- и авиастроении, пакета STAR-CD, на «СКИФ Cyberia» в сравнении с решениями западных производителей. Данные по производительности последних опубликованы на сайте производителя STAR-CD компании CD-adapco (Benchmarks STAR-CD V3240/V3260, A-Class Dataset).
Система Cray XD1 (двухъядерный AMD Opteron, интерконнект RapidArray) HP XC (двухъядерный AMD Opteron, интерконнект InfiniBand) IBM p5-575 (Power5) Sun Microsystems X2100 (двухъядерный AMD Opteron) Т-Платформы «СКИФ Cyberia» (двухъядерный Intel Xeon, интерконнект InfiniPath)
Ускорение счета задачи на 8 узлах, разы
Ускорение счета задачи на 16 узлах, разы
Ускорение счета задачи на 32 узлах, разы
Ускорение счета задачи на 64 узлах, разы
Ускорение счета задачи на 128 узлах, разы
7.3
13.9
25
46.9
-
7.2
13.6
26.5
-
-
5.8
-
-
-
-
4.8
-
-
-
7.9
16.5
35.4
91.9
290
Таблица 2. Сравнительная эффективность выполнения прикладного ПО. Знак «-» обозначает, что опубликованные данные тестов на данном количестве узлов у данной системы отсутствуют
Эффективность работы программного пакета на кластерном решении зависит от того, насколько растет скорость расчета задачи 434
при увеличении количества узлов. В приведенной таблице показано, во сколько раз возрастает скорость счета тестовой задачи STAR-CD при ее запуске на 8, 16, 32, 64, 128 узлах по сравнению с 1 узлом. Например, при запуске задачи на 8 узлах кластера, скорость счета по сравнению с 1 узлом возрастает в 7.3 раза на Cray XD1, в 7.2 раза на HP XC и т.д. Из таблицы видно, что результаты «СКИФ Cyberia» существенно лучше, чем у систем ведущих производителей, причем преимущество увеличивается по мере возрастания количества узлов, достигая 95% (91.9 раз против 46.9 раз на 64 узлах). В числе последних разработок компании «Т-Платформы» – первое полностью российское blade-решение, обладающее рядом уникальных для индустрии характеристик. Решение T-Blade – первая blade-система в мире, поддерживающая новейшие четырехъядерные процессоры Intel Xeon серии 5400 (Harpertown). Система позволяет разместить 20 четырехъядерных процессоров в корпусе высотой всего 5U, достигая рекордной вычислительной плотности 640 процессорных ядер с производительностью 7.68TFlops в стандартной 19-дюймовой вычислительной стойке. Использование новейших процессоров Intel и набора микросхем Intel 5400 c частотой системной шины 1600МГц позволяет системам T-Blade обеспечивать прирост производительности реальных приложений до 30% по сравнению с решениями на базе предыдущего поколения процессоров Intel. Оригинальный термодизайн обеспечивает низкий уровень энергопотребления системы (не более 4300Вт на 1 blade-модуль). T-Blade – единственное решение в отрасли, использующее стандартные адаптеры PCI-Express и позволяющее использовать любые стандартные интерконнекты, системы хранения, ускорители и т.д. Системы T-Blade будут использованы в качестве «строительных блоков» суперкомпьютера «СКИФ» производительностью 60TFlops, который будет построен в МГУ им. М.В. Ломоносова в начале 2008 года. Компания «Т-Платформы» также приступила к реализации проекта по разработке собственной платформы на базе 8-ядерных процессоров Cell, представляющих новое поколение многоядерных архитектур для высокопроизводительных вычислений. Известно, что реальная производительность массовых процессоров Intel и AMD на большинстве задач составляет не более 5-10% при пиковой производительности, не превышающей 40Gflops. Восьмиядерная архитектура Cell обеспечивает качественный скачок 435
производительности для большинства задач. Так, первые процессоры Cell имеют пиковую производительность более 200Gflops при использовании операций с одинарной точностью. Новое поколение Cell, массовый выпуск которого намечен на начало 2008 года, обеспечивает пиковую производительность более 100GFlops для операций с двойной точностью, использующихся большинством вычислительных приложений. Результаты переноса прикладных пакетов на эту архитектуру показывают, что для многих задач возможно достижение реальной производительности порядка 50% от пиковой и более. Именно Cell является основой одного из грандиозных проектов IBM по строительству транс-петафлопного суперкомпьютера RoadRunner. Массовое появление вычислительных систем на базе новых процессорных архитектур на рынке ожидается уже в 2008-2009 годах. Помимо разработки линейки решений на базе новых процессоров в стандартных форм-факторах, таких, как сервер высотой 1U и графическая станция, компания «Т-Платформы» планирует реализовать широкий спектр мероприятий по адаптации прикладных программных пакетов для новой архитектуры, а также внедрению новых решений в вузах и научных институтах, промышленности, медицине, видеоиндустрии. «Т-Платформы» для вузов и научных институтов В 2005 году компания «Т-Платформы» в сотрудничестве с Научноисследовательским вычислительным центром МГУ им. М.В. Ломоносова и Институтом программных систем РАН начала реализацию комплексной программы «Высокие технологии — отечественной науке и образованию», в рамках которой вузы и научные организации могут на специальных условиях приобрести высокопроизводительные программно-аппаратные комплексы и обучить своих специалистов. В рамках программы более 20 вузов получили высокопроизводительные кластерные системы и/или прошли обучение в НИВЦ МГУ. С сентября 2007 года стартовала новая совместная программа ИПС РАН, НИВЦ МГУ, компании «Т-Платформы» и корпорации Intel «СКИФ Университеты» (http://www.t-platforms.ru/specialoffer/skif-grid.html). Приобретение суперкомпьютеров «СКИФ» производства «Т-Платформы» на базе процессоров Intel в рамках программы «СКИФ Университеты» означает не только выгодные условия и уникальный комплекс сервисов организаторов, но и участие в «СКИФ
436
Полигон» — крупной научной грид-сети, формируемой программой «СКИФ-ГРИД» в России и Беларусии. Вместе с суперкомпьютером «СКИФ» вуз получает доступ к неизмеримо более мощным вычислительным ресурсам всех суперкомпьютерных центров «СКИФ Полигона». В него смогут войти мощнейшие суперкомпьютеры двух стран, установленные, в частности, в Московском, Томском, Нижегородском, Южно-Уральском, Владимирском, Белгородском, Сакт-Петербургском государственных университетах, Объединенном институте проблем информатики НАН Беларуси и многих других. Ожидается, что уже к середине 2008 года суммарная мощность гридсети «СКИФ Полигон» составит более 100 TFlops. В дальнейшем ее ресурсы будут расширены за счет сопряжения с глобальными научными грид-сетями. Доступ к вычислительным ресурсам глобальной грид-сети открывает возможности решения самых ресурсоемких научных задач, таких как разработка наноматериалов и наноустройств, ядерная физика, разработка лекарств и молекулярная динамика, предсказание глобальных изменений климата, космические и инженерные исследования. Партнеры «СКИФ Полигона» получат возможность немедленно использовать все новейшие разработки исполнителей программы «СКИФ-ГРИД», а также уникальные знания и опыт лучших специалистов двух стран в области параллельных вычислений и грид-технологий. Информационная и технологическая поддержка исполнителей программы «СКИФ-ГРИД» значительно облегчит внедрение суперкомпьютерных технологий в вузах и позволит использовать их наиболее эффективно. Контакты 117198, Москва, Ленинский пр-т, д.113/1, офис Е-520. Тел.: (495) 956-5490 Факс: (495) 956-54-15. http://www.t-platforms.ru
437
Содержание
Предисловие................................................................................................ 3 Акапьев А.И. Система связи на графическом процессоре....................... 5 Аксак Н.Г., Тыхун А.Ю. Вычислительная модель нейроалгоритма многослойного персептрона .................................................................... 11 Аксенов А.А., Шмелев В.В. Использование суперкомпьютеров для моделирования движения жидкости и газа в программном комплексе FlowVision............................................................................... 18 Антонов А.В., Калашников Ф.C. Решение задачи дифракции электромагнитных волн с использованием системы распределенных вычислений MathNet.................................................... 19 Антонов А.В., Медведик М.Ю., Родионова И.А., Смирнов Ю.Г. Разработка Web-ориентированного вычислительного комплекса для решения трехмерных векторных задач дифракции электромагнитных волн на основе субиерархических параллельных алгоритмов........................................................................ 26 Барановский Н.В. Новая концепция прогноза лесной пожарной опасности и ландшафтное распараллеливание ...................................... 33 Баркалов К.А. О практическом применении параллельной системы оптимизации Absolute Expert.................................................................. 41 Белов В.Н., Сарайкин А.С. Веб-сервис построения наглядных схем процессов в программах на языке Occam............................................... 47 Бугаев Д.П. Распараллеливание алгоритма вейвлет-преобразования при выявлении поверхностных дефектов листового металла при обработке на прокатном стане................................................................. 50 Булыгин О.Е., Николаев А.В. О некоторых технических решениях построения высокопроизводительных вычислительных систем из опыта ввода в эксплуатацию системы МФТИ-60.................................. 54 Варламов Д.А., Волохов В.М., Пивушков В.М., Покатович Г.А., Сурков Н.Ф. Адаптация приложений вычислительной химии к вычислениям в параллельных и распределенных средах ..................... 58
438
Варламов Д.А., Пивушков А.В., Волохов В.М., Сурков Н.Ф., Покатович Г.А. Практика применения программных систем распределенных и параллельных вычислений для решения задач вычислительной химии. ........................................................................... 64 Вашкевич Н.П., Бикташев Р.А. Принципы аппаратной реализации метода взаимного исключения для синхронизации параллельных процессов................................................................................................... 68 Вашкевич Н.П., Калиниченко Е.И., Диянов И. Автоматная модель сетевого протокола транзакций с двухфазной фиксацией 2PC (twophase commit)............................................................................................. 74 Веснин Р.А., Стародубова Т.А. Параллельный алгоритм обучения машин опорных векторов ........................................................................ 80 Власов В.С. Распараллеливание метода ветвей и границ решения конвейерной задачи построения оптимального по быстродействию расписания................................................................................................. 87 Генералов К.А. Использование параллельных вычислений в генетических алгоритмах......................................................................... 90 Гергель В.П., Гришагин В.А. Развитие межфакультетской магистратуры по системному и прикладному программированию для многоядерных компьютерных систем: опыт Нижегородского университета ............................................................................................. 97 Головченко Е.Н., Ханин М.А. Моделирование динамики апоптоза, индуцированного гранзимом В ............................................................. 101 Горбунова А.С., Козинов Е.А., Мееров И.Б., Шишков А.В. Сравнение математических библиотек Intel MKL и AMD ACML на примере решения задачи управления портфелем инвестора.............. 109 Городецкий Е.С. Задача параметрической оптимизации пространственных механизмов с параллельными вычислениями кинематики на графической карте ........................................................ 117 Гришагин В.А. Параллельные алгоритмы многоэкстремальной оптимизации в областях с вычислимой границей ............................... 125
439
Домрачев В.В., Сенин А.В. Разработка системы управления интегрированной средой высокопроизводительных вычислений ННГУ ....................................................................................................... 134 Дунаев А.В., Ларченко А.В., Бухановский А.В. Оптимальная декомпозиция вычислительных задач в корпоративных Гридсистемах на основе Intel Grid Programming Environment .................... 139 Дьячук Т.С., Кудерметов Р.К. Планирование нагрузки в параллельных вычислительных системах ............................................ 142 Егоров В.Ю. Диспетчер задач операционной системы с использованием единой очереди заявок............................................... 146 Егоров В.Ю. Современные дисциплины диспетчеризации задач ...... 150 Ефремов И.Д., Красинский И.Д. Архитектура распределенной вычислительной системы и алгоритм динамического планирования использования вычислительных ресурсов................... 155 Заручевская Г.В. Реализация явного чебышевского метода решения задачи Дирихле для уравнения Пуассона в мелкозернистом локально-параллельном стиле программирования.................................................................................. 164 Зеленцов С.В. Использование кластерных вычислений для обучения студентов химического факультета методам современной квантовой химии.............................................................. 169 Ильяшенко М.Б. Оптимальное резервирование распределенных вычислительных ресурсов ..................................................................... 170 Исламов Г.Г., Коган Ю.В., Исламов А.Г., Лукин О.Л. Расчёт на высокопроизводительном кластере дифференциально-разностной задачи управления температурой.......................................................... 176 Кадыров Р.Ф. Параллельный алгоритм для задачи оптимального управления выплавкой металла............................................................. 181 Калиниченко Е.И. Автоматная модель параллельных вычислений ... 183 Карпов В.Е., Лобанов А.И. О параллельной реализации вложенного метода Розенброка для слабосвязных жестких систем ОДУ большой размерности ................................................................... 188
440
Кичкидов В.А., Бикташев Р.А. Анализ характеристик вычислительных систем путем моделирования................................... 195 Колеватов В.Ю., Котельников Е.В. Особенности распараллеливания алгоритмов обучения машин опорных векторов................................................................................................... 199 Кошкин О.В. Методы параллельного логического вывода для обработки знаний на кластерных вычислительных системах ............ 205 Кукушкин М.С., Фролова Н.В. Возможности распараллеливания функции dgemm на SMP-системах........................................................ 213 Куликова Е.А. Параллельный алгоритм решения многокритериальной задачи распределения ресурсов в иерархических системах ........................................................................ 213 Курносов М.Г., Пазников А.А. Об оптимизации распределения ветвей параллельных MPI-программ по процессорным ядрам вычислительного кластера..................................................................... 219 Лабутин Д.Ю., Алехин А.А., Боголепов Д.К. Реализация решения сеточных задач в распределенной вычислительной среде на основе инструментария Alchemi........................................................................ 226 Лабутин Д.Ю., Лабутина А.А., Ливерко С.В. Развитие системы ПараЛаб для изучения и исследования параллельных методов решения сложных вычислительных задач ........................................... 234 Логунова Е.С., Фролова Н.В., Холушкин В.С. Формирование обучающей среды в области прикладного и параллельного программирования.................................................................................. 239 Лялин С.С. Параллельная модификация алгоритма двойного описания для многогранного конуса .................................................... 240 Медведев А.В. Подход к построению каркаса параллельных приложений математического моделирования в области механики сплошных сред, основанный на DSL ................................................... 244 Минаев Д.В., Федосенко Ю.С., Шлюгаев А.Ю. Идея параллельного алгоритма синтеза стратегий обслуживания группировки cтационарных объектов.......................................................................... 248
441
Монахов О.Г., Монахова Э.А. Параллельная реализация эволюционного алгоритма оптимизации стратегий биржевой торговли................................................................................................... 256 Мялицин В.В. Преобразование циклов вычисления рекуррентных последовательностей .............................................................................. 263 Мялицин В.В. Эффективное использование ресурсов вычислительного кластера..................................................................... 268 Осипов Д.В. Интегрированная среда создания параллельных программ на языке сверхвысокого уровня НОРМА............................ 272 Полежаев П.Н., Нестеренко М.Ю. Подходы к распараллеливанию алгоритма возведения длинных чисел в степень по модулю для криптографических систем.................................................................... 277 Потапов А.А. Обзор методов динамической балансировки нагрузки в гетерогенных кластерных системах................................... 285 Рыжов С.А. Применение прочностного программного комплекса ABAQUS с использованием многопроцессорных вычислительных систем ...................................................................................................... 292 Рябов В.В., Сидоров С.В., Сысоев А.В. Интерактивное управление параллельными вычислениями при решении задач многомерной многоэкстремальной оптимизации ....................................................... 294 Сивков А.М., Сивков Д.А. Демонстрация возможностей многоядерных компьютеров при обучении студентов естественнонаучных специальностей ....................................................................... 299 Сидоров С.В., Сысоев А.В., Рябов В.В. Эффективные параллельные алгоритмы и программные средства поиска глобальнооптимальных решений в многомерных многоэкстремальных задачах ..................................................................................................... 302 Суслов А.Н. Использование технологии InfiniBand при построении кластерных вычислительных систем. ................................................... 305 Фурсов В.А., Попов С.Б., Доровских И.И. Реализация типовых алгоритмов обработки изображений на мультиядерных процессорах............................................................................................. 307
442
Харитонов Д.И., Шиян Д.С. Влияние синхронных и асинхронных взаимодействий на производительность параллельной программы............................................................................................... 314 Чащин А.А. Программное средство централизованного управления параллельными вычислениями.............................................................. 320 Черников С.К., Садчиков Ю.В. Варианты интегрирования уравнений динамики конструкций на гетерогенных многопроцессорных системах ............................................................... 327 Чернышева Л.П. Высокопроизводительные вычислительные системы в Ивановском государственном энергетическом университете ........................................................................................... 333 Шихов М.М. Анализ параллелизма в методе дедуктивного вывода делением дизъюнктов............................................................................. 335 Шлянников А.В. Параллельный алгоритм распознавания изображений на основе анализа характерных областей ..................... 341 Юрич М.Ю., Кудерметов Р.К. Распределение заданий в компьютерной системе на базе нейронной сети.................................. 347 Юсов Е.А. Параллельный алгоритм генерации нормалей по полю высот ........................................................................................................ 353 Андрианов С.Н. Проблемы моделирования динамики частиц в циклических ускорителях ...................................................................... 358 Андрианов С.Н., Богданов А.В., Воротынский М.А., Дегтярев А.Б., Тиц Н.В. Опыт установки ПО NorduGrid на кластер с двухъядерными процессорами .............................................................. 365 Денисов В.М. Потоковое скоростное шифрование информации и сеансовых ключей в незащищённых каналах связи ............................ 368 Комалева О.А., Бухановский А.В. Параллельные алгоритмы многомерной робастной регрессии ....................................................... 374 Комаров М.А., Корнеев А.С., Крюков А.К., Осипов Г.В. Численное моделирование динамики ансамблей нейроноподобных элементов на многопроцессорном комплексе с использованием средств MPI... 377
443
Демьянович Ю.К., Косогоров О.М., Макаров А.А. Возможности распараллеливания вэйвлетно-сплайнового сжатия на неравномерной сетке .............................................................................. 382 Коварцев А.Н. Разработка параллельного алгоритма многоэкстремальной оптимизации функций многих переменных .... 385 Матвеев З.А. О некоторой параллельной модификации алгоритма отображения фрагмента электронной карты........................................ 393 Петров В.С., Аверьянова Л.С., Осипов Г.В. Моделирование динамики ансамблей сердечных клеток с использованием средств MPI ........................................................................................................... 398 Попов С.Б. Организация параллельной обработки крупноформатных изображений ........................................................... 404 Березовский В.В., Рудалев А.В. Реализация подмножества функций пакета линейной алгебры BLAS на SIMD архитектуре графического ускорителя с повышением точности до двойной ........ 414 Березовский В.В., Шаврин И.А., Рудалев А.В. Создание системы динамического развертывания кластера............................................... 419 Пичугов А.В. Обзор реализации файловых подсистем для мультипроцессорных комплексов......................................................... 421 Митрохин Ю.С. Моделирование физических свойств сплава Ni3Al из первых принципов ............................................................................ 422 Суперкомпьютерные решения компании Т-Платформы .................... 429
444
ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ПАРАЛЛЕЛЬНЫЕ ВЫЧИСЛЕНИЯ НА КЛАСТЕРНЫХ СИСТЕМАХ Материалы Седьмой Международной конференции-семинара
Отв. редактор Р.Г. Стронгин
Формат 60х84 1/16. Бумага офсетная. Печать офсетная. Гарнитура «Таймс». Уч.-изд. л. 29,6. Усл. печ. л. 25,8. Тираж 180. Заказ №. Издательство Нижегородского госуниверситета им. Н.И. Лобачевского. 603950, Н. Новгород, пр. Гагарина, 23. Типография Нижегородского госуниверситета им. Н.И. Лобачевского. Лиц. ПД №18-0099 от 4.05.2001 г. 603000, Н. Новгород, ул. Б. Покровская, 37.