- •Параллельные
- •Мультипроцессоры и мультикомпьютеры
- •Мультипроцессоры
- ••Все процессоры в мультипроцессоре используют единое адресное пространство функционирует только одна копия операционной
- •Мультикомпьютеры
- ••Поскольку процессоры в мультикомпьютере не могут взаимодействовать друг с другом простыми обращениями к
- •Обмен данными
- •Вопрос?
- •Вопрос?
- •Дилемма
- ••Гибридные системы
- •Уровни реализации общей
- ••Уровни, на которых можно реализовать общую память: аппаратная реализация (а); ОС (б); программная
- •параллельных
- •SISD (Single Instruction stream Single Data stream)
- •SIMD (Single Instruction-
- •MISD (Multiple Instruction- stream Single Data-stream)
- •MIMD (Multiple Instruction- stream Multiple Data- stream)
- •Семантика памяти
- •Строгая состоятельность
- •Секвенциальная
- •Пример
- •• Возможные варианты очередности событий
- ••Правила секвенциальной состоятельности не выглядят столь «жестокими», как правила строгой состоятельности
- •Процессорная
- ••Два процессора (1 и 2) начинают три операции записи значений 1А, 1В, 1С
- •Слабая состоятельность
- •Свободная
- ••Чтобы считать или записать совместно используемую переменную, процессор (то есть его программное обеспечение)
- ••Когда начинается следующая операция acquire, производится проверка, все ли предыдущие операции release завершены
- •симметричных
- •Варианты мультипроцессора на
- •Согласованность кэш-памяти
- •Сквозная запись
- •Протокол отложенной записи
- •NUMA-мультипроцессоры
- ••Если время доступа к удаленной памяти не замаскировано кэшированием (кэш отсутствует), такая система
- •NUMA-мультипроцессор Sun Fire
- ••Мультипроцессор Е25К компании Sun Microsystems
- ••Четырехуровневое соединение блоков в Sun Fire E25K.
- •Общая память
- ••Каждый блок памяти (и каждая строка кэша всех микросхем) может находиться в одном
- ••На уровне наборов плат логика слежения обеспечивает каждому процессору возможность сверять поступающие запросы
- ••За счет распределения нагрузки между разными устройствами на разных платах Sun Fire E25K
- •СОМА-мультипроцессоры
- •Вопросы?
Параллельные
компьютерные
архитектуры
Ч.2
Мультипроцессоры и мультикомпьютеры
•В любой параллельной компьютерной системе процессоры, выполняющие разные части единого задания, должны как-то взаимодействовать друг с другом, чтобы обмениваться информацией
•Для обмена информацией предложено и реализовано две стратегии: мультипроцессоры и мультикомпьютеры.
•Ключевое различие между стратегиями состоит в наличии или отсутствии общей памяти
•Это различие сказывается как на конструкции, устройстве и программировании таких систем, так и на их стоимости и размерах
Мультипроцессоры
•Параллельный компьютер, в котором все процессоры совместно используют общую физическую память, называется мультипроцессором, или системой с об- общей памятью
•Два процесса имеют возможность легко обмениваться информацией — для этого один из них просто записывает данные в общую память, а другой их считывает
•Все процессоры в мультипроцессоре используют единое адресное пространство функционирует только одна копия операционной системы
•Организация, в основе которой лежит единая система, и отличает мультипроцессор от мультикомпьютера
•В одних мультипроцессорных системах только определенные процессоры получают доступ к устройствам ввода-вывода, в других - каждый процессор может получить доступ к любому устройству ввода-вывода
•Если все процессоры имеют равный доступ ко всем модулям памяти и всем устройствам ввода-вывода, и между процессорами возможна полная взаимозаменяемость, такой мультипроцессор называется симметричным (Symmetric Multiprocessor, SMP)
Мультикомпьютеры
•Во втором варианте параллельной архитектуры каждый процессор имеет собственную память, доступную только этому процессору
•Такая схема называется мультикомпьютером, или системой с распределенной памятью
•Каждый процессор в мультикомпьютере имеет собственную локальную память, к которой этот процессор может обращаться, но никакой другой процессор не может получить доступ к локальной памяти данного процессора
•Мультипроцессоры имеют одно физическое адресное пространство, разделяемое всеми процессорами, а мультикомпьютеры содержат отдельные физические адресные пространства для каждого процессора
•Поскольку процессоры в мультикомпьютере не могут взаимодействовать друг с другом простыми обращениями к общей памяти, процессоры обмениваются сообщениями через связывающую их коммуникационную сеть
•Примеры мультикомпьютеров - IBM BlueGene/L, Red Storm, кластер Google
Обмен данными
•При отсутствии общей памяти, реализованной аппаратно, предполагается определенная программная структура
•Пример: Сначала процессору 0 нужно как-то выяснить, какой процессор содержит необходимые ему данные, и послать этому процессору сообщение с запросом копии данных затем процессор 0 блокируется до получения ответа когда процессор 1 получает сообщение, оно
программно анализируется, после чего затребованные данные передаются обратно когда процессор 0
получает ответное сообщение, блокировка программно снимается, и процессор продолжает работу
•В мультикомпьютере для взаимодействия между процессорами часто используются примитивы send и receive.
•ПО мультикомпьютера имеет более сложную структуру, чем ПО мультипроцессора
Вопрос?
•Зачем вообще создавать мультикомпьютеры, если мультипроцессоры гораздо проще программировать?
Вопрос?
• Зачем вообще создавать мультикомпьютеры, если мультипроцессоры гораздо проще
программировать?
Ответ
•Создать большой мультикомпьютер проще и дешевле, чем мультипроцессор с таким же количеством процессоров.
•Реализация общей памяти, совместно используемой несколькими сотнями процессоров, — это сложная задача, а разработать мультикомпьютер,
содержащий 10 000 процессоров и более,
Дилемма
•Мультипроцессоры сложно разрабатывать, но легко программировать, а мультикомпьютеры легко строить, но трудно программировать