- •25. Параллелизм как основа высокопроизводительных вычислений
- •Уровни параллелизма
- •Параллелизм уровня задания
- •Параллелизм уровня программ
- •Параллелизм уровня команд
- •Метрики параллельных вычислений
- •Профиль параллелизма программы
- •Ускорение, эффективность, загрузка и качество
- •Закон Амдала
- •Закон Густафсона
- •Классификация параллельных вычислительных систем
- •Классификация Флинна
Параллелизм уровня задания
Параллелизм уровня задания возможен между независимыми заданиями или их фазами. Основным средством реализации параллелизма на уровне заданий служат многопроцессорные и многомашинные вычислительные системы, в которых задания распределяются по отдельным процессорам или машинам. Однако, если трактовать каждое задание как совокупность независимых задач, реализация данного уровня возможна и в рамках однопроцессорной ВС. В этом случае несколько заданий могут одновременно находиться в основной памяти ВС, при условии, что в каждый момент выполняется только одно из них. Когда выполняемое задание требует ввода/вывода, такая операция запускается, а до ее завершения остальные ресурсы ВС передаются другому заданию. По завершении ввода/вывода ресурсы ВС возвращаются заданию, инициировавшему эту операцию. Здесь параллелизм обеспечивается за счет того, что центральный процессор и система ввода/вывода работают одновременно, обслуживая разные задания.
В качестве примера рассмотрим вычислительную систему с четырьмя процессорами. ВС обрабатывает задания, классифицируемые как малое (S), среднее (М) и большое (L). Для выполнения малых заданий требуется один, средних — два, а больших заданий — четыре процессора. Обработка каждого задания занимает одну условную единицу времени. Первоначально существует такая очередь заданий:
SMLSSMLLSMM.
Для этого списка имеем:
|
Время |
Выполняемые задания |
% использования ВС |
|
1 |
S,M |
75 |
|
2 |
L |
100 |
|
3 |
s,s, м |
100 |
|
4 |
L |
100 |
|
5 |
L |
100 |
|
6 |
S, М |
75 |
|
7 |
М |
50 |
• средний уровень использования ресурсов вычислительной системы равен 83,3%;
• на выполнение всех заданий требуется 7 единиц времени.
Для получения большей степени утилизации ресурсов ВС разрешим заданиям «выплывать» в начало очереди. Тогда можно получить следующую последовательность выполнения заданий: SMSLSMSLLMM. Здесь:
|
Время |
Выполняемые задания |
% использования ВС |
|
1 |
S,M,S |
100 |
|
2 |
L |
100 |
|
3 |
S, M,S |
100 |
|
4 |
L |
100 |
|
5 |
L |
100 |
|
6 |
M, M |
100 |
• средний процент использования ресурсов ВС составляет 100%;
• на выполнение всех заданий требуется 6 единиц времени.
Параллелизм возникает также, когда у независимых заданий, выполняемых в ВС, имеются несколько фаз, например вычисление, запись в графический буфер, В/ВЫВ на диск или ленту, системные вызовы.
Пусть выполняется задание и оно для своего продолжения нуждается в выполнении ввода/вывода. По сравнению с вычислениями он обычно более длителен, поэтому текущее задание приостанавливается и запускается другое задание. Исходное задание активизируется после завершения ввода/вывода. Все это требует специального оборудования: каналов В/ВЫВ или специальных процессоров В/ ВЫВ. За то, как различные задания упорядочиваются и расходуют общие ресурсы, отвечает операционная система.
