fdvmLDr (1158337)
Текст из файла
72
Институт Прикладной Математики им. М.В.Келдыша
Российская Академия Наук
Fortran DVM
Версия 2.0
Описание языка
Апрель, 2001
Содержание
1. Bведение 4
1.1. Модели параллельного программирования 4
1.2. DVM–подход к разработке параллельных программ 6
2. Обзор языка 7
2.1. Модель программирования и модель параллелизма 7
2.2. Синтаксис директив FDVM 7
3. Массивы виртуальных процессоров. Директива PROCESSORS 9
4. Распределение данных 9
4.1. Директивы DISTRIBUTE и REDISTRIBUTE 10
4.1.1. Формат BLOCK 11
4.1.2. Формат GEN_BLOCK 12
4.1.3. Формат WGT_BLOCK 12
4.1.4. Формат * 13
4.1.5. Многомерные распределения 13
4.2. Распределение динамических массивов 13
4.2.1. Динамические массивы в программе на языке Фортран 77 13
4.2.2. Динамические массивы в модели FDVM. Директива POINTER 14
4.2.3. Директива DISTRIBUTE и REDISTRIBUTE для динамических массивов 15
4.3. Распределение через выравнивание 16
4.3.1. Директивы ALIGN и REALIGN 17
4.3.2. Директива TEMPLATE 19
4.3.3. Выравнивание динамических массивов 19
4.4. Директивы DYNAMIC и NEW_VALUE 20
4.5. Распределение по умолчанию 21
5. Распределение вычислений 21
5.1. Параллельные циклы 21
5.1.1. Определение параллельного цикла 21
5.1.2. Распределение витков цикла. Директива PARALLEL 22
5.1.3. Приватные переменные. Спецификация NEW 23
5.1.4. Редукционные операции и переменные. Спецификация REDUCTION 23
5.2. Вычисления вне параллельного цикла 25
6. Cпецификация удаленных данных 26
6.1. Определение удаленных ссылок 26
6.2. Удаленные ссылки типа SHADOW 27
6.2.1. Спецификация массива с теневыми гранями 27
6.2.2. Синхронная спецификация независимых ссылок типа SHADOW для одного цикла 28
6.2.3. Вычисление значений в теневых гранях. Спецификация SHADOW_COMPUTE 29
6.2.4. Спецификация ACROSS зависимых ссылок типа SHADOW для одного цикла 30
6.2.5. Асинхронная спецификация независимых ссылок типа SHADOW 34
6.3. Удаленные ссылки типа REMOTE 36
6.3.1. Директива REMOTE_ACCESS 36
6.3.2. Синхронная спецификация удаленных ссылок типа REMOTE 37
6.3.3. Асинхронная спецификация удаленных ссылок типа REMOTE 37
6.3.4. Асинхронное копирование по ссылкам типа REMOTE 39
6.3.4.1. Цикл и операторы копирования 39
6.3.4.2. Директивы асинхронного копирования 40
6.3.4.2.1. Директива ASYNCID 41
6.3.4.2.2. Директива F90 41
6.3.4.2.3. Директивы ASYNCHRONOUS и END ASYNCHRONOUS 41
6.3.4.2.4. Директива ASYNCWAIT 41
6.4. Удаленные ссылки типа REDUCTION 42
6.4.1. Синхронная спецификация удаленных ссылок типа REDUCTION 42
6.4.2. Асинхронная спецификация удаленных ссылок типа REDUCTION 42
7. Параллелизм задач 44
7.1. Описание массива задач 44
7.2. Отображение задач на процессоры. Директива MAP 44
7.3. Распределение массивов по задачам 44
7.4. Распределение вычислений. Директива TASK_REGION 45
7.5. Локализация данных в задачах 46
7.6. Фрагмент статической многообластной задачи 46
7.7. Фрагмент динамической многообластной задачи 47
8. COMMON и EQUIVALENCE 48
9. Процедуры 49
10. Ввод-вывод 50
11. Совместимость с HPF 51
12. Отличие версии FDVM 2.0 от версии FDVM 1.0 51
Литература 52
Приложение 1. Синтаксис 53
Приложение 2. Примеры программ 64
Пример 1. Алгоритм метода исключения Гаусса 64
Пример 2. Алгоритм Якоби 65
Пример 3. Алгоритм Якоби (асинхронный вариант) 66
Пример 4. Последовательная верхняя релаксация 67
Пример 5. "Красно-черная" последовательная верхняя релаксация 68
Пример 6. Статические задачи (параллельные секции) 69
Пример 7. Динамические задачи (цикл задач) 71
-
Bведение
1.1. Модели параллельного программирования
В настоящее время в области научно-технических расчетов превалируют три модели параллельного программирования: модель передачи сообщений (МПС), модель с общей памятью (МОП) и модель параллелизма по данным (МПД).
Модель передачи сообщений. В модели передачи сообщений каждый процесс имеет собственное локальное адресное пространство. Обработка общих данных и синхронизация осуществляется посредством передачи сообщений. Обобщение и стандартизация различных библиотек передачи сообщений привели к разработке стандарта MPI [1].
Модель с общей памятью. В модели с общей памятью процессы разделяют общее адресное пространство. Так как нет ограничений на использование общих данных, то программист должен явно специфицировать общие данные и упорядочивать доступ к ним с помощью средств синхронизации. В языках высокого уровня логически независимые нити (потоки) вычислений определяются на уровне функциональных задач или витков цикла. Обобщение и стандартизация моделей с общей памятью привели к созданию стандарта OpenMP [2].
Модель параллелизма по данным. В модели параллелизма по данным отсутствует понятие процесса и, как следствие, явная передача сообщений или явная синхронизация. В этой модели данные последовательной программы распределяются по узлам (процессорам) вычислительной системы. Последовательная программа преобразуется компилятором либо в модель передачи сообщений, либо в модель с общей памятью (рис.1.1). При этом вычисления распределяются по правилу собственных вычислений: каждый процессор выполняет только вычисления собственных данных, т.е. данных, распределенных на этот процессор.
По сравнению с двумя предыдущими моделями МПД имеет явные преимущества. Эта модель освобождает программиста от рутинной и трудоемкой работы по распределению глобальных массивов на локальные массивы процессов, по управлению передачей сообщений и синхронизации доступа к общим данным. Однако область применения этой модели является предметом исследований. Результаты этих исследований показывают, что эффективность многих алгоритмов научно-технических расчетов в модели МПД сравнима с эффективностью реализации в моделях МПС и МОП.
Первой попыткой стандартизации МПД для научно-технических расчетов явилась разработка HPF1 [3]. Стандартизация моделей МПС и МОП проводилась на базе обобщения большого опыта реализации и практического применения этих моделей. Стандарт HPF1 разрабатывался на базе теоретических исследований и 2-3 экспериментальных реализаций. Кроме этого, стандарт базировался на полной автоматизации распараллеливания вычислений и синхронизации работы с общими данными. Первые реализации HPF1 показали неэффективность стандарта для современных методов вычислений (в частности, для нерегулярных вычислений). В следующей версии стандарта HPF2 [4] сделан шаг в сторону «ручного» управления эффективностью параллельного выполнения. В частности, определены средства распределения вычислений и спецификации общих редукционных переменных.
|
| ||||||
|
| ||||||
|
| ||||||
|
| ||||||
|
| ||||||
|
| данные | данные | данные | |||
| директивы распределения данных | ||||||
| Модель передачи сообщений | Модель с общей памятью | |||||||||||||||||||||||||||||||||||
| библиотека | библиотека | |||||||||||||||||||||||||||||||||||
|
| передачи сообщений | синхронизации | ||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||
| процесс | процесс | процесс | процесс | процесс | процесс | |||||||||||||||||||||||||||||||
| данные | данные | данные | данные | |||||||||||||||||||||||||||||||||
Рис.1.1. Три модели параллельного программирования
1.2. DVM–подход к разработке параллельных программ
DVM-система предоставляет единый комплекс средств для разработки параллельных программ научно-технических расчетов на языках Си и Фортран 77.
Модель параллелизма DVM. Модель параллелизма DVM базируется на модели параллелизма по данным. Аббревиатура DVM отражает два названия модели: распределенная виртуальная память (Distributed Virtual Memory) и распределенная виртуальная машина (Distributed Virtual Mashine). Эти два названия указывают на адаптацию модели DVM как для систем с общей памятью, так и для систем с распределенной памятью. Высокоуровневая модель DVM позволяет не только снизить трудоемкость разработки параллельных программ, но и определяет единую формализованную базу для систем поддержки выполнения, отладки, оценки и прогноза производительности.
Языки и компиляторы. В отличие от стандарта HPF в системе DVM не ставилась задача полной автоматизации распараллеливания вычислений и синхронизации работы с общими данными. С помощью высокоуровневых спецификаций программист полностью управляет эффективностью выполнения параллельной программы. С другой стороны, при проектировании и развитии языка Fortran DVM отслеживалась совместимость с подмножеством стандартов HPF1 и HPF2.
Единая модель параллелизма встроена в языки Си и Фортран 77 на базе конструкций, которые “невидимы” для стандартных компиляторов, что позволяет иметь один экземпляр программы для последовательного и параллельного выполнения. Компиляторы с языков C‑DVM и Fortran DVM переводят DVM-программу в программу на соответствующем языке (Си или Фортран 77) с вызовами функций системы поддержки параллельного выполнения. Поэтому единственным требованием к параллельной системе является наличие компиляторов с языков Си и Фортран 77.
Технология выполнения и отладки. Единая модель параллелизма позволяет иметь для двух языков единую систему поддержки выполнения и, как следствие, единую систему отладки, анализа и прогноза производительности. Выполнение и отладка DVM-программ может осуществляться в следующих режимах:
-
Последовательное выполнение и отладка средствами стандартных компиляторов с языков Си и Фортран 77.
-
Псевдо-параллельное выполнение на рабочей станции (среда WINDOWS и UNIX).
-
Параллельное выполнение на параллельной ЭВМ.
При псевдо-параллельном и параллельном выполнении возможны следующие режимы отладки:
-
автоматическая проверка правильности директив параллелизма;
-
трассировка и сравнение результатов параллельного и последовательного выполнения;
-
накопление и визуализация трассировки данных;
-
накопление данных о производительности и прогноз производительности параллельного выполнения.
2. Обзор языка
2.1. Модель программирования и модель параллелизма
Язык Fortran DVM (FDVM) представляет собой язык Фортран 77 [5], расширенный спецификациями параллелизма. Эти спецификации оформлены в виде специальных комментариев, которые называются директивами. Директивы FDVM можно условно разделить на три подмножества:
-
Распределение данных (разделы 2, 3, 4, 8, 9)
-
Распределение вычислений (разделы 5, 7)
-
Спецификация удаленных данных (раздел 6)
Модель параллелизма FDVM базируется на специальной форме параллелизма по данным: одна программа – множество потоков данных (ОПМД). В этой модели одна и та же программа выполняется на каждом процессоре, но каждый процессор выполняет свое подмножество операторов в соответствии с распределением данных.
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.
последовательная программа















