Команда "шаг" в параллельных отладчиках
Категория реферата: Рефераты по информатике, программированию
Теги реферата: развитие россии реферат, скачать бесплатно конспекты
Добавил(а) на сайт: Olimpiada.
Предыдущая страница реферата | 1 2 3 4 5 6 | Следующая страница реферата
Пример 2. Рассмотрим mpC-программу эквивалентную MPI-программе, приведенной в примере 1.
/* 0*/ #include "mpc.h"
/* 1*/ int [*]main(int argc, char **argv) {
/* 2*/ net SimpleNet(2) w;
/* 3*/ int [w]i;
/* 4*/ [host]i=0;
/* 5*/ [w:I==1]i=[host]i;
/* 6*/ return 0;
/* 7*/ }
Имея объявление сетевого типа, можно объявить идентификатор сетевого объекта этого типа. Например, объявление в строке 2 вводит идентификатор w сетевого объекта состоящего из 2 виртуальных процессоров.
Объект данных, распределенный по некоторой области вычислительного пространства, составляется из обычных (нераспределенных) объектов одного типа, размещенных в процессорных узлах этой области таким образом, что каждый процессорный узел содержит одну и только одну компоненту распределенного объекта. Например, объявление в строке 3 вводит целую переменную i, распределенную по сети w. Конструкция [w] представляет собой спецификатор распределения переменной. В данной программе используются спецификаторы распределения [*] и [host], соответствующие всему вычислительному пространству и хост-процессору соответственно, а также [w:I==1], выделяющий узел сети w с координатой I, равной 1. Отметим, что хост-процессор имеет в этой сети координату 0.
Оператор в строке 4 присваивает компоненте переменной i, расположенной на хост-процессоре, значение 0. Это локальное присваивание.
Присваивание в строке 5 является расширением присваивания языка С. Оно присваивает компоненте переменной i, расположенной на узле сети w с координатой I, равной 1, значение компоненты переменной i, расположенной на хост-процессоре. Это распределенное присваивание.
Компилятор транслирует текст исходной программы на mpC в ANSI C-программу с обращениями к функциям системы поддержки времени выполнения. Используется SPMD-модель целевого кода, когда все процессы, составляющие параллельную программу, выполняют одинаковый код.
Система поддержки времени выполнения управляет вычислительным пространством, которое отображается на некоторое число процессов, выполняющихся на целевой вычислительной машине с распределенной памятью (например, на сети ПК и рабочих станций), а также обеспечивает передачу сообщений. Она полностью инкапсулирует конкретный коммуникационный пакет (в настоящее время, подмножество MPI 1.1) и обеспечивает независимость компилятора от конкретной целевой платформы.
5. Отладчик mpC-программ
mpC Workshop является интегрированной средой разработки и выполнения mpC программ для Windows, разработанной в Институте системного программирования РАН для компании ATS (www.atssoft.com). Он состоит из набора инструментов, поддерживающих все стадии разработки и выполнения mpC-программ, основным из которых является отладчик mpC-программ.
С каждым виртуальным процессором (процессом параллельной программы) отладчик связывает курсор, который указывает на его текущую выполняемую строку. Курсор имеет цвет, который указывает на его статус. Цвета определяются в соответствии со стилем светофора, то есть, зеленые курсоры могут выполнить команду перемещения, желтые могли бы выполнить команду перемещения, но остановлены пользователем и, наконец, красные курсоры не могут выполнить команду перемещения, так как они не закончили один из предыдущих шагов и ожидают синхронизации с другими виртуальными процессорами для его завершения. Курсоры одного цвета, указывающие на одну и ту же строчку, объединяются в составной курсор.
Существует возможность поменять цвет, как у всего составного курсора, так и у некоторых входящих в него курсоров. Можно менять цвет курсора только с желтого на зеленый и наоборот. Красный цвет курсора определяется отладчиком. Далее если это не будет оговорено отдельно, мы не будем делать различия между простым и составным курсором, а также между курсором и виртуальным процессором.
В отладчике mpC принята описанная выше синхронная модель. То есть, отладчик ожидает окончания шага всеми зелеными курсорами. Если отладчик знает, что какой-либо курсор не может закончить текущий шаг по "тривиальной параллельной" причине, он помечает этот курсор красным цветом и не ожидает завершения им последовательного шага на данном шаге параллельной программы. После того, как на каком-то шаге параллельной программы произошло событие, которое позволяет красному курсору закончить незавершенный последовательный шаг, отладчик начинает ожидать его завершения.
Рассмотрим пошаговое выполнение программы из примера 2. Пусть текущая виртуальная параллельная машина состоит из 2 виртуальных процессоров. В начале сессии отладки существует только один курсор зеленого цвета, показывающий на 1-ю строчку.
После первого шага появляется два курсора. Первый с номером 0 соответствует хост-процессору, который должен выполнить оператор в строке 4. Второй с номером 1, соответствует узлу сети w с координатой 1, который должен выполнить оператор в строке 5.
После второго шага курсор с номером 1 остается в той же позиции, но меняет свой цвет, так как он не может выполнить оператор в строке 5 до тех пор, пока его не начнет выполнять хост-процессор.
Рекомендуем скачать другие рефераты по теме: конспект, структура реферата.
Предыдущая страница реферата | 1 2 3 4 5 6 | Следующая страница реферата