Cтраница 3
Как видно из схемы на рис. 8.12, существует два типа параллельных процессоров MIMD: мультипроцессоры и Мультикомпьютеры. [31]
![]() |
Параметризованный информационный граф программы ( а, б и. [32] |
Так, известно, что степень оптимальности загрузки процессоров в кластерах может быть выше, чем в мультикомпьютерах или МРР-системах, именно благодаря согласованности набора выполняемых программ. [33]
В следующих двух разделах мы рассмотрим две популярные системы с передачей сообщений, которые применяются во многих мультикомпьютерах: PVM и MPI. Существуют и другие системы, но эти две наиболее распространенные. [34]
![]() |
Коммутация пакетов с промежуточным хранением. [35] |
У всех узлов многомашинных систем есть плата, на которой расположены все соединения узла с соединительной сетью, удерживающей мультикомпьютер вместе. Архитектура сетевой платы и способ ее соединения с центральным процессором и оперативной памятью оказывают существенное влияние на операционную систему. В данном разделе будут кратко рассмотрены некоторые из этих вопросов. [36]
Разумеется, передача данных между кэшами разных процессоров в SMP-системах выполняется значительно быстрее, чем обмен данными между узлами кластера или мультикомпьютера. Поэтому SMP-архитектуры хорошо масштабируются с целью увеличения производительности при обработке большого числа коротких транзакций, свойственных банковским приложениям. Что же касается удобства масштабирования и уровня готовности, то SMP-системы уступают кластерам. Ограничения в наращивании числа процессоров обусловлены, прежде всего, наличием общей основной, нераспределенной по процессорам памяти и поддержанием моделей строгой, последовательной или процессорной согласованности. [37]
Для распределенной ОС мультикомпьютер выглядит как виртуальный однопроцессорный ресурс, хотя понятие образа единой системы, поддерживаемого в кластерах программным обеспечением промежуточного уровня, в полной мере к мультикомпьютерам не применимо. [38]
Узлы мультикомпьютера, как правило, не имеют общих структур, кроме сети, обладают высокой степенью автономности и могут состоять из отдельных компьютеров или представлять собой различные комбинации кластеров, SMP -, DSM - и МРР-систем. [39]
Вопрос состоит в том, как выполняется адресация. Так как мультикомпьютеры статичны, с фиксированным числом центральных процессоров, проще всего использовать адреса, состоящие из двух частей: номера центрального процессора и номера процесса или порта на данном центральном процессоре. Тогда каждый центральный процессор может управлять собственными адресами без конфликтов. [40]
Во втором типе параллельной архитектуры каждый процессор имеет свою собственную память, доступную только этому процессору. Такая разработка называется мультикомпьютером или системой с распределенной памятью. [41]
На рис. 8.2 мы показали, что мультикомпьютеры связываются через сети межсоединений. Интересно отметить, что мультикомпьютеры и мультипроцессоры очень сходны в этом отношении, поскольку мультипроцессоры часто содержат несколько модулей памяти, которые также должны быть связаны друг с другом и с процессорами. Следовательно, многое из того, о чем мы будем говорить в этом разделе, применимо к обоим типам систем. [42]
Ниже мы рассмотрим два мультикомпьютера, которые содержат 2048 и 9152 процессора соответственно. Через много лет кто-нибудь сконструирует мультипроцессор, содержащий 9000 узлов, но к тому времени Мультикомпьютеры будут содержать уже 100 000 узлов. [43]
Идея проста: ряд процессоров в мультикомпьютере разделяет общее виртуальное адресное пространство со страничной организацией. Самый простой вариант - когда каждая страница содержится в ОЗУ ровно для одного процессора. На рис. 8.34, а мы видим общее виртуальное адресное пространство, которое состоит из 16 страниц и распространяется на 4 процессора. [44]
Во вторую подкатегорию машин MIMD попадают мультикомпьютеры, которые в отличие от мультипроцессоров не имеют памяти совместного использования на архитектурном уровне. Другими словами, операционная система в процессоре мультикомпьютера не может получить доступ к памяти, относящейся к другому процессору, просто путем выполнения команды LOAD. Ему приходится отправлять сообщение и ждать ответа. Именно способность операционной системы считывать слово из отдаленного модуля памяти с помощью команды LOAD отличает мультипроцессоры от мультикомпьютеров. Как мы уже говорили, даже в мультикомпью-тере пользовательские программы могут обращаться к другим модулям памяти с помощью команд LOAD и STORE, но эту иллюзию создает операционная система, а не аппаратное обеспечение. Разница незначительна, но очень важна. [45]