Многопроцессорность: из чего состоит, виды, требования, преимущества
В многопроцессорностьПрименительно к вычислениям — это форма работы компьютера, в которой физически имеется более одного процессора. Цель состоит в том, чтобы иметь желание запускать разные части программы одновременно.
Эти несколько центральных процессоров (ЦП) находятся в тесном взаимодействии, разделяя шину, память и другие периферийные устройства компьютера. Поскольку доступно несколько процессоров, несколько процессов могут выполняться одновременно.
Многопроцессорность относится больше к количеству модулей ЦП, а не к количеству процессов, выполняющихся одновременно. Если оборудование предоставляет более одного процессора, то это многопроцессорность. Это способность системы использовать вычислительную мощность нескольких процессоров.
Многопроцессорная система очень полезна, когда вы хотите иметь достаточно высокую скорость для обработки большого набора данных. Эти системы в основном используются в таких приложениях, как прогнозирование погоды, спутниковое управление и т. Д.
Этот тип многопроцессорной системы впервые появился на больших компьютерах или мэйнфреймах, прежде чем снизить ее стоимость, чтобы обеспечить ее включение в персональные компьютеры.
Персональный компьютер
Персональный компьютер (ПК) — предназначен для удовлетворения потребностей одного пользователя и представляет собой комплекс взаимосвязанных устройств, каждое из которых выполняет определенные функции. Персональные компьютеры условно можно разделить на профессиональные и бытовые (домашнего использования).
Характерным для ПК являются:
- ориентация на широкое применение и наличие некоторого набора стандартных технических средств со средними значениями характеристик, которые могут быть существенно улучшены по желанию пользователя;
- автономное использование ПК и, как следствие, обязательное наличие у каждого компьютера средств ввода и отображения информации, таких как: клавиатура, мышь, монитор, принтер и др, характерных для решаемых задач;
- индивидуальное использование ресурсов ПК и незначительное использование ресурсов других компьютеров при наличии подключения к информационной сети, например, Internet.
- работа под управлением, как минимум, не сетевой операционной системы.
Многопроцессорные компьютеры
В мощных серверах используются многопроцессорные компьютеры, т.е. компьютеры, в которых установлено несколько процессоров. Каждый процессор в компьютере может быть, в свою очередь, многоядерным процессором.
Для функционирования многопроцессорной системы необходимо выполнение следующих условий:
· материнская плата должна поддерживать несколько процессоров, т. е. иметь дополнительные разъемы для установки процессоров и соответствующий набор микросхем;
· процессор должен поддерживать работу в многопроцессорной системе;
· операционная система должна поддерживать работу с несколькими процессорами (такими операционными системами являются серверные версии Windows и Unix).
Мультипроцессирование является наиболее эффективным, когда оно используется многозадачными операционными системами и прикладными программами, созданными с помощью специальных средств, которые позволяют выполнять параллельную обработку данных.
В процессе одновременной работы нескольких процессоров операционная система распределяет различные задачи между процессорами. Существуют два режима работы многопроцессорных систем – асимметричный и симметричный.
В режиме асимметричной обработки один процессор выполняет только задачи операционной системы, а другой – прикладные программы.
В режиме симметричной обработки – SMP (Symmetric Multi-Processing) задачи операционной системы и пользовательские приложения могут выполняться любым процессором в зависимости от его загрузки. Этот режим является более производительным и поэтому он используется в большинстве многопроцессорных систем.
По способу соединения процессоров друг с другом различают тесносвязанные процессоры и слабосвязанные процессоры.
Тесносвязанные процессоры (tightly-coupled multiprocessors) подключаются к общей системной шине через общую кэш-память на материнской плате. Примерами таких процессоров являются некоторые модели семейства Intel Xeon и процессоры AMD Opteron. Многоядерные процессоры можно считать одним из типов тесносвязанных процессоров.
Слабосвязанные процессоры (loosely-coupled multiprocessors), также называемые кластерами, являются обычными или многоядерными процессорами, которые связаны между собой с помощью высокоскоростных каналов связи (обычно для этих целей используется высокоскоростная компьютерная сеть – Ethernet со скоростью обмена 1 Гбит/с).
Преимуществами тесносвязанных многопроцессорных систем по сравнению со слабосвязанными являются:
· небольшой размер (вся система размещается в одном системном блоке, в то время как слабосвязанные системы могут состоять из нескольких компьютеров);
· высокая производительность за счет использования более высокоскоростных каналов, чем в слабосвязанных системах;
В то же время тесносвязанные многопроцессорные системы имеют следующие недостатки:
· невозможность модернизации (в слабосвязанных системах можно заменять как отдельные компоненты компьютеров, входящих в кластер, так и сами компьютеры).
Отношения между многоядерным и многопроцессорным
Последние компьютеры имеют несколько процессоров, каждый с несколькими ядрами, чтобы читать и выполнять несколько инструкций одновременно.
Определение
Многоядерный процессор — это один ЦП или процессор с двумя или более независимыми процессорами, называемыми ядрами, которые способны считывать и выполнять программные инструкции. Мультипроцессор — это система с двумя или более процессорами, которая позволяет одновременно обрабатывать программы.
выполнение
Multicore выполняет одну программу быстрее. С другой стороны, мультипроцессор выполняет несколько программ быстрее.
надежность
Многопроцессорные системы более надежны, чем многоядерные системы. Мультипроцессор имеет больше процессоров. Отказ одного из них не повлияет на другие процессоры. Это более терпимо к недостаткам.
Движение
Многоядерные системы имеют меньше трафика по сравнению с многопроцессорными, потому что все ядра интегрированы в один чип.
Заключение
Разница между многоядерным и многопроцессорным режимом заключается в том, что многоядерный процессор относится к одному ЦП с несколькими исполнительными блоками, а многопроцессорный — к системе с двумя или более ЦП. Современные компьютеры имеют несколько процессоров, каждый с несколькими ядрами.
Ссылка:
1. «Многоядерный процессор». ВикипедияФонд Викимедиа, 25 июля 2018 года,
Сервер (Server)
Компьютер, который оптимизирован для предоставления сервисов другим компьютерам в сети. Обычно серверы отличаются мощным процессором, большим объемом оперативной памяти и огромным массивом жестких дисков.
На заре компьютерной эпохи, мейнфреймы были поистине гигантскими компьютерами, способными занять целую комнату или даже целый этаж. С годами размеры компьютеров уменьшались, а их производительность росла. Поэтому термин «мейнфрейм» вышел из употребления и уступил место другому названию «сервер предприятия» (enterprise server). Впрочем, в англоязычной среде этот термин порой употребляют по старой привычке, при этом речь идет о суперкомпьютерах.
SIMD vs. MIMD
SIMD — Singe Instruction stream, Multiple Data stream. Управляющий узел один, он отправляет инструкции всем остальным процессорам. Каждый процессор имеет свой набор данных для работы.
MIMD — Multiple Instruction stream, Multiple Data Stream. Каждый процессор имеет свой собственный управляющий юнит, каждый процессор может выполнять разные инструкции.
SIMD-системы обычно используются для конкретных задач, требующих, как правило, не столько гибкости и универсальности вычислительной машины, сколько самой вычислительной силы. Обработка медиа, научные исследования (те же симуляции и моделирование), или, например, трансформации Фурье гигантских матриц. Поэтому в графических юнитах такое бешенное количество ядер: это SIMD-системы, и по-настоящему “умный” процессор (такой, как в вашем компьютере) там как правило один: он управляет кучей простых и не-универсальных ядер.
Так как “управляющий” процессор отправляет одни и те же инструкции всем “рабочим” процессорам, программирование таких систем требует некоторой сноровки. Вот простой пример:
if (B == 0)
then C = A
else C = A/B
Начальное состоянии памяти процессоров такое:
Первая строчка выполнилась, данные считались, теперь запускается вторая строка: then
При этом второй и третий процессоры ничего не делают, потому что переменная B у них не подходит под условие. Соответственно, далее выполняется третья строка, и на этот раз “отдыхают” другие два процессора:
Примеры SIMD-машин это старые ILLiac IV, MPP, DAP, Connection Machine CM-1/2, современные векторные юниты, специфичные сопроцессоры и графические юниты вроде nVidia GPU.
MIMD-машины обладают более широким функционалом, поэтому в наших пользовательских компьютерах используются именно они. Если у вас хотя бы двухядерный процессор в лаптопе — вы счастливый обладатель MIMD-машины с общей памятью! MIMD распределенной памятью это суперкомпьютеры вроде IBM Blue Gene, о которых мы говорили выше, или кластеры.
Вот итог всей классификации:
На этом введение в тему можно считать завершенным. В следующий раз мы поговорим о том, как расчитываются скорости параллельных машин, напишем свою первую параллельную программу с использованием рекурсии, запустим ее в небольшом кластере и научимся анализировать ее скорость и ресурсоемкость.