Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » Что такое real-time | страница 1
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 1 из 1
 
Поиск в этой теме:
Канал Игры Мечты: «Что такое real-time»
Diff
 708 EGP


Модератор
Рейтинг канала: 2(11)
Репутация: 44
Сообщения: 4179
Откуда: Сферическая Земля в вакууме.
Зарегистрирован: 04.07.2003
Ну рилтайм тоже появился не в связи с геймдевом. Я уж не говорю о том, что TBS довольно сложно характеризовать как real-time задачу. А вот GSM-пакет, например, должен быть обработан в течение таймслота в 125 мкс. Если не успел - выбрасывается на мороз.
Но согласен, что довольно бессмысленно обсуждать неизвестную проблему, возникшую перед неуловимым неизвестным Джо при проектировании неизвестной игры и потребовавшую неизвестно каких аллокаторов.

Minx :
Можно банально экономить память

Так это ж наверняка просадит производительнось.
_________________
Конец света в конце тоннеля

Последний раз редактировалось: Diff (21:02 27-09-2015), всего редактировалось 1 раз
    Добавлено: 17:46 27-09-2015   
Minx
 978 EGP


Модератор
Рейтинг канала: 6(328)
Репутация: 135
Сообщения: 10521
Откуда: Gomel, Belarus
Зарегистрирован: 19.11.2005
Diff :
Ну рилтайм тоже появился не в связи с геймдевом.

Причина требований к производительности - real-time. При чем тут первое до геймдева?

Diff :
Я уж не говорю о том, что TBS довольно сложно характеризовать как real-time задачу.

В TBS как и любой другой программе, где человек не любит ждать, есть требования real-time. Естественно намного более слабые, нежели в каком-нибудь 3D Action. Например, будет очень плохо если игра будет грузиться 10 минут на топовой машине, минуту делать save, а ход ждать бесконечность.

По поводу производительности TBS мне вспоминается интересный древний пример игры Chessmaster 2000, где в качестве уровня сложности можно было задавать время сколько думает компьютер (например 3 секунды). Что прикольно, когда мы играли на EC-1841, то не без труда, но обыгрывали. Но если его же запустить на тройке, то он всех рвал просто в тряпки. И ещё, эта программа думала в то время, когда думал игрок. Поэтому если играть быстро, то копьютер думал хуже.

Это в качестве примера того, как в TBS могут решаться проблемы AI-real-time. AI можно сделать чуть более глупым, что не сложно, и от этого игра особо не пострадает.

Поэтому пример AI от Джо мне не нравится. Но вот когда ему нужно было делать Braid'a для X-Box'a с жесткими требованиями, то это уже намного понятнее.

Diff :
Так это ж наверняка просадит производительнось.

В современных системах cache miss может замедлить на 2 порядка. Если вписаться в кэш, то такого штрафа не будет.

Мы ~ 1.5 года назад оптимизировали высоконагруженную систему, и по этому фактору удалось поднять производительность ~ в 3 раза.
_________________
μηδείς αγεωμέτρητος εισίτω

Последний раз редактировалось: Minx (23:18 27-09-2015), всего редактировалось 1 раз
    Добавлено: 21:27 27-09-2015   
Diff
 708 EGP


Модератор
Рейтинг канала: 2(11)
Репутация: 44
Сообщения: 4179
Откуда: Сферическая Земля в вакууме.
Зарегистрирован: 04.07.2003
Minx :
Причина требований к производительности - real-time. При чем тут первое до геймдева?

Это к тому что проблема не является специфичной для предметной области и существовала еще до оной области появления.

Minx :
В TBS как и любой другой программе, где человек не любит ждать, есть требования real-time.

"Человек не любит ждать" - это НЕ real-time Улыбка.
rt - это когда как в примере выше, если ответ пришел за 125 мкс - то все прекрасно и слышимость отличная, а если за 126 - то кваканье и слышно одно слово из трех. Переход количества в качество, таксказать. Точно так же видеоигра пропускает фреймы если железо не поспевает за игровыми событиями. Но это не в ТБС.
Не то чтобы я придираюсь, но давать собственные интерпретации устоявшимся терминам = увязнуть в дискуссии за корабли большого театра.

Minx :
когда мы играли на EC-1841, то не без труда, но обыгрывали. Но если его же запустить на тройке, то он всех рвал просто в тряпки.

Та же фигня. Помню, это было большим разочарованием от апгрейда. Только я обыгрывал ЕС-1842! Улыбка
Еще я долго искал под андроид похожую программу, которая как CM могла бы анализировать сыгранную партию и оценивать позиции соперников, но так и не нашел.

Minx :
В современных системах cache miss может замедлить на 2 порядка.

И более. В системе над которой я щас работаю есть фича, которая не попавшие в кеш (не процессорный, конечно) данные может по сети(!) запулить в отстойник в другую звездную систему где они упадут на механический диск. Угадай, сколько там порядков разницы выходит.

Minx :
оптимизировали высоконагруженную систему, и по этому фактору удалось поднять производительность ~ в 3 раза

Уменьшением объемов выделяемой памяти чтобы попасть в кэш? Круто. Но это не совсем экономия памяти - объемы кэша и озу несопоставимы. Это скорее оптимизация операций с памятью.
Я когда-то пытался этим заниматься, но без особого эффекта - объемы были великоваты.

Minx :
Меня тут точно не обманываете?

Ну так сколько гениев, столько и непреложных истин.
_________________
Конец света в конце тоннеля
    Добавлено: 12:41 28-09-2015   
Minx
 978 EGP


Модератор
Рейтинг канала: 6(328)
Репутация: 135
Сообщения: 10521
Откуда: Gomel, Belarus
Зарегистрирован: 19.11.2005
Diff :
"Человек не любит ждать" - это НЕ real-time

Real-time - это любые требования к времени исполнения.

Diff :
rt - это когда как в примере выше, если ответ пришел за 125 мкс - то все прекрасно и слышимость отличная, а если за 126 - то кваканье и слышно одно слово из трех.

Это уже одни из требований real-time.

Diff :
Но это не в ТБС.

В деревянных шахматах между двумя людьми нет требований real-time. Поэтому TBS не обязательно имеет требования real-time. Но может и иметь.

Diff :
Не то чтобы я придираюсь, но давать собственные интерпретации устоявшимся терминам = увязнуть в дискуссии за корабли большого театра.

Это вообще-то одна из интуитивных ошибок термина real-time.

В геймдеве противопоставляют turn based и real-time. Поэтому тут смысл real-time немного другой, а real-time TBS превращается в оксюморон.

Если взять ОСРВ, то там для real-time свои особенности (время реакции).

Если взять real-time для mission-систем, то там может быть важно как быстрее выполнить задачу (отреагировать на пуск ракеты).

В общем же случае, термин обозначает просто привязку к реальному времени, т.е. что нужно выполнять определенные требования во времени. А в зависимости от контекста эти требования могут быть очень разными.

Diff :
В системе над которой я щас работаю есть фича, которая не попавшие в кеш (не процессорный, конечно) данные может по сети(!) запулить в отстойник в другую звездную систему где они упадут на механический диск. Угадай, сколько там порядков разницы выходит.

Чего гадать-то.. в той же книжке расписаны порядки:

• Registers & CPU cache: 1 nanosecond
• RAM: 10^2 nanoseconds
• Local drives: 10^5 to 10^7 nanoseconds
• Network: 10^6 to 10^9 nanoseconds

Diff :
Уменьшением объемов выделяемой памяти чтобы попасть в кэш? Круто. Но это не совсем экономия памяти - объемы кэша и озу несопоставимы. Это скорее оптимизация операций с памятью.
Я когда-то пытался этим заниматься, но без особого эффекта - объемы были великоваты.

Можно назвать и так. Но основным действием в той оптимизации было уменьшение объемов используемой памяти.
_________________
μηδείς αγεωμέτρητος εισίτω

Последний раз редактировалось: Minx (14:22 28-09-2015), всего редактировалось 1 раз
    Добавлено: 14:19 28-09-2015   
Diff
 708 EGP


Модератор
Рейтинг канала: 2(11)
Репутация: 44
Сообщения: 4179
Откуда: Сферическая Земля в вакууме.
Зарегистрирован: 04.07.2003
Minx :
Real-time - это любые требования к времени исполнения.

Рилтайм подразумевает выполнение в условиях изменяющегося окружения. Посчитать число пи до триллионного знака за секунду - это не рилтайм-задача. А система управления игрушечной (или настоящей) железной дорогой - да.

Minx :
В деревянных шахматах между двумя людьми нет требований real-time.

А по твоей логике, есть. Время на матч.
По ней вообще любая программа - это СРВ. Даже notepad имеет требования по производительности.

Minx :
Если взять ОСРВ, то там для real-time свои особенности (время реакции).

Не время реакции, а гарантированное время реакции. Например, у линукса время реакции меньше, чем у QNX. Но при этом QNX - ОСРВ, а линукс - нет.

Minx :
В общем же случае, термин обозначает просто привязку к реальному времени, т.е. что нужно выполнять определенные требования во времени.

А поскольку вне времени мы ничего выполнять не умеем, то... в общем, ясно Улыбка.

Minx :
Чего гадать-то.. в той же книжке расписаны порядки:

Ну не все так грустно... Диск - это на самом деле один из 80 дисков в хитром рейде. А у сети пропускная способность повыше чем, например, у SATA3. Но все равно впечатляет решительность с которой данные засовываются в Задница
_________________
Конец света в конце тоннеля
    Добавлено: 16:09 28-09-2015   
Shirson
 1605 EGP


Модератор
Рейтинг канала: 7(626)
Репутация: 219
Сообщения: 16511
Откуда: 79°W 44°N
Зарегистрирован: 29.01.2002
Minx :
Real-time - это любые требования к времени исполнения.

В каком ракурсе говорится о времени исполнения? Просто обычно это не real-time, а run-time.
_________________
У меня бисера не доxеpа.
    Добавлено: 16:18 28-09-2015   
Minx
 978 EGP


Модератор
Рейтинг канала: 6(328)
Репутация: 135
Сообщения: 10521
Откуда: Gomel, Belarus
Зарегистрирован: 19.11.2005
Guest :
Это немного из другой категории вопрос. Я бы назвал такие позиции - разработка арт-проектов и коммершиал-проектов.
Арт требует времени и не обязан быть мегауспешным, но он будет запоминающимся.
Коммершиал должен отбить бабки, там время и все фичи по возможности усекаются и работает всё как в масс-продакшене.

У меня как бы и вопрос изначальный - в разности подходов к двум этим разным задачам.

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

Diff :
Рилтайм подразумевает выполнение в условиях изменяющегося окружения.

Мои слова как бы этого не отрицают (;

Но для real-time если есть какие-то требования привязки ко времени, то система становится real-time по этим требованиям.

Diff :
А по твоей логике, есть. Время на матч.

Если используется контроль времени.

Diff :
По ней вообще любая программа - это СРВ. Даже notepad имеет требования по производительности.

Только если в ТЗ (спецификации) не указаны требования, связанные со временем.

Т.е. если ты пишешь Hello World и не думаешь о том, сколько времени будет работать программа (т.е. в спецификации требований нет), то это уже не real-time.

Если же пишешь и нужно вписаться в определнные временные рамки (преждевременная оптимизация это не real-time), то это real-time. Например, если программа должна поздравить с днем варенья 1-го января, но 31-го декабря или 2-го января уже нельзя. По производительности требований нет, а система real-time.

Вот Джо говорил о том, что он сначала в лоб реализовал логику своего AI в прототипе. И как только AI стало несколько, то игра стала жутко тормозить. И вот, как только у Джо появилась мысля о том, что все таки хорошо бы вписаться для пользователя в какие-то разумные рамки с сохранением интеллекта AI, то сразу программа в этом отношении стала real-time.

Diff :
Не время реакции, а гарантированное время реакции.

А мне нужно в ответ написать "не гарантированное время реакции, а гарантированный запуск заданного события с более высоким приоритетом".

Ну так, для продолжения въедливости (;

Diff :
Но при этом QNX - ОСРВ, а линукс - нет.

Смотря какой линукс.. Линуксы это такие мутанты звери, что за всю ихнюю популяцию далеко не все можно категорично утверждать (;

добавлено спустя 5 минут:
Shirson :
В каком ракурсе говорится о времени исполнения? Просто обычно это не real-time, а run-time.

run-time - это же то, что во время исполнения. Упала программа во время исполнения (run-time). Объект создался во время исполнения (run-time). Коннект к БД происходит на лету (во время исполнения, run-time).

В противоположность run-time можно например compile-time.
_________________
μηδείς αγεωμέτρητος εισίτω

Последний раз редактировалось: Minx (18:20 28-09-2015), всего редактировалось 9 раз(а)
    Добавлено: 17:09 28-09-2015   
Diff
 708 EGP


Модератор
Рейтинг канала: 2(11)
Репутация: 44
Сообщения: 4179
Откуда: Сферическая Земля в вакууме.
Зарегистрирован: 04.07.2003
Минкс, ты какую-то лютую ересь несешь. У меня даже нет сил ее разбирать по пунктам Расстроен.
_________________
Конец света в конце тоннеля

Последний раз редактировалось: Diff (17:31 28-09-2015), всего редактировалось 1 раз
    Добавлено: 17:18 28-09-2015   
Minx
 978 EGP


Модератор
Рейтинг канала: 6(328)
Репутация: 135
Сообщения: 10521
Откуда: Gomel, Belarus
Зарегистрирован: 19.11.2005
Ещё одна попытка с другой стороны.

Например, на железной дороге есть микропроцессорные системы. И они много чем управляют. Посмотрим на обычную станцию. На ней туева куча объектов - десятки стрелок, светофоров, секций. .. Есть переезды, негабаритные участки, автоперегоны и т.д.

Первая особенность в том, что все это должно работать безопасно. Вторая особенность в том, что время для событий не как у тебя 125 мкс, а обычно порядка единиц секунд. Например, автопереезд на особождение дается ЕМНИП, 30 секунд. Одна стрелка может переводиться 3 секунды, а другая (магистральная) - 2 минуты.

К системе предъявляются жесткие требования real-time. Это означает, что то что прописано, должно быть кровь из носа выполнено, на уровне вероятности 0.999999.. , даже в случае отказов аппаратуры. Или чтобы был переход в безопасное состояние.

При этом real-time такой, что объектов дохрена, но все они должны работать корректно и с крайне высокой вероятностью успеха (неопасный 1 сбой например раз в 100 лет, и 1 опасный раз в 10 000 лет - года условно).

И вот, когда на ж.д. приходит кто-то с QNX, и говорит, что давайте я вам запилю ваш real-time, то его посылают накер (и такие случаи зафиксированы, в том числе провала разработки на QNX).

Такой вот real-time.

---

Теперь ещё один пример.

Клиент приходит к банкомату положить деньги на телефон. Когда система обрабатывает его запрос, то он разделен на 2 фазы. Во время первой проверяется, можно ли провести транзакцию (правильный номер телефона? есть ли деньги на карточке?). Эта фаза - real-time. Потому что нельзя человека долго держать у банкомата. Потом идет другая фаза - реальное начисление денег на счет. Так вот она не real-time. Деньги попадут через секунду или через час уже не важно, главное гарантированно снять со счета карточки N рублей (а не N/100 рублей), и зачислить на другой счет N рублей (а не N*100 рублей).

Соответственно, к первой и второй фазе разные требования. Например, на первой фазе в случае непонятной ситуации запрос можно просто отбросить. А на второй фазе банк и биллинг взяли уже на себя определенные обязательства, и отбрасывание попахивает вплоть до судебного разбирательства.

А на обоих этих фазах QNX нафиг не нужен - тут нет никаких 125 мкс.
_________________
μηδείς αγεωμέτρητος εισίτω
    Добавлено: 17:40 28-09-2015   
Shirson
 1605 EGP


Модератор
Рейтинг канала: 7(626)
Репутация: 219
Сообщения: 16511
Откуда: 79°W 44°N
Зарегистрирован: 29.01.2002
Minx :
Shirson :
В каком ракурсе говорится о времени исполнения? Просто обычно это не real-time, а run-time.

run-time - это же то, что во время исполнения.

В таком случае высказывание
Цитата:
Real-time - это любые требования к времени исполнения.

Крайне спорно.
_________________
У меня бисера не доxеpа.
    Добавлено: 17:56 28-09-2015   
Minx
 978 EGP


Модератор
Рейтинг канала: 6(328)
Репутация: 135
Сообщения: 10521
Откуда: Gomel, Belarus
Зарегистрирован: 19.11.2005
Не претендую на абсолютную точность определения.

Главное тут то, что real-time - это очень широкополосный термин и что конкретно именно имеется ввиду определяется контекстом.
_________________
μηδείς αγεωμέτρητος εισίτω
    Добавлено: 18:12 28-09-2015   
Diff
 708 EGP


Модератор
Рейтинг канала: 2(11)
Репутация: 44
Сообщения: 4179
Откуда: Сферическая Земля в вакууме.
Зарегистрирован: 04.07.2003
Minx :
Ещё одна попытка с другой стороны.
Например, на железной дороге
<многабукф скиппед>

А какие выводы из вышеизложенного? Еще несколько постов назад ты вроде бы различал RTOS и RTC, а теперь свалил их в кучу. Зачем?
_________________
Конец света в конце тоннеля
    Добавлено: 19:46 28-09-2015   
Minx
 978 EGP


Модератор
Рейтинг канала: 6(328)
Репутация: 135
Сообщения: 10521
Откуда: Gomel, Belarus
Зарегистрирован: 19.11.2005
Diff :
Еще несколько постов назад ты вроде бы различал RTOS и RTC, а теперь свалил их в кучу

[RTOS + RTC] = RT * [OS + C]
RT = куча

Хотя про RTC речи не припоминаю..
_________________
μηδείς αγεωμέτρητος εισίτω

Последний раз редактировалось: Minx (19:58 28-09-2015), всего редактировалось 1 раз
    Добавлено: 19:57 28-09-2015   
Diff
 708 EGP


Модератор
Рейтинг канала: 2(11)
Репутация: 44
Сообщения: 4179
Откуда: Сферическая Земля в вакууме.
Зарегистрирован: 04.07.2003
Minx :
отя про RTC речи не припоминаю

Real Time Computing, http://www.elite-games.ru/conference/viewtopic.php?p=3326647#3326647
Зачем ты перемешал RTOS и прикладные задачи реального времени7
_________________
Конец света в конце тоннеля
    Добавлено: 20:14 28-09-2015   
Minx
 978 EGP


Модератор
Рейтинг канала: 6(328)
Репутация: 135
Сообщения: 10521
Откуда: Gomel, Belarus
Зарегистрирован: 19.11.2005
Речь шла об общем основании - real-time.
_________________
μηδείς αγεωμέτρητος εισίτω
    Добавлено: 20:21 28-09-2015   
Diff
 708 EGP


Модератор
Рейтинг канала: 2(11)
Репутация: 44
Сообщения: 4179
Откуда: Сферическая Земля в вакууме.
Зарегистрирован: 04.07.2003
А к чему был пост о ненужности QNX при управлении железнодорожной стрелкой?
_________________
Конец света в конце тоннеля
    Добавлено: 21:10 28-09-2015   
Minx
 978 EGP


Модератор
Рейтинг канала: 6(328)
Репутация: 135
Сообщения: 10521
Откуда: Gomel, Belarus
Зарегистрирован: 19.11.2005
Кто тому, что real-time это не обязательно 125 мкс.
_________________
μηδείς αγεωμέτρητος εισίτω
    Добавлено: 21:21 28-09-2015   
Diff
 708 EGP


Модератор
Рейтинг канала: 2(11)
Репутация: 44
Сообщения: 4179
Откуда: Сферическая Земля в вакууме.
Зарегистрирован: 04.07.2003
Да, не обязательно. Для 125 мкс, кстати, QNX тоже оказался не нужен. На линуксе оно работало лучше.
_________________
Конец света в конце тоннеля
    Добавлено: 21:29 28-09-2015   
Minx
 978 EGP


Модератор
Рейтинг канала: 6(328)
Репутация: 135
Сообщения: 10521
Откуда: Gomel, Belarus
Зарегистрирован: 19.11.2005
Minx :
Чего гадать-то.. в той же книжке расписаны порядки:

• Registers & CPU cache: 1 nanosecond
• RAM: 10^2 nanoseconds
• Local drives: 10^5 to 10^7 nanoseconds
• Network: 10^6 to 10^9 nanoseconds


Ещё один пример порядков да и вообще:

Цитата:
• At physical level, all the work with memory is usually made via so-called “cache lines”. On x86/x64, cache line is 64 bytes for many years now
•• It means that as soon as you’ve accessed any single byte in a cache line, all the other 63 bytes are already in L1 cache
•• In addition, if your program exhibits a pattern of sequential reading, CPU usually does so-called “prefetch”, getting you the next-in-pattern cache line just in case you MIGHT need it.
• Register-register operation is around 1 CPU clock
• L1 read is like 4 CPU clocks these days (typical L1 cache data size is around 32K). Usually L1 is per-core
• L2 read is around 10-12 clocks (typical L2 cache size is around 256K). L2 is usually per-core these days
• L3 read is 30-50 clocks (typical L3 cache size is around 4-12M). Unlike L1-L2, L3 is usually shared between cores and is per-socket(!)
• Main RAM access is around 100-150 CPU clocks
• NUMA accesses. NUMA applies only to multi-socket configurations, i.e. to servers and (almost-)only to servers:
•• With NUMA, each CPU has its own RAM connected to it (and only to it); there is no more SMP/FSB-style “RAM directly connected to all the CPUs”
••• Whenever CPU A needs to access RAM connected to CPU B, CPU A issues a request to CPU B which goes over ultra-fast CPU-to-CPU connection (for example, Hypertransport for AMD, or Quick Path Interconnect a.k.a. QPI for Intel)
•• NUMA access to another socket, with data happening to be in other-socket L3, costs 100-200 CPU clocks
•• NUMA access to another socket, with data happening to be in RAM, costs 200-300 CPU clocks

http://ithare.com/c-for-games-performance-allocations-and-data-locality/

_________________
μηδείς αγεωμέτρητος εισίτω
    Добавлено: 13:41 30-05-2016   
Канал Игры Мечты: «Что такое real-time»
 
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Как избавиться от привкуса вискаря? Я даже бутер ща слопал - он и тот со вкусом виски. Я походу замариновался. (RenderG)

  » Что такое real-time | страница 1
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18