Параллелизм на уровне процессоров

Параллелизм на уровне процессоров

Xalion

Конвейеры и суперскалярные архитектуры ускоряют компьютер в 5 - 10 раз, но можно добиться ускорения в 100 раз – cтроить компьютеры с несколькими процессорами.
Плюс таких компьютеров – они имеют большую вычислительную мощность, чем обычные и используют меньшее количество транзисторов.

Такие компьютеры разделяются на виды: матричные, мультипроцессоры и мультикомпьютеры.


Для научных и технических задач, часто приходиться производить одни и те же операции с разным набором данных. Упорядоченность данных позволяет распараллелить вычисления и ускорить их.

Существует две схемы ускорения вычислений больших научных задач:
SIMD-процессоры
и векторные процессоры.

SIMD-процессор (Single Instruction-stream Multiple Data-stream) – комплекс ядер с командным процессором. Он содержит не меньше 1024 процессоров, которые выполняют одинаковую последовательность команд к разным наборам данных под управлением командного блока.

Такая архитектура используется в графических процессорах(GPU), потому что большинство алгоритмов имеют четкую структуру с повторением операций для пикселей, ребер или текстур.

В ядре Nvidia Fermi находятся 16 потоковых мультипроцессоров, в каждом находится 32 SIMD-процессора.

Строение одного потокового мультипроцессора
Векторный процессор работает с векторными массивами однотипных данных. Для этого выделен векторный регистр, состоит из набора обыкновенных регистров.

Пример: сложение двух векторов.

команда сложения достаёт векторы из регистров и отправляет их в суммирующее устройство ---> внутри проходит операция сложения и выходит другой вектор ---> возвращается в регистр или используется для других операций.

Команды SSE в Intel Core используют такую модель расширения для ускорения обработки мультимедийных и научных данных.



Мультипроцессоры – система из нескольких параллельных процессоров, имеют общую память и блок управления, который их контролирует.

Чтобы не возникало конфликтов, между несколькими процессорами, при записи данных, работа всех процессоров контролируется программистом с помощью набора программ.

В этой системе процессоры называются сильно связанными (tightly coupled), потому что они могут тесно взаимодействовать друг с другом.


Мультипроцессор с единой шиной

Но если количество процессоров будет слишком большим, то будут возникать конфликты, потому что процессоры пытаются получить доступ к памяти по одной шине.

Эту проблему решают локальной памятью, не доступной для других процессоров. Её не нужно разделять между всеми процессорами.

Решение проблемы общей шины

Главный плюс мультипроцессоров перед другими параллельными системами –единая память, потому что с ней проще работать.

Разрабатывать мультипроцессорные системы просто до тех пор, пока количество процессоров в них не превышает 256. После 256 процессора появляются проблемы с общей памятью.

Для более трудных задач существуют мультикомпьютеры.


Мультикомпьютер - система компьютеров. У каждого компьютера своя память, доступная только ему.

Компьютеры соединены локальной сетью: по кольцу, дереву, двух- или трехмерной решетке.

Каждый компьютер отправляет друг другу сообщения, что-то вроде электронной почты, только в тысячи раз быстрее. Сообщения проходят через несколько компьютеров пока не дойдут до получателя, время передачи занимает несколько микросекунд.

Blue Gene/P в здании IBM

Мультикомпьютер Blue Gene/P от IMB состоит из 250 тысяч процессоров.


Мультипроцессоры и мультикомпьютеры более обширно рассмотрим позже. В следующих статьях разберемся с компьютерной памятью.

Report Page