Задание EGEINFDAB821: Параллельные вычисления

ФИПИ · ЕГЭ · все форматы ответа · 2475 заданий

Открыть решение ↓ Ошибка или пожелание

Тип задачи: Параллельные вычисления.

Учебные темы: Основные тенденции развития компьютерных технологий. Параллельные вычисления. Многопроцессорные системы. Распределённые вычислительные системы и обработка больших данных.

Впишите правильный ответ.

 Рисунок из условия ФИПИЗадание выполняется с использованием прилагаемых файлов.

 

В файле содержится информация о совокупности N вычислительных процессов, которые могут выполняться параллельно или последовательно. Приостановка выполнения процесса не допускается. Будем говорить, что процесс B зависит от процесса A, если для выполнения процесса B необходимы результаты выполнения процесса A. В этом случае процессы A и B могут выполняться только последовательно.

Информация о процессах представлена в файле в виде таблицы. В первом столбце таблицы указан идентификатор процесса (ID), во втором столбце таблицы – время его выполнения в миллисекундах, в третьем столбце перечислены с разделителем «;» ID процессов, от которых зависит данный процесс. Если процесс независимый, то в таблице указано значение 0.

 

Типовой пример организации данных в файле

 

ID процесса B

Время выполнения процесса B (мс)

ID процесса(-ов) A

101

4

0

102

3

0

103

1

101; 102

104

7

103

 

Определите максимальную продолжительность отрезка времени (в мс), в течение которого возможно одновременное выполнение максимального количества процессов при условии, что все независимые друг от друга процессы могут выполняться параллельно.

 

Типовой пример имеет иллюстративный характер. Для выполнения задания используйте данные из прилагаемого файла.

Скачать файл задания (ODS, ФИПИ)


i
СВОЙСТВА ЗАДАНИЯ
КЭС:
1.1 Основные тенденции развития компьютерных технологий. Параллельные вычисления. Многопроцессорные системы. Распределённые вычислительные системы и обработка больших данных
Тип ответа:Краткий ответ
Номер: DAB821
НЕ РЕШЕНО Ответить

Решение задания EGEINFDAB821

Ответ: 14

Решение.

В приложенной таблице 13 процессов. Первый столбец содержит их идентификаторы, второй — длительности в миллисекундах, третий — идентификаторы всех необходимых предшественников. Ноль в третьем столбце означает отсутствие предшественников. Типовой пример из условия не заменяет данные файла.

Начальный момент обозначим 0. Пусть d(B) — длительность процесса B, S(B) — время его начала, F(B) — время окончания. Процесс занимает промежуток от S(B) включительно до F(B) не включительно. Его результат доступен уже в момент F(B); следующий процесс может начаться в этот же момент.

Для самого раннего допустимого запуска используем правила:
S(B) = 0, если предшественников нет;
S(B) = max(F(A)), где максимум берётся по всем предшественникам A;
F(B) = S(B) + d(B).
Длительности разных предшественников не складываем: они могут работать параллельно. Но ждать требуется завершения каждого, поэтому выбираем самое позднее окончание. Строки вычисляем после их предшественников, даже если в файле они расположены в другом порядке.

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

Проверка зависимостей и длительностей. Полный расчёт самого раннего расписания, все времена в мс:

IDdПредшественникиSF = S + d
10115нет00 + 15 = 15
10214нет00 + 14 = 14
1033101; 102max(15; 14) = 1515 + 3 = 18
1043103max(18) = 1818 + 3 = 21
10515103max(18) = 1818 + 15 = 33
10611104max(21) = 2121 + 11 = 32
1075105; 106max(33; 32) = 3333 + 5 = 38
1088107max(38) = 3838 + 8 = 46
1098нет00 + 8 = 8
11014109max(8) = 88 + 14 = 22
1116109max(8) = 88 + 6 = 14
11213110; 111max(22; 14) = 2222 + 13 = 35
1138111max(14) = 1414 + 8 = 22

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

Разделим граф на независимые компоненты. Процессы 101–108 дают не более 2 одновременных работ. Процессы 109–113 дают не более 2 одновременных работ. В первой компоненте пары возможны только у 101 и 102 либо у 105 вместе с 104 или 106. Во второй возможны только пары {110,111}, {110,113}, {112,113}. Поэтому во всей системе одновременно может работать не более 4 процессов. Ниже построено расписание, где это число достигается.

Обоснуем верхнюю границу длительности. Две работы первой компоненты возможны либо у {101,102}, либо у 105 вместе с последовательными 104,106. Между стадиями выполняется 103, во время которого первой компоненте нельзя дать две работы. Первая стадия не длиннее min(15,14)=14 мс; вторая — min(15,3+11)=14 мс. Поэтому четыре процесса всей системы не могут непрерывно выполняться дольше 14 мс.

Построим расписание, достигающее этой границы. Каждый процесс идёт без остановок, а его начало не раньше окончания любого предшественника:

IDНачалоОкончание
101015
102014
1031518
1041821
1051833
1062132
1073338
1083846
1091018
1101832
1111824
1123245
1132432

На всём промежутке [18; 32) одновременно работают 4 процессов. При завершении одного процесса другой может сразу занять его место; разрыва параллельной работы нет:

Промежуток, мсРаботающие процессыКоличество
[18; 21)104, 105, 110, 1114
[21; 24)105, 106, 110, 1114
[24; 32)105, 106, 110, 1134

Длина промежутка 32 − 18 = 14 мс. Она совпадает с доказанной верхней границей.

Ответ: 14.

Помочь улучшить сайт

Напишите пожелание к сайту или решению либо сообщите о найденной неточности в задании EGEINFDAB821.

Сообщение увидит только команда сайта: на странице оно не публикуется.

Комментарии к решению

Комментарии видны всем посетителям сайта.

Комментариев пока нет. Будьте первым.

Чтобы оставить комментарий, войдите или зарегистрируйтесь.