- •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. Спецификация асинхронных интерфейсов взаимодействия процессов.
27. Особенности структуры транспьютерного кластера. Проблема масштабирования
Спросить у Красюка…
28. Глобальное планирование в транспьютерном кластере
Хороший вопрос… вообще не понимаю, о чём это…
29. Особенности взаимодействия асинхронных процессов. Информационные и логические связи. Основные механизмы взаимодействия процессов
Обмен данных основан на концепции виртуальных связей между процессорами, которые образуют каналы ``точка-точка'' между любыми процессорами. Набор созданных виртуальных связей задает виртуальную топологию (решетка, конвейер, дерево, гиперкуб). Синхронный канал. Это естественный для архитектуры Parsytec CC тип коммуникационного канала. Процессы, связанные синхронным каналом, синхронизуются при обмене данных: если одна сторона еще не готова к обмену данными, то другая будет ждать готовности. Следующие системные вызовы относятся к синхронным каналам: Send, Recv, Select, SendLink, RecvLink. Синхронная ``случайная'' передача. Это единственный способ передачи данных, при котором не требуется создавать коммуникационный канал. Данные передаются по системным каналам. Однако, при большом размере сообщения библиотечные вызовы автоматически создают виртуальный канал, с целью повышения скорости обмена. Для сообщений данного типа PARIX предоставляет системные вызовы SendNode и ReceiveNode. Асинхронный канал. Такой канал может осуществлять обмен данными не прерывая вычислений на узле. Поэтому канал такого типа улучшает кпд процессора. Прием/передача выполняются с буферизацией как на стороне передатчика, так и на стороне приемника. Следующие системные вызовы обслуживают асинхронные каналы: AInit, ASend, ARecv, ASync, AInfo, AExit
В соответствии с возможностями параллельного компьютера процессы взаимодействуют между собой обычно одним из следующих способов:
Обмен сообщениями (message passing). Посылающий процесс формирует сообщение с заголовком, в котором указывает, какой процессор должен принять сообщение, и передает сообщение в сеть, соединяющую процессоры. Если, как только сообщение было передано в сеть, посылающий процесс продолжает работу, то такой вид отправки сообщения, называется неблокирующим (non-blocking send). Если же посылающий процесс жд§т, пока принимающий процесс не примет сообщение, то такой вид отправки сообщения, называется блокирующим (blocking send). Принимающий процесс должен знать, что ему необходимы данные, и должен указать, что готов получить сообщение, выполнив соответствующую команду при§ма сообщения. Если ожидаемое сообщение еще не поступило, то принимающий процесс приостанавливается до тех пор, пока сообщение не поступит.
Обмен через общую память (Transfers through shared memory). В архитектурах с общедоступной памятью процессы связываются между собой через общую память - посылающий процесс помещает данные в известные ячейки памяти, из которых принимающий процесс может считывать их. При таком обмене сложность представляет процесс обнаружения того, когда безопасно помещать данные, а когда удалять их. Чаще всего для этого используются стандартные методы операционной системы, такие каксемафорыилиблокировкипроцессов. Однако это дорого и сильно усложняет программирование. Некоторые архитектуры предоставляют битызанято/свободно, связанные с каждым словом общей памяти, что обеспечивает легким и высокоэффективный способ синхронизации отправителей и приемников.
Сигналы
Семафоры, мьютексы
Именованные и неименованные программные каналы (pipe и fifo)
Сокеты