Тенденция развития аппаратных вычислительных средств путем увеличения количества параллельно работающих вычислительных единиц, по мнению авторов, будет приоритетным направлением в ближайшей и среднесрочной перспективе. Это относится как к крупным вычислительным средствам, производительность которых оценивается десятками и сотнями Тфлопс, так и к компактным средствам, доступным для использования в составе настольных систем – ПЭВМ. Использование первых неразрывно связано с существенными финансовыми затратами как на создание всей необходимой инфраструктуры для запуска и работы вычислительной системы, так и на последующее ее сопровождение. В то же время доступные компактные средства параллельных вычислений предоставляют все более и более широкие вычислительные возможности и не требуют серьезных финансовых и организационных затрат.
Задачи оценки показателей режимной и балансовой надежности (БН) электроэнергетических систем (ЭЭС) требуют многократного повторения определенных процедур, связанных с оценкой параметров ее режима при моделировании теми или иными методами различного набора аварийных ситуаций для повторяющихся дискретных интервалов изменения электропотребления. Их решение, как правило, возлагается на разветвленные управленческие структуры, работающие с многочисленным ПО, использующим единую информационную базу, ограниченные в использовании крупных вычислительных ресурсов и ориентированные на доступные персональные компьютеры. Приведенные обстоятельства подтверждают актуальность создания новых вычислительных алгоритмов, пригодных для адаптации к архитектурам компактных вычислительных систем.
Задачи оценки показателей БН ЭЭС и средств ее обеспечения – резервов мощности территориальных зон и запасов пропускной способности связей между ними – всегда были востребованы при разработке вариантов перспективного развития электроэнергетических объектов. В соответствии с Федеральным законом «Об электроэнергетике» всю полноту ответственности за надежную генерацию и поставку заданных объемов мощностей и электроэнергии в определенные территориальные зоны ЭЭС несет ОАО «Системный оператор ЕЭС» (г. Москва), что обусловило разработку его специалистами проекта технологических правил работы, в соответствии с которым оценка БН должна проводиться ежегодно на предстоящий планируемый период. Это предполагает решение данной задачи без серьезных временных ограничений на выполнение расчетных процедур. Тем не менее следует заметить, что время решения задачи оценки показателей БН схемы ЭЭС средней размерности может составлять десятки минут, а задачи обоснования средств обеспечения надежности – несколько суток. Все это в совокупности приводило к необходимости введения каких-либо упрощений, так или иначе отражающихся на получении достоверных результатов. Таким образом, актуальность разработки алгоритмов параллельной обработки информации является достаточно острой.
Математические модели определения показателей надежности (ПН). Получение количественных ПН любых технически сложных систем, и ЭЭС в частности, невозможно без применения соответствующих математических методов и моделей. Математические модели позволяют рассчитывать предполагаемые параметры ЭЭС для принятия решений по обеспечению их надежности. С помощью моделирования удается в более сжатые сроки получать представление о перспективной системе, не требуя ее многолетней эксплуатации. При разработке математических моделей оценки ПН сложных ЭЭС применяются и аналитические методы [1, 2], и методы статистического моделирования [3].
Аналитические методы основаны на последовательном преобразовании рядов вероятностей избытков и дефицитов мощности двух соседних узлов – от одной вершины расчетного графа сети до другой. Данный метод получил название «свертка». Расчет показателей надежности в объединении ЭЭС аналитическими методами позволяет увеличить вычислительную эффективность моделей. Но, с другой стороны, модели, основанные на методах свертки, имеют два существенных недостатка:
– не позволяют получать ПН для отдельных территориальных зон, что важно для решения задачи обоснования средств обеспечения надежности;
– ограничены применением только для радиально-магистральных схем объединения ЭЭС.
Число возможных случайных состояний ЭЭС, вызванных ненадежностью ее элементов, достаточно велико. Эти состояния должны подвергаться определенному анализу на предмет обеспечения потребителей электроэнергией должного объема и требуемого качества. Их полный перебор не представляется возможным, поэтому прибегают к методам статистического моделирования состояний, используя законы распределения, характеризующие состояния элементов и колебания нагрузок, что позволяет значительно сократить число рассматриваемых состояний. Моделирование случайных состояний осуществляется следующим образом (рис. 1). Сначала аналитическими методами строятся функции вероятностей изменения мощностей, вызванных аварийностью генерирующего оборудования и ошибками прогноза нагрузки, для всех j-х зон надежности (блок 2). Для этого производится суммирование всего однородного генерирующего оборудования, входящего в рассматриваемую j-ю зону (блок 1). На аналитически построенных функциях вероятностей снижения мощностей j-х зон надежности методами статистического моделирования определяются детерминированные значения мощностей в них (блок 3). Далее проводится оценка случайного состояния системы, по ее завершении определяются показатели БН. Данная процедура повторяется многократно для некоторого интервала времени. В проектной практике рассматривается некий интервал времени, разбиваемый на еще более мелкие, для каждого из которых определяются ПН.
Основываясь на представленной модели оценки случайных состояний системы методами статистического моделирования, рассмотрим процедуру анализа БН с учетом временного аспекта задачи. Блок-схема алгоритма, учитывающего наличие множества временных интервалов на рассматриваемом временном периоде, представлена на рисунке 2. Следует отметить, что в данной работе под случайным состоянием понимается состояние рассматриваемой системы в целом, вызванное случайно сформированным составом генерирующих агрегатов, уровней электропотребления нагрузки и пропускными способностями связей. В представленной на рисунке 2 блок-схеме задача оценки показателей БН показана укрупненно для выявления наиболее значимых зависимостей с целью последующего анализа на предмет распараллеливания. Описанная выше методика статистического моделирования фактически сведена к одному функциональному блоку, отвечающему за моделирование k-го случайного состояния с последующим определением ПН. Из рисунка видно, что параллельное исполнение возможно в рамках трех вложенных циклов: по состояниям, часам и сезонам. При этом важными являются выбор стратегии распараллеливания с последующей адап- тацией на конкретные аппаратные платформы, выявление возможных нюансов реализации и определение итоговой эффективности работы полученной программы.
Современные компактные аппаратные средства параллельных вычислений. Развитие современных компактных средств вычислений направлено в сторону увеличения производительности за счет роста числа вычислительных элементов (ядер, потоков и т.п.). Среди наиболее доступных для использования в составе настольных систем, а именно ПЭВМ, следует отметить многоядерные центральные процессорные устройства (ЦПУ), а также графические процессорные устройства (ГПУ). Вопреки названию ГПУ позволяют выполнять вычисления общего назначения, кроме того, обладают собственной оперативной памятью, размер которой во многом сопоставим с размером оперативной памяти, доступной для центрального процессора (ЦП). Немаловажным является и то, что данные устройства представляют собой независимые вычислительные элементы, работа которых может выполняться асинхронно по отношению к другим компонентам персонального компьютера. Кроме того, количество ГПУ, входящих в состав конфигурации компьютера, может быть увеличено по крайней мере до двух, а в некоторых случаях и больше.
Рассмотрение вычислительных возможностей упомянутых устройств позволяет говорить о том, что ГПУ развиваются более интенсивно, чем ЦПУ. Так, удвоение производительности ГПУ достигается за 6 месяцев, в то время как для ЦПУ на это требуется порядка 18 месяцев. Абсолютные числа производительности ГПУ на примере NVidia GeForce 580GTX для чисел с одинарной точностью достигают пиковых значений на уровне 1 500 Гфлопс при пропускной способности памяти в 192 ГБ/с и количестве вычислительных потоков, равном 512. Производительность ЦПУ на примере Intel Core i7 3960x составляет 170 Гфлопс при пропускной способности памяти в 51 ГБ/с и числе вычислительных потоков, равном 8.
Производительность современных ГПУ и темпы ее роста впечатляют, однако разработка параллельных алгоритмов и их последующая адаптация на данные устройства сталкиваются с рядом сложностей, основной из которых является то, что, несмотря на существенное доступное количество вычислительных потоков, не всегда удается получить соответствующий прирост скорости. Основной помехой в этом являются значительные задержки при обращении к оперативной памяти ГПУ, что обусловлено достаточно простой архитектурой построения мультипроцессоров, входящих в их состав, и небольшими объемами кэш-памяти. Данное обстоятельство особенно заметно при сравнении с суперскалярной архитектурой ЦПУ, имеющей в наличии сложные механизмы повторного использования инструкций и операндов, а также существенно большие по сравнению с мультипроцессорами ГПУ объемы кэш-памяти.
Все перечисленные особенности устройств необходимо учитывать при создании новых алгоритмов обработки данных, пригодных для реализации на параллельных архитектурах. Кроме того, немаловажным фактором является выбор того или иного средства реализации, а именно языка/технологии, при помощи которой будет реализован соответствующий алгоритм.
Параллельный алгоритм оценки показателей БН. Опишем более детально каждую из возможных стратегий адаптации алгоритма оценки ПН к различным аппаратным архитектурам. В качестве первого варианта рассмотрим распараллеливание алгоритма, представленного на рисунке 2, по случайным состояниям. Общий вид алгоритма в упрощенной форме изображен на рисунке 3. Как видно из блок-схемы, в параллельном алгоритме снизилось число циклов до двух, внутри которых процедура моделирования множества случайных состояний K={K1, K2, …, Kk} выполняется параллельно. Отметим важный фактор, играющий существенную роль при практической реализации подобной схемы распараллеливания вычислительного процесса, а именно то, что размерность множества K может достигать величин порядка 103–105. Чем выше размерность K, тем более точные результаты получаются на выходе работы алгоритма. При малых размерностях анализируемой схемы эта величина может быть значительно снижена, однако при проведении практических расчетов верхняя граница размерности множества K принимается, как правило, на уровне 104.
С точки зрения адаптации к тем или иным параллельным архитектурам данное обстоятельство имеет важное значение. Во-первых, на этапе подготовки всех необходимых данных для проведения последующей параллельной процедуры моделирования случайных состояний системы и определения показателей БН для каждого состояния необходимо выделить значительный объем оперативной памяти M, который должен быть проинициализирован исходными данными для выполнения анализа. Объем M в общем случае пропорционально зависит прежде всего от размерности K, а также от размеров моделируемой системы (в меньшей степени) и может достигать нескольких Гб. В случае возможных аппаратных ограничений при выделении такого объема памяти можно разбить K на подмножества с соответствующим сокращением M. Во-вторых, большая размерность K подразумевает возможность организации вычислений с высоким уровнем параллелизма. Данное обстоятельство, как и ограничение по объему M, связано с аппаратными характеристиками конкретной целевой архитектуры. Если то или иное средство компактных параллельных вычислений содержит большое количество вычислительных единиц и оборудовано достаточным объемом оперативной памяти с должным уровнем пропускной способности, то алгоритм, представленный на рисунке 3, наиболее эффективен для реализации на подобном устройстве.
В качестве второго возможного варианта распараллеливания алгоритма, представленного на рисунке 2, рассмотрим случай разделения цикла, идущего по часам суток. Блок-схема упрощенной версии подобного алгоритма представлена на рисунке 4, который, как и алгоритм, показанный на рисунке 3, содержит меньшее число циклов, при этом параллельные расчеты выполняются не по множеству K состояний системы, а по некоторому множеству I={I1, I2, …, Ii}, представляющему набор часов, входящих в сутки (исходя из определения |I|=24). Важной особенностью данного алгоритма является присутствие цикла внутри параллельно выполняемой процедуры. Это, во-первых, снижает требование к доступному объему оперативной памяти, поскольку отпадает необходимость предварительной подготовки данных при анализе множества K, во-вторых, требует наличия в аппаратной архитектуре более сложной системы организации доступа к памяти, наличия промежуточной кэш-памяти и пр. Кроме того, существенное сокращение размерности I по отношению к K говорит о том, что высокой степени параллелизма вычислений при использовании данного алгоритма не добиться.
Помимо представленных двух вариантов распараллеливания алгоритма, показанного на рисунке 2, возможен третий вариант, заключающийся в рассмотрении цикла, идущего по множеству U={U1, U2, …, Uu} сезонов года. С точки зрения возможных требований к архитектуре аппаратных средств вычислений этот вариант во многом будет сходным с вариантом алгоритма, представленного на рисунке 4, поскольку |U|=1–12, поэтому останавливаться на нем нет необходимости.
Таким образом, на основе рассмотренных подходов распараллеливания алгоритма оценки показателей БН можно отметить следующее: первый вариант распараллеливания наиболее подходит для компактных устройств класса ГПУ, так как данные устройства в настоящий момент обладают значительным количеством параллельно выполняемых потоков, большими объемами оперативной памяти и прочими особенностями, способствующими проведению массивно-параллельных вычислений; второй вариант (как, впрочем, и третий) более подходит для многоядерных ЦПУ, обладающих большими объемами кэш-памяти и невысоким на данный момент уровнем параллелизма вычислений.
Практическая реализация. Для примера рассмотрим адаптацию алгоритма, представленного на рисунке 4, для реализации на многоядерном ЦПУ. В качестве критерия эффективности адаптации алгоритма используем коэффициент ускорения расчетов, который, согласно закону Амдала, вычисляется следующим образом:
где =Tseq+Tpar – общее время расчетной процедуры; Tseq, Tpar – время выполнения последовательного и параллельного участков в алгоритме соответственно; Tcomm – время на передачу данных; Twait – время ожидания при синхронизации; p – число процессоров. Применительно к рассматриваемой задаче Tpar должно в процентном от- ношении превышать Tseq, а Tcomm и Twait при при- менении многоядерных ЦПУ должно быть незначительным. Для современных многоядерных ЦП величина p=2–12, а в ближайшее время вырастет еще больше. В связи с этим предварительно можно оценить h в 1,7–7,5 (при p=2–8).
С практической точки зрения процесс адаптации того или иного алгоритма к целевой архитектуре заключается в построении программы с использованием функций, входящих в состав различных вспомогательных библиотек. Применительно к многоядерным ЦПУ в настоящее время наиболее эффективно с точки зрения затраченного времени на выполнение процедуры адаптации использование библиотеки OpenMP [4], входящей в поставку ряда компиляторов, а также более универсального средства – библиотеки OpenCL [5]. Перечисленные средства являются универсальными для использования различных марок ЦП, не зависят от их производителя и спецификаций. Более того, OpenCL – новый стандарт для разра- ботки приложений гетерогенных систем. Он используется для написания приложений, которые должны исполняться в системе, где установлены различные по архитектуре ЦПУ, ГПУ и платы расширения. Вследствие этого отпадает необходимость в использовании различных алгоритмов для систем, основанных на платформах Intel, AMD и др.
Для проверки эффективности при практической реализации алгоритма, представленного на рисунке 4, проведен ряд тестовых расчетов на тестовых схемах ЭЭС различной размерности и конфигурации. В качестве программного средства параллельных вычислений использовались библиотеки OpenCL и OpenMP. Полученные результаты для данных программных средств во многом идентичны. Оценочные расчеты проводились для двух вариантов: при |K|=103 и |K|=104; следует отметить, что |U|=1, хотя на практике рассматривается большее число сезонов, что требует пропорционально больших затрат времени. В таблице 1 приведены сравнительные результаты для различных типов ЦП, схем ЭЭС, их конфигураций. Результаты позволяют сравнить скорость выполнения расчетов как при использовании всех ядер (потоков) ЦПУ, так и при последовательной обработке информации.
Таблица 1
Показатели БН для ЦП (время, сек.)
Число узлов схемы ЭЭС
|
|K|=103
|
|K|=104
|
Последовательный расчет
|
Параллельный расчет
|
Последовательный расчет
|
Параллельный расчет
|
Core 2 Duo
|
6
|
0,69
|
0,38
|
6,88
|
3,86
|
10
|
1,39
|
0,75
|
13,97
|
7,55
|
21
|
4,63
|
2,36
|
46,28
|
23,62
|
51
|
27,67
|
14,6
|
279,81
|
148,40
|
81
|
72,48
|
37,75
|
728,48
|
374,15
|
Core i3 540
|
6
|
0,63
|
0,26
|
6,29
|
2,57
|
10
|
1,29
|
0,53
|
12,69
|
5,24
|
21
|
4,60
|
1,77
|
46,09
|
17,55
|
51
|
27,17
|
11,31
|
268,10
|
108,59
|
81
|
75,33
|
29,83
|
741,60
|
296,08
|
Core i5 760
|
6
|
0,64
|
0,19
|
6,68
|
1,92
|
10
|
1,32
|
0,43
|
13,88
|
4,03
|
21
|
4,94
|
1,52
|
49,17
|
14,04
|
51
|
31,39
|
9,07
|
314,3
|
92,6
|
81
|
81,83
|
22,61
|
821,47
|
236,93
|
Core Quad Q9770
|
6
|
0,65
|
0,18
|
6,45
|
1,81
|
10
|
1,31
|
0,37
|
13,15
|
3,59
|
21
|
4,36
|
1,13
|
43,38
|
11,27
|
51
|
26,46
|
6,99
|
264,00
|
69,00
|
81
|
68,74
|
17,6
|
690,00
|
176,57
|
Xeon w3580
|
6
|
0,515
|
0,176
|
5,14
|
1,22
|
10
|
1,09
|
0,336
|
10,95
|
2,45
|
21
|
3,82
|
0,859
|
37,94
|
7,91
|
51
|
23,02
|
4,95
|
230,32
|
48,23
|
81
|
60,62
|
12,36
|
606,03
|
123,9
|
В таблице 2 приведены характеристики использованных ЦПУ. Расчеты проводились путем 5-кратного выполнения расчетной процедуры при неизменных параметрах для каждой схемы. В качестве конечного результата бралось среднее значение по проведенным экспериментам. Разница между результатами однотипных расчетов обусловлена различным уровнем загрузки ЦП в разные моменты времени.
Таблица 2
Характеристики использованных ЦП
Наименование ЦП
|
Частота ядра, ГГц
|
Число ядер
|
Число потоков
|
Core 2 Duo
|
3,0
|
2
|
2
|
Core i3 540
|
3,06
|
2
|
4
|
Core i5 760
|
2,8
|
4
|
4
|
Core Quad Q9770
|
3,2
|
4
|
4
|
Xeon w3580
|
3,33
|
4
|
8
|
Полученные сравнительные результаты времени проведения расчетов позволяют вычислить коэффициент h для рассмотренных ЦП при оценке показателей БН для различных схем ЭЭС и их конфигураций (при |K|=103, |K|=104 соответственно h1000/h10000). Результаты вычислений сведены в таблицу 3.
Таблица 3
Коэффициент ускорения расчетов (h1000/h10000) для различных ЦП, тестовых схем ЭЭС и их конфигураций
Наименование ЦП
|
Тестовые схемы
|
6
|
10
|
21
|
51
|
81
|
Core 2 Duo
|
1,82/1,78
|
1,85/1,85
|
1,96/1,96
|
1,9/1,89
|
1,92/1,95
|
Core i3 540
|
2,42/2,45
|
2,43/2,42
|
2,6/2,63
|
2,4/2,47
|
2,53/2,5
|
Core i5 760
|
3,27/3,48
|
3,07/3,44
|
3,25/3,50
|
3,46/3,39
|
3,43/3,42
|
Core Quad Q9770
|
3,61/3,56
|
3,54/3,66
|
3,86/3,85
|
3,79/3,83
|
3,91/3,91
|
Xeon w3580
|
2,93/4,21
|
3,24/4,47
|
4,45/4,80
|
4,65/4,78
|
4,90/4,89
|
На основании приведенных практических результатов можно сделать вывод о том, что распараллеливание традиционного алгоритма оценки показателей надежности согласно первой стратегии (с использованием многоядерных ЦПУ) достаточно эффективно и с успехом может применяться при решении практических задач оценки надежности сложных объединенных энергетических систем. Дальнейшие исследования в рамках данной задачи необходимы для анализа возможного использования и эффективности реализации алгоритма оценки показателей БН на иных аппаратных архитектурах параллельных вычислений с рассмотрением других предложенных в работе стратегий распараллеливания.
Развитие программно-вычислительных средств в этом направлении позволит существенно ускорить процесс получения результата, с одной стороны, и уйти от ряда оптимизационных упрощений – с другой. Последующая работа по улучшению производительности за счет использования возможностей современных вычислительных средств даст возможность существенно уменьшить временной интервал принятия решений.
Авторы статьи выражают благодарность директору Института точных наук и информационных технологий Сыктывкарского государственного университета В.В. Миронову за предоставленное для проведения вычислительного эксперимента оборудование.
Литература
1. Волков Г.А. Оптимизация надежности электроэнергетических систем. М.: Наука, 1986. 117 с.
2. Руденко Ю.Н., Ушаков И.А. Надежность систем энергетики. М.: Наука, 1986. 252 с.
3. Чукреев Ю.Я. Модели обеспечения надежности электроэнергетических систем. Сыктывкар: Коми НЦ УрО РАН, 1995. 176 с.
4. OpenMP Quick Reference Sheet. URL: http://www.plutospin.com/files/OpenMP_reference.pdf (дата обращения: 21.09.2012)
5. NVIDIA OpenCL Best Practices Guide, Version 2.3, USA, NVIDIA Corpor., 2009.
References
1. Volkov G.A., Optimizatsiya nadezhnosti elektroenergeticheskikh sistem [Reliability optimization of electric-power systems], Moscow, Nauka, 1986, 117 p.
2. Rudenko Yu.N., Ushakov I.A., Nadezhnost sistem energetiki [Power system reliability], Moscow, Nauka, 1986, 252 p.
3. Chukreev Yu.Ya., Modeli obespecheniya nadezhnosti elektroenergeticheskikh sistem [Models of electric-power systems reliability], Syktyvkar, Komi Sc. Center, UB of RAS, 1995, 176 p.
4. OpenMP Quick Reference Sheet, Available at: http://www.plutospin.com/files/OpenMP_reference.pdf (accessed 21 Sept. 2012).
5. NVIDIA OpenCL Best Practices Guide, Version 2.3, NVIDIA Corporation, 2009.
|