Автоматическое отображение программ на языке Фортран на кластеры с графическими процессорами

УДК 004.432

АВТОМАТИЧЕСКОЕ ОТОБРАЖЕНИЕ ПРОГРАММ НА ЯЗЫКЕ ФОРТРАН НА КЛАСТЕРЫ С ГРАФИЧЕСКИМИ ПРОЦЕССОРАМИ1

В.А. Бахтин, М.С. Клинов, А.С. Колганов, В.А. Крюков, Н.В. Поддерюгина, М.Н. Притула

В статье рассматриваются результаты использования системы автоматизации распараллеливания САПФОР для распараллеливания последовательных программ на кластеры с графическими ускорителями, в том числе программ с регулярными зависимостями по данным. Система переводит программу на языке Fortran в программу на языке Fortran DVMH. Полученная программа запускается на кластере. Язык Fortran DVMH, компиляторы для него и средства отладки входят в состав DVM-системы. Рассмотрены проведенные преобразования исходных программ. Получены параллельные программы, использующие различные технологии параллельного программирования. Приведены характеристики полученных текстов. Приведены экспериментальные данные об эффективности выполнения программ на графических и универсальных процессорах кластера К-100.

Ключевые слова: DVM for Heterogeneous systems, Fortran DVMH, гибридные системы с ускорителями, графические процессоры, Fortran, OpenMP.

Введение

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

Изначально система САПФОР [1] была реализована для кластеров с универсальными процессорами, при этом в качестве промежуточного языка программирования использовался язык Fortran DVM. Для мультипроцессора система САПФОР позволяет получить программы на языке Fortran OpenMP. При реализации отображения на графические ускорители в системе САПФОР используется язык Fortran DVMH [2], который представляет собой расширение языка Fortran DVM.

В настоящее время исследуются возможности расширения языка Fortran DVMH для поддержки ускорителей Intel Xeon Phi. Такая преемственность промежуточных языков существенно упрощает разработку систем для отображения последовательных программ на новые архитектуры ЭВМ, при этом многие блоки системы находят новое применение и используются повторно.

В 2012 году были получены результаты распараллеливания при помощи системы САПФОР двух приложений из области гидродинамики на кластер с графическими ускорителями: двумерная и трехмерная задачи о течении несжимаемой жидкости или слабосжимаемого газа около прямоугольной выемки. В этих задачах в качестве математической модели используется гиперболический вариант квазигазодинамической системы [3].

1 Статья рекомендована к публикации программным комитетом Международной суперкомпьютерной конференции "Научный сервис в сети Интернет: многообразие суперкомпьютерных миров 2014".

В ходе данного исследования система САПФОР была опробована на двух приложениях из области лазерных технологий обработки материалов: двумерная и трехмерная задачи моделирования процессов плавления многокомпонентных порошков при селективном лазерном спекании на основе многокомпонентной и многофазной гидродинамической модели [4]. В этих задачах в порошке имеются поры, заполненные газом. В процессе плавления легкоплавкой компоненты порошка образуется жидкость. Будем называть в статье эти задачи Спекание2D и Спекание3D соответственно.

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

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

На данный момент такие преобразования делает пользователь системы САПФОР, а не сама система. При этом подразумевается, что пользователь системы обладает навыками программирования на языке Fortran: либо является автором распараллеливаемой программы, либо специалистом по ее преобразованию. В дальнейшем планируется, что подобные преобразования будут частично или полностью автоматизированы.

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

1. Распараллеливание приложений Спекание2D и Спекание3D при помощи автоматически распараллеливающего компилятора

Рассмотрим процесс распараллеливания.

Для приложения Cne^H№2D у программиста имеется последовательная Fortran-программа из 872 строк, которая подается на вход АРК. В процессе работы компилятора создается файл с информацией о ходе распараллеливания. Эта информация является достаточно подробной, но и в силу этого объемной. Она не представляется удобной для конечного пользователя. Данное исследование проводилось разработчиками системы САПФОР, как следствие они были способны разобраться в объемной диагностике процесса распараллеливания программы. По диагностике были определены причины, по которым циклы программы остались не распараллелены или распараллелены неэффективно. По этим причинам были определены фрагменты программы, которые требовалось изменить в последовательной программе, она была изменена и снова подана на вход АРК.

После изменения программа для приложения Спекание2D стала занимать 1007 строк.

После преобразования текст программы для Спекания3D возрос с 901 строки до 1555 строк.

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

Рассмотрим преобразования одного фрагмента из этих программ. Эти преобразования оказались самыми сложными из тех, с которыми сталкивались авторы статьи (не только на примере этих программ), при подготовке входных программ для АРК.

Речь идет о фрагменте программы, показанной на рис. 1, в котором некоторые детали были опущены (заменены на "...").

С точки зрения распараллеливания во внешнем цикле (по i и по j) есть OUTPUT-зависимость (запись с разных витков в одну ячейку памяти). Ее можно устранить путем заведения дополнительного массива, который будет использоваться для переноса значений, на которые в данном случае надо изменить элемент массива. Дополнительный массив будет привязан своими индексами к значениям переменных цикла на каждом витке. Адресуя его элементы можно брать значения с конкретных витков.

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

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

do j=1,Nz do i=1,Nx do jj =0,1 do ii=0,1 iloc(1)=1-2*ii jloc(1)=0

iloc(2)=0 jloc(2)=1-2*jj

i0=i-1+ii j 0=j-1 + j j do na=1,2 i1=i0+iloc

bs

flx

end do end do

Рис. 1. Подлежащий преобразованию фрагмент исходного кода ^р_агг

^р аггЦ^ ,ii,jj,2) =jloc(2) *^(2)_

Рис. 2. Заполнение дополнительного массива

do j=1,Nz

do i=1,Nx

flx

flx

end do

end do

Рис. 3. Запись в целевой массив

if

Рис. 4. Способ избавления от косвенной индексации

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

рационных переменных циклов на витке. Например, для обращений x(i1,j1) будет использована переменная x_i1_j1, как показано на рис. 4.

Характеристики исходных и преобразованных программ приведены в табл. 1. Под программой с обозначением Fortran АРК подразумевается программа на языке Fortran, подаваемая на вход АРК. Процентное соотношение приведено относительно исходной Fortran-программы.

Таблица 1

Характеристики программ Спекание2D и Спекание3D

Программы Характеристики Fortran Fortran АРК

Спекание2D Общее число строк 872 1007

Добавлено строк - 135

Изменено строк - 23

Спекание3D Общее число строк 901 1555

Добавлено строк - 654

Изменено строк - 91

После распараллеливания приложений с помощью АРК были получены тексты программ на языке Fortran OpenMP, Fortran DVM и Fortran DVMH. Характеристики полученных программ приведены в табл. 2.

Таблица 2

Размер различных версий программ Спекание2D и Спкание3D, в строках

Программы Fortran АРК Fortran OpenMP Fortran DVM Fortran DVMH

Спекание2D 1007 1035 1068 1206

Спекание3D 1555 1617 1648 1845

В табл. 3 и 4 приведены времена выполнения полученных версий программ на одном узле кластера К-100 [6] при использовании различного числа ядер и графических ускорителей^Ри). Для сравнения приведено время работы автоматически распараллеленной программы при помощи компилятора Intel (опция -parallel).

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

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

Таблица 3

Времена выполнения программы Спекание2D (1000x1000, ITMAX=100) на кластере

К-100, в секундах

Последовательная Intel -parallel АРК OpenMP АРК DVM АРК DVMH

1 ядро 19,23 19,72 20,53 25,96 20,16

6 ядер - 20,41 4,79 6,52 5,48

12 ядер - 20,81 3,41 4,49 3,72

1 GPU - - - - 12,03

2 GPU - - - - 10,01

3 GPU - - - - 7,17

Таблица 4

Времена выполнения программы Спекание3D (100x100x100, ITMAX=100) на кластере

К-100, в секундах

Последовательная Intel -parallel АРК OpenMP АРК DVM АРК DVMH

1 ядро 53,01 58,54 50,03 128,75 56,56

6 ядер - 51,05 24,11 25,59 13,61

12 ядер - 50,46 23,80 13,41 8,46

1 GPU - - - - 6,43

2 GPU - - - - 4,94

3 GPU - - - - 4,21

На 1 ядре универсального процессора DVM-варианты программ выполняются медленнее остальных. Например, DVM-вариант программы Спекание3D выполняется в 2.4 раза дольше последовательного варианта. Причина — линеаризация распределенных между процессами массивов, выполняемая компилятором Fortran DVM. Память для элементов таких массивов выделяется системой поддержки выполнения DVM-программ. Для локальной секции массива на каждом процессоре память отводится в соответствии с форматом распределения данных и с учетом теневых граней. Все ссылки к элементам распределенных массивов вида ARRAY(I,J,K) заменяются компилятором на ссылки вида BASE(ARRAY_OFFSET+I+COEFF_ARRAY1*J+COEFF2*K), где BASE - это база, относительно которой адресуются все распределяемые массивы; ARRAY_OFFSET -смещение начала массива относительно базы; COEFF_ARRAY1, COEFF_ARRAY2 -коэффициенты адресации распределенного массива. Такая программа хуже распознается и оптимизируется стандартными Fortran компиляторами.

DVMH-версия программы лишена данного недостатка. Для каждого параллельного цикла компилятор с языка Fortran DVMH гененерирует CUDA-обработчик для вычислений на GPU, а также хост-обработчик для выполнения на универсальных ядрах процессора. Обработчик - подпрограмма, осуществляющая выполнение части параллельного цикла на конкретном устройстве. Распределенные массивы передаются в хост-обработчики как параметры — массивы, перенимающие размер (в формальном параметре вместо верхней границы последней размерности указывается звездочка "*"). Такой подход позволяет не линеаризовать обращения к массивам внутри хост-обработчиков. В результате время работы DVMH-программы на 1 ядре практически совпадает с временем работы последовательной программы.

OpenMP-вариант для приложения Спекание2D выполняется на 1 узле кластера быстрее других вариантов. DVMH-вариант на 1 GPU выполняется быстрее, чем на 1 ядре универсального процессора (например, последовательная программа), но на 3 GPU (1 узел кластера К-100) уступает 12 ядрам универсального процессора (также 1 узел кластера К-100).

Для Спекания3D OpenMP-вариант не самый лучший для ядер универсального процессора, а DVMH-вариант обгоняет на 3-х GPU 12 ядер универсального процессора, тем самым, является самым быстрым вариантом для случая использования 1 узла кластера К-100.

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

Для всех параллельных программ (полученных автоматически через АРК или через распараллеливающий компилятор от Intel) была проверена корректность работы путем сравнения результатов работы программ с последовательным вариантом. Относительная погрешность менее 1*10-9.

2. Распараллеливание программы, содержащей цикл

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

В качестве такой программы взята программа, реализующая метод последовательной верхней релаксации (Successive over-relaxation — программа SOR).

Текст последовательной программы на языке Fortran занимает 48 строк. Без каких-либо изменений он подавался на вход АРК и распараллеливающему компилятору Intel (с опцией -parallel).

При помощи АРК были получены тексты программ на языках Fortran OpenMP, Fortran DVM, Fortran DVMH.

Времена выполнения программ на кластере К-100 приведены в табл. 5. В программе использовались массивы размера 800x800x800 и было выполнено 50 итераций.

Intel-компилятор не ускорил выполнение программы SOR.

OpenMP-вариант программы выполняется на 1 узле кластера K-100 быстрее других вариантов.

DVMH-вариант программы на 1 GPU выполняется почти в 2 раза быстрее, чем лучший вариант на 1 ядре универсального процессора. Лучшее время для DVMH-версии программы дает использование 3-х GPU, по сравнению с использованием 12 ядер универсального процессора.

Таблица 5

Времена выполнения программы SOR на кластере К-100, в секундах

Последовательная Intel -parallel АРК OpenMP АРК DVM АРК DVMH

1 ядро 88,96 89,00 88,98 90,12 89,02

6 ядер - 88,99 15,58 32,59 30,67

12 ядер - 88,99 7,91 22,87 22,47

1 GPU - - - - 48,34

2 GPU - - - - 26,82

3 GPU - - - - 20,33

Заключение

Использование системы автоматизации распараллеливания упрощает процесс разработки программ для современных ЭВМ, многие из которых имеют различного вида вычислительные устройства в своем составе. Особенно в случае автоматизации преобразований. В настоящий момент над последовательными программами требуется выполнить определенные преобразования, которые препятствуют их распараллеливанию системой САПФОР. Эти преобразования не содержат вставок никаких указаний о распараллеливании. В этом плане программа остается последовательной, написанной на языке Fortran.

Получены результаты распараллеливания на кластер с графическими ускорителями двух приложений из области лазерных технологий обработки материалов (Спекание2D и 3D) и программы SOR, которая содержит цикл с регулярными зависимостями по данным между витками. Использование 1 GPU на приложении Спекание2D и SOR дает ускорение на кластере К-100 относительно использования 1 ядра универсального процессора. На приложении Спекание3D использование полученной с помощью системы САПФОР программы на языке Fortran DVMH на графических ускорителях позволяет получить наилучшее время выполнения на 1 узле кластера К-100 относительно вариантов программ, полученных с помощью системы САПФОР на языках Fortran OpenMP, Fortran DVM или полученных компилятором Intel программ в модели OpenMP.

В настоящий момент производится улучшение системы САПФОР для распараллеливания реальных приложений, содержащих циклы с регулярными зависимостями по данным: тесты NAS Parallel Benchmarks LU, BT, SP.

Исследование выполнено при финансовой поддержке грантов РФФИ №13-07-00580, 14-01-00109 и Программ фундаментальных исследований президиума РАН №15, №16 и №18.

Литература

1. Бахтин, В.А. Диалог с программистом в системе автоматизации распараллеливания САПФОР. / В.А. Бахтин, И.Г. Бородич, Н.А. Катаев, М.С. Клинов, Н.В. Ковалева,

B.А. Крюков, Н.В. Поддерюгина. // Вестник Нижегородского университета им. Н.И. Лобачевского. — Н. Новгород: Изд-во ННГУ, 2012. — №5 (2) . — C. 242245.

2. Бахтин, В.А. Расширение DVM-модели параллельного программирования для кластеров с гетерогенными узлами / В.А. Бахтин, М.С. Клинов, В.А. Крюков, Н.В. Поддерюгина, М.Н. Притула, Ю.Л. Сазанов // Вестник Южно-Уральского государственного университета, серия «Математическое моделирование и программирование». — Челябинск: Издательский центр ЮУрГУ, 2012. — № 18 (277), вып. 12 —

C. 82-92.

3. Бахтин, В.А. Распараллеливание с помощью DVM-системы некоторых приложений гидродинамики для кластеров с графическими процессорами / В.А. Бахтин, И.Г. Бородич, Н.А. Катаев, М.С. Клинов, В.А. Крюков, Н.В. Поддерюгина, М.Н. Притула, Ю.Л. Сазанов // Научный сервис в сети Интернет: поиск новых решений: Труды Международной суперкомпьютерной конференции (17-22 сентября 2012 г., г. Новороссийск). — М.: Изд-во МГУ, 2012. — С. 444-450.

4. Низьев, В.Г. Численное моделирование плавления двухкомпонентных порошков при лазерном спекании / В.Г. Низьев, А.В. Колдоба, Ф.Х. Мирзаде, В.Я. Панченко, Ю.А. Повещенко, М.В. Попов // Математическое моделирование. — 2011. — Т. 23, №4. — С. 90-102.

5. Алексахин, В.Ф. Распараллеливание на графические процессоры тестов NAS NPB 3.3.1 на языке Fortran DVMH / В.Ф. Алексахин, В.А. Бахтин, О.Ф. Жукова, А.С. Колганов, В.А. Крюков, Н.В. Поддерюгина, М.Н. Притула, О.А. Савицкая, А.В. Шуберт // Параллельные вычислительные технологии (ПаВТ'2014): труды международной научной конференции (1-3 апреля 2014 г., г. Ростов-на-Дону). — Челябинск: Издательский центр ЮУрГУ, 2014. — C. 30-41.

6. Гибридный вычислительный кластер K-100. URL: http://www.kiam.ru/MVS/ resourses/k100.html (дата обращения 04.08.2014).

Бахтин Владимир Александрович, кандидат физико-математических наук, Институт прикладной математики им. М.В. Келдыша РАН (г. Москва, Российская Федерация), bakhtin@keldysh.ru.

Клинов Максим Сергеевич, кандидат физико-математических наук, Институт прикладной математики им. М.В. Келдыша РАН (г. Москва, Российская Федерация), klinov@keldysh.ru.

Колганов Александр Сергеевич, Институт прикладной математики им. М.В. Келдыша РАН (г. Москва, Российская Федерация), alex-w900i@yandex.ru.

Крюков Виктор Алексеевич, доктор физико-математических наук, профессор, Институт прикладной математики им. М.В. Келдыша РАН (г. Москва, Российская Федерация), krukov@keldysh.ru.

Поддерюгина Наталия Викторовна, кандидат физико-математических наук, Институт прикладной математики им. М.В. Келдыша РАН (г. Москва, Российская Федерация) , konov@keldysh.ru.

Притула Михаил Николаевич, кандидат физико-математических наук, Институт прикладной математики им. М.В. Келдыша РАН (г. Москва, Российская Федерация), pritmick@yandex.ru.

Поступила в редакцию 4 августа 2014 г.

Bulletin of the South Ural State University Series "Computational Mathematics and Software Engineering"

2014, vol. 3, no. 3, pp. 86-96

AUTOMATIC MAPPING OF FORTRAN PROGRAMS ONTO CLUSTERS WITH GRAPHICS PROCESSING UNITS

V.A. Bakhtin, Keldysh Institute of Applied Mathematics Russian Academy of Sciences (Moscow, Russian Federation),

M.S. Klinov, Keldysh Institute of Applied Mathematics Russian Academy of Sciences (Moscow, Russian Federation),

A.S. Kolganov, Keldysh Institute of Applied Mathematics Russian Academy of Sciences (Moscow, Russian Federation),

V.A. Krukov, Keldysh Institute of Applied Mathematics Russian Academy of Sciences (Moscow, Russian Federation),

N. V. Podderyugina, Keldysh Institute of Applied Mathematics Russian Academy of Sciences (Moscow, Russian Federation),

M.N. Pritula, Keldysh Institute of Applied Mathematics Russian Academy of Sciences (Moscow, Russian Federation),

The paper shows results of exploitation of automated parallelization system SAPFOR for sequential programs parallelization for cluster with GPUs, including programs with regular data dependencies. The system translates Fortran program into Fortran DVMH program. Produced program can be executed on cluster. Fortran DVMH language, its compilers and debugging tools are bundled within DVM-system. Performed transformations with original programs are considered. Programs which use a variety of parallel programming technologies are emitted by the system. Source code characteristics are considered. Performance analysis is done on CPUs and GPUs of the K-100 computational cluster.

Keywords: DVM for Heterogeneous systems, Fortran DVMH, hybrid computational systems with accelerators, GPU, Fortran, OpenMP.

References

1. Bakhtin V.A., Borodich I.G., Kataev N.A, Klinov M.S., Kovaleva N.V., Krukov V.A., Podderyugina N.V. Dialog s programmistom v sisteme avtomatizacii rasparallelivania SAPFOR [Dialog with programmer in automated parallelization system SAPFOR]. Vestnik Nizhegorodskogo universiteta im. N.I. Lobachevskogo [Vestnik of Lobachevsky State University of Nizhni Novgorod]. Nizhni Novgorod, Nizhni Novgorod University Press, 2012. No. 5 (2). P. 242-245.

2. Bakhtin V.A., Klinov M.S., Krukov V.A., Podderyugina N.V., Pritula M.N., Saza-nov Y.L. Rasshirenie DVM-modeli parallel'nogo programmirovaniya dlya klasterov s get-erogennymi uzlami [Extension of the DVM parallel programming model for clusters with heterogeneous nodes]. Vestnik Yuzhno-Ural'skogo gosudarstvennogo universiteta, seriya "Matematicheskoe modelirovanie i programmirovanie". Chelyabinsk, Publishing of the South Ural State University, 2012. No. 18 (277), Issue 12. P. 82-92.

3. Bakhtin V.A., Borodich I.G., Kataev N.A., Klinov M.S., Krukov V.A., Podderyugi-na N.V., Pritula M.N., Sazanov Y.L. Rasparallelivanie s pomosch'yu DVM-sistemy nekotoryh prilozheniy gidrodinamiki dlya klasterov s graficheskimi processorami [Paral-lelization of some CFD applications for clusters with graphics processing units using DVM-system]. Nauchniy servis v seti Internet: poisk novyh resheniy: Trudy Mezhdu-narodnoy superkomp'yuternoy konferencii (17-22 sentyabrya 2012, Novorossiysk) [Science service on Internet: search for new decisions: Proceedings of International supercomputer conference (17-22 of September, 2012, Novorossiysk)]. Moscow, Moscow University Press, 2012. P. 444-450.

4. Niziev V.G., Koldoba A.V., Mirzade F.H., Panchenko V.Y., Poveschenko Y.A., Popov M.V. Chislennoe modelirovanie plavleniya dvuhkomponentnyh poroshkov pri lazernom spekanii [Numerical modeling of melting process of two-component powders in laser agglomeration]. Matematicheskoe modelirovanie [Mathematical modeling]. 2011. Vol. 23, No. 4. P. 90-102.

5. Aleksahin V.F., Bakhtin V.A., Zhukova O.F., Kolganov A.S., Krukov V.A., Podderyugi-na N.V., Pritula M.N., Savitskaya O.A., Shubert A.V. Rasparallelivanie na graficheskie processory testov NAS NPB 3.3.1 na yazyke Fortran DVMH [Parallelization of NAS NPB 3.3.1 benchmarks on graphics processing units using Fortran DVMH language]. Parallel'nye vychislitel'nye tehnologii (PaVT'2014): trudy mezhdunarodnoy nauchnoy konferencii (1-3 aprelya 2014, Rostov-na-Donu) [Parallel computing technologies (PaCT'2014): proceedings of international science conference (1-3 of April, 2014, Rostov-on-Don)]. Chelyabinsk, Publishing of the South Ural State University, 2014. P. 30-41.

6. Gibridniy vychislitel'niy klaster K-100 [Hybrid computational cluster K-100]. URL: http://www.kiam.ru/MVS/resourses/k100.html (accessed 04.08.2014).

Received 4 August 2014-