OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 19 Март, 2024 14:11

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Конвеерная обработка команд
СообщениеДобавлено: Суббота, 24 Апрель, 2010 19:55 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
Дурацкая задачка мучает. Логика против интуиции.

Поступает поток команд. Обработка каждой команды состоит из трёх последовательных фаз, занимающих время t1, t2 и t3 соответственно (пусть t1 > t2, t1 > t3). Полное время обработки одной команды равно t1+t2+t3 (это латентность). Если обрабатывать команды в одном потоке, то пропускная способность будет равна 1/(t1+t2+t3). Но можно обрабатывать команды в трёх потоках: организовать три последовательных конвеера. Латентность чуть-чуть увеличится (незначительные накладные расходы на перекладывание команд между конвеерами), но пропускная способность увеличится и будет составлять 1/t1 (определяется скоростью самого медленного конвеера).

А теперь вводится новое условие: t1 > t2 + t3.

Тогда три конвеера не нужны, хватит двух. Первый с пропускной способностью 1/t1, а второй с 1/(t2+t3).

Вот и мучаюсь. Логика говорит, что достаточно всего двух конвееров, а интуиция, зараза такая, твердит, что чем больше потоков, тем "параллельнее", то есть лучше :( :( :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Конвеерная обработка команд
СообщениеДобавлено: Суббота, 24 Апрель, 2010 20:01 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Ну, пропускная способность не может быть выше, чем у самого медленного звена.

Кстати, не сразу понял терминологию. То, что Вы назвали конвейером, по ходу, надо называть звеном, этапом конвейера; а конвейер - это всё в целом.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Конвеерная обработка команд
СообщениеДобавлено: Суббота, 24 Апрель, 2010 20:12 

Зарегистрирован: Пятница, 13 Март, 2009 16:36
Сообщения: 987
Откуда: Казань
Если есть 2 конвеера, то можно применить решение "задачи Джонсона о двух станках".
Если 3 конвеера, то в принципе можно обработать быстрее, чем с 2-мя конвеерами, но, насколько я знаю, это NP-полная задача, и здесь поможет только полный перебор.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Конвеерная обработка команд
СообщениеДобавлено: Вторник, 27 Апрель, 2010 23:20 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
Илья Ермаков писал(а):
Кстати, не сразу понял терминологию. То, что Вы назвали конвейером, по ходу, надо называть звеном, этапом конвейера; а конвейер - это всё в целом.
У каждого потока своя очередь входящих сообщений. Если проводить механическую аналогию - 3 конвеера, продукция которых непосредственно на следующий конвеер не попадает, а сначала отвозится на склад. Вроде так.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Конвеерная обработка команд
СообщениеДобавлено: Среда, 28 Апрель, 2010 09:39 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Просто термин pipeline в параллельном программировании означает как раз сам способ соединения потоков, поочередно передающих друг другу данные.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Конвеерная обработка команд
СообщениеДобавлено: Среда, 28 Апрель, 2010 19:34 

Зарегистрирован: Воскресенье, 28 Май, 2006 22:12
Сообщения: 1693
Не мучайтесь. Добавляйте столько исполнительных элементов, сколько вам позволяет ситуация!
А тому, кто начнёт мямлить что-то про "экстенсив", - просто наплюйте в глаза.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB