распределенные вычисления на С++ / С#
От: Igor Sukhov  
Дата: 29.04.11 01:46
Оценка:
Есть куча кода С++ и немного С# — надо построить настройку над ним чтобы сделать возможными распределенные вычисления на множестве машин. В общих чертах у меня есть идеи что и как делать,
но вот откуда начать пока не знаю.

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

Спасибо.
* thriving in a production environment *
Re: распределенные вычисления на С++ / С#
От: dfbag7 Россия  
Дата: 29.04.11 03:06
Оценка: +1
Здравствуйте, Igor Sukhov, Вы писали:

IS>Есть куча кода С++ и немного С# — надо построить настройку над ним чтобы сделать возможными распределенные вычисления на множестве машин. В общих чертах у меня есть идеи что и как делать,

IS>но вот откуда начать пока не знаю.

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

IS>Наверно есть готовые Open Source и комерческие разработки продукты для решения таких задач — посоветуйте то чем сами пользовались.


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

NB: Google по запросу "distributed computing framework" возвращает 11600000 страниц, в т.ч. ссылку на эту страницу: http://stackoverflow.com/questions/1755180/distributed-computing-framework-net-specifically-for-cpu-instensive-operatio.
Re[2]: распределенные вычисления на С++ / С#
От: Igor Sukhov  
Дата: 29.04.11 05:31
Оценка: -1
Здравствуйте, dfbag7, Вы писали:

IS>>Есть куча кода С++ и немного С# — надо построить настройку над ним чтобы сделать возможными распределенные вычисления на множестве машин. В общих чертах у меня есть идеи что и как делать,

IS>>но вот откуда начать пока не знаю.

D>Странная постановка задачи. Далеко не каждый код можно заставить работать в распределенном режиме.

D>Для начала нужно попытаться сделать так, чтобы задача решалась на одном компьютере в несколько потоков. В результате вы будете знать, как запустить алгоритм для "кусочка" вычислений.
D>Затем подумать над тем, как отдельные "кусочки" запускать на нескольких компьютерах: как и какие параметры передавать и т.п.

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

надо сначала узнать какие есть best practices & best avaiable tools и уже под них делать постановку задачи.
* thriving in a production environment *
Re: распределенные вычисления на С++ / С#
От: __kot2  
Дата: 29.04.11 11:30
Оценка: 12 (1) +1
Здравствуйте, Igor Sukhov, Вы писали:
IS>Наверно есть готовые Open Source и комерческие разработки продукты для решения таких задач — посоветуйте то чем сами пользовались.
первое что в голову приходит, да и почти последнее — MPI
Re: распределенные вычисления на С++ / С#
От: ZevS Россия  
Дата: 29.04.11 11:36
Оценка:
Здравствуйте, Igor Sukhov, Вы писали:

http://www.microsoft.com/hpc/en/us/product/cluster-computing.aspx
Re: распределенные вычисления на С++ / С#
От: Хвост  
Дата: 29.04.11 14:13
Оценка:
Здравствуйте, Igor Sukhov, Вы писали:

IS>Есть куча кода С++ и немного С# — надо построить настройку над ним чтобы сделать возможными распределенные вычисления на множестве машин. В общих чертах у меня есть идеи что и как делать,


Без подробных требований сложно что-либо советовать, может подойти любое из: MPI, DCOM, SOAP, zeromq. А может и не подойти.
People write code, programming languages don't.
Re[2]: распределенные вычисления на С++ / С#
От: Igor Sukhov  
Дата: 02.05.11 14:04
Оценка:
Здравствуйте, Хвост, Вы писали:

IS>>Есть куча кода С++ и немного С# — надо построить настройку над ним чтобы сделать возможными распределенные вычисления на множестве машин. В общих чертах у меня есть идеи что и как делать,


Х>Без подробных требований сложно что-либо советовать, может подойти любое из: MPI, DCOM, SOAP, zeromq. А может и не подойти.


подробные требования? самое главное требование такое — просто и быстро сделать из нераспределенной системы вычислений — распределенную.

сейчас все хозяйство это библиотека из C++ классов и фасад из С функций. Фасад используется чтобы вызывать библиотечные функции из других С++ & C# приложений.

первоначалная идея сделать над фасадом еще один уровень абстракции — например вместо входных значений использовать массив входных значений и если массив состоит из 20 элементов — паралельно просчитать на 20 slave машинах, собрать результаты вычислений и отдать их обратно клиенту. нужен какой-то фреймворк который позволяет регистрировать slave машины на gateway машине (та каторая распаралеливает вызовы), деплоить на них библиотечные бинарники, сериализовать входные параметры, вызывать библиотечные функции на slave машинах, ждать результатов вызова, собирать результаты и отдавать их обратно на клиента. ну и чтобы были встроенные средства мониторинга всей системы и автоматические средства обработки простых ситуаций как то отвалившаяся slave машина.

вот для всего вышеописанного ищется С++ фреймворк, такой чтобы был проверен временем и чтобы его можно было легко допилить напильником до нужного идеального состояния.
* thriving in a production environment *
Re[3]: распределенные вычисления на С++ / С#
От: Аноним  
Дата: 04.05.11 05:41
Оценка: 12 (1)
Посмотри http://gearman.org.
Для обмена, так сказать, "оперативными" данными между процессами находящимся на разных серверах можно использовать memcached.
Re: распределенные вычисления на С++ / С#
От: Andrew S Россия http://alchemy-lab.com
Дата: 04.05.11 21:31
Оценка: 12 (1)
IS>Есть куча кода С++ и немного С# — надо построить настройку над ним чтобы сделать возможными распределенные вычисления на множестве машин. В общих чертах у меня есть идеи что и как делать,
IS>но вот откуда начать пока не знаю.

IS>Наверно есть готовые Open Source и комерческие разработки продукты для решения таких задач — посоветуйте то чем сами пользовались.


IS>Спасибо.


Ice.Grid
http://www.rusyaz.ru/pr — стараемся писАть по-русски
Re[4]: распределенные вычисления на С++ / С#
От: Igor Sukhov  
Дата: 05.05.11 10:22
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Посмотри http://gearman.org.

А>Для обмена, так сказать, "оперативными" данными между процессами находящимся на разных серверах можно использовать memcached.

спасибо. memcached похоже на то что нужно, а gearman — видимо ориентирован на скриптовые языке, на главной странице почти все об php, perl, python клиентах.
* thriving in a production environment *
Re[2]: распределенные вычисления на С++ / С#
От: Igor Sukhov  
Дата: 05.05.11 10:26
Оценка:
Здравствуйте, Andrew S, Вы писали:

AS>Ice.Grid

спасибо. будем пробовать. и форум у них приличный — тысячи сообщений. значит рабочая штука.
* thriving in a production environment *
Re[3]: распределенные вычисления на С++ / С#
От: Andrew S Россия http://alchemy-lab.com
Дата: 05.05.11 18:02
Оценка: 22 (2) +1
AS>>Ice.Grid
IS>спасибо. будем пробовать. и форум у них приличный — тысячи сообщений. значит рабочая штука.

Мы пробовали у себя в инфраструктуре. Как грид, так и сам ice. Впечатления крайне положительные, как от фреймворка, так и от поддержки. Ну и качество кода — очень впечатляет.
http://www.rusyaz.ru/pr — стараемся писАть по-русски
Re[4]: распределенные вычисления на С++ / С#
От: trophim Россия  
Дата: 09.07.11 21:20
Оценка:
Подтверждаю вышесказанное. Авторы говорят, что съели собаку на КОРБА и решили сделать свой мидлваре... Получилось очень хорошо. А уж такой хорошей документации как у них идет в виде одного большого PDF, я давненько не видел: мне ни разу не потребовалось рыть форумы, ибо там все уже есть.
... << RSDN@Home 1.2.0 alpha 5 rev. 1495>>
Let it be! — Давайте есть пчелу!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.