LINUX.ORG.RU
ФорумTalks

Наличие сервера при распределенных вычислениях


0

1

Кто занимался написанием программ распределенных вычислений, часто вообще возникает необходимость делать некий центральный сервер, к которому подключаются клиенты, или же чаще получается множество одинаковых программ, которые сами между собой взаимодействуют?

★★★★★

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

Spectator
()

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

В пределе на сервере остаётся только начальное получение списка пиров. А всё остальное уже идёт через них и цифровые подписи.

Indaril_Shpritz
()
Ответ на: комментарий от Indaril_Shpritz

У меня сервер раздает задачи, работая по принципу «Освободился? Вот тебе новая порция данных для обсчета»

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 1)

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

Я паралеллил несложные разностные схемы и фурье на Фортране, OpenMPI или Mpich, а последние годы не могу задач огромных придумать хватает 8-ядерного процессора, с ним проблем меньше.

зы проснулся. Так у тебя нечто большее чем просто кластер...

WerNA ★★★★★
()
Последнее исправление: WerNA (всего исправлений: 1)
Ответ на: комментарий от WerNA

Ну почти всегда одна выделенная копия программы занимается вначале вводом данных, затем рассылает данные другим,

Я это выделил в отдельную часть. Т.е. на «головном» компьютере запускается и сервер, рассылающий задачи, и один из клиентов.

Так как задача параллелится великолепно, то в итоге у меня соединений между различными клиентами пока просто нет.

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 1)

Часто, т.к. это удобно при меняющейся топологии сети (клиенты подключаются и отключаются в зависимости от фазы луны, нужно гибко распределять мощности между разными задачами и пр.).

Раньше проблема центрального узла была в слабой мощности — он не мог держать достаточное кол-во подключений и быстро распределять задачи. Поэтому приходилось делать несколько центральных узлов и либо синхронизировать их, либо выстраивать иерархию. Сейчас же, когда даже в обычном дескотпе 8 ядер с частотй 3+ Ггц такой проблемы просто нет, а на обычных сравнительно недорогих юнитовых серверах 2 проца по 12 ядер..., а в принципе можно и 8 по 16 сделать, то такой проблемы вообще нет, можно в центральный сервак запихать все, включая тесты на правильность вычислений пиров...

soomrack ★★★★★
()
Последнее исправление: soomrack (всего исправлений: 1)
Ответ на: комментарий от soomrack

Сейчас же, когда даже в обычном дескотпе 8 ядер с частотй 3+ Ггц

У меня 2.

И оба зажираются клиентом, который запущен на нем же.

Всего компьютеров 3

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от cvs-255

И глядя вперед, я в дальнейшем представляю себе следующую архитектуру: в центре 1 маленький сервер, он запускает несколько клиентов, решающих задачи #2. Эти клиенты в свою очередь являются серверами для клиентов, решающих задачи #1.

Какие могут у этого быть подводные камни?

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от cvs-255

С 3-мя компами я бы даже не парился, а разбил бы вручную всю задачу на три(?) куска.

Подводные камни — балансировка дерева задач, как только у тебя появляется несколько серверов под раздачу задач — то тут же у тебя появляется проблема их организации. Если делаешь дерево — нужно будет постоянно балансировать его задачи, и не факт, что ты сразу сделаешь так, что нагрузка на центральный сервак будет меньше...

Если хочешь разобраться в тематике — то посмотри что пишут в научной периодике. У нас подобное почему-то называют в т.ч. и фрилансерными вычислениями...

По-русски, мутнова-то, но зато немного (автор примерно твой ровесник, видел его как-то на конференции, кажется даже с этим докладом): http://uteoss2012.ipu.ru/procdngs/0140.pdf

Ну а вообще это grid вычисления: http://scholar.google.ru/scholar?q=grid вычисления&btnG=&hl=en&as...

soomrack ★★★★★
()
Ответ на: комментарий от soomrack

С 3-мя компами я бы даже не парился, а разбил бы вручную всю задачу на три(?) куска.

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

Подводные камни — балансировка дерева задач, как только у тебя появляется несколько серверов под раздачу задач — то тут же у тебя появляется проблема их организации

Пока сделано по принципу «кто первый встал, того и тапки»

cvs-255 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.