- •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. Спецификация асинхронных интерфейсов взаимодействия процессов.
Int BreakLink (LinkCb_t *Link)
удаляет виртуальный канал. Каждый из процессов партнеров должен удалить свою часть канала.
Пересылка сообщений по раннее созданному каналу осуществляется с помощью синхронных операций:
Int SendLink (LinkCb_t *Link, void *Buf, int Size), int RecvLink (LinkCb_t *Link, void *Buf, int Size)
Синхронные операции
int SendNode (int Processor, int RequestId, byte *Buffer, int Size) и int RecvNode (int Processor, int RequestId, byte *Buffer, int Size),
используемые в случае нерегулярных обменов данными, позволяют обмениваться сообщениями между процессами без создания виртуальных каналов. Для каждой операции каждый процесс-партнер, используя параметр Processor, должен указать номер процессора, процессу которого он хочет передать сообщение или принять сообщение от него. Операции обмена необходимо сопоставить уникальный идентификатор запроса, передаваемый через параметрRequestId. Значение -1, используемое в качествеProcessorилиRequestId, позволяетRecvNodeполучать сообщения от произвольного процессора или с произвольным идентификатором запроса. Это достаточно дорогие по времени функции, поскольку каждый раз (в случае сообщений размером более 1024 байт) они создают виртуальный канал, а затем удаляют его после передачи лишь одного сообщения.
В ОС PARIX имеются синхронные и асинхронные операции обмена сообщениями, работающие с понятиемвиртуальной топологии.
Следующий набор функций, реализует асинхронные обмены сообщениями по каналам виртуальных топологий.
int AInit (int TopId, int Threads, int Size) int ASend (int TopId, int LogLinkId, byte *Data, int Size, int *Result) int ARecv (int TopId, int LogLinkId, byte *Data, int Size, int *Result) int ASync (int TopId, int LogLinkId) int AExit (int TopId)
Асинхронная связь обеспечивает параллельное выполнение вычислений и коммуникаций. Во всех функциях параметр TopIdуказывает топологию (сеть каналов), которая будет использоваться для обмена сообщениями. Перед использованием асинхронной связи, необходимо вызвать функциюAinit, которая инициализирует все структуры данных, используемые операциями обмена сообщениямиASend иArecv. ПараметрыAinitопределяют количественные характеристики асинхронной связи - параметрThreadsзадает максимальное число сопроцессов, которые могут одновременно существовать в процессе асинхронной связи, параметрSize- максимальный размер памяти, который можно использовать для осуществления асинхронной связи. ЕслиSize= 0, то посылаемые данные не будут копироваться во временный буфер. ЕслиAinitвызывается повторно, то она только устанавливает новые значения параметров связи. Для приема и передачи сообщений служат функцииASendиArecv. Завершаться асинхронная связь должна вызовомAExit, которая ждет завершения всех коммуникаций, затем прерывает выполнение сопроцессов, активированных в процессе асинхронной связи, и освобождает память, использовавшуюся при этом. ФункцияASyncтолько ждет завершения всех коммуникаций, но не прерывает выполнение сопроцессов.
Упоминалось еще некое случайное взаимодействие (для сообщений < 1 Кб), осуществляемое функциями:
PutMessage() GetMessage() ExchangeMessage()