Особенности многопроцессорных систем


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

1. Реал-ция параллелизма на крупноблочном уровне. Крупноблочный уровень – это уровень, когда мы рассматриваем многопроцессорную с-му в терминах «процесс» и «ресурс», «пр-мма» и «процессор». «Процесс» и «ресурс» пришли из теории операционных с-м, а «пр-мма» и «процессор» из нашего подхода, когда мы не рассматриваем особенности орг-ции ПО, а только лишь аппаратные и пр-ммные средства, т.е. на крупноблочном уровне.

2. Реал-ся как расспараллеливание в простр-ве так и во времени. Далее очень важно понять к какому классу относятся такого рода с-мы: многопроцессорные с-мы относятся к классу «множественный поток к-нд и множественный поток данных». Причем бывают как синхронные, так и асинхронные. Синхронная с-ма для всех процессоров существует единая некая такая с-ма синхронизации или с-ма тактовых сигналов, в асинхронных с-мах этого нет.

3. Для эффективности работы такой с-мы задача должна быть декомпозирована на независимые ветви. Мы с вами на среднеблочном уровне рассматривали информационный граф, так вот на крупноблочном уровне мы должны уже декомпозировать задачу на независимые ветви. Вот предположим есть какой-то информационный граф. Анализируя этот граф, в том числе и компилятор, сразу же может решить, что эта задача декомпозируется на 2 независимые подзадачи, к-рые запускаются в одно и тоже время и к-рые должны завершиться в одно и тоже время, чтобы сформировать заключительный рез-тат. Вершинами этого информационного графа является некие акты обработки данных. Т.е. наш граф можно представить в другом виде, что у нас имеются 2 независимые параллельные задачи. В свою очередь каждая из этих задач может быть также декомпозирована на несколько подзадач, в данном случае есть 2 параллельные задачи, можно выделить несколько последовательных подзадач, каждая из к-рых имеет 2 параллельные подзадачи. Здесь стоит проблема декомпозиции задачи на независимые ветви. Эта декомпзиция нужна по той простой причине, что если мы будем решать одну цельную задачу, то нам требуется 1 процесс, а хотелось бы эту задачу решить за меньшее время. Не декомпозируя задачу на независимые ветви или части мы не сможем использовать остальные процессы, а просто решать 5 задач, к-рые абсолютно независимы не всегда представляется возможным. С другой стороны эти 5 независимых задач, к-рые решаются, например, вами на многопроцессорной СОД могут представлять единую задачу. Такой параллелизм называется вертикальным. В отличие от горизонтального, когда 1 операция, выполняющаяся в каждом узле имеет несколько независимых наборов данных. Этой декомпозицией занимается проектировщик пр-ммных средств или обработки данных. Как правило на крупноблочном уровне этим занимается пр-ммист, а на мелкоблочном этим занимается компилятор. Т.е. мы должны точно указать какие задачи, подзадачи, ветви могут выполняться параллельно и независимо, а уже рез-тат работы компилятора может быть разделение каждого из этого узла на независимые части(иногда этим занимается пр-ммист).

4. Необходимо обеспечить синхронизацию процессов обработки данных. Т.е. необходимо уметь склеивать независимые ветви в единый информационный граф. Мы здесь говорим о процессах потому что, как правило, реализацию совмещения независимых ветвей берет на себя ОС. В этом случае используются такие термины как «процесс» и «ресурс».

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

Ресурс – это средство ВС, которое может быть выделено процессу на определенный срок. Самое интересное в этой ситуации то, что код пр-ммы является ресурсом. Поэтому процесс сам по себе это, фактически, совместное ф-ционирование ресурсов.

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

Операционная с-ма – это вычислительные средства, обеспечивающие управление выполнением пр-мм и способные реализовать такие ф-ции как: распределение ресурсов, планирование и управление вводом-выводом, управление данными для эффективной работы ЭВМ.

Загрузка...