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

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

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

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

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

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

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

 

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

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

 

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

 

ID процесса B

Время выполнения

процесса B (мс)

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

1

3

0

2

4

1

3

2

2; 4

4

5

0

5

8

1; 4

 

Определите минимальное время (в мс), за которое завершатся 17 процессов. Считать, что каждый процесс начинается в самое раннее допустимое время. Минимальное время отсчитывается непрерывно с первой миллисекунды. В ответе укажите только число – количество мс.

Например, для приведённой таблицы найдём время, за которое завершатся 3 процесса. Минимальное время, которое для этого требуется, – 7 мс. За это время завершатся процессы 1, 2 и 4.

 

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

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


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

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

Ответ: 12

Решение.

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

Начальный момент обозначим 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
1016109; 103max(11; 6) = 1111 + 6 = 17
1021115; 106max(8; 3) = 88 + 1 = 9
1031125max(5) = 55 + 1 = 6
1046107max(12) = 1212 + 6 = 18
1056121max(2) = 22 + 6 = 8
1063нет00 + 3 = 3
1071115; 109max(8; 11) = 1111 + 1 = 12
1085106; 112max(3; 4) = 44 + 5 = 9
1092108; 125max(9; 5) = 99 + 2 = 11
1105115max(8) = 88 + 5 = 13
1114125; 121max(5; 2) = 55 + 4 = 9
1124нет00 + 4 = 4
1135108; 124max(9; 11) = 1111 + 5 = 16
1143110max(13) = 1313 + 3 = 16
1156121max(2) = 22 + 6 = 8
1162112max(4) = 44 + 2 = 6
1174115max(8) = 88 + 4 = 12
1186111; 108max(9; 9) = 99 + 6 = 15
1194101max(17) = 1717 + 4 = 21
1201109; 115max(11; 8) = 1111 + 1 = 12
1212нет00 + 2 = 2
1222112max(4) = 44 + 2 = 6
1234109; 103max(11; 6) = 1111 + 4 = 15
1246121; 125max(2; 5) = 55 + 6 = 11
1251112max(4) = 44 + 1 = 5

Нужно найти первый момент, к которому завершилось не менее 17 процессов. Упорядочим все значения F по возрастанию, сохраняя одинаковые окончания разных процессов:
2; 3; 4; 5; 6; 6; 6; 8; 8; 9; 9; 9; 11; 11; 12; 12; 12; 13; 15; 15; 16; 16; 17; 18; 21.

На позиции 17 стоит 12. Строго раньше этого момента завершается 14 процессов, а к этому моменту включительно — 17. Поэтому раньше нужного количества ещё нет, а в момент 12 мс оно уже достигнуто. Одновременные окончания считаем по отдельности.

Ответ: 12.

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

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

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

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

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

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

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