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


Автор: KaraKum 13.12.2010, 02:25
Доброе время суток.
Не уверен что верно выбрал ветку, но, думаю, это, всё-таки, вопрос о железе.
Пишу программу на С++ где есть поле для ускорения вычислений (которые сейчас длятся сутками (по 24 часа которые)) в разбиении выполнения на потоки, при этом потоков может быть очень много (найдётся работа для тысяч потоков).
Специфика программы в следующем:
    - используемых данных довольно-таки мало (100 килобайт от-силы (на несколько часов работы)) - то есть их можно передать по сети
    - каскадное разбиение на подзадачи (потоки) - разбив задачу на какие-то части, получившиеся части (подзадачи) можно также разбить на другие
    - процесс вычисления проходит практически без использования оперативной памяти (меньше одного мегабайта)
Так вот вопрос в следующем: какое железо лучше всего подойдёт для осуществления параллельных вычислений для этой задачи?
Гипер-современные (и соответственно дорогие) якобы 8-ми ядерные Core-i7; старые дешёвые (1000 рублей за штуку) однопоточные Celeron'ы с 4ГГц тактовой частоты?; видеокарты от NVidia (GeForce, Tesla) - придётся использовать чуждую мне "CUDA"; ...
Что посоветуете?

Автор: Akella 14.12.2010, 20:38
да, я бы использовал многоядерные процессоры intel

Автор: bilbobagginz 14.12.2010, 23:04
KaraKum
по задаче надо посчитать что выходит целесообразнее, и выбирать.
т.е. считай сколько времени 1 "вычислительная единица" работы будет бежать. посмотри сколько "единиц работы" в промежуток времени выполнит каждая система, и посмотри кто дает наилучший результат.
Если вы платите и за питание/охлаждение, при таком раскладе стоит взять в счет сколько еще и питания/охлаждения требует данная система.

все это количественно выразится в денежных единицах, которые можно сравнить.

Автор: KaraKum 15.12.2010, 19:00
Хмм... я видимо неправильно поставил вопрос.
Моя проблема заключается в выборе "типа" (как-бы "класса") железа. Приведу пример: есть Celeron с 4Ггц тактовой частоты стоимостью в 900 рублей и есть Core i7 стоимостью 16000 (до 30000 вроде даже) рублей с 4 ядрами (виртуальные ядра я не признаю  smile ), но с тактовой частотой в 2-3Ггц - если бы мы могли покупать только процессоры и заставлять их работать на "вселенской энергии", то тогда была бы польза явно в сторону Celeron'a, но проблема в необходимости приобретения для каждого процессора ещё и мат. платы, сетевой карты, хоть одной планки памяти и так далее... В данном случае существует явная ненужная переплата в случае с Core i7 за ультра-современные (но в моём случае неисользуемые) технологии, реалезованные в нём. Учёт электроэнергии, я думаю, можно пренебречь - всё-таки это значительно меньшая трата по сравнению со стоимостью железа.
Вот, вобщем, вопрос в том какие именно железяки (мат. платы, планки памяти (по тактовой частоте) и процессоры (ну или графические ускорители)) здесь будут лучше смотреться?

Автор: WolfAlone 27.12.2010, 22:58
Выскажу своё скромное мнение. Оптимальным вариантом, я думаю для Вас будет процессор(ы) с наилучшим соотношением цена/качество. Сравнительную таблицу производительности процессоров при разных условиях эксплуатации вы можете найти в интернете (ссылки приводить не буду, боюсь справедливых модераторов  smile )

Добавлено через 1 минуту и 4 секунды
По моим личным наблюдениям, скорее всего это будут процессоры AMD...

Автор: KaraKum 27.12.2010, 23:54
Спасибо за ответ.

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

Автор: WolfAlone 28.12.2010, 10:33
KaraKum, припоминается мне, есть такие услуги как "аренда компьютера". Одно время даже мой знакомый так свой компьютер сдавал (в аренду). Как я понял, заказчики просят поставить какое-то ПО, в результате чего - его компьютер начинает работать как часть большой вычислительной сети. Как я понимаю, такие услуги для арендодателя стоят не очень дорого, но оплатить электроэнергию ему хватило, да ещё и на "мороженое" осталось (*опять же, с его слов*)  smile 

Попробуйте поискать такие услуги, уверен, что кто-то этим занимается.

Добавлено через 36 секунд
P.S. Всё это дело как я понял, происходит через интернет.

Автор: KaraKum 6.1.2011, 03:56
Цитата(WolfAlone @ 28.12.2010,  11:33)
KaraKum, припоминается мне, есть такие услуги как "аренда компьютера". Одно время даже мой знакомый так свой компьютер сдавал (в аренду). Как я понял, заказчики просят поставить какое-то ПО, в результате чего - его компьютер начинает работать как часть большой вычислительной сети. Как я понимаю, такие услуги для арендодателя стоят не очень дорого, но оплатить электроэнергию ему хватило, да ещё и на "мороженое" осталось (*опять же, с его слов*)  smile 

Попробуйте поискать такие услуги, уверен, что кто-то этим занимается.

Добавлено @ 10:34
P.S. Всё это дело как я понял, происходит через интернет.

Ну, это не коммерческий проект и я чисто принципиально не будут платить кому-то за то чтобы он помогал мне своим железом. Планирую зацепиться за энтузиазм пользователей. Сайт красивенький сделаю - знакомых художников попрошу что-нибудь нарисовать. Вон у http://folding.stanford.edu/ столько "помощников" (полностью добровольных и бесплатных), что они оказались мощнее (в сумме) самого мощного компьютера в мире.

P.S. хоть платить и не готов, но уже купил второй комп чтобы тестировать совместную работу Linux'а и Windows'а (но закроем глаза на это smile ).

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