- •Знакомство с программой-отладчиком Turbo Debugger. Выполнение простейших команд микропроцессора в среде Turbo Debugger. Понятие отладки. Назначение программ-отладчиков
- •Запуск программы
- •Структура экрана программы Turbo Debugger
- •Регистры микропроцессора
- •Сложение беззнаковых величин
- •Вычитание беззнаковых величин
- •Операции с байтами
- •Умножение беззнаковых величин
- •Деление беззнаковых величин
- •Пересылка (копирование) данных
- •Понятие переполнения
- •Регистр флагов.
- •Флаг переноса
- •Использование флага переноса
- •I. Сложение с использованием флага переноса.
- •Начальные сведения о языке Ассемблер Аппаратная поддержка языка
- •Структура памяти
- •Сегментация памяти
- •Структура программы на языке Ассемблер
- •Директивы ассемблера
- •Режимы адресации
- •Инструкции пересылки данных и двоичной арифметики
- •Запись программ на языке ассемблера
- •Обработка программ в ms-dos
- •Пример выполнения работы
- •Текст программы:
- •Варианты заданий лаб 1
- •Вопросы по теме Циклические и разветвляющиеся программы
- •Безусловные переходы
- •Условный переход
- •Пример выполнения работы
- •Варианты заданий лаб 2
- •Вопросы по теме
- •Применение логических инструкций
- •Логические инструкции
- •Примеры использования логических команд
- •Пример выполнения работы
- •Варианты заданий
- •Вопросы по теме
- •Обработка символьной информации с помощью функций dos
- •Программные прерывания и системные вызовы
- •Функция оан
- •Функция 0Bh
- •Пример выполнения работы
- •Варианты заданий лаб 4
- •Вопросы по теме
- •Подпрограммы
- •Структура подпрограммы
- •Вызов подпрограммы
- •Передача параметров
- •Сохранение регистров
- •Пример выполнения работы
- •Варианты заданий лаб 5
- •Вопросы по теме
- •Обработка прерываний
- •Обработка прерывания
- •Изменение вектора прерывания
- •Функция 35h
- •Дополнительные сведения о структуре dos и bios Прямое обращение к видеопамяти
- •Буфер клавиатуры
- •Пример выполнения работы
- •Варианты заданий
- •Вопросы по теме
- •Введение
- •Занятие №1
- •Заполнением e графа g япф называется сумма
- •Занятие № 2
- •Занятие №3
- •Занятие №4
- •Занятие №5
Занятие №4
Распределение загрузки в случае, когда количество разнотипных процессоров меньше ширины яруса.
1. ЦЕЛЬ ЗАНЯТИЯ: практическое закрепление знаний о распределении загрузки между процессорами многопроцессорной системы.
2. ОСНОВНЫЕ СВЕДЕНИЯ.
Рассматриваемый в данном разделе метод распределения известен под названием "алгоритм Хорошевского". Он основывается также на поярусном распределении и может быть применен в случае, когда количество процессоров меньше ширины яруса.
Пусть в f-м ярусе bf>n, где bf - количество работ; n - когда количество процессоров, причем производительности процессоров характеризуются S = {S1, S2, …, Sn} и процессоры, как и в предыдущем разделе, упорядочены по производительности. Кроме того, известны матрицы
где lfim - время реализации i-й работы на m-м процессоре. Элемент, каждой строки матрицы (времена реализации одной и той же i-й работы на каждом из m данных процессоров) расположены в соответствии с упорядоченностью процессоров по производительности.
Минимально-возможное время реализации всех работ данного f-го яруса с помощью заданной вычислительной системы определяется с помощью выражения:
Это время является нижней теоретической оценкой в случае работы системы на f-м ярусе без простоев процессоров.
Сущность данного метода распределения состоит в том, что путем перебора на каждый из процессоров распределяется такая группа работ из яруса, время обслуживания которой имеет минимальное отклонение от wf. Тогда и общее время обслуживания одного яруса всеми процессорами вычислительной системы имеет минимальное отклонение от wf. Практически получить время обслуживания всех работ в ярусе, равное wf, при использовании рассматриваемого метода возможно только в случае, когда ЯПФ, по крайней мере, равномерна, а количество работ в ярусе кратно количеству процессоров. В произвольном же случае время обслуживания всех работ будет превышать wf.
Введем следующие обозначения:
Qfm - нераспределенные работы к моменту распределения на m-й процессор;
Pfт - распределенные работы к моменту распределения на (m+1) процессор;
Процесс начинается с определения wf. Далее производится распределение на самый малопроизводительный n-й процессор. Методом перебора выбираются две группы работ, суммарное время реализации одной из которых на n-м процессоре наиболее близко подходит к wf снизу (dm), а другой - сверху (dm). Если оказалось, что dm существует, то оценивается, какое из отклонений dm или dm наиболее близко находится к wf. На процессор распределяется та группа работ, суммарное время реализации которых имеет наименьшее отклонение от wf*.
После этого осуществляется загрузка очередного процессора, если незагруженными остались два и более процессоров. Если остается незагруженным первый процессор, все оставшиеся работы распределяются на этот, наиболее высокопроизводительный процессор.
Если при распределении на m-й процессор (m = n, …, 1) оказалось, что не существует dm, то необходимо вычислить новое значение wf без учета т-го процессора. При слабом влиянии на производительность системы остается соотношение dm> wf *, и тогда можно исключить из рассмотрения m-й процессор, как затормаживающий работу системы и для дальнейшего рассмотрения принять wf = wf*. Если же оказывается, что dm< wf*, то на m-й процессор необходимо распределить ту работу, для которой lfim = dm.
Время обслуживания работ f-го яруса оценивается (dm) max. Если оказывается, что количество работ в ярусе меньше, чем количество процессоров, то распределение осуществляется на основе методики, приведенной в предыдущем разделе.
Пример распределения загрузки.
В качестве примера распределим загрузку для реализации алгоритма, заданного ЯПФ (рис. 4.1.). Алгоритм будет реализовываться на вычислительной системе состоящей из двух параллельно работающие процессоров, относительная производительность которых, по сравнению с эталонной, производительность которого принята за единицу, приведена в табл. 4.1.
Таблица 4.1.
N процессора |
П1 |
П2 |
|
Sm |
1 |
0,6 |
|
f=1 |
11 |
10 |
/16, 86/ |
21 |
/15/ |
25 |
|
31 |
/20/ |
33, 33 |
|
41 |
18 |
/30/ |
|
51 |
/12/ |
20 |
|
f=2 |
12 |
/9/ |
15 |
22 |
5 |
/8, 33/ |
|
32 |
14 |
/23, 33/ |
|
42 |
/3/ |
5 |
|
52 |
/9/ |
15 |
|
62 |
/11/ |
18, 33 |
|
f=3 |
13 |
/8/ |
13, 33 |
23 |
/11/ |
18, 33 |
|
33 |
6 |
/10/ |
|
43 |
7 |
/11, 66/ |
|
рис.4.1.
Рассчитаем длины работ с учетом их реализации на процессоре m-го типа по формуле:
где lfiэ
– время
реализации работы на процессоре,
производительность которого принята
за эталонную Sэ
= 1. Составим
матрицу
обслуживания работ на процессорах,
входящих в систему, и формируем на
основе ее табл. 4.1.
для всех ярусов.
По полученной матрице рассчитаем wf*, f = 1, 2, 3:
w1 = 46.88, w2 = 31.94, w3 = 20.
Распределение работ начинаем с процессора, имеющего наименьшую производительность (Пр.2). Находим:
а) f = 1;
d2[11, 41] = 46.66; t2 = 46.88 - 46.66 = 0.22;
d2[11, 31] = 49.98; t2 = 49.99 - 46.88 = 3.11;
t2 < t2, следовательно, P2{11, 41}. Оставшиеся работы распределяем на Пр.1, и тогда время обслуживания этих работ составит
d1 [21, 31, 51] = 47;
Таким образом, время обслуживания первого яруса при подученном, распри делении составляет
T1реш = 47.
б) f = 2;
d2[22, 32] = 31.66; t2 = 31.94 – 31.66 = 0.28;
d2[52, 62] = 33.33; t2 = 33.33 – 31.94 = 1.39;
t2 < t2, следовательно, P2{22, 32}. Оставшиеся работы распределяем на Пр.1. и тогда время обслуживания этих работ составит
d1[12, 42, 52, 62] = 32.
Таким образом, время обслуживания второго яруса при полученном распределении составляет
T2реш = 32;
в) f = 3;
d2[23] = 18.33; t2 = 20 – 18.33 = 1.67;
d2[33, 43] = 21.66; t2 = 21.66 – 20 = 1.66;
t2 < t2, следовательно, P2{33, 43}. Оставшиеся работы распределяем на Пр.1, и тогда время обслуживания этих работ составит
d1[13, 23] = 19.
Таким образом, время обслуживания третьего яруса при полученном распре явлении составляет
T3реш = 21.66;
Работы, распределенные по процессорам, отмечены в табл.4.1. в соответствующем столбце знаками //.
В результате получаем:
в) время решения задачи в системе:
;
б) суммарные простои процессоров:
;
в) коэффициент простоя процессоров:
;
г) повышение производительности системы по сравнении со случаем использования одного процессора:
3. ВАРИАНТЫ ЗАДАНИЯ.
По заданной преподавателем первой букве выбрать матрицу графа программы по табл. 1.3 - 1.7. По заданной цифре из табл. 1.6 выбрать значения трудоемкости работ при обслуживании их процессором с относительной производительностью Sэ = 1. По заданной второй букве выбрать относительные производительности процессоров по таблице 3.2.
Необходимо выполнить:
преобразовать граф в ярусно-параллельную форму
построить по графу ЯПФ G сеть G`;
распределить работы по процессорам в каждом ярусе;
вычислить основные характеристики распределения.
4. ФОРМА ОТЧЕТА.
Отчет должен включать:
- вариант задания;
- чертеж полученной ЯПФ;
- чертеж сети G`;
- таблицу распределения работ;
- расчет характеристик распределения.
