
- •31. Характеристики компьютеров параллельного действия
- •32. Степень детализации и ее аналоги в аппаратном обеспечении
- •33. Мультипроцессоры
- •34. Мультикомпьютеры
- •35. Гибридные формы систем параллельного действия
- •36. Сети межсоединений и их компоненты.
- •37. Топология сетей межсоединений, основные характеристики
- •38. Коммутация в сетях межсоединений
- •39. Стратегии переключения каналов
- •40. Алгоритмы выбора маршрута
34. Мультикомпьютеры
Во втором варианте параллельной архитектуры каждый процессор имеет собственную память, доступную только этому процессору. Такая схема называется мультикомпьютером, или системой с распределенной памятью .Отличие мультикомпьютера от мультипроцессора в том, что каждый процессор в имеет собственную локальную память, к которой он может обращаться, выполняя команды LOAD и STORE, но другой процессор с помощью этих команд не может получить доступ к локальной памяти данного процессора. Мультипроцессоры имеют одно физическое адресное пространство, а мультикомпьютеры содержат отдельные физические адресные пространства для каждого процессора.
Процессоры в мультикомпьютере не могут взаимодействовать друг с другом простыми обращениями к общей памяти, они обмениваются сообщениями через коммуникационную сеть. В мультикомпьютере невозможно иметь единое для всех процессоров виртуальное адресное пространство, позволяющее считывать и записывать информацию командами LOAD и STORE.
Мультикомпьютер
из 16 процессоров, каждый из которых
имеет собственную память (а); битовая
карта изображения с рис. 8.15, разделенная
между 16 модулями памяти (б)
Сначала процессору 0 нужно как-то выяснить, какой процессор содержит необходимые ему данные, и послать этому процессору сообщение с запросом копии данных. Затем процессор 0 блокируется до получения ответа. Когда процессор 1 получает сообщение, оно анализируется, после чего затребованные данные передаются обратно. Когда процессор 0 получает ответное сообщение, блокировка снимается, и процессор продолжает работу.
Для взаимодействия между процессорами используются примитивы send и receive. ПО мультикомпьютера имеет более сложную структуру, чем мультипроцессора. Основной проблемой становится правильное распределение данных и их размещение. Это еще одно отличие от мультипроцессора, где размещение данных не влияет на правильность решения задачи, хотя может повлиять на производительность. Мультикомпьютер программировать гораздо сложнее.Возникает вопрос: зачем создавать мультикомпьютеры. Ответ: создать большой мультикомпьютер проще и дешевле, чем мультипроцессор с таким же количеством процессоров. Реализация общей памяти, совместно используемой несколькими сотнями процессоров, - это весьма сложная задача, а разработать мультикомпьютер, содержащий 10 000 процессоров и более, легко.
Дилемма: мультипроцессоры сложно разрабатывать, но легко программировать, а мультикомпьютеры легко строить, но трудно программировать. Постоянно предпринимаются попытки создания гибридных систем. Они привели к осознанию факта, что совместную память можно реализовывать по-разному, каждый вариант будет иметь достоинства и недостатки. Почти все исследования в области параллельных компьютерных архитектур направлены на создание гибридных форм, которые сочетают достоинства обеих систем. Важно добиться масштабируемости, то есть разработать систему, которая будет продолжать исправно работать при добавлении все новых и новых процессоров.