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

ФИПИ · ЕГЭ · все форматы ответа · 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 Основные тенденции развития компьютерных технологий. Параллельные вычисления. Многопроцессорные системы. Распределённые вычислительные системы и обработка больших данных
Тип ответа:Краткий ответ
Номер: E32519
НЕ РЕШЕНО Ответить

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

Ответ: 13

Решение.

В приложенной таблице 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
1071105; 106max(33; 32) = 3333 + 1 = 34
1082107max(34) = 3434 + 2 = 36
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

Сначала фиксируем обязательное условие: минимальное время всей системы T = 36 мс. Его нижнюю границу задаёт цепочка 101 → 103 → 105 → 107 → 108:
15 + 3 + 15 + 1 + 2 = 36.
Самое раннее расписание достигает этой границы. Разрешено сдвигать отдельные процессы, пока не нарушены зависимости и общий срок T. Минимальное время всей системы не требует самого раннего запуска абсолютно каждой строки.

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

Обоснуем верхнюю границу длительности. Минимальное время всей системы 36 мс. Две параллельные работы слева возможны либо у {101,102}, либо у 105 вместе с последовательными 104,106. Эти стадии разделяет 103. В первой стадии 101 заканчивается не позднее 36−3−15−1−2=15, а две работы справа возможны лишь после 8 мс процесса 109. Поэтому здесь не более 7 мс. Вторая стадия начинается не раньше 15+3=18. Справа возможны пары {110,111}, {110,113}, {112,113}. Если непрерывный интервал включает 111, то 111 заканчивается не позднее 36−13=23 из-за последующего 112. После 111 второй параллельный процесс может обеспечивать только 113 длительностью 8 мс; без разрыва он должен стартовать в момент окончания 111. Поэтому такой интервал заканчивается не позднее 23+8=31 и длится не более 31−18=13 мс. Если 111 в интервал не попадает, то на всём интервале нужен 113, что даёт не более 8 мс. Наибольшая из полученных границ — 13 мс.

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

IDНачалоОкончание
101015
102014
1031518
1041821
1051833
1062132
1073334
1083436
10908
110923
1111723
1122336
1132331

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

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

Длина промежутка 31 − 18 = 13 мс. Она совпадает с доказанной верхней границей. Последний процесс заканчивается в момент 36 мс, поэтому требование минимального общего времени также выполнено.

Ответ: 13.

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

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

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

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

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

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

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