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

ФИПИ · ЕГЭ · все форматы ответа · 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

 

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

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

 

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

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


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

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

Ответ: 21

Решение.

В приложенной таблице 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
1011нет00 + 1 = 1
1025101max(1) = 11 + 5 = 6
1031106; 108max(10; 1) = 1010 + 1 = 11
1045115; 106max(25; 10) = 2525 + 5 = 30
1055122; 113max(12; 8) = 1212 + 5 = 17
1064102max(6) = 66 + 4 = 10
1073112max(1) = 11 + 3 = 4
1081нет00 + 1 = 1
1091113; 106max(8; 10) = 1010 + 1 = 11
1101107max(4) = 44 + 1 = 5
1113108; 103max(1; 11) = 1111 + 3 = 14
1121нет00 + 1 = 1
1135120max(3) = 33 + 5 = 8
1146111; 124max(14; 13) = 1414 + 6 = 20
1154119max(21) = 2121 + 4 = 25
1164101; 109max(1; 11) = 1111 + 4 = 15
1176106; 107max(10; 4) = 1010 + 6 = 16
1183101max(1) = 11 + 3 = 4
1195120; 117max(3; 16) = 1616 + 5 = 21
1202112; 108max(1; 1) = 11 + 2 = 3
1211104max(30) = 3030 + 1 = 31
1226102; 120max(6; 3) = 66 + 6 = 12
1231117max(16) = 1616 + 1 = 17
1242103max(11) = 1111 + 2 = 13
1255108max(1) = 11 + 5 = 6

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

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

Ответ: 21.

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

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

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

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

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

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

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