Привет всем. Я новенький на форуме (раньше не нуждался в помощи), но не новенький в программировании
Вообщем задача такая:
Есть двухмерная область, она разбивается, пускай, на 4 ( в реалной задаче больше ) квадрата. На одном компьютере запускается сервис ( если использовать WCF ), дальше запускаются 4 клиента на 4-ёх разных компьютерах, для которых назначается свой квадрат, для расчетов.
В этой дхумерной области размещены частицы, общее количество которых — 1 600 000 ( снова же, в реальной задаче их больше . Так вот, в каждом квадрате есть частицы, и компьютер который закреплен за этим квадратом, вычисляет их перемещения, и отправляет состояния частиц на сервис. Сервис в свою очередь, принимает данные о каждом квадрате, и рисует положение частиц в области. Если частица вылетает из одного кдвадрата, то сервис заботится о том, что бы она влетела в другой, т.е. передает ее другому компьютеру.
Вопрос:
— Подходит ли для этих целей WCF? Если нет, то что подходит?
— Как можно уменьшить нагрузку на сеть, т.к. 1 600 000 * 8 (x — 4 байта, y — 4 байта) / 1024 / 1024 = 12 мб. Это должен обрабатывать ( получать из сети ) сервис, где-то через каждую 1 сек.
Здравствуйте, vizgl, Вы писали:
V>Вопрос: V>- Подходит ли для этих целей WCF? Если нет, то что подходит? V>- Как можно уменьшить нагрузку на сеть, т.к. 1 600 000 * 8 (x — 4 байта, y — 4 байта) / 1024 / 1024 = 12 мб. Это должен обрабатывать ( получать из сети ) сервис, где-то через каждую 1 сек.
А вы померьте, не будут ли затраты на предачу по сети выше, чем преимущества, получаемые за счет дополительных машин в вычислении.
Здравствуйте, vizgl, Вы писали:
V>В этой дхумерной области размещены частицы, общее количество которых — 1 600 000 ( снова же, в реальной задаче их больше . Так вот, в каждом квадрате есть частицы, и компьютер который закреплен за этим квадратом, вычисляет их перемещения, и отправляет состояния частиц на сервис. Сервис в свою очередь, принимает данные о каждом квадрате, и рисует положение частиц в области. Если частица вылетает из одного кдвадрата, то сервис заботится о том, что бы она влетела в другой, т.е. передает ее другому компьютеру.
V>- Как можно уменьшить нагрузку на сеть, т.к. 1 600 000 * 8 (x — 4 байта, y — 4 байта) / 1024 / 1024 = 12 мб. Это должен обрабатывать ( получать из сети ) сервис, где-то через каждую 1 сек.
Если предположить что кол-во частиц, покидающих пределы текущего квадрата сильно меньше общего колива, то передавать полные координаты можно лишь для частиц-перебежчиков. Ну а чтобы нарисовать на экране все частицы, 8 байт на частицу не нужно. Для экрана среднего разрешения 3 байта на частицу будет вполне достаточно.
З.Ы. Разве кроме координат частиц ничего не надо передавать? Хотя бы скорость, направление движения?
Здравствуйте, vizgl, Вы писали:
V>- Подходит ли для этих целей WCF? Если нет, то что подходит?
Если вообще подходят "гражданские" сетевые технологии (ethernet, ip), то подходит.
V>- Как можно уменьшить нагрузку на сеть, т.к. 1 600 000 * 8 (x — 4 байта, y — 4 байта) / 1024 / 1024 = 12 мб. Это должен обрабатывать ( получать из сети ) сервис, где-то через каждую 1 сек.
Только менять алгоритм. Если менять алгоритм не выходит, то никак.
... << RSDN@Home 1.2.0 alpha 4 rev. 1237 on Windows 7 6.1.7100.0>>
Вообщем это тема на диплом. По сути будет моделироватся газ, состоящий из молекул, какбы "физический движок" — событийное программирование "Модель твердых сфер".
Мне предложили 2 темы:
— расчеты с помощью видеокарты, но т.к. видеокарта у меня старая, и соответственно шейдеры не держит ( ну держит но HLSL 2.0, а GLSL вообще не держит ).
— распаралеливание, с помощью чего либо
Впринципе, для начала попробую использовать алгоритм "dt" для движения частиц, т.к. реализвация в несколько строчек, для тестирования сети, если не покатит, буду с преподом разговаривать
Здравствуйте, vizgl, Вы писали:
V>Впринципе, для начала попробую использовать алгоритм "dt" для движения частиц, т.к. реализвация в несколько строчек, для тестирования сети, если не покатит, буду с преподом разговаривать
Здравствуйте, vizgl, Вы писали:
V>Здравствуйте, samius, Вы писали:
S>>А под многоядерность уже распараллелено?
V>нет, такой задачи не давали
Разве она не входит в
— распаралеливание, с помощью чего либо
Имхо, начать надо с нее. Будет довольно нелепо если 4 четырехъядерника за счет сетевого взаимодействия будут решать задачу медленнее чем один двухъядерник.