Архитектура вычислительных систем



Параллельные вычислительные системы

параллельный вычислительный алгоритм многопроцессорный

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

Идея распараллеливания вычислений основана на том, что большинство задач может быть разделено на набор меньших задач, которые могут быть решены одновременно. Обычно параллельные вычисления требуют координации действий. Параллельные вычисления существуют в нескольких формах: параллелизм на уровне битов, параллелизм на уровне инструкций, параллелизм данных, параллелизм задач. Параллельные вычисления использовались много лет в основном в высокопроизводительных вычислениях, но в последнее время к ним возрос интерес вследствие существования физических ограничений на рост тактовой частоты процессоров. Параллельные вычисления стали доминирующей парадигмой в архитектуре компьютеров, в основном в форме многоядерных процессоров.

Писать программы для параллельных систем сложнее, чем для последовательных, так как конкуренция за ресурсы представляет новый класс потенциальных ошибок в программном обеспечении, среди которых состояние гонки является самой распространённой. Взаимодействие и синхронизация между процессами представляют большой барьер для получения высокой производительности параллельных систем. В последние годы также стали рассматривать вопрос о потреблении электроэнергии параллельными компьютерами. Характер увеличения скорости программы в результате распараллеливания объясняется законами Амдала и Густавсона.

Параллелизм на уровне битов:

Эта форма параллелизма основана на увеличении размера машинного слова. Увеличение размера машинного слова уменьшает количество операций, необходимых процессору для выполнения действий над переменными, чей размер превышает размер машинного слова. К примеру: на 8-битном процессоре нужно сложить два 16-битных целых числа. Для этого вначале нужно сложить нижние 8 бит чисел, затем сложить верхние 8 бит и к результату их сложения прибавить значение флага переноса. Итого 3 инструкции. С 16-битным процессором можно выполнить эту операцию одной инструкцией.

Исторически 4-битные микропроцессоры были заменены 8-битными, затем появились 16-битные и 32-битные. 32-битные процессоры долгое время были стандартом в повседневных вычислениях. С появлением технологии x86-64 для этих целей стали использовать 64-битные процессоры.

Параллелизм на уровне инструкций:

Компьютерная программа - это, по существу, поток инструкций, выполняемых процессором. Но можно изменить порядок этих инструкций, распределить их по группам, которые будут выполняться параллельно, без изменения результата работы всей программы. Данный приём известен как параллелизм на уровне инструкций. Продвижения в развитии параллелизма на уровне инструкций в архитектуре компьютеров происходили с середины 1980-х до середины 1990-х.

Параллелизм данных:

Основная идея подхода, основанного на параллелизме данных, заключается в том, что одна операция выполняется сразу над всеми элементами массива данных. Различные фрагменты такого массива обрабатываются на векторном процессоре или на разных процессорах параллельной машины. Распределением данных между процессорами занимается программа. Векторизация или распараллеливание в этом случае чаще всего выполняется уже на этапе компиляции - перевода исходного текста программы в машинные команды. Роль программиста в этом случае обычно сводится к заданию настроек векторной или параллельной оптимизации компилятору, директив параллельной компиляции, использованию специализированных языков для параллельных вычислений.

Параллелизм задач (многопоточность):

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


Архитектура вычислительных систем

Однопроцессорные системы

 

В архитектуре однопроцессорныx вычислительных систем (ВС) принято различать следующие устройства:

устройства управления (УУ),

центральный процессор (ЦП),

память,

устройство ввода-вывода (В/В),

каналы обмена информацией. Принцип работы однопроцессорной ВС состоит в последовательном выполнении команд. Главной задачей при создании алгоритма является представление алгоритма в виде последовательности команд. Основная проблема оптимизации сводится к минимизации числа операций и размера требуемой памяти.

Многопроцессорные системы

 

Многопроцессорные системы формально имеют сходную структуру:

устройство управления;

первый процессор;

второй процессор;

………………

k-й процессор;

память (общую или разделенную);

устройство ввода-вывода;- каналы обмена информацией.    Узкое место такой системы - коммуникационная сеть (каналы обмена информацией). Сложность сети обычно растет пропорционально квадрату числа имеющихся устройств. В настоящее время трудно создать эффективную связь между любыми двумя устройствами многопроцессорной ВС.

В многопроцессорных системах организация коммуникаций всегда ограничивает класс решаемых задач.


Дата добавления: 2021-03-18; просмотров: 78; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!