???
Математика на уровне МГУ

Показано с 1 по 25 из 110

Тема: Берегись Ил-Штурмовик!.....

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #6
    Член стаи
    Регистрация
    15.03.2004
    Адрес
    Стольный град Москов
    Возраст
    51
    Сообщений
    2,803

    Ответ: Берегись Ил-Штурмовик!.....

    Цитата Сообщение от POP
    и так до тех пор, пока не получим ОДИН очень сложный процесс, для которого уже маловато вычислительных ресурсов. Вот тогда начинаем задумываться о том, как разбить этот процесс для обработки на нескольких процессорах, и выясняем, что те "подпроцессы", которые у нас получились очень тесно связаны между собой и требуют обмена огромным количеством информации между собой.
    Не все так просто. Элементарный пример - предположим, захотели мы смоделировать такие "элементарый процессы" - скажем, поведение молекул в цилиндре с поршнем, исходя из представлений классической термодинамики. Для этого мы моделируем цилиндр и X молекул в нем, которые там "прыгают" и "отражаются" от стенок и друг от друга как идеальные мячики. И есть у нас 100 слабосвязанных процессоров. Дальше можно пойти двумя путями:

    1. Пусть каждый проц обсчитывает "свой" 1% от общего числа молекул. Но тогда у нас возникает большая проблема - как обсчитывать столкновения? Заранее неизвестно, какие молекулы находятся хотя бы рядом. При большом X это и один процессор нагрузит, но когда процессоров много - они будут вынуждены передавать друг другу координаты ВСЕХ молекул, и КАЖДЫЙ процессор вынужден их помнить. Нагрузка на каналы связи очень высока.

    2. Каждый проц обсчитывает свою область пространства внутри цилиндра. Если молекула улетает в "чужую" область, то этот проц "отдает" ее нужному, а сам про нее забывает. Но все равно - проблема столкновений на границе имеется, каналы связи нагружены передачей иноформации про уходящие молекулы, а главное - процессоры загружены неравномерно, каким-то может достаться на расчет заметно больше молекул, чем другим.

    А самое любопытное, что заранее совершенное неясно, какой алгоритм эффективнее - все зависит от соотношения скорость процов/скорость каналов связи. Если оно высоко - выгоднее второй вариант (причем если это соотношение ОЧЕНЬ высоко, то выгоднее вообще собрать все на одном процессоре, а остальные даже и не включать), если низко - выгоднее первый.

    При этом напомню, что нынешний уровень развития вычислительных средств как раз упирается в то, что процессоры у нас чрезвычайно производительны, а вот каналы связи - не очень... Хотел бы еще напомнить, что любой канал связи, передающий информацию "от многих к многим" - сам по себе очень сложен, со схемами арбитража, приоритизации и маршрутизации. И чем выше скорость - тем больше вычислительных ресурсов требуется, чтобы это разрулить. Современный гигабитный маршрутизатор внутри имеет ОЧЕНЬ неслабый процессор, и он совсем не простаивает.

    Цитата Сообщение от POP
    На примере ИЛ2:
    На карте 10 самолётов, 100 единиц наземки, 300 облаков, миллион листочков на деревьях( ), 10 миллионов волн на воде( ), 1000 единиц снарядов (которые выпустили те самолёты и наземка)...
    И ВСЁ ЭТО мы пытаемся "пропихнуть" через один несчастный проц, причём не только то, что мы сейчас "видим", но и то, что происходит на другом конце карты (а вдруг через секунду нам захочется посмотреть что происходит там?)....
    Во-первых, процов больше, чем один. Процессор современной видеокарты по мощи не уступает центральному. Во-вторых, расчет физики по сравнению с расчетом графики все равно нынче очень быстр, даже в Ил-2. У симуляторов есть особенность - они обязаны как-то рисовать то, что они считают. И чем детальнее считают - тем детальнее обязаны это рисовать, иначе это - просто глупая трата ресурсов. Например, зачем детально рассчитывать повреждения от снаряда, форму и размер дырок, и где именно сломался лонжерон, если все это визуально никак не отображается? Гораздо проще и эффективней ввести статистическую модель - эффект тот же, а геморроя намного меньше.

    А если речь идет о рисовании, то опять же проблема тесно связанных вычислений - ты никогда заранее не можешь сказать, не заслонит ли вот этот листочек вон тут самолет, или нет. Требуются расчеты, пусть даже поначалу прикидочные, а это опять - сравнение всех со всеми, и перегрузка каналов связи, либо простой каких-то процессоров (самолеты в ИЛ-2 - не молекулы, и часто любят собираться все вместе в очень ограниченной области пространства, а где самолеты - там и пальба, и все такое ).

    Есть алгоритмы рисования сцен, которые распараллеливаются отлично, и дают потрясающе реалистичную картинку (загляните за примерами на www.povray.org, особенно на картинки-победители месяца) - это трассировка лучей (raytracing). Но такие алгоритмы сами по себе чрезвычайно прожорливы, и даже с сотней современных процессоров не дадут картинку качества современных игр с приемлемым FPSом. Планка производительности и количества процессоров (и, разумеется, качества картинки), когда raytracing станет выгоднее нынешних алгоритмов 3D-визуализации - еще ОЧЕНЬ ДАЛЕКО.
    Крайний раз редактировалось MUTbKA; 02.06.2005 в 09:37.

Ваши права

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