- •1. Анализ современных тенденций развития вычислительных систем. Основные области и особенности применения многопроцессорных вс.
- •2. Классификация многопроцессорных систем. Вс с разделяемой общей памятью. Типовые схемы коммуникационных структур. Примеры.
- •3. Классификация многопроцессорных систем. Вс с разделяемой общей памятью. Машины smp иNuma. Примеры.
- •4. Классификация многопроцессорных систем. Вс с распределенной областью памяти. Примеры.
- •5. Классификация многопроцессорных систем. Матричные системы.
- •6. Классификация многопроцессорных систем. Системы с нетрадиционной структурой. Вс, управляемые потоком данных.
- •7. Классификация многопроцессорных систем. Системы с нетрадиционной структурой. Систолические машины.
- •8. Обобщенная архитектура параллельных систем.
- •9. Использование традиционных микропроцессоров для построения многопроцессорных систем. Микропроцессоры с нетрадиционной архитектурой. Архитектура транспьютера т-805.
- •10. Программная модель parix: статические и динамические возможности. Система индексации процессоров в малтикластереMc-3de. Идентификация процессоров
- •11. Средства и правила создания параллельных программ на одном процессоре. Работа встроенного планировщика.
- •12. Программная модель parix: статические и динамические возможности.
- •13. Основные средства взаимодействия процессов в среде parix. Синхронное и асинхронное взаимодействие процессов. Каналы
- •Int BreakLink (LinkCb_t *Link)
- •Int SendLink (LinkCb_t *Link, void *Buf, int Size), int RecvLink (LinkCb_t *Link, void *Buf, int Size)
- •14. Средства и правила создания параллельных программ на многопроцессорной структуре в средеParix. Пример программы.
- •15. Физические, виртуальные и локальные линки. Средства и правила создания линков между произвольными процессами в среде parix. Виртуальные и библиотечные топологии.
- •Int BreakLink (LinkCb_t *Link)
- •Int SendLink (LinkCb_t *Link, void *Buf, int Size), int RecvLink (LinkCb_t *Link, void *Buf, int Size)
- •Int MakeXxx (int RequestId,
- •Int FreeTop (int TopId),
- •Int AddTop_Data (int TopId, void *Data)
- •Void *GetTopData (int TopId, int *Error)
- •16.Принципы и алгоритм работы планировщика процессов в т-805
- •17. Машинные ресурсы. Проблема ограниченности машинных ресурсов. Единицы работы и управления в вычислительных средах.
- •18. Концепция процесса. Понятия алгоритма и процесса. Объективная потребность введения понятия «процесс».
- •19. Основные проблемы параллельного программирования
- •20. Основные направления решения проблем создания программного продукта с параллельной обработкой информации
- •21. Проблемы планирования, диспетчеризации и масштабирования в параллельном программировании
- •22. Краткая характеристика языка оболочки unix. Основные команды работы с файловой системой. Виды файлов
- •23. Многопользовательская защита информации в среде unix. Категории пользователей и атрибуты доступа к файлам
- •24. Управление доступом к файлам
- •25. Порождение процессов на уровне оболочки и их взаимодействие
- •26. Удаленный доступ и особенности работы в среде parix
- •27. Особенности структуры транспьютерного кластера. Проблема масштабирования
- •28. Глобальное планирование в транспьютерном кластере
- •29. Особенности взаимодействия асинхронных процессов. Информационные и логические связи. Основные механизмы взаимодействия процессов
- •30. Понятие синхропримитива. Синхропримитивы низкого уровня
- •31. Системные средства реализации взаимодействия процессов в среде unix
- •32. Взаимодействие процессов через программный канал. Понятие конвейера команд в ос unix
- •33. Именованный программный канал и взаимодействие процессов в unix. Пример
- •34. Типовые задачи взаимодействия асинхронных процессов. Спецификация дисциплины межпроцессного взаимодействия с использованием сетей Петри
- •35. Задача «о читателях и писателях». Требования адекватности спецификации и предметной интерпретации. Задача «о производителе и потребителе»
- •36. Задача «о курильщиках сигарет». Особенности задачи, используемые синхропримитивы.
- •37. Спецификация асинхронных интерфейсов взаимодействия процессов.
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. Это значение используется ОС для того, чтобы различать сообщения, передаваемые по разным каналам. Функция возвращает указатель на дескриптор созданного канала.
Функция