ПОД (пособие) (1184372), страница 26
Текст из файла (страница 26)
Однако, многимикритиками подмечено, что в этот класс можно включить и векторно-конвейерные машины,если рассматривать вектор как одно неделимое данное для соответствующей команды. Втаком случае в этот класс попадут и такие системы, как CRAY-1, CYBER 205, машинысемейства FACOM VP и многие другие.Бесспорными представителями класса SIMD считаются матрицы процессоров: ILLIAC IV,ICL DAP, Goodyear Aerospace MPP, Connection Machine 1 и т.п. В таких системах единоеуправляющее устройство контролирует множество процессорных элементов. Каждыйпроцессорный элемент получает от устройства управления в каждый фиксированныймомент времени одинаковую команду и выполняет ее над своими локальными данными.Для классических процессорных матриц никаких вопросов не возникает, однако в этот жекласс можно включить и векторно-конвейерные машины, например, CRAY-1.
В этомслучае каждый элемент вектора надо рассматривать как отдельный элемент потока данных.Класс MIMD чрезвычайно широк, поскольку включает в себя всевозможныемультипроцессорные системы: Cm*, C.mmp, CRAY Y-MP, Denelcor HEP,BBN Butterfly,Intel Paragon, CRAY T3D и многие другие. Интересно то, что если конвейерную обработкурассматривать как выполнение множества команд (операций ступеней конвейера) не надодиночным векторным потоком данных, а над множественным скалярным потоком, то всерассмотренные выше векторно-конвейерные компьютеры можно расположить и в данномклассе.Предложенная схема классификации вплоть до настоящего времени является самойприменяемой при начальной характеристике того или иного компьютера.
Если говорится,что компьютер принадлежит классу SIMD или MIMD, то сразу становится понятнымбазовый принцип его работы, и в некоторых случаях этого бывает достаточно. Однаковидны и явные недостатки. В частности, некоторые заслуживающие внимания архитектуры,например dataflow и векторно--конвейерные машины, четко не вписываются в даннуюклассификацию. Другой недостаток - это чрезмерная заполненность класса MIMD.Необходимо средство, более избирательно систематизирующее архитектуры, которые поФлинну попадают в один класс, но совершенно различны по числу процессоров, природе и78топологии связи между ними, по способу организации памяти и, конечно же, по технологиипрограммирования.Наличие пустого класса (MISD) не стоит считать недостатком схемы.
Такие классы, помнению некоторых исследователей в области классификации архитектур [6,7], могут статьчрезвычайно полезными для разработки принципиально новых концепций в теории ипрактике построения вычислительных систем.Масштабируемость мультипроцессорных вычислителей.Масштабируемость представляет собой возможность наращивания числа и мощностипроцессоров, объемов оперативной и внешней памяти и других ресурсов вычислительнойсистемы. Масштабируемость должна обеспечиваться архитектурой и конструкциейкомпьютера, а также соответствующими средствами программного обеспечения.Так, например, возможность масштабирования кластера ограничена значением отношенияскорости процессора к скорости связи, которое не должно быть слишком большим (реальноэто отношение для больших систем не может быть более 3-4, в противном случае не удаетсядаже реализовать режим единого образа операционной системы).
С другой стороны,последние 10 лет истории развития процессоров и коммуникаторов показывают, что разрывв скорости между ними все увеличивается. Добавление каждого нового процессора вдействительно масштабируемой системе должно давать прогнозируемое увеличениепроизводительности и пропускной способности при приемлемых затратах. Одной изосновных задач при построении масштабируемых систем является минимизация стоимостирасширения компьютера и упрощение планирования. В идеале добавление процессоров ксистеме должно приводить к линейному росту ее производительности.
Однако это не всегдатак. Потери производительности могут возникать, например, при недостаточнойпропускной способности шин из-за возрастания трафика между процессорами и основнойпамятью, а также между памятью и устройствами ввода/вывода. В действительностиреальное увеличение производительности трудно оценить заранее, поскольку оно взначительной степени зависит от динамики поведения прикладных задач.Возможность масштабирования системы определяется не только архитектурой аппаратныхсредств, но зависит от свойств программного обеспечения. Масштабируемостьпрограммного обеспечения затрагивает все его уровни, от простых механизмов передачисообщений до работы с такими сложными объектами как мониторы транзакций и вся средаприкладной системы.
В частности, программное обеспечение должно минимизироватьтрафик межпроцессорного обмена, который может препятствовать линейному роступроизводительности системы. Аппаратные средства (процессоры, шины и устройстваввода/вывода) являются только частью масштабируемой архитектуры, на которойпрограммное обеспечение может обеспечить предсказуемый рост производительности.Важно понимать, что, например, простой переход на более мощный процессор можетпривести к перегрузке других компонентов системы. Это означает, что действительномасштабируемая система должна быть сбалансирована по всем параметрам.Управление памятью в мультипроцессорных системах.Системы класса: SMP (Scalable Parallel Processor) состоят из нескольких однородныхпроцессоров и массива общей памяти (разделяемой памяти – shared memory): любойпроцессор может обращаться к любому элементу памяти.
По этой схеме построены 2,4процессорные SMP сервера на базе процессоров Intel, НР и т. д., причем процессорыподключены к памяти с помощью общей шины. Системы с большим числом процессоров79(но не более 32) подключаются к общей памяти, разделенной на блоки, через неблокирующийся полный коммутатор: crossbar.
Любой процессор системы получает данноепо произвольному адресу памяти за одинаковое время, такая структура памяти называется:UMA - Uniform Memory Access (Architecture). Пример:НР-9000. Дальнейшеемасштабирование (увеличение числа процессоров системы) SMP систем обеспечиваетсяпереходом к архитектуре памяти: NUMA - Nоn Uniform Memory Access.
По схеме,называемой, этой иногда, кластеризацией SMP, соответствующие блоки памяти двух (илиболее) серверов соединяются кольцевой связью, обычно по GCI интерфейсу. При запроседанного, расположенного вне локального с сервере диапазона адресов, это данное покольцевой связи переписывается дублируется в соответствующий блок локальной памяти,ту часть его, которая специально отводится для буферизации глобальных данных и изэтого буфера поставляется потребителю. Эта буферизация прозрачна (невидима)пользователю, для которого вся память кластера имеет сквозную нумерацию, и времявыборки данных, не локальных в сервере, будет равно времени выборки локальных данныхпри повторных обращениях к глобальному данному, когда оно уже переписано в буфер.Данный аппарат буферизации есть типичная схема кэш памяти.
Так как к данным возможнообращение из любого процессора кластера, то буферизация, размножение данных требуетобеспечение их когерентности. Когерентность данных состоит в том, что при измененииданного все его потребители должны получать это значение. Проблема когерентностиусложняется дублированием данных еще и в процессорных кэшах системы. Системы, вкоторых обеспечена когерентность данных, буферизуемых в кэшах, называются кэшкогерентными (cc-cache coherent), а архитектура памяти описываемого кластера: ccNUMA (cache coherent Nоn Uniform Memory Access).
Классической архитектурой принятосчитать систему SPP1000.Не уверен, что это нужно…Распределенная общая память (DSM - Distributed Shared Memory)Традиционно распределенные вычисления базируются на модели передачи сообщений, вкоторой данные передаются от процессора к процессору в виде сообщений. Удаленныйвызов процедур фактически является той же самой моделью (или очень близкой).DSM - виртуальное адресное пространство, разделяемое всеми узлами (процессорами)распределенной системы. Программы получают доступ к данным в DSM примерно так же,как они работают с данными в виртуальной памяти традиционных ЭВМ.
В системах с DSMданные перемещаются между локальными памятями разных компьютеров аналогично тому,как они перемещаются между оперативной и внешней памятью одного компьютера.6.1 Достоинства DSMВ модели передачи сообщений программист обеспечивает доступ к разделяемым даннымпосредством явных операций посылки и приема сообщений. При этом приходитсяквантовать алгоритм, обеспечивать своевременную смену информации в буферах,преобразовывать индексы массивов. Все это сильно усложняет программирование иотладку. DSM скрывает от программиста пересылку данных и обеспечивает емуабстракцию разделяемой памяти, к использованию которой он уже привык намультипроцессорах.
Программирование и отладка с использованием DSM гораздо проще.В модели передачи сообщений данные перемещаются между двумя различными адреснымипространствами. Это делает очень трудным передачу сложных структур данных междупроцессами. Более того, передача данных по ссылке и передача структур данных,содержащих указатели, является в общем случае делом сложным и дорогостоящим. DSMже позволяет передавать данные по ссылке, что упрощает разработку распределенныхприложений.80Объем суммарной физической памяти всех узлов может быть огромным. Эта огромнаяпамять становится доступна приложению без издержек, связанных в традиционныхсистемах с дисковыми обменами. Это достоинство становится все весомее в связи с тем, чтоскорости процессоров растут быстрее скоростей памяти и в то же время появляются оченьбыстрые коммуникации.DSM-системы могут наращиваться практически беспредельно в отличие от систем сразделяемой памятью, т.е.
являются масштабируемыми.Программы, написанные для мультипроцессоров с общей памятью, могут в принципе безкаких-либо изменений выполняться на DSM-системах (по крайней мере, они могут бытьлегко перенесены на DSM-системы).По существу, DSM-системы преодолеваютархитектурные ограничения мультипроцессоров и сокращают усилия, необходимые длянаписания программ для распределенных систем.
Обычно они реализуются программноаппаратными средствами, но в последние годы появилось несколько коммерческих MPP сDSM, реализованной аппаратно (Convex SPP, KSR1).6.2 Алгоритмы реализации DSMПри реализации DSM центральными являются следующие вопросы. как поддерживатьинформацию о расположении удаленных данных. как снизить при доступе к удаленнымданным коммуникационные задержки и большие накладные расходы, связанные свыполнением коммуникационных протоколов. как сделать разделяемые данныедоступными одновременно на нескольких узлах для того, чтобы повыситьпроизводительность системы.Рассмотрим четыре основных алгоритма реализации DSM.6.2.1 Алгоритм с центральным серверомВсе разделяемые данные поддерживает центральный сервер. Он возвращает данныеклиентам по их запросам на чтение, по запросам на запись он корректирует данные ипосылает клиентам в ответ квитанции.