|
|||
SMP системы
Универсальные приборы, эквивалентные по значению транзистору, которые создаются на тонких кремниевых пластинках СБИС, в настоящее время так миниатюрны и дешевы, что чрезвычайно большое число процессоров может быть объединено в единую сеть. В 1978г. 100. 000 элементов было успешно интегрировано в ЗУ объемом 64Кбит. В 1981г. фирма Hewlett-Packard объявила о создании микропроцессорного кристалла, содержащего 450. 000 элементов. Следовательно, многопроцессорные компьютеры "среднего класса" с числом кристаллов от нескольких тысяч и до нескольких миллионов скоро станут реальностью. Т. е. отдельный компьютер может содержать 10 х 10 =10 элементов Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. - СПб.: БХВ-Петербург, 2002. Стр. 19. Такие микропроцессорные системы могут быть очень успешно использованы для решения проблем, примером которых является моделирование в трех измерениях атмосферных масс для прогноза погоды, моделирование трехмерных зон земной коры, моделирование обширных сетей нейронов, составляющих мозг человека, и очень большой набор преобразований, необходимых для восприятия сложного поведения пространственных объектов. Для таких компьютеров обработка изображений и восприятие образов станут основными областями применения, т. к. они выдвигают проблемы обработки информации, решение которых требует очень больших и быстродействующих компьютеров с высоким параллелизмом. Действительно, как показывают исследования, основные вычислительные процедуры при решении большинства задач обработки сигналов в реальном масштабе времени могут быть сведены к набору операций над матрицами. Широкие исследования в области вычислительных методов линейной алгебры привели к созданию устойчивых пакетов программ для выполнения этих операций с помощью однопроцессорных компьютеров последовательного действия. Для обеспечения выполнения большинства алгоритмов в реальном масштабе времени требуется на порядок увеличить скорость вычислений. Несмотря на достижения в технологии цифровых интегральных схем, нельзя просто рассчитывать на дальнейшие успехи в производстве быстродействующих элементов вычислительных устройств, и увеличение на несколько порядков производительности процессора для обработки в реальном масштабе времени должно осуществляться эффективным использованием параллелизма при вычислениях. Самым непосредственным способом реализации параллельной обработки сигналов является простое присоединение ряда процессоров к общей шине. В духе этих тенденций развитие архитектуры микропроцессорных систем сводится к построению многопроцессорных систем различных типов и разрешению попутно появляющихся задач. Обычная "последовательная универсальная ЭВМ" строится, как правило, посредством подключения быстродействующей памяти к единственному центральному процессору, который выбирает команды из памяти, декодирует каждую из них, выбирает данные (в соответствии с предписанием в команде), хранящиеся в указанных ячейках памяти, выполняет указанные операции и запоминает результаты в предписанных ячейках. Кроме того, к системе должны быть подключены устройства ввода и вывода. Каждый процессор в такой системе многократно выполняет одну и ту же команду над последовательностью данных, проходящих через систему. В этих системах каждый из тысяч процессоров выполняет одну и ту же команду над различными потоками данных. Данные, которые необходимо обработать, и объем которых в идеале соответствует размерам матрицы процессоров, вводятся в систему таким образом, что каждый из процессоров имеет в собственной памяти одно подмножество таких данных, например, один элемент растра. Такие большие матричные системы возможны только благодаря тому, что каждый процессор выполнен настолько простым, насколько это возможно, и все они выполняют одну и ту же команду (т. е. необходим только один контроллер). При использовании СБИС-технологий будущего такие параллельные матричные системы будут становиться все более привлекательными из-за простоты и высокой повторяемости их модульной структуры. Из-за ограниченных возможностей матриц, вызванных в основном соображениями стоимости (одноразрядные процессоры, единый контроллер и связи только с соседними процессорами) предпочтительно иметь дело с сетями (процессоров) других видов. Было разработано много типов сетей, включая кольцевые, n-кубические, решетчатые, звездные, "снежинка", чечевицеобразные, древовидные, х-древовидные, пирамидальные и множество структур, описываемых другими графами. В нашем случае граф-просто отображение набора подсистем, объединенных в единый мультипроцессор; иногда узлами графа являются отдельные процессоры или память, а не полные ЭВМ. Деревья имеют хорошую структуру для большого числа задач, в которых информация сортируется, сравнивается или каким-либо образом уплотняется и реорганизуется, а также где она запоминается, извлекается или передается. Матрицы имеют хорошую структуру для локальной передачи информации. Наилучшими считаются пирамидальные многопроцессорные системы, поскольку они очень эффективны не только при параллельной локальной обработке, но и при глобальных передачах и преобразованиях информации. В многопроцессорной сети наилучшим образом можно разместить проблемно-ориентированный алгоритм-операции организуются как на сборочном конвейере, а информация продвигается также как бы через конвейер. Это дает поток данных (типа транспортного) о двумерном изображении, и этот поток проходит по трехмерной структуре. Большие двумерные образы прекрасно размещаются в больших матричных структурах, и большие матричные многопоцессорные системы способны очень эффективно производить последовательности операций по обработке поэтапно преобразуемого изображения. Пирамидальные процессоры в дополнение к этому позволяют программисту свертывать и сжимать запоминаемую информацию о преобразованном изображении, когда необходимо сократить объем этих данных. Представляется также, что пирамидальные процессоры потенциально должны обеспечивать чрезвычайно высокую мощность при обработке потоков изображений в реальном масштабе времени благодаря конвейерной организации обработки таких двумерных изображений при сложной последовательности операций поэтапно нарастающей глобальности, выполняемых в различных слоях трехмерной пирамиды. Процессоры объединяются в высокорегулярную микромодульную систему, которая является одной из наиболее пригодных для реализации в виде СБИС при высокой плотности упаковки. Классификация многопроцессорных систем SMP системы Симметричное мультипроцессирование (англ. Symmetric Multiprocessing, сокращённо SMP) -- архитектура многопроцессорных компьютеров, в которой два или более одинаковых процессоров подключаются к общей памяти. Большинство многопроцессорных систем сегодня используют архитектуру SMP. SMP системы позволяют любому процессору работать над любой задачей независимо от того, где в памяти хранятся данные для этой задачи; при должной поддержке операционной системой SMP-системы могут легко перемещать задачи между процессорами, эффективно распределяя нагрузку. С другой стороны, память гораздо медленнее процессоров, которые к ней обращаются; даже однопроцессорным машинам приходится тратить значительное время на получение данных из памяти. В SMP ситуация ещё более усугубляется, так как только один процессор может обращаться к памяти в данный момент времени. SMP часто применяется в науке, промышленности, бизнесе, где программное обеспечение специально разрабатывается для многопоточного выполнения. В то же время большинство потребительских продуктов, таких как текстовые редакторы и компьютерные игры, написаны так, что они не могут получить много пользы от SMP-систем. Корнеев В.В. Вычислительные системы. - М.: «Гелиос АРВ», 2009г. Стр 99 В случае игр это зачастую связано с тем, что оптимизация программы под SMP-системы приведёт к потере производительности при работе на однопроцессорных системах, которые занимают большую часть рынка. В силу природы разных методов программирования для максимальной производительности потребуются отдельные проекты для поддержки одного процессора и SMP-систем. И все же программы, запущенные на SMP-системах, получают незначительный прирост производительности, даже если они были написаны для однопроцессорных систем. Это связано с тем, что аппаратные прерывания, обычно приостанавливающие выполнение программы для их обработки ядром, могут обрабатываться на свободном процессоре. Эффект в большинстве приложений проявляется не столько в приросте производительности, сколько в ощущении, что программа выполняется более плавно. В некоторых приложениях, в частности, программных компиляторах и некоторых проектах распределённых вычислений, повышение производительности будет почти прямо пропорционально числу дополнительных процессоров. MPP системы Проблемы, присущие многопроцессорным системам с общей памятью, простым и естественным образом устраняются в системах с массовым параллелизмом. Компьютеры этого типа представляют собой многопроцессорные системы с распределенной памятью, в которых с помощью некоторой коммуникационной среды объединяются однородные вычислительные узлы. Каждый из узлов состоит из одного или нескольких процессоров, собственной оперативной памяти, коммуникационного оборудования, подсистемы ввода/вывода, т.е. обладает всем необходимым для независимого функционирования. При этом на каждом узле может функционировать либо полноценная операционная система (как в системе RS/6000 SP2), либо урезанный вариант, поддерживающий только базовые функции ядра, а полноценная ОС работает на специальном управляющем компьютере (как в системах Cray T3E, nCUBE2). Процессоры в таких системах имеют прямой доступ только к своей локальной памяти. Доступ к памяти других узлов реализуется обычно с помощью механизма передачи сообщений. Такая архитектура вычислительной системы устраняет одновременно как проблему конфликтов при обращении к памяти, так и проблему когерентности кэш-памяти. Это дает возможность практически неограниченного наращивания числа процессоров в системе, увеличивая тем самым ее производительность. Успешно функционируют MPP системы с сотнями и тысячами процессоров (ASCI White - 8192, Blue Mountain - 6144). Производительность наиболее мощных систем достигает 10 триллионов оп/сек (10 Tflops). Важным свойством MPP систем является их высокая степень масштабируемости. В зависимости от вычислительных потребностей для достижения необходимой производительности требуется просто собрать систему с нужным числом узлов. COMA (кома) является организация памяти компьютера для использования в многопроцессорных систем, в которых местные воспоминания (как правило, DRAM) в каждом узле используются в качестве кэш-памяти. Это в отличие от использования местных воспоминаний, как фактической основной памяти, как и в NUMA организаций. В NUMA, каждый адрес в глобальной адресного пространства, как правило, назначается фиксированное домашний узел. Когда процессоры доступ некоторые данные, копия сделана в их локальном кэше, но пространство остается выделенным в домашнем узле. Вместо этого, с комой, нет дома.Доступ с удаленного узла, что может привести к миграции данных. По сравнению с NUMA, это уменьшает количество избыточных копий и может позволить более эффективно использовать ресурсы памяти. С другой стороны, это создает проблемы как найти конкретную информацию (больше нет дома узел) и что делать, если локальная память заполняется (перенос некоторых данных в локальной памяти, то нужно выселить некоторые другие данные, которые не имеют дома, куда пойти). Механизмы когерентности Аппаратные средства памяти, как правило, используются для реализации миграцию. Огромное количество исследований исследовал эти вопросы. Различные формы каталогов, политика для поддержания свободного места в местных воспоминаний, миграционной политики, а также политики в области только для чтения копии были разработаны. Гибридные NUMA-кома организации также были предложены, например, химически NUMA, что позволяет страницы, чтобы начать в режиме NUMA и переключиться в режим COMA если это уместно и реализуется в WildFire Sun Microsystems игровая. на основе программного обеспечения Hybrid реализация NUMA-кома был предложен и реализован ScaleMP, позволяет для создания многопроцессорной системе с разделяемой памятью из кластера товара Uma-( однородный доступ к памяти) архитектура многопроцессорных компьютеров с общей памятью. Все микропроцессоры в UMA-архитектуре используют физическую память одновременно. При этом время запроса к данным из памяти не зависит ни от того, какой именно процессор обращается к памяти, ни от того, какой именно чип памяти содержит нужные данные. Однако каждый микропроцессор может использовать свой собственный кэш.
|
|||
|