Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на экзаменационные вопросы.doc
Скачиваний:
45
Добавлен:
01.05.2014
Размер:
888.32 Кб
Скачать

14. Средства и правила создания параллельных программ на многопроцессорной структуре в средеParix. Пример программы.

Программы для GC систем можно реализовать как с помощью системы программированияINMOS toolset, так и средствами операционной системыPARIXфирмыParsytec. ПакетINMOS toolsetобеспечивает более гибкое программирование, чем ОСPARIX(которая реализована с помощью этого пакета), однако значительно более сложное. В ОСPARIX программист не должен задавать ни отображение сети процессов программы на сеть транспьютеров, ни их топологии. Эффективность выполнения программ, имеющая место наряду с простотой программирования, была достигнута благодаря следующим свойствам ОСPARIX:

  • сеть процессоров имеет фиксированную регулярную топологию,

  • исполняемые программы реализуют SPMDмодель (одна и та же программа, параметризованная относительно идентификатора процессора, выполняет на всех процессорах),

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

В соответствии с SPMD моделью выполнения программ во все транспьютеры ОС PARIXзагружает одну и ту же программу. Однако средства, предоставляемые ОС,позволяют реализовывать программы, поведение которых зависит от исполняющего ее процессора, от его положения в сети. Можно создавать программы универсальные по отношению к количеству имеющихся в их распоряжении процессоров.

См. билет №10.

Кроме того, подпрограмма executeпозволяет динамически подгружать и выполнять новые программы в дополнение к уже выполняющимся. С её помощью можно реализовать произвольный план загрузки процессоров.

Язык Си ОС PARIX, как пакетINMOS toolset, реализует такие понятия параллельного программирования, какСопроцесс, Семафор и Канал.

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

Пример программы

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

15. Физические, виртуальные и локальные линки. Средства и правила создания линков между произвольными процессами в среде parix. Виртуальные и библиотечные топологии.

Физические линкимежду процессорными элементами представлены ниже:

Крайние линки, вероятно, связаны с противоположными соседями (нулевой линк четвертого процессора со вторым линком седьмого процессора).

Локальные линки– это связи между разными потоками (threads) на одном процессоре.

LocalLink()

Виртуальные линки

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

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

LinkCB_t *ConnectLink(int Processor, int RequestId, int *Error).

Или функции:

MakeLink() GetLink()

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

Каждый процесс, используя параметр Processor, должен указать номер процессора, с процессом которого он хочет установить связь. Каналу необходимо сопоставить уникальный идентификатор канала, передаваемый через параметрRequestId. Это значение используется ОС для того, чтобы различать сообщения, передаваемые по разным каналам. Функция возвращает указатель на дескриптор созданного канала.

Функция