52
309 ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ И МЕТОДЫ ОРГАНИЗАЦИИ ВЫЧИСЛЕНИЙ НА НИХ

ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

309

ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ

ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ

И МЕТОДЫ ОРГАНИЗАЦИИ

ВЫЧИСЛЕНИЙ НА НИХ

Page 2: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

310

Бекас Б.А., Яджак М.С.

АНАЛИЗ РЕАЛИЗАЦИИ ПАРАЛЛЕЛЬНЫХ АЛГОРИТМОВ

РЕШЕНИЯ ЗАДАЧИ ЦИФРОВОЙ ФИЛЬТРАЦИИ НА

КЛАСТЕРНЫХ СИСТЕМАХ

Национальный лесотехнический университет Украины,

Институт прикладных проблем механики и математики

им. Я.С. Пидстригача НАН Украины,

г. Львов, e-mail: [email protected]

1. Введение и формулировка проблемы В большинстве случаев для решения задач цифровой фильтрации

(ЗЦФ) используют быстрые алгоритмы вычислений [1]. В работе [2] для численного решения варианта одномерной ЗЦФ предложены параллель-но-конвейерные алгоритмы (ПКА), оптимальные по быстродействию в соответствующих классах алгоритмов, эквивалентных по информацион-ному графу. Эти оптимальные алгоритмы ориентированы на реализа-цию на специализированных вычислительных системах – квазисистоли-ческих структурах. Специфика данных ПКА состоит в том, что увеличе-ние объёма выполняемых вычислений требует большего объёма аппара-тных средств. Таким образом, в случае увеличения числа пересчитывае-мых значений переменных и размера плавающего окна для реализации таких алгоритмов фильтрации потребуется большее количество процес-сорных и коммутационных элементов в соответствующей квазисистоли-ческой структуре. С целью преодоления такой зависимости и ориента-ции на вычислительные средства более универсальной архитектуры в [3] для решения одномерной ЗЦФ предложены алгоритмы с ограничен-ным параллелизмом (АОП). Весьма распространённым и сравнительно дешёвым универсальным средством реализации параллельных вычисле-ний являются кластеры. Кроме этого, при обработке массивов экспери-ментальных данных, изображений решение ЗЦФ требует больших вре-менных затрат, но не всегда его нужно осуществлять в режиме реально-го времени, используя дорогие специализированные вычислительные системы. Поэтому решаемая нами проблема состоит в анализе реализа-ции АОП из [3] на кластерных вычислительных системах. 2. Алгоритмы с ограниченным параллелизмом

Описанные в [3] алгоритмы задают выполнение C пересчётов сгла-

живания массива значений переменных ),1( nixi = через плавающее ок-

но размера 12 +m в виде сдвинутых между собой p параллельных вет-

вей, которые обмениваются информацией и синхронизуются после вы-полнения каждой операции. При пересчёте используется 2m заданных

Page 3: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

311

«заграничных» значений ...,, 21 mm xx −− 0, x ; ,1+nx mnn xx ++ ,...,2 . Отме-

тим, что np <<1 и pnpn /]/[ = , где ][⋅ здесь и далее обозначает взя-

тие целой части. В [3] рассмотрены АОП для отдельных случаев задания p и m. Ес-

ли весовые коэффициенты ),( mmsfs −= , используемые в ЗЦФ, одина-

ковы и равны f , то обобщённая конструкция АОП имеет вид: SYNCHDOpvFOR ,1=

))(( vDDELAY (1)

DOCjFOR ,1=

)(vT .

Здесь )(vD – величина сдвига (в тактах) между первой и v -й ветвями, а

)(vT – некоторое тело цикла. Представление )(vT и выражения для

)(vD зависит от рассматриваемого случая задания p и m .

Если 3/,1,1 ≥=<< pnmnp , то согласно [3] pvnvD /)1(2)( −= ,

а )(vT определяется фрагментом

DOmsFOR 2,1=

DOpvnpnviFOR /,1)/)(1( +−=

BEGIN (2)

);()( fxxxxxELSExxxTHENmsIF iimiiimiii ∗=+=+=≤ −+

END

и на основании (1) получим АОП, который обозначим 01B .

В случае, когда весовые коэффициенты – разные и p – чётное, то,

заменив в алгоритме 01B p на 2/p и условный оператор в (2) на

mmiiii fxyfxxTHENsIF ∗=∗== +,)1( 0

);,( iiimmiiiii yxxfxyyxxELSE +=∗=+= −− , (3)

получим АОП, который обозначим rB1 . Отметим, что операторы, раз-

делённые запятой в (3), выполняются синхронно, а операторы, разде-лённые точкой с запятой в (2) и (3) – последовательно.

Представим тело цикла )(vT в (1) фрагментом

DOEvBvAiFOR ),(),(=

BEGIN

DOmsFOR 2,1=

[ ]( ) 2/)1(12/2/2/ ++−−+=+= simsiii xELSExTHENssIFxx (4)

Page 4: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

312

fxx ii ∗= ;

)(GDELAY ;

END .

При условиях 1,1, >>= lmlmp для )12)((22)( ++−= mvwvvD p ,

+= vvA )( mvwp )( , mgvwvvB pp ))(()( ++= , mE = , 0=G , где =)(vwp

[ ] pgmv /)1( −= , 1/ −= png p , на основании (1), (4) получаем АОП

02B .

Если допустить, что весовые коэффициенты являются разными, а p

– чётное и в 02B заменить p на 2/p , четвёртый и пятый операторы

конструкции (4) представить фрагментом BEGIN

,)1( 0 iiii yxELSExfTHENsIFx =∗== (5)

),(),( mshimshi xfy +∗=

END

и увеличить на единицу длину цикла по переменной s , то получим

АОП, который обозначим rB2 . Отметим, что в (5) операторы ...=ix и

...=iy , разделённые запятой, выполняются синхронно, а целочисленная

функция ),( msh определена в [2, 3].

В случае 1,1,)1( ≥>+= lmmlp АОП 03B получаем из 02B , если

в последний внести такие поправки: – во втором операторе, выполняющем задержку, m заменить на

m + 1 и 2m + 1 – на 2m + 2; – в операторе, задающем цикл по i, m заменить на m + 1; – перед оператором END вставить условнный оператор

( )0))1)]1/()1)([(1)(1/(( DELAYTHENmvmpnviIF ++−+−+=

( )1DELAYELSE .

Аналогично, внося соответствующие изменения в rB2 , получим

АОП rB3 при условии, что весовые коэффициенты – разные.

3. Конфигурации кластерных систем для реализации АОП

Из потактовой схемы (ПС) алгоритма 01B [3] следует, что в случае

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

Page 5: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

313

распределённой памятью – кластере [4], состоящем из p вычислитель-ных узлов (ВУ), которые связаны коммуникационной сетью (КС). Рабо-та узлов системы синхронизируется после выполнения каждой опера-ции. Произвольный l-й ВУ состоит из процессора и локальной памяти (ЛП), в которой хранятся пересчитанные значения переменных, исход-

ное значение переменной, которое первым пересчитывается в )1( +l -м

узле (в p-м узле это 1+nx ), количество выполняемых пересчётов C и ве-

совой коэффициент f. Отметим, что в ЛП первого ВУ хранится значение

0x . Здесь и далее будем считать, что передача одного данного из l-го

узла в )1( +l -й (или наоборот) осуществляется за время, равное 0T так-

тов; в каждом ВУ операции сложения и умножения выполняются за одинаковое время, равное одному такту; операции с ЛП узла существен-но не влияют на скорость выполняемых в нём вычислений. Заметим, что

при реализации алгоритма 01B каждый i-й узел кластера будет вовлека-

ться в работу на )1)(/2( 0 −+ iTpn такт позже относительно первого уз-

ла. Если 32/ 0 +> Tpn , то легко определить, что пересчитанное в )1( +l

-м ВУ на k-й итерации значение первой переменной будет считано из

ЛП через 32/ 0 −− Tpn такта и передано в l-й узел. В данном случае та-

кие обмены совмещаются с выполнением арифметических операций.

Из ПС алгоритма rB1 [3] следует, что пересчёт pn /2 значений

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

rB1 предлагается осуществить на кластере, состоящем из 2/p узлов,

которые объединены КС. Каждый из таких ВУ содержит два процессо-ра, работающих с общей памятью (памятью узла), то есть является про-тотипом SMP-систем [4]. В памяти каждого l-го узла хранятся перес-

читываемые в нём значения pn /2 переменных, исходное значение пе-

ременной, которое первым пересчитывается в )1( +l -м ВУ (в 2/p -м уз-

ле это 1+nx ), количество выполняемых пересчётов C и весовые коэффи-

циенты. Значение 0x хранится в памяти первого узла. При реализации

АОП rB1 каждый j-й узел начинает свою работу по сравнению с пер-

вым узлом на )1)()2//(2( 0 −+ jTpn такт позже.

Page 6: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

314

На основании ПС 02B [3] легко видеть, что для заданного m уве-

личение числа переменных, значения которых пересчитываются в каж-дой из параллельных ветвей, не приводит к увеличению количества об-менов между определёнными l группами ветвей. Следовательно, отно-сительно таких групп ветвей есть возможность увеличения доли вычис-

лительных операций относительно обменных. Поэтому алгоритм 02B

предлагается реализовать на кластере, состоящем из l ВУ, объединён-ных КС. Каждый узел образуют m процессоров, работающих c общей памятью. В памяти произвольного j-го узла хранятся пересчитываемые

в нём значения pmn / переменных, исходные m последующих значений

переменных, пересчитываемых в )1( +j -м ВУ (для l-го узла это ,1+nx

mnn xx ++ ,...,2 ), количество выполняемых пересчётов и весовой коэффи-

циент. Отметим, что значения ...,, 21 mm xx −− 0, x хранятся в памяти пе-

рвого ВУ. Во время реализации АОП 02B запуск i-го процессора узла

осуществляется со сдвигом относительно первого процессора этого же

узла на )1(2 −i такт, а запуск j-го узла кластера осуществляется в срав-

нении с первым узлом на mpnm 2)(1/(2( −+ )1)()1 0 −++ jT такт позже.

Совмещение обменных операций из вычислительными возможно при

выполнении условия )12/()222(/ 0 +++≥ mmTpn .

Аналогично, как и в 02B , в АОП rB2 есть возможность увеличе-

ния доли вычислительных операций по сравнению с обменными отно-сительно 2/l групп параллельных ветвей. Следовательно, для реализа-

ции rB2 предлагается использовать кластер, состоящий из 2/l ВУ. Ка-

ждый узел образуют m пар процессоров, работающих c общей памятью. В памяти каждого j-го узла хранятся пересчитываемые в нём значения

pmn /2 переменных, исходные m последующих значений переменных,

пересчитываемых в )1( +j -м узле, количество выполняемых пересчётов

и весовые коэффициенты. Отметим, что ...,, 21 mm xx −− 0, x хранятся в

памяти первого ВУ. При реализации rB2 запуск i-й пары процессоров

узла осуществляется со сдвигом относительно первой пары на )1(2 −i

такт, а запуск j-го узла кластера по сравнению с первым ВУ выполняет-

ся на )12)(1/2(2( +−+ mpnm )1)(0 −+ jT такт позже. Для обеспечения

совмещения обменных и вычислительных операций требуется выполне-

ние условия )12/()222(/2 0 +++≥ mmTpn .

Page 7: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

315

На основании анализа ПС алгоритмов 03B , rB3 нами разработаны

конфигурации кластерных систем для их реализации. 4. Анализ возможной реализации АОП на кластерных системах

Для выполнения АОП 01B , rB1 на описанных кластерах необходи-

мо соответственно )1(/3))/1(1(2 0 −++− pTpCnpn и +− ))/2(1(2 pn

)12/(/6 0 −++ pTpCn тактов. В [4] для разных значений C, n, p приве-

дены численные оценки ускорения этих алгоритмов, откуда получаем,

что наиболее эффективным есть выполнение алгоритмов 01B , rB1 на

кластерах с небольшим количеством (4, 8) ВУ. В этом случае при C = 8

ускорение 01B составляет соответственно 3 и 5, а ускорение rB1 – 5.3 и

8.4 раза. С увеличением C ускорение несколько увеличивается, напри-

мер, при C = 32 оно для алгоритма 01B равно 3.7 (p = 4) и 6.9 (p = 8) ра-

за. Изменение 0T от 1 до 10 не влияет на скорость вычислений.

Для реализации на описанной выше кластерной системе 02B тре-

бует )1(12/)12)(1( 0 −+−−++−+ lTlmpnmlC такт. Учитывая, что

mn >> и считая, что nT <<0 , в случае )1(0 −= llC , 10 ≥l ускорение 0S

этого алгоритма вычисляется по формуле )1/( 000 +≈ lplS , а при выпол-

нении условия Cll 11 =− , где 121 +≤ ml , получаем )1/( 10 +≈ lpS .

Реализация rB2 на описанном кластере требует +−+ mlC 4)(12/(

)12/(12/2/)2 0 −+−−++ lTlmpn такт. Если )12/(2 −= llC , где 12 ≥l ,

то ускорение rS этого алгоритма представляется формулой ×≈ plSr 2

))1)(24/(()14( 2 +++× lmm , а в случае Cll 312/ =− , где 143 +≤ ml , по-

лучим ))1)(24/(()14( 3 +++≈ lmmpSr .

Приведённые теоретические оценки ускорения получены в

предположении, что для реализации алгоритмов 01B , 02B и rB1 , rB2

на одном процессоре требуется соответственно )12( +mnC и

)14( +mnC такт.

1. Яцимирский М.Н. Быстрые алгоритмы ортогональных тригонометрических

преобразований. – Львов: Академический Экспресс, 1997. – 219 с. (на украинском языке).

2. Valkovskii V.A. An optimal algorithm for solving the problem of digital filtering // Pattern Recognition and Image Analysis. – 1994. – 4, № 3. – P. 241–247.

Page 8: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

316

3. Яджак М.С. Алгоритмы с ограниченным параллелизмом для решения одной задачи цифровой фильтрации // Проблемы управления и информатики. – 2001. – № 6. – С. 109–118.

4. Яджак М.С. Реализация алгоритмов с ограниченным параллелизмом для решения задачи цифровой фильтрации // Отбор и обработка информации. – 2006. – Вып. 25 (101). – С. 103–108 (на украинском языке).

Page 9: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

317

Джосан О.В., Попова Н.Н.

ПАРАЛЛЕЛЬНАЯ ВИЗУАЛИЗАЦИЯ ДЛЯ

ВЫСОКОПРОИЗВОДИТЕЛЬНОЙ СИСТЕМ ОБРАБОТКИ

ДАННЫХ НА СУПЕРКОМПЬЮТЕРЕ BLUEGENE /P

МГУ имени М.В.Ломоносова, Москва,

[email protected], [email protected]

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

Визуализация является неотъемлемой частью анализа научных данных. Существенную роль визуализация имеет при проведении крупномасштабного вычислительного эксперимента на современных высокопроизводительных системах, например, на комплексе BlueGene/P, установленном в Московском Государственном Университете [1]. Высокопроизводительный комплекс BlueGene /P, установленный в МГУ, имеет следующие характеристики. Система включает в себя две стойки с вычислительными узлами и узлами ввода-вывода: 1024 четырехядерных вычислительных узла в каждой из стоек (всего более 8000 ядер) и 16 узлов ввода-вывода в стойке. Вычислительный узел включает в себя четырехядерный процессор, 2 ГБ общей памяти и сетевые интерфейсы. Микропроцессорное ядро - PowerPC 450 с рабочей частотой 850 MHz. Размер получаемых при таких вычислениях данных может достигать нескольких терабайт. Поэтому возникает необходимость использовать систему визуализации, которая будет осуществлять расчет визуального ряда на узлах вычислителя, т.к. передача такого объема данных на локальную машину пользователя и их визуализация уже на локальной машине весьма затруднительна.

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

Page 10: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

318

вычислений, является система VTK и ее параллельное расширение ParaView[2]. VTK содержит библиотеку С++ классов и несколько интерфейсов для языков высокого уровня, поддерживает широкий набор алгоритмов визуализации. ParaView включает в себя удобный интерфейс, реализацию распределенных вычислений и параллельный сервер для визуализации. Еще одна час-то используемая система – это AVS/Express Parallel Edition [3]. Эта система включает в себя большой набор методов визуализации, большое количество поддерживаемых форматов данных, параллельную реализацию фильтров и сборщиков данных. Так же в последнее время получила распространение система VisIt[4]. Особенность этой системы состоит в том, что она позволяет эффективно визуализировать данные сложной и нестандартной структуры. Система ScientificVR [5] предоставляет поддержку различных режимов визуализации, в том числе в формате анаглифа. Несколько вариантов системы визуализации было предложено компанией IBM. Одна из таких систем – Deep Computing Visualization [6] – предназначена для визуализации научных данных на мульти дисплейных комплексах.

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

Одна из современных тенденций развития систем визуализации данных большого объема – это модификация работы систем для возможности отображения данных на новых дисплейных устройствах, таких как стереоскопические дисплеи, трехмерные дисплеи и мультидисплейные комплексы. Для этого система визуализации должна быть расширена возможностью производства видео контента в форматах, предназначенных для отображения на этих типах дисплейных устройств. В настоящее время предложено несколько таких форматов данных: анаглиф, стереоизображения, представление «глубина+текстура», объектное представление контента, мультивидовое представление данных [7]. Появление таких форматов усложняет

Page 11: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

319

структуру процедуры визуализации: требуются действия по вычислению дополнительной информации.

Требованием пользователей к современным системам визуализации (помимо простоты в использовании) является визуальное качество воспроизводимого контента. Представление данных в так называемом «естественном» для пользователя виде является существенной проблемой, потому как необходимо в реальном времени эффективно обрабатывать данные при наличии ограниченных ресурсов. Поэтому современные системы визуализации должны обладать эффективными методами фильтрации данных, преобразования разрешения изображений и видео, адаптации контента под устройство отображения. Эти условия также требуют внедрения дополнительной функциональности в систему визуализации.

После анализа существующих систем были выдвинуты следующие требования для системы визуализации, оптимальной для BlueGene /P. Первым требованием является разработка оптимальной архитектуры для такой системы. Далее необходимо расширить функциональность системы возможностью генерации видео контента для отображения на новых типах дисплейных устройств. Система должна максимально снизить размер данных, передаваемых с вычислительного узла на локальную машину, при этом обеспечить высокое визуальное качество воспроизводимого видео ряда, для этого требуются разработать эффективные методы фильтрации и сжатия видео.

В работе предложена архитектура такой системы визуализации. Предложены методы для реализации дополнительной функциональности, например, методы формирования стерео, 3D и мультивидового видео контента. Предложен новый метод фильтрации видео для улучшения его визуального качества, основанный на сглаживании границ, а также метод сжатия видео потока при передаче на машину пользователя, основанный на блочном сжатии видео без визуальных потерь. Еще одной особенностью предлагаемой системы является метод, дающий возможность на локальной машине пользователя в режиме реального времени увеличивать разрешение видеопоследовательности с высоким качеством восстановления деталей. Это позволяет снизить разрешение передаваемого видео потока, что позволяет многократно сократить объем передаваемой информации, а так же оптимизировать видео под разрешение конкретного устройства отображения.

Функционирование предложенной системы возможно в двух режимах – режиме постобработки и режиме совмещения визуализации со счетом. Первый режим более простой в реализации и подразумевает, что данные для визуализации получены заранее и при визуализации

Page 12: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

320

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

При проектировании системы визуализации, оптимальной для вычислительной системы Bleu Gene /P, необходимо определить, какая основная функциональность системы будет на какой части вычислителя выполняться. В качестве решения была предложена система визуализации, состоящая из трех основных подсистем: подсистемы для высокопроизводительного вычислителя, подсистемы на интерфейсной машине, подсистемы на локальной машине пользователя. Основные блоки предложенной системы визуализации показаны на Рис.1.

Рис.1. Схема системы визуализации

Page 13: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

321

Данные для визуализации хранятся на GPFS. На вычислительных узлах BlueGene /P выполняется покадровое построение видео последовательности. При этом особенность предложенной системы состоит в том, что реализована возможность генерации изображений и видео в различных форматах, предназначенных для отображения на различных типах дисплейных устройств: обычный 2D формат данных, 2D анаглифическое представление, многопотоковый формат для многоэкранных дисплеев (multiscreen), генерация стерео видео (stereo video), построение видео в формате 2D+depth, многовидовые видео последовательности (multiview). На интерфейсной машине выполняются различные действия по подготовке видео последовательности к отправке на локальную машину пользователя – вычислительное устройство, непосредственно соединенное с устройством визуализации. На фронтенде выполняется параллельный алгоритм предобработки видео для улучшения визуально качества видео данных, основанный на улучшении границ. Также на фронтенде работают параллельные алгоритмы сжатия данных для различных форматов. На машине пользователя осуществляется декодирование полученного видео, а также применяется разработанный эффективный алгоритм изменения размера данных.

Новые методы параллельной обработки изображений и видео, предложенные и реализованные для данной системы, подробно описаны в работах [8], [9], [10].

Проведена апробация работы системы на комплексе BlueGene /P и анализ эффективности системы на реальных данных. В качестве примеров рассмотрены результаты решения следующих задач:

• визуализация турбулентного горения (Рис.2а);

• визуализация в задачах молекулярной динамики(Рис.2б);

• визуализация анализа эффективности загруженности процессоров и маршрутизации в многопроцессорных комплексах с топологией 3-D тор(Рис.2в).

Page 14: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

322

а) б) в)

Рис. 2. Примеры работы системы визуализации: а) визуализация

турбулентного горения; б) визуализация молекулярной динамики; в)

визуализация анализа эффективности маршрутизации в

многопроцессорных комплексах с топологией 3-D тор.

С ростом количества вычислительных узлов и усложнением архитектуры вычислительной системы возможна организация более эффективного взаимодействия за счет введения в системы визуализации промежуточных звеньев. Промежуточные звенья в большинстве случаев позволяют более эффективно организовывать вычисления при визуализации, оптимизировав при этом нагрузку на основной многопроцессорный вычислитель, используя, например, для некоторых этапов визуализации интерфейсную машину. С учетом перечисленных факторов в работе предложена архитектура системы поддержки визуализации научных данных для высокопроизводительного комплекса BlueGene /P. Система позволяет визуализировать данные в различных видео форматах для отображения на различных типах дисплейных устройств. Также разработаны параллельные методы сжатия и фильтрации видео.

Работа выполняется при поддержке гранта РФФИ № 08-07-12081.

1. IBM Journal of Research and Development, Blue Gene, Vol. 49, No. 2/3 2. Marcio Dutra, Paulo Rodrigues, Gilson Giraldi, Bruno Schulze, Distributed

visualization using VTK in Grid Environments, pros. conf. Seventh IEEE International Symposium on Cluster Computing and Grid (CCGrig’07), 2007

3. Система визуализации AVS/Express Parallel Edition http://www.avs.com/software/soft_t/avsxps.html

4. Childs H., Duchaineau M., Ma K.L., A Scalable, Hybrid Scheme for Volume Rendering Massive Data Sets // Proceedings of Eurographics Symposium on Parallel Graphics and Visualization 2006, Portugal, 2006

Page 15: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

323

5. Система визуализации Scientific VR http://www.cfd.ru/r_index.htm?2 6. IBM DCV http://www-03.ibm.com/systems/deepcomputing/visualization/ 7. Tao Ni et. al. «A Survey of Large High-Resolution Display Technologies,

Techniques, and Applications» // Proceedings of the IEEE Virtual Reality Conference, 2006

8. О.В. Джосан, А.Б. Мурынин «Метод улучшения границ на изображении» //Динамика нелинейных систем, том 29(1), № 11, 2007

9. О.В. Джосан, М.Н. Мишуровский, «Анализ методов малой сложности для кодирования изображений без визуальных потерь» // Тезисы конференции «Телевидение: передача и обработка изображений», Россия, Санкт-Петербург, 2008

10. О.В. Джосан, «Способ и система увеличения разрешения видео последовательности, основанные на вейвлетах и объединении декодирования и интерполяции» // Заявка на патент RU 2007132982(приоритет 03.09.2007), опубл. Бюл. № 7 (10.03.2009)

Page 16: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

324

Дорошенко Е.С., Лупин С.А., Подкопаев И.В.

АНАЛИЗ ФУНКЦИОНИРОВАНИЯ КЛАСТЕРНЫХ

ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ ПОД УПРАВЛЕНИЕМ MS HPC

SERVER 2008

Московский государственный институт электронной техники, Москва,

e-mail: [email protected]

В настоящее время высокопроизводительные вычисления занимают все более значимое место во многих областях человеческой деятельности: машиностроение, энергетика, телекоммуникации, финансы, химическая промышленность, наука и, конечно, образование. Современные высокопроизводительные вычислительные системы (ВВС, High Performance Computing, Supercomputing, HPC, SC) представляют собой сложный комплекс, параметры которого определяются не только характеристиками отдельных компонентов (процессоров, памяти, систем хранения и коммутации), но и архитектурой. Крупнейшие производители электронных компонентов (IBM, HP, SUN, Intel, AMD) вкладывают огромные финансовые ресурсы для совершенствования своих продуктов на этом рынке.

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

Естественно, такое обучение должно сопровождаться получением учащимися практического опыта работы с высокопроизводительными комплексами. Одно из возможных решений - это приобретение мощной ВВС способной обеспечить как учебные, так и научные потребности института. При этом вычислительные ресурсы локализуются и имеют единственную точку входа. Классическими представителями подобных систем являются кластеры Межведомственного суперкомпьютерного центра РАН (МСЦ РАН), которые университеты могут использовать через удаленное подключение. Другой подход предполагает наличие в университете ВВС с производительностью порядка 1 Tflops, что вполне достаточно как для учебного процесса, так и для большинства НИР.

Вычислительный кластер, созданный в 2008 году в рамках Инновационной образовательной программы в Московском институте электронной техники, представитель второго подхода. Он состоит из 26 узлов, которые установлены в обычном компьютерном классе и имеют следующую конфигурацию:

Page 17: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

325

• Процессор: 2хIntel XEON E5335 (2.0 GHz, quad-core)

• ОЗУ: 4x1Gb FBDIMM 5300

• HDD: SATA 250Gb

• Сеть: 2x Intel PRO1000/EB Gigabit Ethernet

• OS MS Windows HPC Server 2008 В основе кластера лежит архитектура CoPC (Cluster of PCs), что

позволяет использовать его как для обучения студентов, так и для проведения вычислений в свободное от занятий время.

Кластер использует в качестве операционной системы MS Windows HPC Server 2008, что упрощает его интеграцию в образовательный процесс и облегчает подготовку специалистов для работы с ВВС.

Пиковая производительность кластера составляет 1,6 Tflops, производительность на тесте Linpack достигает 871,5 Gflops. Этот результат позволил кластеру занять 43-е место в 9-й редакции списка ТОП50 суперкомпьютеров России и СНГ [1].

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

Установленный на кластере Microsoft HPC Pack 2008 позволяет реализовать различные стратегии управления очередями [2]:

Стратегия Описание

FIFO с использованием приоритетов

Совмещает сортировку по приоритетам и стандартную стратегию FIFO для определения порядка задач в очереди. Существует 5 уровней приоритета: от наивысшего до наименьшего.

Все задачи с наивысшим приоритетом помещаются в очередь перед задачами с повышенным приоритетом и т. д. Время поступления задачи определяет порядок внутри каждого уровня приоритета.

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

Адаптивное Динамически изменяет количество ресурсов,

Page 18: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

326

выделение ресурсов

выделенных задаче. HPC Job Scheduler может выделить задаче свободные ресурсы, если у нее есть дополнительные подзадачи, требующие выполнения. Доступные ресурсы выделяются в первую очередь задачам с высоким приоритетом, в не зависимости от того, выполняется ли эта задача или стоит в очереди.

Утилизация свободных ресурсов

Максимально увеличивает эффективность использования кластера, позволяя менее ресурсоемким задачам, располагающимся в конце очереди, запускаться вперед более крупной, ожидающей в начале очереди, если это не приводит к ее задержке.

Монопольное использование многоядерного узла

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

Таким образом, MS HPC Pack 2008 предлагает гибкие возможности управления потоком задач. Определить оптимальную стратегию при проведении лабораторных работ, а также характеристики потока задач, обеспечивающие устойчивость вычислительной системы (интенсивность, длительность и ресурсоемкость), позволяет моделирование. При этом кластерная система рассматривается как СМО. Аппаратом для такого моделирования были выбраны сети Петри, а средой моделирования – Anylogic версии 6.3.1. Данное приложение позволяет моделировать так называемые «расширенные» сети Петри, позволяя присваивать каждой фишке некоторые атрибуты, а затем учитывать их при срабатывании переходов, и, кроме того, вносить дополнительные ограничения на срабатывания переходов в зависимости от того или иного состояния сети.

MS HPC Pack 2008 позволяет рассматривать кластер не только как единую систему, но и как некоторую совокупность подкластеров. Модель должна отображать и это свойство системы.

Модель кластера как единого целого выглядит следующим образом (рис. 1):

Page 19: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

327

1P

25P

27P

28P

29P

1t

25t

27t

26t

28t

Рис. 1. Модель кластерной вычислительной системы под управлением MS HPC

Pack 2008

Позиции 1 25P P− представляют собой источники входных заявок (узлы

кластера), генерируемых переходами 1 25t t− . Переход 26t срабатывает при

появлении фишки хотя бы в одной входной позиции. Поступающие входные

заявки накапливаются в позиции 27P , где ожидают обработки планировщиком

заданий HPC Job Scheduler. Переход 27t представляет собой сам планировщик,

который, руководствуясь выбранной стратегией, определяет из какой входной позиции брать фишку (при ее наличии) и в какую выходную позицию эту

фишку помещать. Позиции 28P и 29P представляют собой входную очередь и

сам кластер соответственно. Переход 27t в соответствии со стратегией

управления анализирует требования фишек, поступивших в позицию 27P или

накопившихся в позиции в 28P , и в случае, если свободных ресурсов кластера

достаточно, фишка помещается в позицию 29P , т.е. задача поступает на

выполнение. При этом происходит резервирование требуемых ресурсов. В случае занятости кластера, т.е. невозможности поместить задачу на выполнение,

она помещается в очередь, т.е. фишка поступает в позицию 28P .

В случае разделения кластера на несколько подкластеров модель преобразуется к виду, показанному на рис.2.

1P

25P

27P

28P

29P1t

25t

27t

26t 28t

30P

31P

32P

Рис. 2. Модель кластерной вычислительной системы под управлением MS HPC

Pack 2008 с разделением на подкластеры

Page 20: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

328

В примере кластер разделен на четыре части, более мелкое дробление ограничивает число доступных для задач ядер и увеличивает время их выполнения.

Данная модель аналогична вышеизложенной, с той лишь разницей, что кластер представлен не одной, а четырьмя позициями, каждая из которых

представляет подкластер. Переход 27t при анализе поступивших заявок

учитывает и номер подкластера, на котором задача должна выполняться. Очевидно ограничение на максимальное число ядер, необходимое задаче, в данном случае является более строгим.

Результаты моделирования позволили определить характеристики потока задач, обеспечивающие устойчивость вычислительной системы для различных стратегий управления заявками. Например, для стратегии FIFO без использования приоритетов и разделения кластера на подкластеры были получены следующие результаты:

• интенсивность заявок – 0,2/мин с одного рабочего места;

• требуемое время обработки - 2 минуты;

• требуемое число вычислительных ядер – от 8 до 32. На рис. 3 приведен график зависимости загруженности кластера от

времени при указанном потоке задач. На рис. 4 представлен график общего числа ядер, требующихся для всех

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

0

50

100

150

200

250

300

0 1000 2000 3000 4000

числ

о исп

ользуем

ых

ядер

, шт.

модельное время, с

256

Рис. 3. Зависимость загруженности кластера от времени

Page 21: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

329

0

50

100

150

200

250

300

350

400

450

0 1000 2000 3000 4000

число тр

ебуемых яд

ер, шт.

модельное время, с

256

Рис. 4. Зависимость общего числа требуемых ядер для всех задач от

времени

Для оценки достоверности полученных результатов, практические исследования проводились в два этапа. На первом этапе средствами MS HPC Server Power Shell создавался входной поток задач, с характеристиками, полученными при моделировании. Среднее время ожидания заявки в очереди с достаточной точностью совпало с полученным в результате моделирования.

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

Таким образом, практические исследования подтвердили результаты моделирования, что свидетельствует о возможности использования кластеров с архитектурой CoPC в качестве высокопроизводительной аппаратной платформы для проведения обучения в области параллельного программирования и других дисциплин, ориентированных на подготовку в области суперкомпьютерных технологий.

1. http://supercomputers.ru/?page=archive&rating=9

2. http://technet.microsoft.com/en-us/library/dd197402.aspx

Page 22: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

330

Засов В.А., Никоноров Е.Н.

ОРГАНИЗАЦИЯ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛИТЕЛЬНЫХ

ПРОЦЕССОВ В СИСТЕМАХ ВИБРОАКУСТИЧЕСКОГО

КОНТРОЛЯ

Самарский государственный университет путей сообщения, Самара,

[email protected]

1.Отличительной особенностью виброакустического контроля (ВК) является необходимость применения сложных алгоритмов обработки виброакустической информации с целью выделения параметров сигналов, диагностических признаков и распознавания технического состояния объектов [1]. Это обусловлено сложной структурой измеряемых виброакустических сигналов, большим уровнем помех и, при диагностировании зарождающихся дефектов, малыми изменениями параметров сигналов при незначительных изменениях параметров технического состояния.

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

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

Повышение производительности и быстродействия используемых в настоящее время параллельных ВС достигается в основном за счет применения собственно математических методов распараллеливания вычислений при обработке виброакустической информации (параллельных методов решения систем линейных уравнений [2], параллельных методов спектрального и корреляционного анализа сигналов [3] и т.д.).

С другой стороны важным направлением повышения производительности и быстродействия ВК является разработка такого представления алгоритма вычислительного процесса при ВК, форма которого наиболее удобна для параллельной обработки. Параллельная

Page 23: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

331

форма алгоритма ВК должна отображать естественный параллелизм протекающих в объекте процессов, выделять вытекающие из постановки задачи параллельные ветви и конвейеры обработки сигналов [4].

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

2.Определим функцию обобщенной СВС ВК и разработаем структуры СВС, реализующих эту функцию в системах контроля различного назначения.

Функция СВС ВК задается в форме орграфа алгоритма вычислительного процесса[5,6], общего для класса задач ВК, и определяется на основе предлагаемой информационной модели механизма, в которой выделены две составляющие – диагностическая и виброакустическая модели.

Информационная модель механизма приведена на рисунке и

представлена в виде орграфа ИМG преобразования виброакустических

сигналов в работающем механизме. Вершины орграфа ИМG

соответствуют операторам преобразования сигналов, а дуги отображают информационные связи между операторами. В механизме выделено к

узлов, каждый из которых является источником виброакустического

сигнала .,1, kssГ =ξ

Положим, что состояние s–ого узла определяется совокупностью m

параметров состояния miZsi ,1, = . Тогда сигнал

sГξ получается из идеального

виброакустического сигнала sидξ путем преобразования некоторых параметров

miUsi ,1, = этого сигнала под действием параметров miZ

si ,1, = технического

состояния s–ой кинематической пары, т.е. кодирования параметров siZ

параметрами siU сигнала - носителя диагностической информации. Сигнал

sидξ

генерируется некоторой идеальным узлом (кинематической парой), под которым понимается некоторый эталонный узел, который находится в

исправном техническом состоянии. Процесс преобразования сигнала sидξ в

сигнал sГξ для s–ого узла отображается подмножеством операторов s

P1

из множества 1P , которое представляет диагностическую модель

механизма.

Page 24: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

332

kC

Информационная модель механизма и функция специализированной вычислительной системы ВК

Направляющий вектор орграфа АG

Информационная модель механизма (орграфИМG )

Виброакустическая

модель Диагностическая

модель

Функция СВС ВК (орграф АG алгоритма ВК)

1

1Z

Page 25: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

333

Множество операторов 2P отображает процесс преобразования

(искажения) виброакустических сигналов в точках измерения.

Множества операторов 2P и 3P представляют виброакустическую

модель механизма. Представленная информационная модель механизма справедлива

для среднечастотного диапазона (100 – 1500 Гц).

Функция СВС ВК представлена на рисунке в виде орграфа АG

алгоритма вычислительного процесса при ВК. Множество вершин

орграфа АG разбито на непересекающиеся множества вершин 94 ,...,PP

(ярусов) и соответствующих им операторов алгоритма, которые характеризуются однотипностью выполняемых операций. Представленная форма алгоритма выгодно отличается высокой степенью параллелизма, характеризуемой шириной алгоритма (яруса), равной mk × , и длиной алгоритма, равной числу ярусов, и является

естественной, вытекающей из постановки задачи.

Преобразования сигналов, выполняемые операторами орграфа АG

алгоритма ВК, являются обратными преобразованиям сигналов в информационной модели механизма. Отсюда ярусы приведенного графа алгоритма отражают следующие процедуры обработки

виброакустических сигналов: 4P - восстановление сигналов, искаженных

при механоэлектрическом преобразовании датчиками; 5P -

восстановление сигналов, искаженных при передаче по конструкциям механизмов от мест зарождения в точки измерения и разделение

сигналов по принадлежности соответствующим узлам; 6P - выделение

параметров сигналов, являющихся диагностическими признаками; 7P -

определение параметров технических состояний узлов по значениям

диагностических признаков; 8P и 9P - классификация и прогноз

состояний соответственно узлов и механизма в целом по значениям параметров технического состояния. Множество переменных

kssи ,1, =ξ отображает виброакустические сигналы в доступных для

измерения точках механизма, множество 01 ,,..., ССС k отображает

сигналы, характеризующие техническое состояние узлов и механизма в целом.

Для описания структуры СВС ВК выбраны три основные компоненты: множество функциональных модулей (ФМ), коммуникационная среда, обеспечивающая обмен информацией между ФМ, множество программ работы совокупности ФМ.

Для определения этих компонент введено математическое

Page 26: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

334

описание СВС ВК – орграф ВСG вычислительной системы, который

получается из орграфа АG алгоритма с помощью операций простого

гомоморфизма (свертки) вершин, образующих непересекающиеся

подмножества. Каждой вершине орграфа ВСG ставится в соответствие

ФМ, функции которого соответствуют сворачиваемым вершинам.

Рассмотрим следующие варианты свертки вершин орграфа АG :

принадлежащих одному ярусу, принадлежащих одной ветви, и предельные случаи – все вершины в одну и не использование свертки.

Этот прием позволяет получить орграфы ВСG различных

мультипроцессорных СВС ВК: конвейерных (MISD – Multiple Instructions Single Data), векторных с общим управлением (SIMD), матричных (MIMD), а также классических однопроцессорных (SISD).

На основе полученной совокупности орграфов ВСG можно

определить множество базовых ФМ и структура их взаимосвязей для технологических, исследовательских и экспериментальных систем ВК.

Выделим особо важную роль ФМ разделения и восстановления сигналов, рассмотренных в [7], которые позволяют повысить точность измерений сигналов и представить сложный вычислительный процесс ВК в виде ряда параллельных процессов, количество которых определяется числом k контролируемых узлов механизма.

1. Вибрация в технике: Справочник в 6 т. / Под ред. М.Д. Генкина. – Т.5.

Измерения и испытания.–М.: Машиностроение, 1981. – 496 с.

2. Валях Е. Последовательно – параллельные вычисления.– М.: Мир, 1985. – 456 с.

3. Методы и средства обработки диагностической информации в реальном времени/ В.А. Гуляев, В.М. Чаплыга, И.В. Кедровский. – Киев: Наукова думка, 1986. – 224 с.

4. Марчук Г.И. Методы расщепления. – М.: Наука: ГРФМЛ, 1988. – 264 с.

5. Воеводин В.В. Математические модели и методы в параллельных процессах. -–М.: Наука: Гл. ред. физ. – мат. лит., 1986. – 296 с.

6. Воеводин В.В. Параллельные вычисления. – СПб.: БХВ – Петербург, 2002. – 608 c.

7. Засов В.А., Никоноров Е.Н., Тарабардин М.А. Идентификация входных сигналов в задачах контроля и диагностики динамических объектов/Сборник трудов четвертой международной конференции по проблемам управления (МКПУ-IV) – М.: Ин-т проблем управления им. В.А. Трапезникова РАН. – 2009. – 2030 с.

Page 27: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

335

Климов А.В.

ДЕРЕВЬЯ ВЫБОРА И ИХ ИСПОЛЬЗОВАНИЕ ДЛЯ ОПИСАНИЯ

СЕМАНТИЧЕСКОГО ЭФФЕКТА ПРОГРАММЫ

ИППМ РАН, г. Москва, [email protected]

При автоматическом распараллеливании программ большое значение имеет тонкая информационная структура программ [1], выражением которой является граф алгоритма (ГА). Для описания ГА нужны формальные средства. Одним из таких средств являются деревья выбора. В работе [2] они называются quast (Quasi-Affine Selection Tree) и применяются для описания источника значения для заданного оператора чтения. Здесь предлагается использовать деревья выбора несколько в ином качестве, а именно для описания семантического эффекта фрагментов программ.

Под семантическим эффектом мы понимаем воздействие исполнения программного фрагмента на состояние массивов и переменных. Предлагается описывать эффект в форме дерева выбора. Будем строить соответствующие описания путем рекурсивного подъема по структуре кода: от простых операторов к составным. Для этого вводятся операции над деревьями, соответствующие основным конструкторам кода: условным операторам, циклам и т.п. Похожая идея пошагового построения подобных описаний «изнутри наружу» по структуре программы уже высказывалась в [3].

Имея эффективный (вычислимый) метод построения деревьев выбора, являющихся описаниями семантического эффекта фрагментов программы, нетрудно перейти к вычислению описаний состояний памяти в различных точках программ, также в терминах деревьев выбора. Если это удалось сделать во всех (ключевых) точках программы, то для каждого оператора чтения легко может быть определен источник значения как функция от текущих параметров цикла и индексов элемента. А это и есть фактически описание ГА.

Так задача извлечения описания ГА фактически сводится к задаче построения деревьев выбора, описывающих семантический эффект фрагментов программы. Далее определим точно необходимые понятия и опишем подход к реализации соответствующих операций.

Дерево выбора – это конструкция, определяемая индуктивно следующим образом. 1. None есть дерево выбора; 2. Всякий терм есть дерево выбора;

Page 28: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

336

3. Если T1 и T2 – два дерева выбора, то конструкция вида (условие –> T1 : T2) также является деревом выбора.

Терм есть конструкция вида: имя { e1, e2, …, el }

где имя – некоторый идентификатор, а ei – линейное выражение. Линейным выражением будем называть линейные комбинации

переменных (x,y,z,…) с целыми коэффициентами, возможно со свободным членом, например: 2x+5y-7.

Условие может быть одного из следующих видов: � Равенство: e=0 � Неравенство: e>0

Здесь e – линейное выражение. На практике будут полезны также нестрогое неравенство (e≥0) и

отрицания всех перечисленных условий (e≠0, e<0, e≤0), хотя теоретически достаточно только первых двух. Для полноты потребуется также деление нацело на число, которое можно ввести, например, через дополнительное правило к определению дерева выбора: 4. Если T – дерево выбора, то конструкция (e=mq+r –> T) есть также

дерево выбора. Здесь e – линейное выражение, m – натуральное число, а q и r – новые переменные (частное и остаток), которые могут использоваться в дереве T (причем 0≤r<m). Однако, в самой этой конструкции переменные q и r не являются свободными. Все переменные, которые входят в дерево выбора свободно,

образуют совокупность его параметров. Если придать всем параметрам дерева конкретные целочисленные значения, то дерево может быть вычислено так, что результатом будет либо None, либо терм вида

имя {n1, n2, …, nl}, где все ni – конкретные целые числа.

Процесс вычисления дерева определяется следующим образом. Если дерево есть терм, то просто вычисляем значения всех аргументов. Если дерево порождено правилом 3, то вычисляем условие. Если оно есть истина, то результат равен значению поддерева T1, а если ложь, то поддерева T2. Если дерево порождено правилом 4, то вычисляем e и делим его нацело на m. Полученные частное и остаток присваиваются переменным q и r, после чего вычисляется значение дерева T.

Теперь мы можем использовать деревья выбора как средство описания эффекта фрагмента программы. Будем считать допустимыми только так называемые линейные программы [1]. В них используются операторы присваивания (простым переменным и элементам массивов), правильно вложенные условные операторы if–then–else с линейными условиями, правильно вложенные циклы с линейными границами и единичным шагом, причем все индексные выражения линейные.

Page 29: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

337

Линейные выражения – это линейные комбинации параметров циклов и внешних параметров с целыми коэффициентами.

Пусть P – некоторый фрагмент линейной программы. В нем могут быть переменные, определенные снаружи: p1, …, ps. Это параметры фрагмента. Исполнение данного фрагмента при заданных значениях его параметров оказывает некоторое воздействие на память, которое и будем называть эффектом. Выбрав определенный массив или простую переменную, будем рассматривать эффект применительно к этому массиву (простую переменную здесь и далее будем считать нульмерным массивом). Описать эффект – значит для каждого элемента массива сказать, было ли его значение изменено, и если да, то указать тот конкретный оператор присваивания в исследуемом фрагменте, который это сделал последним.

Пусть внутри фрагмента P имеется некоторое количество операторов присваивания элементам заданного массива и пусть каждый помечен своей меткой. Ссылка на оператор в описании эффекта должна указывать не только его метку, но и в какой точке итерационного пространства он сработал. Если у оператора с меткой M имеется l объемлющих циклов, то для ссылки на его экземпляр будем использовать терм вида М{n1,…,nl}, где каждое ni есть значение параметра i-го объемлющего цикла, считая циклы снаружи внутрь.

Пусть фрагмент P имеет свободные параметры p1, …, ps. И пусть требуется описать эффект воздействия его на элемент m-мерного массива A(i1,…im). Будем описывать эффект в виде дерева выбора, имеющего s+m целочисленных параметров: p1, …, ps, i1,…im. Если его вычислить при произвольных конкретных значениях этих параметров, то получим либо None, либо терм М{n1,…,nl}. Первое означает, что элемент массива A(i1,…im) фрагментом P не затронут вовсе, второе – что в него записывается значение в операторе с меткой M на итерации с параметрами циклов n1,…,nl, и что во фрагменте P это последняя запись в этот элемент.

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

Очевидно, один и тот же эффект может быть выражен различными деревьями. Будем называть два дерева эквивалентными, если списки их

Page 30: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

338

параметров совпадают, и при всех конкретных значениях параметров они вычисляются до одинаковых термов (или None).

Таблица 1

Примеры деревьев эффекта

Парам

етры

Фрагмент кода дей- ствие

на

Дерево эффекта

i,j M: A(i-1,j+1)=Z A(p,q) (p=i-1 –>

(q=j+1 –> M{} :None) : None)

i,j if i<j then

M1: A(i)= exp1 else M2: A(j)= exp2

endif

A(k) (i<j –>

(k=i –> M1{} : None) : (k=j –> M2{} : None) )

N M1: A(1)=0 do i = 2,N

M2: A(i)=A(i-1)*x enddo

A(k) (k=1 –> M1{}

: (2≤k –> (k≤N–> M2{k} : None) : None))

n do k = 1,n do j = 1,k-1

do i = k,n M: A(i,j) =... enddo

enddo enddo

A(p,q) (p≤n –> (1≤q –> (q<p –>

M{p,q,p} : None) : None) : None)

Возникает вопрос, как по произвольной (линейной) программе

получить ее дерево эффекта. Мы строим его индуктивно по построению программы. Всякая программа (по крайней мере, линейная) построена с использованием следующих базовых средств: оператор присваивания (элементу массива с линейными индексными выражениями), последовательность операторов, условные операторы и циклы (с линейными условиями и границами). В таблице 2 для этих конструкций показаны соответствующие им деревья. Предполагается, что T1 и T2 являются деревьями эффекта для фрагментов P1 и P2.

Операция SEQ(T1,T2) на деревьях соответствует операции последовательного соединения фрагментов программы. Ее результатом является дерево, значения которого по значениям для T1 и T2 (при любых конкретных значениях параметров) определяются согласно

Page 31: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

339

таблице 3, то есть доминирует значение T2. Аналогично определены вспомогательные функции DIFF и CROSS, которые как бы разбивают дерево T1 на два поддерева, используя аргумент T2 как предикат.

Таблица 2

Базовые конструкции и их деревья эффекта

Конструкция кода Описание эффекта Примечание

(k1=i1 –>…

(km=im –>M{}:None) ... : None)

для A(k1,…,km)

M: A(i1,…,im)= expr

None для иных массивов

P1;P2 SEQ(T1,T2)

if C then P1 else P2 endif

(C –> T1 : T2) C – линейное условие

do v = e0,e1 P1

enddo

CONV(v, e0, e1, T1) v – переменная, e0, e1 – линейные

выражения

Реализация операции SEQ сводится к подстановке в дерево T2

вместо каждого вхождения None копии дерева T1 и последующей оптимизации полученного дерева. При оптимизации, которую выполняет операция OPT(T), удаляются недостижимые вершины. Для этого применяется функция проверки списка условий на совместность, известная в литературе как Омега-тест[4].

Таблица 3

К определению функций SEQ,DIFF,CROSS

Т1 None Term1

T2 None Term2 None Term2

SEQ(T1,T2) None Term2 Term1 Term2

DIFF(T1,T2) None None Term1 None

CROSS(T1,T2) None None None Term1

Операция CONV должна быть определена так, чтобы при

произвольной конкретизации части параметров, обращающей линейные выражения e0 и e1 в конкретные числа n0 и n1, выполнялась эквивалентность: если n1≥n0, то CONV(v, n0, n1,T(v)) ≡ T(n0) $ T(n0+1) $… $ T(n1) иначе CONV (v, n0, n1,T) ≡ None где $ - инфиксный вариант операции SEQ.

Page 32: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

340

В общем случае реализация функции CONV сводится к задаче целочисленного программирования для объединения набора непересекающихся выпуклых решеток. (Выпуклой решеткой мы называем линейный образ выпуклого подмножества I

n.) Требуется построить проекцию этого объединения на подпространство без переменной v, и представить его опять же в виде семейства непересекающихся выпуклых решеток. И в каждой из этих подобластей выразить максимальную координату v точки в исходном объединении как линейную функцию остальных координат (точнее, в случае нетривиальных выпуклых решеток, как линейную функцию от координат в прообразе в I

n). С деталями алгоритмов, решающих эту задачу можно ознакомиться в работах [1,2,3,4].

Подробное рассмотрение функции CONV выходит за рамки данной статьи. Отметим только, что на первом этапе она вносит в каждый терм дерева T новый аргумент v, ставя его первым в списке. Далее снаружи навешиваются условия v≥e0 и v≤e1. В конечном счете дерево трансформируется так, чтобы оно зависело только от остальных параметров (параметр v исключен из числа свободных), а в каждом терме на месте нового аргумента v стояло то самое линейное выражение от остальных параметров, которым определяется максимальное из возможных значений v.

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

В начале статьи говорилось о применении деревьев эффекта для получения описания потокового графа алгоритма [1], которое используется при распараллеливании. Автор полагает, что это выгоднее, нежели строить свой подграф для каждой пары обращений к массиву.

Работа выполнена в рамках НИР «ВЕГА-Пр-Ст-2011» (Рег. № 01.2.00951607) по программе фундаментальных исследований №3 Программы Президиума РАН "Фундаментальные проблемы системного программирования".

1. Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. СПб: БХВ-

Петербург, 2004. – 599 с.

Page 33: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

341

2. Feautrier P. Dataflow analysis of array and scalar references. // International Journal of Parallel Programming, 20(1), February 1991.

3. Maslov V. Lazy Array Data-Flow Dependence Analysis. // In: Proceedings of the 21st Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, January 1994, pp. 311-325.

4. Pugh W. The Omega Test: a fast and practical integer programming algorithm for dependence analysis. // Comm.of the ACM, August 1992.

Page 34: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

342

Кульков И.В., Князьков В.С.

КОНЦЕПЦИЯ КОНФИГУРИРУЕМОГО ПАРАЛЛЕЛИЗМА

ФГУП «Пензенский научно исследовательский

электротехнический институт», Пенза,

e-mail: [email protected]

1.Введение. Суть программной реализации вычислений заключается в способности исполнительного устройства, процессора, выполнять различные алгоритмы, представленные в виде потоков инструкций [2]. Организация параллельной работы функциональных узлов процессора, в общем случае, позволяет повысить его производительность [3]. Учитывая, что все функциональные узлы процессора имеют один тип и одинаковую пиковую

производительность p

, то реальная производительность процессора r будет определяться формулой

∑=

=1i

iwpr

,

(1)

где iw– загруженность функционального устройства i ,

определяющая отношение времени полезной работы устройства i, при исполнении потока инструкций, ко всему времени исполнения потока [1]. Из формулы 1 видно, что для достижения максимальной реальной производительности процессора необходимо обеспечить как можно большую загруженность его функциональных устройств.

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

2. Концепция конфигурируемого параллелизма. Множество архитектурных решений, применяемых в современных процессорах, направлены на компенсацию снижения производительности процессора при работе с нетипичной или специфичной программной нагрузкой [2]. Ярким примером такой архитектуры является архитектура одновременной многопоточности (SMT, Simultaneous Multi Threading). Стратегия загрузки функциональных устройств архитектуры SMT

Page 35: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

343

основывается на обеспечении динамической суперскалярной обработки нескольких параллельно исполняемых потоков. При этом в случае критического вырождения параллелизма потоков, функциональные устройства загружаются за счет параллелизма инструкций, выделяемого суперскалярным механизмом, и наоборот [6]. Однако подобный подход к организации процессора достаточно сложен при реализации и плохо проявляет себя при работе с большим количеством потоков [4].

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

Примерная организация и принципы функционирования архитектуры с конфигурируемым параллелизмом приведены на рисунке

Рис. 1. Организация процессора с конфигурируемым параллелизмом

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

Page 36: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

344

принудительно администратором системы в зависимости от типа рабочей нагрузки.

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

1. выборку инструкций исполняемых потоков и выборка их операндов;

2. планирование выбранных инструкций – составление плана исполнения;

3. организацию загрузки функциональных устройств процессора в соответствии с планом исполнения;

4. обработку результатов работы функциональных устройств; 5. обновление счетчиков команд и контекстов исполняемых

потоков, инструкции которых были выполнены на данном цикле.

Отличительной особенностью предлагаемого подхода является перенос механизмов выборки, и планирования инструкций из аппаратной части в программную. Благодаря этому, при формировании плана исполнения, появляется возможность динамической организации параллелизма, как уровня потоков, так и уровня инструкций. Дополнительно, поток управления может быть спроектирован так, чтобы осуществлять выборку и интерпретацию инструкций различных наборов команд. Например, на рисунке 1 приведена схема выборки инструкций из потоков c очень длинным словом инструкции (поток 1), явным параллелизмом исполнения команд (поток 2) и из последовательного потока (поток 3).

Предполагается, что применение концепций конфигурируемого параллелизма при проектировании процессорных вычислительных систем обеспечит:

1. увеличение эффективности загрузки функциональных блоков процессора, при практически любом характере рабочей нагрузки;

2. адаптацию механизма планирования под рабочую нагрузку, за счет динамического выбора из доступных в ОС потоков управления;

3. упрощение аппаратной реализации процессора, снижение энергопотребления и, следовательно, возможность его позиционирования в качестве процессора встроенного применения;

4. масштабирование аппаратного параллелизма без необходимости внесения изменений в программное обеспечение;

Page 37: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

345

5. расширение функциональности ОС за счет внедрения специальных реализаций потоков управления;

6. использование одной и той же ОС в системах различного класса, за счет использования различных потоков управления;

7. применение процессора в качестве специализированного или встроенного, за счет «тонкой», оптимизированной, реализации потока управления;

8. исполнение разнородных программных потоков, в том числе и подготовленных для других архитектур;

9. поддержку старого программного обеспечения. 3. Заключение. Использование концепции конфигурируемого

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

1. Воеводин В.В., Воеводин Вл. В. Параллельные вычисления. – СПб.: БХВ-

Петербург, 2004. – 608 с.: ил. 2. Корнеев В.В., Кисилев А.В. Современные микропроцессоры. – 3-е изд.,

перераб. И доп. – СПб:БХВ-Петербург, 2003. – 448 с.: ил. 3. Крейгон Х. Архитектура компьютеров и ее реализация: Пер. с англ. – М.:

Мир, 2004. – 416 с. 4. Немнюгин С.А., Стесик О.Л. Параллельное программирование для

многопроцессорных вычислительных систем. – СПб.: БХВ-Петербург, 2002. -400 с.: ил.

5. Dua R.A., Lokhande B. A comparative study of SMT and CMP multiprocessors1 6. Tullsen D., Eggers S., Levy H. Simultaneous Multithreading: Maximizing On-

Chip Parallelism// Proceedings of the 22rd Annual International Symposium on Computer Architecture, June 1995.2

1 http://www.princeton.edu/~jdonald/research/hyperthreading/dua_comparative.pdf 2 http://www.cs.washington.edu/research/smt/papers/ISCA95.ps

Page 38: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

346

Левченко Н.Н., Окунев А.С.

АНАЛИЗ ПРОХОЖДЕНИЯ ЗАДАЧИ «ОБНАРУЖЕНИЕ

ДЕФЕКТОВ» НА ПАРАЛЛЕЛЬНОЙ ПОТОКОВОЙ

ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЕ

Учреждение Российской академии наук Институт проблем

проектирования в микроэлектронике РАН, Москва,

[email protected], [email protected]

Программа «обнаружение дефектов» позволяет выявлять недопустимые локальные сужения в проводниках на слоях многослойных печатных плат и фотошаблонах. Обнаружить такие дефекты можно при цифровой обработке изображения этих слоев.

В данной работе рассматривается реализация алгоритма задачи «обнаружение дефекта» на ППВС и исследуются результаты его моделирования на инструментальном комплексе системы [1].

В настоящее время в Секторе архитектур высокопро-изводительных вычислительных систем Института проблем проектирования в микроэлектронике Российской академии наук (ИППМ РАН) продолжается работа над новыми принципами организации вычислительного процесса и на их основе разрабатывается параллельная потоковая вычислительная система (ППВС), реализующая модель вычислений с управлением потоком данных. ППВС представляет собой многоядерную масштабируемую вычислительную систему, каждое ядро которой состоит из ассоциативной памяти (АП) и исполнительного устройства (ИУ). Более подробно архитектура данной вычислительной системы описана в статье [2].

Блок-схема алгоритма задачи «обнаружение дефектов» приведена на рис. 1. В данном алгоритме можно выделить несколько последовательных этапов. На первом этапе происходит ввод исходного изображения (рис. 2.а) в вычислительную систему и его бинаризация (если исходное изображение изначально не было бинаризовано).

На втором этапе происходит удаление шумов при недостаточно хорошем качестве исходного изображения (в противном случае данный этап может быть пропущен). Удаление шумов осуществляется применением морфологических операций «вскрытие» (opening) и «закрытие» (closing). Операция «вскрытие», в свою очередь состоит из двух базовых операций математической морфологии – вначале осуществляется операция «эрозия», а затем «дилатация», тем самым убираются единичные объекты на изображении. Операция «закрытие», состоит из тех же двух базовых операций, однако вначале выполняется

Page 39: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

347

операция «дилатация», а уже затем операция «эрозия», что позволяет заполнить единичные отверстия в объектах на изображении. Формально операции «дилатация» (уравнение 1) и «эрозия» (уравнение 2) могут быть описаны следующим образом (подробнее см. [3]):

}|{)( ∅≠=+ BSbSB bI

}|{)( BSbSB b ⊆=−

На третьем этапе алгоритма происходит многократное выполнение операции «эрозия». Число итераций определяется технологическими допусками на ширину проводника, максимальным размером дефекта и размером и формой структурного элемента. В результате выполнения данной операции происходит сужение всех объектов на изображении (проводников, контактных площадок и т.п.) на допустимую минимальную ширину. В местах, где изначально имелись дефекты (выходящие за допустимые пределы) появляются разрывы (рис. 2.б).

Рис. 1. Блок схема алгоритма обнаружения дефектов

На четвертом этапе происходит формирование остовов («скелетов») оставшихся на изображении объектов (рис. 2.в), которые представляют собой линии толщиной в один пиксель. В местах, где имелись разрывы, линии обрываются.

предварительная обработка

изображения (удаление помех)

операция «Эрозия»

выдача результатов

на ХОСТ-машину

скелетонизация

изображение,

очищенное от шумов

изображение, содержащее

разрывы (при браке)

остовы всех объектов,

имеющихся на изображении

анализ остова на разрывыкоординаты

обнаруженных дефектов

исходное изображение

(с ХОСТ-машины)

предварительная обработка

изображения (удаление помех)

операция «Эрозия»

выдача результатов

на ХОСТ-машину

скелетонизация

изображение,

очищенное от шумов

изображение, содержащее

разрывы (при браке)

остовы всех объектов,

имеющихся на изображении

анализ остова на разрывыкоординаты

обнаруженных дефектов

исходное изображение

(с ХОСТ-машины)

1)

Page 40: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

348

a) исходное изображение

б) изображение, полученное после выполнения пяти итераций операции «эрозия»

в) изображение, полученное после выполнения операции «скелетонизация»

г) результат работы программы

Рис. 2. Основные этапы выполнения алгоритма

Разрывы

Остов

ефе

Место

дефекта

Page 41: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

349

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

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

На рис. 3 приведен график средней загрузки исполнительных устройств системы.

Рис. 3. График средней загрузки исполнительных устройств системы

%,

Page 42: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

350

По оси абсцисс отложены такты работы программы на поведенческой модели системы, а по оси ординат – средняя загрузка всех ИУ в каждый момент времени (в %). Интегральная средняя загрузка ИУ составляет 81% при размерности изображения 50x50, 16-ти ядрах и стандартной функции распределения. Задача выполнилась за 42 тысячи тактов работы поведенческой модели системы, которые могут быть относительно просто переведены в оценку затраченного времени (учитывая предполагаемую частоту работы основных блоков системы).

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

Один из первых вариантов блок-схемы алгоритма задачи «обнаружение дефектов» был предложен Цветковым В.В.

Работа выполнена при поддержке гранта РФФИ 07-07-00376-а.

1. Левченко Н.Н., Окунев А.С., Змеев Д.Н. Расширение возможностей поведенческой блочно-регистровой модели параллельной потоковой вычислительной системы. // Материалы Пятой Международной молодежной научно-технической конференции «Высокопроизводительные вычислительные системы (ВПВС'2008)», 2008, Таганрог, Россия, стр. 371 – 374.

2. Стемпковский А.Л., Левченко Н.Н., Окунев А.С, Цветков В.В. Параллельная потоковая вычислительная система — дальнейшее развитие архитектуры и структурной организации вычислительной системы с автоматическим распределением ресурсов // журнал "Информационные технологии" №10, 2008, С. 2 – 7.

3. Гонсалес Р., Вудс Р. Цифровая обработка изображений / Техносфера, Москва, 2006 г., 1075 стр.

Page 43: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

351

Мендкович А.С.а, Аникин Н.А.

а, Кузьминский М.Б.

а, Мускатин А.Ю.

а,

Захарова М.Н.б

ТЕРРИТОРИАЛЬНО РАСПРЕДЕЛЕННАЯ ХИМИЧЕСКАЯ

ИНФОРМАЦИОННАЯ СИСТЕМА С ИНТЕГРАЦИЕЙ БАЗ

ДАННЫХ В GRID-СРЕДЕ

аИнститут органической химии им. Н.Д. Зелинского РАН,

г. Москва, [email protected] бЯрославский государственный университет им. П.Г.Демидова,

г. Ярославль, [email protected]

Автоматизация исследований в области молекулярного моделирования включает создание специализированных информационных систем для задач вычислительной, в т.ч. квантовой, химии. Среди таких систем следует упомянуть ECCE [1] и WebMO [2]. Но все эти системы не содержат базы данных (БД) результатов расчетов. А имеющиеся квантовохимические БД (например, PubChem [3]) не предполагают возможности интеграции как между собой, так и в составе единой более универсальной информационной системы, в т.ч. в GRID-среде.

В Центре компьютерного обеспечения химических исследований РАН (ЦКОХИ) и Ярославском государственном университете им. П.Г.Демидова (ЯрГУ) создается территориально распределенная химическая информационно-вычислительная система (ИВС) в GRID-среде (рис.1). Основной акцент в развитии ИВС сделан на интеграции содержащих результаты квантовохимических расчетов БД и XML-хранилищ в единую виртуальную БД с использованием средств Globus Toolkit (GT, http://www.globus.org) и OGSA-DAI (http://www.ogsadai.org.uk).

ИВС состоит из трех основных компонентов: вычислительной подсистемы; графических интерфейсов пользователя; подсистемы хранения расчетных данных.

Вычислительная подсистема включает ресурсы высокопроизводительных Linux-кластеров ЦКОХИ и (создаваемого в настоящее время) кластера ЯрГУ. Квантовохимические расчеты выполняются с применением как известных пакетов прикладных программ Gaussian-03, Gamess-US, MOPAC7 и др., так и с использованием разработанной в ЦКОХИ быстродействующей полуэмпирической программы LSSDOCK для расчетов докинг-комплексов протеин-лиганд.

Page 44: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

352

Разработанные графические интерфейсы пользователя-химика включают, в частности, Web-интерфейсы для запуска соответствующих заданий в систему пакетных очередй Sun Grid Engine в ЦКОХИ, для поиска результатов расчета в распределенной виртуальной БД и просмотра результатов выполнения пакетных заданий. Для подготовки исходных данных для квантовохимических программ применяются разработанные в ЦКОХИ средства графического интерактивного конструирования молекул из фрагментов.

Подсистема хранения данных функционирует в GRID-среде, создаваемой средствами GT 4.1 (базирующихся на Web-службах) и OGSA-DAI 3.0 . В ней интегрированы реляционные БД (БД результатов квантовохимических расчетов на кластерах ЦКОХИ, использующая СУБД PostgreSQL, и БД неэмпирических расчетов типовых органических молекул, использующая СУБД mySQL, в ЯрГУ) и XML-хранилище результатов расчетов по программе LSSDOCK в ЦКОХИ, базирующееся на средствах eXist (http://exist.sourceforge.net).

Рис.1. Общее строение химической ИВС в GRID-среде.

Пополнение БД и XML-хранилища результатами квантовохимических расчетов происходит локальным образом вне

Page 45: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

353

GRID-среды. В ЦКОХИ это делается автоматически после завершения каждого пакетного задания. В БД и XML-хранилище по каждому заданию хранятся только основные результаты расчета и указатель на заархивированные файлы, содержащие полные результаты.

Объединение БД и XML-хранилища в единую виртуальную БД реализовано для операций поиска – полей записей в реляционных БД или соответствующих тегов в XML-хранилище. Ниже для простоты и компактности изложения мы будем говорить только о полях записей и БД, имея в виду также теги и XML-хранилище.

Все поля записей в БД разделены на две группы – обязательные и опционные. Первые обязаны присутствовать во всех БД, задействованных в ИВС, а вторые являются локальными расширениями обязательного набора полей для конкретных БД. В глобальных операциях поиска могут применяться только обязательные поля, а опционные поля можно использовать для поиска в конкретных БД.

Список обязательных полей в ИВС зафиксирован. Для того, чтобы получить информацию о доступных для поиска полях записей, нами разработаны информационные провайдеры для средств MDS их состава GT, и соответствующие Web-интерфейсы пользователя-химика с применением программных средств WebMDS.

ИВС является открытой и масштабируемой, обеспечивая возможность динамического подсоединения к общей виртуальной БД новых квантовохимических БД и XML-хранилищ. Реализована возможность асинхронной обработки запросов на поиск, что позволяет химику эффективно работать в отказонеустойчивой среде GRID.

Для поиска в БД сложных трехмерных молекул и их фрагментов в рамках проекта РФФИ 05-07-90305 в ЦКОХИ были разработаны специальные индексы химического окружения, которые, в отличие от аналогичного по некоторым идеям языка ATDL [4] позволяют реализовывать поиск молекулярных систем и фрагментов с водородными связями, что актуально для протеинов и их комплексов. Подсистема хранения данных в этой ИВС, поддерживающая объединение квантовохимических БД и XML-хранилищ в GRID-cреде, не имеет аналогов в мире.

В качестве единого внутреннего формата представления химических данных в ИВС применяется Computational СML (http://cml.sourceforge.net/schema/cmlCore.xsd). Это позволяет интегрировать в ИВС внешние программные средства, базирующиеся на CML, и, в частности, поддерживать тем самым внешние интерфейсы ИВС к другим форматам представления химических данных. Кроме обеспечения открытости ИВС, это отвечает и общей тенденции расширения применения XML, и ориентации на XML средств OGSA-

Page 46: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

354

DAI. Так, запросы на поиск (в т.ч. SQL и XPath) и ответы на них в рамках OGSA-DAI уже являются XML-документами.

Результаты расчетов по квантовохимическим программам необходимо конвертировать в формат Computational CML, для чего разрабатываются соответствующие конверторы (в настоящее время авторами написаны конверторы для Gaussian-03, Mopac и др.).

Разработка данной ИВС поддержана РФФИ, проект 08-07-00390.

1. G.D. Black, K.L. Schuchardt, D.K. Gracio, B. Palmer, "The Extensible Computational Chemistry Environment: A Environment for High Performance Theoretical Chemistry", Proceedings Problem Solving of Computational Science - ICCS 2003 International Conference, S.- Petersburg, Springer Verlag, Berlin, 2003, p. 122-131

2. J. R. Schmidt, W. F. Polik, "WebMO: Web-Based Computational Chemistry", http://www.webmo.net (Hope College, Holland, 2000).

3. E. E. Bolton, Y. Wang, P. A. Thiessen, S. H. Bryant, “PubChem: Integrated Platform of Small Molecules and Biological Activities”, Annual Reports in Computational Chemistry, v.4, 2008, p. 217-241

4. А. Pedretti, L.Villa, G.Vistoli, "Atom-type description language: a universal language to recognize atom types implemented in the VEGA program", Theor. Chem. Acc., v.109, №4 (2003) p. 229-232.

Page 47: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

355

Яковенко П.Н.

КОНТРОЛЬ ДОСТУПА ПРОЦЕССОВ К СЕТЕВЫМ РЕСУРСАМ

НА БАЗЕ АППАРАТНОЙ ВИРТУАЛИЗАЦИИ

Институт системного программирования РАН, г. Москва

[email protected]

Введение Файрвол приложений представляет собой служебную программу,

предназначенную для контроля доступа приложений к сетевым ресурсам и, в частности, к сети Интернет. В отличие от традиционных аппаратных файрволов, функционирующих на межсетевом и транспортном уровне протокола TCP/IP, файрволы приложений позволяют селективно блокировать доступ к сетевым портам отдельных программ, выполняющихся на компьютере. Такая функциональность является важной для конечного пользователя, поскольку один и тот же порт (например, порт 80, зарезервированный для протокола передачи гипертекста (HTTP) может использоваться различными приложениями, часть из которых является легальными, а часть – вредоносными.

Существующие файрволы приложений (далее файрволы) обладают рядом ограничений, позволяющих квалифицированному злоумышленнику обходить систему защиты. Недостаточная надежность файрволов в целом обусловлена монолитной архитектурой ядра современных массовых операционных систем [1], при которой все программы, выполняющиеся в режиме ядра (т.е. в аппаратном режиме суперпользователя), имеют неограниченный доступ к ресурсам компьютера, в частности ко всем ячейкам физической памяти.

В этой работе мы предлагаем подход построения надежного файрвола, основанный на выполнении операционной системы внутри аппаратной виртуальной машины (ВМ) и реализации механизмов защиты внутри монитора виртуальной машины (гипервизора) [2]. Монитор ВМ выполняется на более высоком аппаратном уровне привилегий по сравнению с операционной системой в ВМ и может отслеживать многие системные события (в частности, исключительные ситуации и обращения к системным вызовам), происходящие внутри ВМ и важные для реализации файрвола. В условиях наличия аппаратной поддержки виртуализации в большинстве современных процессоров семейства x86 предлагаемый подход позволяет реализовать надежный и эффективный файрвол.

Page 48: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

356

Задача построения надежного файрвола приложений Архитектура монолитного ядра, применяемая в большинстве

современных массовых ОС, обуславливает то, что все системные процессы выполняются на максимальном аппаратном уровне привилегий, а значит, могут осуществлять неконтролируемый ядром ОС доступ по записи к любой ячейке физической памяти. Как следствие, любая системная программа может случайно или преднамеренно испортить область памяти, выделенную для другого процесса, как пользовательского, так и системного (в т.ч. самого файрвола).

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

Отметим, что в монолитных ОС к программам, выполняющимся в режиме ядра, относятся также драйверы периферийных устройств, которые являются основным источником ошибок в ядре [3], а значит, основным источником уязвимостей. Уязвимость в ядре ОС крайне опасна, т.к. она может быть использована для выполнения произвольного кода в режиме суперпользователя и осуществления приведенного выше вредоносного воздействия на доверенный процесс.

Для реализации надежного механизма контроля доступа приложений к сетевым ресурсам система защиты должна выполняться на более высоком аппаратном уровне привилегий по сравнению с компонентами ядра ОС. Кроме того, она должна осуществлять «непрерывный» контроль целостности адресного пространства доверенного процесса, при котором любое несанкционированное изменение содержимого памяти процесса не останется незамеченным.

Будем называть файрвол надежным, если он удовлетворяет следующим условиям:

• код и данные файрвола аппаратно защищены от вредоносного воздействия со стороны системных процессов в ядре ОС;

• файрвол разрешает доступ к сетевым ресурсам только явно указанным доверенным пользовательским приложениям;

• файрвол защищает адресное пространство доверенного процесса и предотвращает несанкционированное изменение потока управления (в т.ч. от кода, работающего в режиме ядра).

Page 49: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

357

Выполнение ОС в виртуальной машине и использование аппаратной поддержки виртуализации, предоставляемой современными процессорами семейства x86, позволяет эффективно реализовать файрвол приложений, удовлетворяющий данным условиям.

Аппаратная виртуальная машина Аппаратная виртуальная машина (ВМ) представляет собой

эффективный изолированный дубликат реальной машины [4] и позволяет выполнять полноценную ОС, не модифицируя ее код. Несколько ВМ могут одновременно выполняются на одной реальной машине под управлением специальной служебной программы - монитора виртуальных машин (гипервизора), который обеспечивает изоляцию ВМ и разделение физических ресурсов между ними.

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

Аппаратная поддержка виртуализации позволяет гипервизору перехватывать обращения процессов к системным вызовам. Кроме того, гипервизор полностью контролирует отображение линейных адресов памяти ВМ на физические ячейки памяти посредством теневых таблиц приписки [5]. Теневые таблицы реализуют второй уровень трансляции виртуальных адресов и тем самым позволяют контролировать адресную трансляцию без вмешательства в трансляцию, выполняемую ОС в ВМ.

Архитектура надежного файрвола приложений Реализация надежного файрвола основана на разделении

полномочий по управлению ресурсами между двумя одновременно выполняющимися виртуальными машинами [6] – вычислительной и коммуникационной (Рис.1). Вычислительная машина является основной; в ней пользователь запускает свои программы и обрабатывает данные. Во время запуска этой ВМ гипервизор отключает ей доступ к сетевому интерфейсу, поэтому любая попытка установить сетевое соединение изнутри этой ВМ неминуемо приведет к ошибке.

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

Page 50: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

358

Пользовательская программа устанавливает сетевые соединения и передает данные в сеть посредством системных вызовов. Гипервизор перехватывает выполнение системных вызовов пользовательскими процессами в вычислительной ВМ и удаленно выполняет их в коммуникационной ВМ. Для этого для каждого доверенного процесса в вычислительной ВМ создается сервисный процесс (делегат) в коммуникационной ВМ, от имени которого выполняются системные вызовы. Отметим, что удаленное выполнение системных вызовов происходит прозрачно для пользовательских процессов.

Рис. 1. Архитектура системы защиты

Гипервизор передает на обслуживание в коммуникационную ВМ только сетевые системные вызовы, выполненные доверенными пользовательскими процессами. Аутентификация доверенного процесса производится посредством набора контрольных (хэш) сумм, вычисляемых для каждой виртуальной страницы, занятой исполняемым кодом программы.

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

Page 51: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

359

Защита адресного пространства процесса Вредоносное ПО может использовать доверенные процессы для

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

Для предотвращения первого сценария гипервизор отслеживает все события передачи управления между доверенным процессом и ОС (т.е. переключения контекста в режим ядра и обратно) и выполняет удаленное обслуживание системного вызова только в том случае, если он был инициирован кодом доверенного процесса из пользовательского режима. Для предотвращения второго сценария гипервизор контролирует целостность страниц памяти в течение всего времени, пока выполнение процесса было приостановлено для обслуживания прерывания или другого системного события, а также проверяет корректность адреса возврата, на который ОС передает управление после окончания обработки события и передаче управления процессу.

Гипервизор полностью контролирует работу механизма виртуальной памяти, поэтому простым решением защиты памяти процесса было бы использовать флаг «только чтение» в тех записях теневых таблиц приписки, которые соответствуют страницам памяти доверенного процесса. Флаг устанавливается, когда выполнение процесса прерывается, и восстанавливается при возврате ему управления. К сожалению все современные ОС активно используют механизм подкачки, а это значит, что ОС может легально использовать одну и ту же физическую страницу для разных процессов.

Для предотвращения порчи памяти в условиях работающего механизма подкачки гипервизор отслеживает доступ по записи к физическим страницам, выделенным ОС для доверенного процесса, выполняемый из любого контекста [7]. Если чужой процесс выполняет запись в такую страницу, то гипервизор вычисляет ее контрольную сумму (до модификации) и сохраняет ее в защищенной области памяти с указанием адреса виртуальной страницы в пространстве доверенного процесса, отображенной на данную физическую страницу. Когда доверенный процесс после возобновления выполнения повторно обращается к этой виртуальной странице, то гипервизор снова вычисляет контрольную сумму и сравнивает ее с сохраненной (при этом адрес физической страницы может быть другим). Расхождение контрольных сумм свидетельствует о порче памяти процесса.

Заключение В этой работе мы предложили подход к реализации надежного файрвола

приложений, позволяющего избирательно предоставлять доступ к сетевым

Page 52: ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ …ashalimov/doc/MCO09_-_part5.pdf · мо соответственно 2n (1 − (1/ p)) + 3Cn / p +T 0

360

ресурсам (в частности, к сети Интернет) отдельным доверенным пользовательским приложениям.

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

Мы реализовали прототип системы защиты на базе монитора аппаратных виртуальных машин KVM в ОС Linux. Тесты на программе scp, реализующей защищенное копирование файла на удаленный компьютер, показали, что основное замедление производительности программы связано с накладными расходами на переключение процессов - виртуальных машин в среде KVM, а также процессов – делегатов внутри коммуникационной ВМ. В дальнейшем планируется исследовать возможность сокращения накладных расходов на переключение процессов за счет адаптации системы защиты для выполнения на многоядерном центральном процессоре.

1. S. Tanenbaum, J. N. Herder, H. Bos. “Can we make operating systems reliable

and secure?” Computer, 39(5). pp. 44-51, 2006. 2. P. Barham, B. Dragovic, K. Fraser, S. Hand, T. Harris, A. Ho, R. Neugebauer, I.

Pratt, A. Warfield. “Xen and the art of virtualization”. In SOSP ’03: Proceedings of the nineteenth ACM symposium on Operating systems principles, pp. 164–177, New York, NY, USA, 2003.

3. A. Chou, J.-F. Yang, B. Chelf, S. Hallem, D. Engler. “An Empirical Study of Operating Systems Errors”. In Proceedings of the 18th ACM Symposium on OS Principles (SOSP), pp. 73-88, Lake Louise, Alta, Canada, October 2001.

4. G. J. Popek, R. P. Goldberg. “Formal requirements for virtualizable third generation architectures”. Communications of the ACM 17, 7 (July 1974), pp. 412-421.

5. Intel 64 and IA-32 Architectures Software Developers Manual, 2008. 6. D. G. Murray, G. Milos, S. Hand. “Improving Xen security through

disaggregation”. In Proceedings of the Fourth ACM SIGPLAN/SIGOPS international Conference on Virtual Execution Environments, pp. 151-160 (Seattle, WA, USA, March 05 - 07, 2008).

7. I. Burdonov, A. Kosachev, P. Iakovenko. “Virtualization-based separation of privilege: working with sensitive data in untrusted environment”. In Proceedings of the 1st Eurosys Workshop on Virtualization Technology For Dependable Systems, pp. 1-6 (Nuremberg, Germany, March 31 - 31, 2009).