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

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)

  • Сокеты