debugUGr (1158416)

Файл №1158416 debugUGr (Раздаточные материалы)debugUGr (1158416)2019-09-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла

43


AИнститут Прикладной Математики им. М.В.Келдыша

Российская Академия наук

Отладка DVM–программ

Руководство пользователя

Апрель, 2000

Оглавление

1 Введение 4

2 Что такое DVM-программа? 4

3 Типы ошибок в DVM-программе 4

4 Динамический контроль DVM-указаний 5

5 Сравнение результатов выполнения 6

6 Средства накопления и анализ системной трассировки 7

7 Настройка DVM-системы 7

8 Опции конверторов 8

8.1 Опции конверторов, управляющие режимами работы программ 9

8.2 Опции конверторов для динамического отладчика 9

8.3 Опции конверторов для анализа производительности 9

9 Команды DVM-системы 9

9.1 Программы, использующие библиотеки последовательных программ 13

10 Методика отладки DVM-программ 14

10.1 Отладка обычной последовательной программы 14

10.2 Получение отладочных вариантов DVM-программы для последовательного и параллельного выполнения 14

10.3 Выполнение программы в режиме динамического контроля DVM-указаний 14

10.4 Накопление эталонного файла трассировки DVM-программы 15

10.5 Сравнение эталонной трассировки с результатами выполнения параллельной программы на одном процессоре 15

10.6 Сравнение трассировки параллельного выполнения с эталонной 16

10.7 Накопление трассировки параллельной программы 17

10.8 Параллельное выполнение с реальными данными 17

10.9 Оценка объема трассировки 18

10.10 Управление объемом файла трассировки 19

10.11 Запуск программ с нестандартным набором параметров 20

11 Параметры DVM-системы 21

11.1 Параметры динамического контроля 22

11.2 Параметры накопления и сравнения трассировки вычислений 23

11.3 Параметры перенаправления стандартных выходных потоков и управления выводом информационных сообщений системы поддержки 25

11.4 Параметры управления системной трассировкой 27

11.4.1 Включение и выключение трассировки 27

11.4.2 Задание открытых (включенных) потоков трассировки 27

11.4.3 Задание режимов трассировки 28

11.4.4 Управление формой накапливаемой информации 29

11.4.5 Управление механизмами внутреннего самоконтроля системы поддержки, функционирующими при накоплении трассировки 29

11.4.6 Управление выводом дополнительной информации при трассировке некоторых функций системы поддержки в расширенном режиме 30

12 Диагностические сообщения динамического отладчика 31

12.1 Динамический контроль 31

12.2 Накопление и сравнение трассировки 32

13 Структура конфигурационного файла трассировки 33

14 Структура трассировки вычислений 34

15 Сообщения об ошибках системы поддержки 35

15.1 Ошибки запуска и завершения 36

15.2 Ошибки вида «... is not a DVM object» 37

15.3 Ошибки вида «[the object] is not a/the …» 37

15.4 Ошибки вида «… is not a subsystem of the current/parental PS» 38

15.5 Ошибки вида «…was not created by the current subtask» и «…was not started by the current subtask» 38

15.6 Ошибки вида «…has not been aligned/mapped» и «…has already been aligned/mapped»; «…does not exist» и «…already exists» 39

15.7 Ошибки вида «… has already been started»; «… has not been started/completed»; «… the reduction group is empty» 39

15.8 Ошибки индексации и значений 39

15.9 Другие семантические ошибки 40

15.10 Ошибки запроса памяти и количества объектов 40

15.11 Ошибки нижнего уровня передачи сообщений 41

15.12 Ошибки низкоуровневого использования RTL 41

16 Структура файла системной трассировки 41

1Введение

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

Для отладки DVM-программ предлагается следующий подход.

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

2Что такое DVM-программа?

DVM-программа – это один или несколько файлов с исходными текстами на языках C-DVM или F-DVM, имеющие соответственно расширения .cdv и .fdv.

Получение готовой программы (выполняемого файла) осуществляется в три этапа:

  • конвертация C-DVM или F-DVM программы в C- или Fortran-программу с получением одноименного файла (файлов) с расширениями соответственно .c или .f;

  • компиляция полученного на предыдущем этапе файла (файлов) стандартными компиляторами с языков С или Fortran;

  • связывание полученного объектного модуля (модулей) с библиотеками программ, используемых пользователем (если есть), и с библиотекой Lib-DVM – системой поддержки выполнения параллельных DVM-программ.

3Типы ошибок в DVM-программе

DVM-программа может содержать ошибки разного рода. Эти ошибки можно разбить на несколько классов по степени их влияния на работоспособность программы, по легкости выявления и т.д.

В общем случае можно выделить следующие пять классов ошибок:

  1. Ошибки в последовательной программе.

  2. Синтаксические ошибки в DVM-указаниях (неправильная запись оператора, отсутствие скобки и т.д.), а также нарушение статической семантики.

  3. Неправильная последовательность выполнения DVM-указаний или неправильные параметры DVM-указаний.

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

  5. Аварийное завершение параллельного выполнения программы (авосты, зацикливания, зависания) из-за некорректности DVM-указаний и ошибок, не проявляющихся при последовательном выполнении программы.

Ошибки первого класса диагностируются:

  • стандартными компиляторами с языков С или Fortran при компиляции в режиме игнорирования DVM-указаний;

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

Ошибки второго класса диагностируются при конвертации C-DVM или F-DVM программ (см.п.8 и п.9). Список диагностических сообщений приведен в руководствах по использованию компиляторов (конверторов) C-DVM и Fortran-DVM.

Ошибки третьего класса диагностируются библиотекой Lib-DVM при параллельном выполнении программы: функции библиотеки проверяют корректность порядка выполнения DVM-указаний и передаваемых параметров (об ошибках, дигностируемых функциями Lib-DVM, см. в п.15).

Ошибки четвертого класса выявляются DVM-отладчиком при:

  • запуске DVM-программы на одном процессоре в режиме динамического контроля (см.п.4);

  • запуске DVM-программы на одном или нескольких процессорах в режиме сравнения результатов ее параллельного выполнения с эталонными результатами, полученными при ее последовательном выполнении (см.п.5).

Ошибки пятого класса могут быть выявлены при:

  • анализе трассировки вычислений при параллельном выполнении программы (см.п.5);

  • анализе накопленной системной трассировки - трассировки вызовов функций Lib-DVM (см.п.6).

4Динамический контроль DVM-указаний

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

Для динамического контроля программы ее следует сначала скомпилировать в режиме получения отладочного варианта параллельной программы (см.п.8 и п.9).

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

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

  1. Необъявленная зависимость по данным в параллельном цикле.

  2. Использование в параллельном цикле или после выхода из него приватных переменных без их предварительной инициализации.

  3. Запись в переменные, доступные только на чтение.

  4. Использование редукционных переменных после запуска асинхронной редукции, но до ее завершения.

  5. Необъявленный доступ к нелокальным элементам распределенного массива.

  6. Запись в теневые грани массива.

  7. Чтение теневых элементов массива до завершения операции их обновления.

  8. Модификация нелокального элемента распределенного массива в последовательной части программы.

  9. Выход за пределы распределенного массива.

  10. Запись в буфер удаленного доступа.

5Сравнение результатов выполнения

Отсутствие ошибок при динамическом контроле не гарантирует правильной работы параллельной программы по следующим причинам:

  • динамический контроль не проверяет правильность описания редукционных операций;

  • источником ошибок могут быть процедуры, вызываемые из DVM-программ, но написанные на других языках и не подлежащие динамическому контролю;

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

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

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

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

Степенью подробности (а значит и объемом) трассировки можно управлять:

  • при конвертации программы опциями C-DVM и F-DVM конверторов (см.п.8);

  • при выполнении программы с помощью параметров трассировки (см.п.11.2);

  • при выполнении программы с помощью конфигурационного файла трассировки (см.п.10.10).

6Средства накопления и анализ системной трассировки

Системная трассировка (трассировка вызовов функций Lib-DVM) позволяет проследить последовательность вызовов функций, их параметры и времена выполнения. Имеется два основных способа сбора системной трассировки (см.п.11.4):

  • буферизация в оперативной памяти каждого процессора с последующей записью в файл при нормальном завершении программы (запись в файл производится на процессоре ввода-вывода);

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

Степень подробности трассировки управляется параметрами (см.п. 11.4). При этом следует помнить, что для трассировки некоторых часто вызываемых функций библиотеки Lib-DVM она должна быть скомпилирована в специальном режиме, задаваемом переменными периода компиляции. Полный список трассируемых событий приведен в файле events.def в директории dvm_sys/rts/src DVM-системы, в котором имени каждого события сопоставлен его номер.

Трассируются также все информационные сообщения Lib-DVM и все сообщения об обнаруженных ею ошибках.

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

7Настройка DVM-системы

DVM-система настраивается на окружение пользователя в два этапа:

  • перед инсталляцией настраивается файл, запускающий инсталляцию DVM-системы (см. Техническое руководство по установке DVM-системы);

  • после инсталляции, но перед началом работы с задачами пользователя настраивается файл запуска dvm-команд, который предварительно пользователь переписывает в свою рабочую директорию из директории dvm_sys/user DVM-системы.

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

dvmdir

- полное имя (с путем) директории, в которой расположена DVM-система (настраивается автоматически при инсталляции);

dvmpar

- директория и расширение файлов базового набора параметров DVM-системы;

usrpar

- директории и имена (с расширениями) файлов параметров DVM-системы, в которых пользователь может корректировать базовый набор параметров (переменная может содержать несколько значений, разделенных пробелами);

optcconv

- опции C-DVM конвертора;

optfconv

- опции F-DVM конвертора;

optccomp

- вызов и опции стандартного C-компилятора;

optfcomp

- вызов и опции стандартного Fortran-компилятора;

optclink

- опции линковщика C программ;

optflink

- опции линковщика Fortran программ;

dvmlib

- библиотеки системы поддержки DVM-программ;

usrlib

- библиотеки, используемые в программе пользователя;

Pred_sys

- имя конфигурационного файла, описывающего целевую машину (для предиктора);

Pred_vis

- имя визуализатора html-файлов (результатов работы предиктора);

Doc_vis

- имя визуализатора документации;

dvmout

  • включение (on) и отключение (off) вывода сообщений:

  • C-DVM и F-DVM компиляторов,

  • стандартных C и Fortran компиляторов,

  • системы поддержки (устанавливает параметр SysInfoPrint = 1 | 0) (см.п.11.3);

dvmoutfile

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

dvmlog

- включение (1) и отключение (0) протоколирования сеанса работы пользователя (если не задан dvmoutfile, то вывод идет в файл dvm.log);

dvmshow

- включение (1) и отключение (0) вывода на экран всех выполняемых dvm-команд;

dvmsave

- включение (1) и отключение (0) сохранения промежуточных файлов (конвертации, компиляции и т.д.).

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

8Опции конверторов

Опции C-DVM и F-DVM конверторов управляют:

  • режимами работы DVM-программы (последовательный или параллельный);

  • именем выходного (.c или .f) файла.

  • выводом номера версии конвертора и некоторой другой информации;

  • степенью подробности трассируемых динамическим отладчиком данных (см.п.10);

  • разбиением программы на интервалы для анализа ее производительности.

Ниже приводится краткое описание основных опций конверторов, (полное описание всех опций содержится в руководствах по использованию компиляторов C-DVM и F-DVM).

8.1Опции конверторов, управляющие режимами работы программ

-p

- (по умолчанию) получение параллельного варианта программы: обрабатываются все DVM-указания;

-s

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

-o<file>

- имя выходного или .f файла.

-v

- вывод номера версии, имени выходного файла, и т.д.

8.2Опции конверторов для динамического отладчика

-d1

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

-d2

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

-d3

- обеспечивается трассировка модификаций всех данных

-d4

- обеспечивается трассировка чтений и модификаций всех данных

8.3Опции конверторов для анализа производительности

-e1

- интервалами становятся все параллельные циклы и объемлющие их последовательные циклы;

-e2

- интервалами становятся объявленные пользователем последовательности операторов (INTERVAL);

-e3

= e1 + e2;

-e4

= e3+ интервалами становятся все последовательные циклы;

9Команды DVM-системы

Команды DVM-системы имеют следующий формат:

Характеристики

Тип файла документ

Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.

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

Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.

Список файлов учебной работы

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7021
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее