Не все так просто. Элементарный пример - предположим, захотели мы смоделировать такие "элементарый процессы" - скажем, поведение молекул в цилиндре с поршнем, исходя из представлений классической термодинамики. Для этого мы моделируем цилиндр и X молекул в нем, которые там "прыгают" и "отражаются" от стенок и друг от друга как идеальные мячики. И есть у нас 100 слабосвязанных процессоров. Дальше можно пойти двумя путями:Сообщение от POP
1. Пусть каждый проц обсчитывает "свой" 1% от общего числа молекул. Но тогда у нас возникает большая проблема - как обсчитывать столкновения? Заранее неизвестно, какие молекулы находятся хотя бы рядом. При большом X это и один процессор нагрузит, но когда процессоров много - они будут вынуждены передавать друг другу координаты ВСЕХ молекул, и КАЖДЫЙ процессор вынужден их помнить. Нагрузка на каналы связи очень высока.
2. Каждый проц обсчитывает свою область пространства внутри цилиндра. Если молекула улетает в "чужую" область, то этот проц "отдает" ее нужному, а сам про нее забывает. Но все равно - проблема столкновений на границе имеется, каналы связи нагружены передачей иноформации про уходящие молекулы, а главное - процессоры загружены неравномерно, каким-то может достаться на расчет заметно больше молекул, чем другим.
А самое любопытное, что заранее совершенное неясно, какой алгоритм эффективнее - все зависит от соотношения скорость процов/скорость каналов связи. Если оно высоко - выгоднее второй вариант (причем если это соотношение ОЧЕНЬ высоко, то выгоднее вообще собрать все на одном процессоре, а остальные даже и не включать), если низко - выгоднее первый.
При этом напомню, что нынешний уровень развития вычислительных средств как раз упирается в то, что процессоры у нас чрезвычайно производительны, а вот каналы связи - не очень... Хотел бы еще напомнить, что любой канал связи, передающий информацию "от многих к многим" - сам по себе очень сложен, со схемами арбитража, приоритизации и маршрутизации. И чем выше скорость - тем больше вычислительных ресурсов требуется, чтобы это разрулить. Современный гигабитный маршрутизатор внутри имеет ОЧЕНЬ неслабый процессор, и он совсем не простаивает.
Во-первых, процов больше, чем один. Процессор современной видеокарты по мощи не уступает центральному. Во-вторых, расчет физики по сравнению с расчетом графики все равно нынче очень быстр, даже в Ил-2. У симуляторов есть особенность - они обязаны как-то рисовать то, что они считают. И чем детальнее считают - тем детальнее обязаны это рисовать, иначе это - просто глупая трата ресурсов. Например, зачем детально рассчитывать повреждения от снаряда, форму и размер дырок, и где именно сломался лонжерон, если все это визуально никак не отображается? Гораздо проще и эффективней ввести статистическую модель - эффект тот же, а геморроя намного меньше.Сообщение от POP
А если речь идет о рисовании, то опять же проблема тесно связанных вычислений - ты никогда заранее не можешь сказать, не заслонит ли вот этот листочек вон тут самолет, или нет. Требуются расчеты, пусть даже поначалу прикидочные, а это опять - сравнение всех со всеми, и перегрузка каналов связи, либо простой каких-то процессоров (самолеты в ИЛ-2 - не молекулы, и часто любят собираться все вместе в очень ограниченной области пространства, а где самолеты - там и пальба, и все такое).
Есть алгоритмы рисования сцен, которые распараллеливаются отлично, и дают потрясающе реалистичную картинку (загляните за примерами на www.povray.org, особенно на картинки-победители месяца) - это трассировка лучей (raytracing). Но такие алгоритмы сами по себе чрезвычайно прожорливы, и даже с сотней современных процессоров не дадут картинку качества современных игр с приемлемым FPSом. Планка производительности и количества процессоров (и, разумеется, качества картинки), когда raytracing станет выгоднее нынешних алгоритмов 3D-визуализации - еще ОЧЕНЬ ДАЛЕКО.




), 10 миллионов волн на воде( 
).
Ответить с цитированием
