Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > вопрос по параллельным вычислениям


Автор: motorway 22.10.2009, 17:26
Допустим, есть какая-то задача, которую можно распараллелить на несколько компьютеров. В каких случаях это обычно делают? Если время вычисления одной части задачи составляет порядка 1 сек или меньше, то есть ли смысл это распараллеливать? Например, на 1 процессоре считается за 0,1 сек, а на нескольких - за 0,02 сек. Вроде и так довольно быстро, и преимущества в скорости будут заметны только при большом числе таких задач.

Автор: nworm 22.10.2009, 21:40
на практике, когда хотят выигрыш в скорости получить, если есть со скоростью проблемы или есть простая и притягательная возможность распараллелить и посмотреть что получится (например, так уже кто-то делал в похожих задачах).

а для исследований самого распараллеливания вполне разумно вначале короткие задачи смотреть, а затем на большие переходить.
 

Автор: Фантом 22.10.2009, 23:58
Тут, как и во всех подобных случаях, нужно оценивать соотношение "цена-производительность". Понятно, что экономить доли секунды с помощью распараллеливания бессмысленно (разве что в учебных целях)... но если эта программа будет использоваться не один раз, а миллион, то экономия времени будет весьма ощутимой.

Более конкретного ответа, пожалуй, просто нет. В первую очередь потому, что в разных областях время самого программиста стоит по-разному - где-то оно намного дороже времени компьютеров и пользователей, где-то - намного дешевле.

Автор: aggressorus 23.10.2009, 21:38
Есть формулы ускорения и эффективность распараллеливания задач. По этим формулам можно посчитать теоретическое ускорения выполнения параллельной задачи от последовательной, например http://iproc.ru/parallel-programming/lection-3/. На практике всегда работает.  
Всё зависит от архитектуры системы и скорости передачи данных. Тут надо считать и потом уже реализовывать.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)