Методы и программные средства организации эффективных вычислений для расчета электронной структуры больших молекулярных систем тема диссертации и автореферата по ВАК РФ 05.13.11, кандидат технических наук Чернецов, Андрей Михайлович

  • Чернецов, Андрей Михайлович
  • кандидат технических науккандидат технических наук
  • 2012, Москва
  • Специальность ВАК РФ05.13.11
  • Количество страниц 183
Чернецов, Андрей Михайлович. Методы и программные средства организации эффективных вычислений для расчета электронной структуры больших молекулярных систем: дис. кандидат технических наук: 05.13.11 - Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей. Москва. 2012. 183 с.

Оглавление диссертации кандидат технических наук Чернецов, Андрей Михайлович

Содержание

Список аббревиатур и сокращений

Введение

1. Анализ и исследование моделей и методов расчета электронной структуры больших молекулярных систем

1.1. Физическая и математическая модели задачи

1.2. Классификация методов расчета

1.3. Строгие одноэлектронные методы расчета электронной структуры

1.4. Упрощенные полуэмпирические методы нулевого дифференциального перекрывания

1.5. Требования к компьютерным ресурсам. Процесс диагонализации симметричных матриц

1.6. Современные методы расчета, альтернативные диагонализации матриц

1.7. Выводы по главе 1

2. Разработка и исследование эффективных алгоритмов и программных средств для расчета матрицы плотности

2.1. Разработка и реализация последовательного алгоритма расчета матрицы плотности на основе матричных полиномов Чебышева

2.2. Оптимизация последовательной программы

2.2.1. Модификация структуры исходных данных

2.2.2. Изменение способов хранения массивов

2.2.3. Оптимизация процессов матричного умножения

Трудоемкость метода Гоедекера-Коломбо

2.3. Параллельный алгоритм расчета матрицы плотности на основе матричных полиномов Чебышева

2.3.1. Использование блочного умножения матриц

2.3.2. Параллельная модификация алгоритма и спецификация параллельной программы

2.4. Эффективные вычисления по методу очистки для матриц общего вида

2.5. Выводы по главе 2

3. Организация эффективных вычислений для обработки данных разреженной структуры

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

3.2. Оценка трудоемкости и эффективности для класса методов очистки

3.2.1. Случай плотных матриц

3.2.2. Случай разреженных матриц

3.3. Особенности расчета разреженной формы фокиана

3.3.1. Обоснование появления разреженности в структуре фокиана

3.3.2. Последовательный алгоритм построения матрицы фокиана

3.3.2. Алгоритм нахождения значений произвольных элементов матрицы фокиана

3.3.4. Алгоритм расчета вкладов в фокиан

3.3.5. Параллельная модификация алгоритма

3.4. Выводы по главе 3

4. Исследование разработанных программных средств расчета

4.1. Постановка проблемы исследования

4.2. Технологии параллельного программирования для реализации разработанных алгоритмов

MPIhPVM

4.2.2. Средства параллельного программирования в математическом пакете MATLAB

4.2.3. Использование средств GPU

4.2.4.Анализ стандартных программных средств параллельного матричного умножения

4.3. Используемые аппаратные ресурсы и программное обеспечение

4.4. Анализ результатов расчетов по последовательной и параллельной программам сборки разреженного фокиана по методу AMI

4.5. Исследование влияния параметров метода Гоедекера-Коломбо на точность решения

4.6. Анализ результатов расчетов для случая плотных матриц

4.6.1. Метод Гоедекера-Коломбо

4.6.2. Метод Пальцера-Манолополиса

4.6.3. Влияние типа межсоединения

4.7. Анализ результатов расчетов для случая разреженных матриц

4.8. Анализ результатов использования многонитевых средств реализаций BLAS для повышения эффективности вычислений

4.9. Использование гибридной модели вычислений {MPI+OpenMP}, а также средств GPU, позволило достичь наилучших показателей эффективности разработанных средств при расчетах реальных молекулярных систем средней размерностиАнализ результатов использования реализаций BLAS на GPU для

повышения эффективности вычислений

4.10. Выводы по главе 4

Заключение

Список используемых источников

Приложение 1. Нестандартные средства параллельного программирования

П1.1. Средства параллельного программирования в графических процессорах

NVIDIA

П1.2. Средства параллельного программирования в пакете MATLAB

Приложение 2. Характеристики используемых в расчетах аппаратных и

программных средств

Приложение 3. Акты внедрения и использования

Список аббревиатур и сокращений

1 .Англоязычные

BLAS Basic Linear Algebra System

MPI Message Passing Interface

MKL Math Kernel Library

SCF Self Consistent Field

PM Palser-Manolopoulos

AMI Austin Model

CPU Central Processor Unit

CPU Graphical Processor Unit

2. Русскоязычные

Метод ССП метод самосогласованного поля

Приближение НДП приближение нулевого дифференциального перекрывания

АО атомная орбиталь

МО молекулярная орбиталь

Л К А О линейная комбинация атомных орбиталей

Рекомендованный список диссертаций по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК

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

Введение

Расчёты электронной структуры гигантских молекул являются одними из самых сложных в современной науке и требуют использования высокопроизводительных вычислительных средств, таких как супер ЭВМ и кластерные системы. Расчёты электронной структуры, в частности, биомолекул (белков, ДНК) и наночастиц, актуальны для ряда областей науки: химии, биохимии, физики конденсированного состояния вещества и др. В практическом плане эти расчёты важны для фармакологии, нанотехнологий, исследований явлений сверхпроводимости, разработки квантовых компьютеров. Перечисленные проблемы являются одними из самых сложных современных задач. Поэтому входят в список "Великого вызова" (Grand Challenge), сформированный национальным научным фондом США, и включающий наиболее значимые научные проблемы, стоящие перед человечеством, для решения которых требуются высокопроизводительные средства

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

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

высокопроизводительных систем, составляет порядка нескольких десятилетий. По мнению специалистов компании Intel компьютер, способный

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

21

время, должен иметь производительность не менее 10 FLOPS, и такая мощность будет достигнута не ранее 2030 года.

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

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

о

случае имеющих асимптотическую сложность расчета 0(N), где N -размерность задачи, пропорциональная числу атомов. Центральным звеном при расчете таких молекулярных систем является решение симметричной задачи на собственные значения. Задача на собственные значения описывается как Ах = Ах, где А - матрица, X - собственное значение, соотвествующее вектору х. Для симметричных матриц это выражение может быть переписано в виде A = QAQT, где столбцы матрицы Q являются ортогональными собственными векторами А, а диагональная матрица Л содержит соответствующие им собственные значения.

Для расчета физико-химических свойств нужны не сами собственные вектора, а матрица плотности Р, являющаяся функцией от них. Недавно были разработаны численные методы прямого нахождения Р (без диагонализации матриц), которые для разреженных матриц имеют сложность расчета 0(N) [2-4].

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

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

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

Для достижения поставленной цели в работе ставятся и решаются следующие основные задачи:

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

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

3. реализация эффективной последовательной программы прямого расчета матрицы плотности Р по методам Гоедекера-Коломбо и Пальцера-Манолополиса в среде ОС Linux;

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

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

6. исследование эффективности разработанных последовательных и

параллельных программных средств.

Научная новизна работы состоит в следующем:

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

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

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

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

Данная диссертационная работа состоит из введения, 4-х глав, заключения, 3-х приложений и списка литературы.

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

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

Представлен, реализован и исследован последовательный алгоритм расчёта матрицы плотности по методу Гоедекера-Коломбо, использующий матричные полиномы Чебышева. Также разрабатывается и реализуется параллельный алгоритм на основе модификации метода пюрификации (метода Пальцера-Манолополиса) без учета специфики портрета матрицы плотности.

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

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

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

В приложении 1 приводится описание средств параллельного программирования в модели CUDA и математическом пакете MATLAB.

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

В приложении 3 представлены копии актов внедрения и использования результатов диссертации.

1. Анализ и исследование моделей и методов расчета электронной структуры больших молекулярных систем

В данной главе рассматриваются физическая и математическая модели задачи расчета электронной структуры молекул. Анализируются существующие методы расчета электронной структуры, приводится их классификация. Выделяются строгие и полуэмпирические методы расчета, сложность которых соответственно 0(1Ч5) и 0(>Г), где N - размерность задачи, а также недавно разработанные современные схемы полуэмпирических методов расчета, имеющие для класса разреженных матриц сложность 0(]Ч).

1.1.Физическая и математическая модели задачи

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

и--Ю"10 м—ч

I

1 15

—н I---10 м

I I

и I

[

Похожие диссертационные работы по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК

Заключение диссертации по теме «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», Чернецов, Андрей Михайлович

4.10. Выводы по главе 4

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

По результатам экспериментов можно сформулировать следующие выводы:

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

2. Результаты экспериментов в разделах 4.4 - 4.9 согласуются с теоретическими оценками разработанных в главах 2 и 3 алгоритмических средств расчета.

3. Для расчетов электронной структуры молекул при представлении данных в виде плотных матриц реализация предложенного параллельного алгоритма по методу Пальцера-Манолополиса обладает лучшими характеристиками ускорения, чем реализация параллельного алгоритма по методу Гоедекера-Коломбо и при этом имеет значительно меньшие требования к памяти. Данный вывод подтверждается экспериментами в разд. 4.6.

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

5. Использование гибридной модели вычислений {MPI+OpenMP}, а также средств GPU, позволило достичь наилучших показателей эффективности разработанных средств при расчетах реальных молекулярных систем средней размерности.

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

7. Программные средства расчета фокиана на основе разработанной модификации метода AMI для разреженных ("по-атомных") структур позволили впервые в России осуществить расчет фокиана для молекулы размером более 56000 атомов.

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

Заключение

В процессе выполнения диссертационной работы были получены следующие результаты:

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

2. Проанализированы различные методы решения данной задачи: строгие (неэмпирические) методы, упрощенные полуэмпирические методы, включая современные методы с прямым расчетом матрицы плотности.

3. В результате анализа, показано, что

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

• строгие методы расчета имеют асимптотическую сложность от

0(]\Г4) и выше, поэтому неприемлемы для расчета больших молекулярных систем, в которых N > 10 .

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

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

4. Составлена сравнительная таблица методов с точки зрения сложности расчетов и наличия последовательной/параллельной реализаций.

5. Разработан параллельный алгоритм расчета матрицы плотности по методу Гоедекера-Коломбо, реализована и экспериментально исследована соответствующая параллельная MPI-программа. Применение стандартов Фортран-90 и MPI обеспечили возможность переноса программы в различные аппаратно-программные платформы.

6. Разработан параллельный алгоритм расчёта для плотных матриц по методу Пальцера-Манолополиса, который реализован средствами Fortran+MPI и для двух способов организации обмена - широковещательной рассылки и двухточечных обменов.

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

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

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

Ю.Разработана схема хранения для разреженного фокиана и предложен последовательный алгоритм расчёта по методу AMI, позволивший рассчитать фокиан молекулы, содержащей более 5*104 атомов.

11 .Разработана параллельная модификация расчёта фокиана методом AMI для разреженных матриц и выполнена ее реализация, показавшая неэффективность данного расчета в рамках модели распределенной памяти.

12.Разработана методика создания параллельных программ для выполнения научных расчетов в среде математического пакета MATLAB, которая была применена для реализации программы по методу Пальцера-Манолополиса.

13. Разработан, реализован и исследован параллельный алгоритм по методу Пальцера-Манолополиса для NVIDIA GPU (CUDA), показавший существенное увеличение производительности расчётов по сравнению с использованием многоядерных процессоров в кластере за счет только эффективного выполнения блочного матричного умножения.

Работа поддержана РФФИ, проекты 01-07-90072, 04-07-90220, 05-07-08031-офи-а, 11-07-00470.

Список литературы диссертационного исследования кандидат технических наук Чернецов, Андрей Михайлович, 2012 год

Список используемых источников

1. Н.Ф. Степанов. Квантовая механика и квантовая химия. М.: Изд-ва "Мир" и "МГУ", 2001,518 с.

2. Roi Baer, Martin Head-Gordon. Chebyshev expansion methods for electronic structure calculations on large molecular systems // J. Chem. Phys., 107(28), 15 December 1997, pp. 10003-10013.

3. S.Goedecker, L.Colombo II Phys. Rev. Letters, 1994, v.73, p. 122.

4. Andrew D. Daniels, Gustavo E. Scuseria. What is the best alternative to diagonalization of the Hamiltonian in large scale semiempirical calculations? // J. Phys. Chem, Volume 110, number 3, 15 January 1999, pp 1321-1328.

5. P. Мак-Вини, Б. Сатклиф. Квантовая механика молекул. М.: "Мир", 1972, 380 с.

6. В. Lisa Pollack, Theresa L. Windus, Wibe A. de Jong, David A. Dixon. Thermodynamic Properties of the C5, C6, and C8 n-Alkanes from ab Initio Electronic Structure Theory // J. Phys. Chem. A, Vol. 109, № 31, 2005.

7. J. Pople, D. Beveridge. Approximate Molecular Orbital Theory, USA, McGraw-Hill, 1970.

8. Полуэмпирические методы расчета электронной структуры, под ред. Дж. Сигала. М.: "Мир", 1980. -Т.1, 327 с.

9. Г.М Жидомиров, А.А. Багатуръянц, И.А. Абронин. Прикладная квантовая химия. М., изд-во "Химия", 1979, 295 с.

10. F.Jensen. Introduction to computational chemistry. 2nd ed., Jonh Wiley&Sons, 2007, 615 pp.

11.А.А Амосов, Ю.А. Дубинский, H.B. Копченова. Вычислительные методы для инженеров. М.: "Высшая школа", 1994, 544 с.

12.Gaussian 94 Workshop Notes. SGI, Inc. and NCSA, Mountain View, Feb. 27 -March 1, 1996.

13.Дж. X. Уилкинсон. Алгебраическая проблема собственных значений. М.: "Наука", главная редакция физ.-мат.- литературы, 1970, 564 с.

14.Дж. X. Уилкинсон. К. Райнш. Справочник алгоритмов на языке Алгол. Линейная алгебра. М.: "Машиностроение", 1976, 390 с.

15.ЬТ. Парлетт. Симметричная проблема собственных значений. Численные методы. М.: "Мир", 1983, 384 с.

1 в.Дж. Голуб, Ч. ВанЛоун. Матричные вычисления. М.: "Мир", 1999, 550 с.

17.Дж. Деммелъ. Вычислительная линейная алгебра. М.: "Мир", 2001, 430 с.

18.B.T.Smith et al. EISPACK Users Guide. SPRINGER-VERLAG, Lecture Notes in Computer Science, vol. 6, 2nd edition, 1976.

19.П.КСуетин. Классические ортогональные многочлены. M.: "Наука", главная редакция физ.-мат.-литературы, 1976, 328 с.

20.http://www.maplesoft.com интернет-ресурс пакета Maple.

21. Д. McWeeny. Rev. Mod. Phys. 32, 335 (1960).

22.A.M.N. Niklasson, C.J. Tymczak, M.Challacombe. //J.Chem.Phys. Trace resetting density matrix purification in 0(N) self-consistent-field theory, v.l 18, N15, p.8611-8620 (2003).

23.ISO/IEC 1539 2nd edition 1991-07-01 Фортран 90: международный стандарт. M., "Финансы и статистика", 1998, 380 с.

24.http://netlib.org/blas/ - интернет-ресурс, содержащий библиотеку bias.

25 .Крис Касперски. Техника оптимизации программ. Эффективное использование памяти. Санкт-Петербург: "BHV-Петербург", 2003, 456 с.

26.0.В. Бартенъев. Фортран для профессионалов. Математическая библиотека IMSL. -Т. 2, М., "Диалог-Мифи", 2001, 320 с.

2 7. http : //netlib. or g/dfftpack - интернет-ресурс, содержащий библиотеку dfftpack.

28. К.Ю. Богачев. Основы параллельного программирования. М.: "Бином", 2003, 342 с.

29. http://netlib.org/atlas - интернет-ресурс, содержащий библиотеку ATLAS

30. http://www.intel.com/software/mkl/index.htm интернет-ресурс, содержащий библиотеку MKL.

31. http://www.cs.utexas.edu/users/flame/goto - интернет-ресурс, содержащий библиотеку GotoBLAS.

32. http://www.cs.utexas.edu/users/flame/ITXGEMM - интернет-ресурс, содержащий библиотеку ITXGEMM.

33.http://www.amd.com/Processors/DevelopWithAMD/0„30_2252_2282,OO.html -интернет-ресурс, содержащий библиотеку ACML.

34. http://www-l.ibm.com/servers/eserver/pseries/library/sp_books/essl.html-интернет-ресурс, описание библиотеки ESSL.

35. О.В. Бартеньев. Фортран для профессионалов. Математическая библиотека IMSL. -Т. 1, М., "Диалог-Мифи", 2000, 448 с.

36. М.Б. Кузьминский, A.C. Мендкович, H.A. Аникин, A.M. Чернецов. Пути модернизации программных и аппаратных кластерных ресурсов для задач вычислительной химии // Высокопроизводительные параллельные вычисления на кластерных системах. Материалы второго международного научно-практического семинара. Издательство Нижегородского госуниверситета, Нижний Новгород, 2002. -С. 169 -174.

37. О.В. Бартеньев. Visual Fortran: новые возможности. М.: "Диалог-Мифи", 1999, 301 с.

38. Р. Тъюарсон. Разреженные матрицы. М.: "Мир", 1977, 192 с.

39. С. Писсанецки. Технология разреженных матриц. М.:"Мир",1988, 412 с.

40. A.M. Чернецов, О.Ю. Шамаева. Характеристики трудоемкости и вычислительной эффективности прямых методов расчета электронной структуры больших молекул // Труды междунар. науч.-техн. конф. "Информационные средства и технологии", М.: Изд. МЭИ, 2008 г., т.2. -С. 98-105.

41. http://www.openmopac.net интернет - ресурс пакета МОР АС.

42. A.M. Чернецов, О.Ю. Шамаева. О параллельной реализации алгоритмов расчета электронной структуры больших молекул // Вестник МЭИ, №3, 2009. -С. 67-71.

43. В. П. Кутепов. Об интеллектуальных компьютерных системах нового поколения //Известия академии наук. Теория систем и управления, N 5, 1996, -С. 92-114.

44. http://www.hpfpc.org/index-E.html- - интернет-ресурс, содержащий описание языка HPF.

45. http://www.mpi-forum.org- интернет-ресурс, содержащий официальное описание MPI.

46. С. Немнюгин, О. Стесик. Параллельное программирование для многопроцессорных вычислительных систем. Санкт-Петербург, "BHV-Петербург", 2002, 400 с.

47. В.Д. Корнеев. Параллельное программирование в MPI. Москва-Ижевск: "Институт компьютерных исследований", 2003, 304 с.

48. http://www.epm.ornl.gov/pvm/ - интернет-ресурс, содержащий описание PVM.

49. http://www.nvidia.ru/page/gpu_computing.html - интернет-ресурс, посвященный NVIDIA США GPU.

50. Ruud van der Pas, Igor Zacharov. Origin Optimization and Parallelization Seminar //Silicon Graphics and Cray Research, Cortaillod, Switzerland April 2729, 1998.

51. B.B. Воеводин, Вл.В. Воеводин. Параллельные вычисления. Санкт-Петербург: "BHV-Петербург", 2002, 608 с.

52. http://www.mosix.org интернет-ресурс, содержащий описание MOSIX.

53. Н.Н. Оленев, Р.В. Печенкин, A.M. Чернецов. Параллельное программирование в MATLAB и его приложения. М.: Издательство ВЦ РАН, 2007, 120 с.

54. A.M. Чернецов. Использование средств MATLAB для организации распределенной обработки // Труды международной конференции "Информатизация инженерного образования", М.:МЭИ, 10-11 апреля 2012 г., -С. 127-130.

55.http://www.mathworks.com/access/helpdesk/help/pdf_doc/distcomp/distcomp.pdf-интернет-ресурс, содержащий описание тулбокса РСТ пакета MATLAB.

56. http://www.mathworks.com/access/helpdesk/help/pdf_doc/mdce/mdce.pdf -интернет-ресурс, содержащий описание тулбокса MDCS пакета MATLAB

57. http://deYeloper.nvidia.com/cublas - интернет-ресурс, содержащий описание библиотеки CUBLAS.

58. http://icl.cs.utk.edu/magma/- интернет-ресурс, содержащий описание библиотеки MAGMA.

59. Sunderland, A.G., Noble, С. J., Burke, KM, Burke, P.G.: A parallel R-matrix program PRMAT for electron-atom and electron-ion scattering calculations. Computer Physics Communications 145, 311-340 (2002).

60. SGI Computational Chemistry Applications Performance Report. Spring 2002, Silicon Graphics, Inc., 2002.

61. http://www.netlib.org/scalapack - интернет-ресурс, содержащий описание библиотеки SCALAPACK.

62. http://www.netlib.org/scalapack/html/pblas__qref.html интернет-ресурс, содержащий описание библиотеки PBLAS.

63. http://www.cs.utexas.edu/plapack интернет-ресурс, содержащий описание библиотеки PLAPACK.

64. http://www.cs.utexas.edu/users/rvdg/software.html интернет-ресурс, содержащий описание библиотек SB_BLAS, SUMMA.

65. A.M. Чернецов. Распараллеливание процесса сборки фокиана // Радиоэлектроника, электротехника и энергетика. Тринадцатая международная научно-техническая конференция студентов и аспирантов, в 3-х т. -Т. 1, М.: МЭИ, 1-2 марта 2007 г. -С. 379-380.

66. М.П. Коношенко. Параллельные вычисления. Учебное пособие по курсу "Вычислительные машины, системы и сети (параллельные вычисления), М.: Издательство МЭИ, 1995, 82 с.

67. В.В. Бобриков, A.M. Чернецов, О.Ю. Шамаева. Распараллеливание квантово-химических расчетов матрицы плотности с использованием полиномов Чебышева // "Международный форум информатизации МФИ-2004. Труды международной конференции "Информационные средства и технологии". -Т. 1, Москва:Янус-К, 12-14 октября 2004 г. -С. 219-222.

68. http://www.myri.eom/myrinet/performance/MPICH-GM-NEW/#pingpong -интернет-ресурс, содержащий результаты тестирования MPI от Myricom.

69. Кузьминский М.Б., Бобриков В.В., Чернецов A.M., Шамаева О.Ю. Распараллеливание в кластере полуэмпирических квантово-химических методов при прямом вычислении матрицы плотности для больших молекулярных систем //Высокопроизводительные параллельные вычисления на кластерных системах. Материалы четвертого международного научно-

практического семинара и всероссийской молодежной школы". Самара-Н. Новгород: Издательство Нижегородского госуниверситета, 2004 -С. 141-144.

70. A.M. Чернецов, О.Ю. Шамаева. Параллельная реализация метода Пальцера-Манолополиса для вычисления матрицы плотности в задачах расчета электронной структуры молекул // Международный форум информатизации МФИ-2005. Труды международной конференции "Информационные средства и технологии". -Т. 2, М.:"Янус-К", 18-20 октября 2005 г. -С. 67-70.

71. A.M. Чернецов. Применение сетевых технологий при распараллеливании задачи прямого расчета матрицы плотности в исследованиях электронной структуры молекул // Радиоэлектроника, электротехника и энергетика. Одиннадцатая международная научно-техническая конференция студентов и аспирантов в 3-х т. -Т. 1, Москва, МЭИ, 1-2 марта 2005 г. -С. 354-355.

72. М.Б. Кузьминский, A.M. Чернецов, О.Ю. Шамаева. Практика использования в кластерах аппаратного и программного обеспечения Infmiband от Mellanox. Распараллеливание в задачах вычислительной химии // Высокопроизводительные параллельные вычисления на кластерных системах. Материалы пятого международного научно-практического семинара и всероссийской молодежной школы. Нижний Новгород: Издательство Нижегородского госуниверситета, 2005. - С. 143-149.

73. http://www.myri.com- интернет-ресурс компании Myricom.

74. http://www.mellanox.com интернет-ресурс компании Mellanox.

75. http://mvapich.cse.ohio-state.edu/benchmarks/ - интернет-ресурс, содержащий результаты тестирования MPI от Mellanox.

7в. A.M. Чернецов, О.Ю. Шамаева. Расчеты разреженной матрицы плотности методом очистки на кластерных системах //Международный форум

информатизации МФИ-2006. Труды международной конференции "Информационные средства и технологии". -Т. 3, М.:"Янус-К", 17-19 октября 2006 г. -С. 155-158.

77. Andrey Chernetsov, Olga Shamayeva. Problems of Parallel Realization of Algorithms of Electronic Structure of Large Molecules //Proceedings of International Conference on Dependability of Computer Systems Depcos-RELCOMEX 2008 Szklarska Poreba, Poland, 26-28 June, pp. 324-331. //IEEE Computer Society.

78. А.М.Чернецов, О.Ю. Шамаева, М.Б. Кузьминский. Распараллеливание в кластерах полуэмпирического квантово-химического метода Пальцера-Манолополиса для вычисления матрицы плотности сверхбольших молекул // Высокопроизводительные параллельные вычисления на кластерных системах. Материалы восьмого международного научно-практического семинара и всероссийской молодежной школы. Казань-Н. Новгород: Издательство Нижегородского госуниверситета, 2008. - С. 347-349.

79. М.Б. Кузьминский, A.M. Чернецов. Измерения производительности GPU NVIDIA С2050 для НРС-приложений // Электронная конференция "Информационно-вычислительные технологии в науке" ИВТН-2011: http://ivtn.ru.

Приложение 1. Нестандартные средства параллельного

программирования

П1.1. Средства параллельного программирования в графических

процессорах NVIDIA

Разработка графических карт началась с графических конвейеров с ограниченным набором функций. Постепенно возможности их программирования все возрастали, и в конце концов компания NVIDIA представила первый GPU (Graphical Processor Unit) [1], или графический процессор. В 1999-2000 годах специалисты в области машинной графики и научные работники в таких сферах, как получение медицинских изображений и электромагнетизм, перешли на GPU для вычислительных приложений общего назначения. Они обнаружили, что высокая производительность вычислений с плавающей точкой графических процессоров значительно ускоряла работу научных приложений. Это стало началом мощного движения, называющегося GPGPU или вычисления общего назначения на GPU.

Но возникла проблема - для GPGPU были необходимы графические языки программирования, такие как OpenCL и Cg, для программирования GPU [2]. Разработчикам приходилось делать научные приложения похожими на графические приложения. Это ограничивало доступность огромной производительности GPU для научных расчетов. Проанализировав ситуацию, компания NVIDIA разработала модификацию GPU, сделав графический процессор полностью программируемым для использования в научных приложениях. Также NVIDIA добавила поддержку высокоуровневых языков, таких как С, С++ и Fortran. Так родилась архитектура CUDA [2] для GPU.

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

Программист сам выбирает средства разработки: языки высокого уровня, такие как С, С++, Fortran, или же API - OpenCL™ и DirectX™-11 Compute.

Сегодня NVIDIA обеспечивает поддержку программирования GPU на С, С++, Fortran, OpenCL и DirectCompute. Набор инструментов для разработки, а также библиотеки и аппаратно-программные решения, доступные разработчикам, показаны на рис. Для программирования GPU первоначально использовался язык С с минимальным набором ключевых слов и расширений. Вскоре была предоставлена поддержка Fortran, OpenCL и т.д.

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

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

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

После нескольких лет эволюции GPU способен обеспечить производительность уровня терафлоп при проведении вычислений с плавающей запятой [3]. В 2006-2007 компания NVIDIA произвела революцию в GPGPU и ускорила вычисления благодаря новой архитектуре массивно параллельных вычислений CUDA. Архитектура CUDA состоит из

сотен процессорных ядер, которые работают в связке, чтобы ускорить обработку данных в задаче.

Главным успехом GPGPU в течение последних нескольких лет стала простота программирования соответствующей модели параллельных вычислений. В данной модели программирования разработчики могут изменить свои приложения и перенаправить обработку требовательных к ресурсам блоков программ на GPU. Остальная часть приложения выполняется на CPU. Для переноса выполнения части программы на GPU требуется изменение кода функции для включения возможностей параллелизма и добавление некоторых ключевых слов, обеспечивающие перенос данных между GPU и CPU. Задача разработчика - задействовать десятки тысяч потоков одновременно. Аппаратное обеспечение GPU контролирует и планирует потоки.

П1.2. Средства параллельного программирования в пакете MATLAB

Рассмотрим технологию параллельных вычислений, реализованную компанией MathWorks с помощью двух взаимосвязанных пакетов расширений (приложений): MATLAB Distributed Computing toolbox [4] и MATLAB Distributed Computing Engine [5]. Технологии параллельного программирования интегрированы и в другие известные математические пакеты, такие как: пакет Maple, начиная с версии 9.5, предлагает toolbox НРС-Grid [6] и пакет Mathematica, который имеет Parallel Computing Toolkit [7,8]. Однако, известный пакет Mathcad даже версии 15 (2010 г.) до сих пор не имеет каких-либо средств для распределенных вычислений.

За последние годы различными научными коллективами были созданы многочисленные пакеты расширений (Toolbox) MATLAB, поддерживающие распределенные вычисления [9]. Эти пакеты в своей реализации опирались на различные парадигмы:

• использование модели передачи сообщений;

• работу с общей памятью;

• использование специальных процедур для обмена данных между последовательными сессиями MATLAB;

• перекомпиляция кода MATLAB на С и создание параллельного кода уже для программ С.

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

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

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

В 2005 г. для того, чтобы занять определенный сегмент рынка инженерного программного обеспечения, предназначенного для программирования распределенных задач, компанией MathWorks были разработаны и выпущены на рынок два новых продукта под названием Parallel (Distributing) Computing Toolbox (PCT) и MATLAB Distributing Computing Server (Engine) (MDCS). Первоначально эти два пакета расширений нельзя было рассматривать отдельно друг от друга, и применялись они только в связке.

Однако с выходом MATLAB 2007а появилась возможность (в случае использования 1 узла до 4 процессов) обойтись только РСТ и так называемым локальным планировщиком. Оба эти toolbox изначально были предназначены для решения одной задачи - увеличения производительности (сокращения времени счета) при использовании нескольких компьютеров, объединенных в сеть, вместо одного.

Введем несколько основных понятий, которые используются в описании тулбоксов MATLAB.

Client - сессия MATLAB, в которой определяются и из которой отправляются задачи. Это сессия MATLAB, в которой обычно работает разработчик-программист. Также распространено название MATLAB клиент.

Client computer - компьютер, на котором запущен MATLAB клиент.

Head node - обычно это узел кластера, предназначенный для запуска job manager и license manager. Часто бывает полезным запускать все сервисные процессы для распределенных вычислений, не связанные с рабочими процессами, на одном компьютере.

Distributed computing - вычисления, производимые с помощью распределенных приложений, запускаемых на нескольких узлах одновременно.

Job - полностью описанная вычислительная операция большой размерности для выполнения в MATLAB, состоящая из набора подзадач.

License Manager - компонент сервера лицензий, который отвечает за проверку и поддержку имеющихся лицензий на ядро/различные toolbox.

Task - подзадача, некоторый сегмент основной задачи. Именно подзадача отправляется на счет worker.

Mdce - служба, которая должна быть запущена на всех машинах, перед тем, как там будут запущены job manager или worker процессы. Это основополагающая среда для запуска всех остальных процессов.

Job Manager - фирменный планировщик The Math Works, это процесс, который образует систему очередей из задач (job) и распределяет подзадачи для workers. Под этим термином понимаются также планировщики, разрабатываемые сторонними фирмами производителями.

Worker - системный процесс MATLAB, который выполняет вычисление подзадач. Также распространенное название - MATLAB worker или worker процесс.

Scheduler - планировщик. Основной функционал заключается в процессе планировки и управления очередями задач, В качестве планировщика может выступать Mathworks job manager, локальный планировщик (распределяет задачи только на 1 узле) или продукты сторонних фирм разработчиков.

В MATLAB имеется встроенный набор функций для передачи сообщений между процессами. Эквиваленты между функциями РСТ системы MATLAB и интерфейса передачи сообщений MPI приведены в табл. П1.1.

Можно заметить, что такие особенности MPI, как работа с различными коммуникаторами, в MATLAB недоступны. Здесь имеется только один коммуникатор - MPI_COMM_WORLD. Механизм тегирования является необязательным, однако он представлен целочисленными тегами в диапазоне

от 0 до 32767. Если не использовать теги, то MATLAB самостоятельно производит тегирование всех рабочих процессов с тегом, равным 0. Отметим, что часто используемая в параллельном программировании операция Sendrecv была реализована только в MDCS версии 3.0. Также реализованы такие функции, как MPI_Reduce с операцией MPI_SUM и подобные ей. За более подробной информацией можно обратиться к стандартной документации по Parallel Computing Toolbox.

Таблица П1.1. Различия и основные функции (сравнение).

Функция/ переменная MATLAB Функция/ переменная MPI

Numlabs MPICommsize(size)

Labindex MPI_Comm_rank(rank, MPICOMMWORLD)

LabBarrierQ MPIB arrier(MPI_COMM_ W ORLD)

shared_data=LabBroadcast(root, buffer) MPI_Bcast(void*buffer, int count, MPI Datatype datatype, int root, MPI COMM WORLD)

LabSend(buf,dest) LabSend(data,dest,tag) MPI_Send(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI COMM WORLD)

data=LabReceive(source,tag) data=LabReceive(' any' ,tag) MPI_Recv(void* buf.int count, MPI_Datatype,int source,int tag, MPICOMMWORLD, MPI_Status * status)

is_data_available=LabProbe(sou rce,tag) MPI_Probe(int source,int tag, MPI_COMM_WORLD,MPI_Status * status)

Рассмотрим применение средств параллельного программирования МАТЬАВ на примере задачи умножения матрицы на вектор:

z = y + Ax, Aemnx",x,y,zeK"

L 1

2 numlabs — 1

Вычисления начинаются с того, что каждый рабочий процесс отправляет доступный ему блок вектора х соседнему (по номеру ГО) процессу. Следующим шагом является получение с помощью функции 1аЪЯесе1уе блока вектора х от соседнего рабочего процесса, который к этому моменту уже отправил его. После получения блока х происходит непосредственное вычисление вектора ук=ук+ Ар гхт, где х - номер доступного блока вектора х. (на каждом шаге, у каждого процесса рабочего процесса определена своя переменная х).

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

function z=par_multiplication(А,х,у) % А - матрица % х,у, z ветор-столбцы % z=Ax+y;

q=mod(n,numlabs);% остаток от деления if q==0 r=n/numlabs;

x=x((labindex-1)*r+l:labindex*r);

y=y((labindex-1)*r+l:labindex*r);

A=A((labindex-1)*r+l:labindex*r,:);

else % делится с остатком

r=(n-q)/numlabs;

if labindex==l

x=x(1:r+q);

y=y(1:r+q) ;

A=A(1:г+q, : ) ;

else

x=x((labindex-1)*r+l+q:labindex*r+q); y=y((labindex-1)*r+l+q:labindex*r+q); A=A((labindex-1)*r+l+q:labindex*r+q,:); end end

for t=l:numlabs if labindex==numlabs

labSend(x,1); % последний сразу отправил первому

else

labSend(x,labindex+1); % остальные отправляют своим

соседям (справа) end

if labindex==l

x=labReceive(numlabs); % первый получил от последнего else

x=labReceive(labindex-1); %остальные получают от своих

соседей (слева) end

tau=labindex-t; if tau<=0 tau=tau+numlabs; end

y=y+A( : , 1+ (tau-1) *r : tau*r) *x; end

z=y;

Начиная с версии 2007a, MATLAB имеет встроенные средства автоматического распараллеливания на многоядерных системах для основных математических операций, реализованных в ядре MATLAB. Например, проведенные расчеты LU-разложения (один из встроенных тестов пакета) на 2-х ядерной системе на базе Intel Xeon 3050 /2.13 ГГц показывают прирост производительности на 5-10% по сравнению с результатами при отключенном режиме автоматического распараллеливания.

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

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

процессов. В таблице П1.2 приведены сравнительные характеристики различных версий.

Таблица П1.2. Сравнение возможностей различных версий МАТЬАВ.

Версия Число рабочих процессов Соответствие с характеристиками процессоров

2006b 1 1-ядерные системы

2007а 4 4-ядерные системы

2009а 8 2-х процессорные 4-ядерные системы

2011b 12 2-х процессорные 6-ядерные системы

Начиная с версии 2008а, МАТ ^АВ поддерживает работу с

используемой системой очередей Torque [10]. Также в этой версии появляется возможность снизить загрузку на клиентскую сессию путем расчетов отдельных скриптов (программ) MATLAB на рабочих процессах MATLAB. Для этого была введена функция пакетного запуска batch. Её целесообразно применять в случаях, когда необходимо быстро ускорить расчет, в алгоритме можно выделить крупные независимые блоки и нет времени на изучение средств параллельного программирования.

В версии 2008А была введена новая для пакета конструкция параллельного программирования - цикл parfor, являющийся параллельной модификацией стандартного цикла for. Оператор parfor полезен в случаях, когда нужно провести много однотипных расчетов, например при моделировании методом Монте-Карло. Итерации цикла считаются независимо в произвольном порядке рабочими процессами. Понятно, что оператор parfor нельзя применять в случаях, когда имеется зависимость по данным между итерациями.

Еще одна конструкция, о которой необходимо упомянуть - это конструкция spmd. Операторы, выполняемые внутри блока spmd, выполняются одновременно во всех рабочих процессах. Синтаксис команды:

spmd [(m,n) ]

<statements>

end spmd

Здесь опциональные параметры m и n- минимальное и максимальное число рабочих процессов, соответственно.

Сегодня наметилась очевидная тенденция включения средств параллельного программирования в другие тулбоксы (toolboxes). Так, средства появились в функциях оптимизации (Optimization Toolbox, Global Optimization Toolbox), в статистике (Statistics Toolbox), экономике (Econometrics Toolbox), обработке изображений (Image Processing Toolbox) и т.д. Финалом явилось включение возможностей в продукт MATLAB Compiler, который теперь позволяет генерировать исполняемый код, способный использовать при запуске до 12 (локальных) процессоров. Помимо расширения функционала ПО, также добавлены возможности использования оборудования. В частности, это касается использования ресурсов графического сопроцессора (GPU). Практически любой современный компьютер с внешним графическим адаптером подходит для с работы GPU.

С ресурсами GPU пакет MATLAB может осуществлять следующие основные действия:

передача данных между данными MATLAB и GPU; выполнение встроенных функций на GPU; выполнение кода MATLAB на GPU; создание ядер из ptx -файлов для выполнения на GPU.

Основные ограничения при работе с GPU изложены в [9]:

использование только определенного набора типов;

- ограничения на работу с комплексными числами;

Для передачи данных из среды MATLAB в GPU и обратно служат следующие команды:

1. для отсылки данных в GPU

G = GpuArray(X) - копирует X в G

2. для получения данных из GPU

М2 = gather (G) - получить в М2 G

3. для создания объектов GPU напрямую, без копирования служит класс методов parallel.gpu.GPUArray.

Над объектами GPUArray можно выполнять большой набор базовых математических функций MATLAB, например тригонометрические операции, операции с матрицами, дискретное преобразование Фурье и т.д. Полный список приведен в [4, 5].

Для определения числа используемых GPU и общего числа GPU служат функции gpuDevice и gpuDeviceCount соответственно.

Лицензирование пакета MATLAB

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

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

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

на пакет MATLAB и необходимые тулбоксы. Отметим, что лицензии на MATLAB бывают:

- индивидуальные;

- групповые;

- сетевые (concurrent).

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

Для работы с терминальным сервером требуется использовать именно сетевые лицензии. Во-вторых, необходимо иметь соответствующую аппаратуру - сервер, на котором собственно и будет работать пакет MATLAB. Учитывая многопользовательскую работу и системные требования пакета [11], конфигурация сервера должна быть достаточно мощной - минимум 4-х ядерный серверный процессор (например, Intel Xeon серии 5600), объем оперативной памяти не менее 8 Гб.

Учитывая вышеизложенное, исходя из объема ОП требуется использовать 64-разрядную версию ОС, обеспечивающую адресацию больших объемов данных. Оптимальным выбором в данном случае будет Windows Server Standard Edition x64.

Для работы системы терминалов от Microsoft требуется:

-серверная операционная система Windows Server 2003/2008/2008 R2,

-лицензии на терминальный доступ к серверу терминалов (Terminal Server CAL),

-наличие на каком-либо сервере (в том числе возможно и на сервере MATLAB) установленной службы лицензирования серверов терминалов Microsoft,

-наличие на каком-либо сервере (в том числе возможно и на сервере MATLAB) службы лицензирования FLEXLM[12], отвечающей за лицензирование пакета MATLAB.

Казалось бы естественным использовать и 64-х разрядную версию MATLAB. Однако здесь есть свой "подводный камень". Для генерации кода некоторыми тулбоксами MATLAB (например, Simulink, Stateflow), а также для создания mex-файлов, требуется наличие компиляторов С/С++. Для платформы Win32 MATLAB содержит встроенный компилятор 1сс [13,14]. Но для архитектуры win64 встроенных компиляторов долгое время не имелось. Производитель предлагал использовать продукцию Microsoft - Microsoft Visual Studio 2005/2008/2010. А данная среда разработки лицензируется по модели "на пользователя", что приводит к необходимости закупки лицензий Visual Studio для всех пользователей, которые будут ее использовать в терминальном режиме. Приятной новостью можно считать то, что начиная с выхода версии R2011b, для обеспечения программирования в среде Win64 теперь достаточно использовать свободно распространяемый пакет Windows 7 SDK v. 7.1.

Отметим также, что вышеизложенная ситуация не уникальна. Так, математический пакет Maple [15] также не содержит встроенного компилятора С/С++ для платформы win64 и требует среды Microsoft Visual Studio.

При использовании сетевых лицензий, следует использовать функционал резервирования (redundant license). Его применение позволяет в некоторой степени застраховаться от случаев внезапных обрывов связи и/или сбоев сервера лицензий.

Рекомендуется использовать в качестве терминального сервера ОС не ниже Windows 2008. Это обусловлено многочисленными улучшениями в области терминального доступа, произошедшими при выходе этой версии по сравнению с предшественницей. Отметим лишь самые важные: решение проблемы удаленной печати (используются универсальные драйвера Easy Print) и использование запуска удаленных приложений RemoteApp.

Список используемых источников

1. http ://www.nvidia.ru/page/gpu_computing.html - интернет-ресурс, посвященный GPU.

2. http://www.nvidia.ru/object/what_is_cuda_new_m.html- интернет-ресурс, посвященный CUDA.

3. http://www.osp.ru/os/2011/06/13009975/ - Статья по архитектуре Fermi NVIDIA.

4. http://www.mathworks.com/access/helpdesk/help/pdf_doc/distcomp/distcomp.pdf-интернет-ресурс, содержащий описание тулбокса РСТ пакета MATLAB.

5. http://www.mathworks.com/access/helpdesk/help/pdf_doc/mdce/mdce.pdf - интернет-ресурс, содержащий описание тулбокса MDCS пакета MATLAB.

6. http://www.maplesoft.com/products/toolboxes/HPCgrid/index.aspx - интернет-ресурс, содержащий описание тулбокса HPC-Grid пакета MAPLE.

7. http://documents.wolfram.com/applications/parallel/ интернет-ресурс, содержащий описание тулбокса Parallel Toolkit пакета Mathematica.

8. http://daugerresearch.com/pooch/mathematica.shtml - интернет-ресурс, содержащий описание тулбокса Pooch MPI пакета Mathematica.

9. http://www.interactivesupercomputing.com/reference/parallelMatlabsurvey.php - интернет-ресурс, содержащий описание различных реализаций параллельного программирования в MATLAB.

10. http://www.openpbs.org - интернет-ресурс, содержащий описание системы Torque.

11. http://www.mathworks.com/support/sysreq/current release/ - интернет-ресурс, содержащий минимальные аппаратные и программные требования для пакета MATLAB.

12. http://www.flexerasoftware.com/products/flexnet-manager.htm - интернет-ресурс, содержащий описание FLEXLM.

13. http://www.mathworks.com/support/compilers/R201 lb/index.html- интернет-ресурс, содержащий список поддерживаемых компиляторов в пакете MATLAB.

14. http://www.cs.virginia.edu/~lcc-win32/ - интернет-ресурс, содержащий описание компилятора 1сс.

15.http://www.maplesoft.com - интернет-ресурс, содержащий описание пакета Maple.

Приложение 2. Характеристики используемых в расчетах аппаратных и программных средств

Для тестирования разработанной и описанной в разделе 2 параллельной программы, реализующей метод Гоедекера-Коломбо, использовалась кластерная система ВЦ РАН. Система построена на восьми двухпроцессорных вычислительных узлах [1]. Узел кластера имеет следующую конфигурацию:

Материнская плата TYAN Thunder 17500 S270 UGN (набор микросхем Intel 7500 с пиковой пропускной способностью системной шины 4.2 Гбайт/с), 2 микропроцессора Xeon, встроенный контроллер Ultra SCSI 160 (материнская плата поддерживает до 12 Гбайт оперативной памяти);

1 Процессоры: 2 процессора Intel Xeon DP 2.6 ГГц, кэш L2 емкостью 512

Кбайт;

Оперативная память: 2x2 Гбайт DDR SDRAM, РС2100, с поддержкой ЕСС.

На кластере установлено следующее программное обеспечение: ОС -RedHat Linux v.73; компилятор - Intel Fortran Compiler v.7.1; библиотека ATLAS - у.3.6.0;библиотека MPI - mpich-gm v. 1.2.4-8; библиотека низкоуровневых коммуникаций gm v. 1.6.4.

В качестве вычислительной сети использована

высокопроизводительная сеть Myrinet 2000 производства фирмы Myricom, Inc [2,3]. Эта специализированная сеть обладает пиковой производительностью 2 Гбит/с (250 Мбайт/с) в одном направлении и имеет время задержки порядка 5 мкс.

Для тестирования метода Гоедекера-Коломбо в среде InfiniBand использовалась 24-процессорная кластерная система на базе МП Intel Xeon 64 DP/3.2 ГГц [4] с программным обеспечением: ОС SuSe Linux Enterprise Server 9.0;библиотека Atlas v. 3.7.1 библиотека MPI MVAPICH v. 0.94; библиотека низкоуровневых взаимодействий Mellanox IB Gold Software v. 1.6.0; Компилятор Intel Fortran Compiler v. 8.1 for EM64T.

Для тестирования разработанной параллельной программы, реализующей метод Пальцера-Манолополиса, использовались: 1. Кластерная система ВЦ РАН со следующим программным обеспечением: ОС - RedHat Linux v. 9; компилятор - Intel Fortran Compiler v. 7.1; библиотека

ATLAS - v.3.6.0; библиотека MPI - mpich-gm v.l.2.5-10; библиотека низкоуровневых коммуникаций gm v.2.0.2.

2. Суперкомпьютер MBC-6000. Основные характеристики суперкомьютера MBC-6000IM [5]: 128 двухпроцессорных узлов (ЦП Itanium 2 /1.6 ГГц, 2 Гб ОП на узел, межсоединения: Myrinet 2000, PCI-X). Использованное программное обеспечение: библиотека Intel Mkl v. 8.0.1 библиотека MPI mpich-gm v. 1.2.6-14b; OC Linux RedHat Advanced Server for IA64; библиотека низкоуровневых взаимодействий gm v. 2.0.24; компилятор Intel Fortran Compiler v. 9.0.

3. Кластер НИУ "МЭИ". Основные характеристики: кластера НИУ "МЭИ":

16 двухпроцессорных узлов (ЦП Opteron Dual Core AMD Opteron(tm) Processor 275 2,2 ГГц, L2 кэш 1 Мб, ОП 4 Гб, Infmiband 10х). Использованное программное обеспечение: библиотека MPI mvapich2 v. 1.6; ОС Linux SuseEnterprise Linux 9; библиотека низкоуровневых взаимодействий ofed v. 1.6;компилятор gfortran 4.5.1 ;ATLAS v. 3.8.4.

4. Для тестирования реализации в MATLAB использовался сервер со следующей конфигурацией: четырехядерный Intel Xeon 5430 /2.66 ГГц, ОП 18 Гб. Использованное программное обеспечение: ОС Windows 2008 R2, MATLAB R2011b (win64).

5. Для тестирования GPU использовалось. Использованная конфигурация сервера:

двухпроцессорный сервер с четырехъядерными микропроцессорами Intel Xeon Е5520/2.3 ГГц (с микроархитектурой Nehalem);GPU Tesla С2050 с 3 Гбайт графической памяти GDDR5. Операционная система: OpenSuSE Linux/x86-64 11.1. Использованы драйвер GPU версии 260.19.26, CUDA-3.2RC2, а также CUDA Computing SDK и CUBLAS, и компилятор PGI Accelerator Fortran версии 11.4.

При тестировании использовались межсоединения Myrinet 2000 и InfiniBand 4Х/12Х. Краткая информация по ним приведена в таблицах П2.1 и П2.2.

Таблица П2.1. Характеристики коммуникационной технологии Myrinet.

Производитель оборудования Myricom, Inc

Показатели производительности Пиковая пропускная способность - 2 Гбит/с, полный дуплекс. В рамках TCP/IP достигаются скорости порядка 1960 Гбит/с (245 Мбайт/с). Латентность -5.71 мкс (для Lanai 7), 2.6-3.2 мкс (для Lanai PCI-X). Myrinet 10G - ЮГбит/с

Программная поддержка Драйвера для Linux (Alpha, х86, PowerPC, UltraSPARC), Macintoch (Mac OS), Windows 2000/XP (x86), Solaris (x86, UltraSPARC) и Tru64 UNIX. GM - интерфейс программирования на нижнем уровне.

Комментарии Myrinet является открытым стандартом. Myricom предлагает широкий выбор сетевого оборудования по сравнительно невысоким ценам. На физическом уровне поддерживаются сетевые среды SAN (System Area Network), LAN (CL-2) и оптоволокно. Технология Myrinet дает высокие возможности масштабирования сети и в настоящее время очень широко используется при построении высокопроизводительных кластеров.

Сетевая технология Муппе! впервые была представлена в 1994 году компанией Мупсот [2].

Узлы в Муппег соединяются друг с другом через коммутатор (до 256 портов). Максимальная длина линий связи варьируется в зависимости от конкретной реализации. Линки между узлами и коммутатором являются полнодуплексными и имеют пропускную способность 250 Мбайт/с по каждому направлению (для новых Муппй 10в эта скорость составляет 1.2 Гбайт/с).

По состоянию на 15 ноября 2005 г. (дата публикации 26-й редакции списка ТОР500) в списке ТОР500 [6] 20.2 % кластерных систем использовали Myrinet. За прошедшие 6 лет (по данным 30 редакции, 11/2011), доля межсоединения Myrinet снизилась более чем в 20 раз и составляет менее 1%.

Объем вычислительных систем на базе Infiniband наоборот, возрос с 5.4 % до 41,8 %.

Таблица П2.2. Характеристики коммуникационной технологии InfiniBand 4Х/10Х.

Производитель оборудования InfiniBand Trade Association [7]

Показатели производитель ности Для 4Х: Пиковая пропускная способность каналов 1 GB/sec, латентность - 7 мксек. Для 12Х: 24 Гб/с, латентность - 1.3 мкс

Программная поддержка MPICH - бесплатная переносимая реализация MPI, mvAPICH - МеИапох.

Комментарии Открытый стандарт, предложенный фирмой Intel. InfiniBand предлагает удалённый прямой доступ в память (remote direct memory access -RDMA), позволяющий доставлять данные непосредственно в память процесса, не вовлекая системные вызовы. Данные могут передаваться 1-о,4-х и 12-ти кратной скоростью. Латентность на коммутаторе InfiniBand составляет 160 наносекунд. Самый известный производитель -МеИапох [8]

Список используемых источников

1. Г.М. Михайлов, М.А. Копытов, Ю.П.Рогов, О.И. Самоваров, А.М.Чернецов. Параллельные вычислительные системы в локальной сети ВЦ РАН. М., Издательство ВЦ РАН, 2003, 75 с.

2. http://www.myri.com- интернет-ресурс компании Мупсот.

3. В.В. Корнеев. Параллельные вычислительные системы. М.: "Нолидж", 1999, 312 с.

4. http://cluster.susu.ru интернет-ресурс ЮРГУ.

5. http://www.jscc.ru/cgi-bin/show.cgi?path=:/hard/mvs6000im.html&type=l - интернет-ресурс, содержащий описание МВС-60001М.

6. http://www.top500.org интернет-ресурс ТОР500.

7. http://www.infinibandta.org интернет-ресурс, содержащий описание спецификации Infiniband.

8. http://www.mellanox.com интернет-ресурс компании МеИапох.

Приложение 3. Акты внедрения и использования

об использовании результатов кандидатской диссертации Чернецова А.М. на тему "Методы и программные средства организации эффективных вычислений для расчета электронной структуры больших молекулярных систем" в научных исследованиях Федерального государственного бюджетного учреждения науки Институт органической химии им. Н.Д. Зелинского Российской академии наук

Настоящий акт составлен в том, что в научных исследованиях лаборатории 50 Института органической химии им. Н.Д. Зелинского РАН при выполнении работ в области молекулярного моделирования, в том числе по проектам РФФИ 01-07-90072-в "Создание высокопроизводительного кластера и распараллеливание программного обеспечения как основа модернизации ресурсов предметно-ориентированного суперкомпьютерного центра" (научный руководитель проекта к.х.н. Кузьминский М.Б.),04-07-90220-в "Создание химически ориентированных высокопроизводительных параллельных ресурсов на базе вычислительных, телекоммуникационных и программных средств нового поколения и ОЫГО-технологии" (научный руководитель проекта к.х.н. Кузьминский М.Б.), № 05-07-08031-офи_а "Создание ОКГО-приложения для квантовохимического докинга, ориентированного на крупномасштабный* компьютерный поиск новых лекарственных средств" (научный руководитель проекта д.х.н. Мендкович А.С.), 11-07-00470 -а "Новые быстродействующие методы и программы моделирования сверхбольших наноструктур аппроксимированным методом

АКТ

функционала плотности на векторных процессорах" (научный руководитель проекта к.х.н. Кузьминский М.Б.), использовались методы, алгоритмы и программные средства, разработанные в кандидатской диссертации Чернецова Андрея Михайловича.

Зав. лаб. 50,

Д.Х.Н.

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

С. н. с. лаб.50,

К.Х.Н.

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

V

Федеральное государственное бюджетное учреждение науки Вычислительный центр им. A.A. Дороднимыиа Российской академии ааук

УТВЕРЖДАЮ Зам. директора ВЦ РАН

119333, г.Москва, ул.Бавялоза, д.40 _ М_____

о внедрении результатов кандидатской диссертационной работы Чернецова Андрея Михайловича

АКТ

Комиссия в составе:

Председатель зам. директора, к. ф.м-н. Михайлов Г.М.,

Члены комиссии: гл. спец. по ИБС Рогов Ю.П., вед. инженер Байкова И.В, с.н.с. к.ф.м-н. Оленев H.H.

составили настоящий акт о том, что результаты диссертационной работы "Методы и программные средства организации эффективных вычислений для расчета электронной структуры больших молекулярных систем", представленной на соискание ученой степени кандидата технических наук, использованы в научно-исследовательской деятельности Федерального государственного бюджетного учреждения науки Вычислительный центр им. A.A. Дородницына Российской академии наук при разработке в виде:

1 Экспериментальных данных по исследованию эффективности реализации параллельных программ в пакете MATLAB в кластерных системах.

2. Методик разработки параллельных программ в пакете MATLAB.

Использование указанных результатов позволяет сократить затраты на проведение научно-исследовательских работ.

Результаты внедрялись при выполнении НИР по программам Президиума РАН № 15 ОМН №3:

Члены комиссии:

Председатель комиссии

¿о, 02, z o:i г

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