Cтраница 1
![]() |
Схема мультикомпьютера. [1] |
Мультикомпьютеры бывают разных типов и размеров, поэтому очень трудно привести хорошую классификацию. [2]
Однако мультикомпьютеры не имеют совместно используемой памяти на архитектурном уровне. [3]
В мультикомпьютере для взаимодействия между процессорами часто используются примитивы send и receive. Поэтому программное обеспечение мультиком-пьютера имеет более сложную структуру, чем программное обеспечение мультипроцессора. При этом основной проблемой становится правильное разделение данных и разумное их размещение. В мультипроцессоре размещение частей не влияет на правильность выполнения задачи, хотя может повлиять на производительность. [4]
Вторая категория мультикомпьютеров включает рабочие станции, которые связываются с помощью уже имеющейся технологии соединения. [5]
Для программирования мультикомпьютера требуется специальное программное обеспечение ( обычно это библиотеки), чтобы обеспечить связь между процессами и синхронизацию. [6]
Обычно в мультикомпьютере реализуется согласованный сетевой протокол и нет единой очереди выполняющихся процессов. Хотя известны и другие примеры. В отличие от традиционных вычислительных сетей, как локальных ( LAN - local area networks), так и глобальных ( WAN - wide area networks), мультикомпьютер может рассматриваться пользователем как общий ресурс, выполняющий отдельные части его параллельной программы. [7]
Для распределенной ОС мультикомпьютер выглядит как виртуальный однопроцессорный ресурс, хотя понятие образа единой системы, поддерживаемого в кластерах программным обеспечением промежуточного уровня, в полной мере к мультикомпьютерам не применимо. [8]
![]() |
Мультикомпьютер, содержащий 16 процессоров, каждый из которых имеет. [9] |
Поскольку процессоры в мультикомпьютере не могут взаимодействовать друг с другом просто путем чтения из общей памяти и записи в общую память, здесь необходим другой механизм взаимодействия. Они посылают друг другу сообщения, используя сеть межсоединений. [10]
Каждый узел в мультикомпьютере состоит из одного или нескольких процессоров, ОЗУ ( общее для процессоров только данного узла), диска и ( или) других устройств ввода-вывода, а также процессора передачи данных. Используется множество различных топологий, схем коммутации и алгоритмов выбора маршрута. [11]
В результате в мультикомпьютере появилась память совместного использования, согласованная по последовательности. В целях улучшения производительности возможны оптимизации. Первая оптимизация, появившаяся в IVY, - страницы, предназначенные только для чтения, могли присутствовать в нескольких узлах одновременно. В случае ошибки из-за отсутствия страницы в запрашивающую машину посылается копия этой страницы, но оригинал остается на месте, поскольку нет никакой опасности конфликтов. [12]
Возникает вопрос: зачем вообще создавать мультикомпьютеры, если мультипроцессоры гораздо проще запрограммировать. Ответ прост: гораздо проще и дешевле - построить большой мультикомпьютер, чем мультипроцессор с таким же количеством процессоров. Реализация общей памяти, разделяемой несколькими сотнями процессоров, - это весьма сложная задача, а построить мультикомпьютер, содержащий 10 000 процессоров и более, довольно легко. [13]
Во вторую подкатегорию машин MIMD попадают мультикомпьютеры, которые в отличие от мультипроцессоров не имеют памяти совместного использования на архитектурном уровне. Другими словами, операционная система в процессоре мультикомпьютера не может получить доступ к памяти, относящейся к другому процессору, просто путем выполнения команды LOAD. Ему приходится отправлять сообщение и ждать ответа. Именно способность операционной системы считывать слово из отдаленного модуля памяти с помощью команды LOAD отличает мультипроцессоры от мультикомпьютеров. Как мы уже говорили, даже в мультикомпью-тере пользовательские программы могут обращаться к другим модулям памяти с помощью команд LOAD и STORE, но эту иллюзию создает операционная система, а не аппаратное обеспечение. Разница незначительна, но очень важна. [14]
Из наших примеров видно, что мультикомпьютеры можно расширить до гораздо больших размеров, чем мультипроцессоры. Sun Enterprise 10000, где максимальное число процессоров - 64, и NUMA-Q, где максимальное число процессоров - 256, являются представителями больших мультипроцессоров UMA и NUMA соответственно. [15]