@kykryniks

Как можно с модулировать вычислительную сеть и посчитать ее помощью?

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

Собственно задача:
1 создать модель вычислительной сети. (тут надо сказать что ничего я нашел только одну программу(omnet++), но она ужасна и не удобна).
1.1 в сети есть сервер и N других компьютеров (Клиенты)

2 Сеть надо запрограммировать так что бы она могла умножить две матрица. То есть, первый Клиент умножат первую строку первой матрицы на первый столбец второй матрицы, Второй Клиент второруй строку первой матрицы умножает на второй столбец второй матрицы, ну и так далее. Затем все Клиенты отсылают свои результаты Серверу который формирует итоговую матрицу.

Основная задача наглядно показать что вычислительная сеть (аля супер компьютер) может выполнять некие операции (в нашем случаи умножение матриц).

ПС: буду благодарен за любую помощь.Готов уточнять если что то не понятно (первый раз пишу вопрос в нете :) ).
  • Вопрос задан
  • 383 просмотра
Пригласить эксперта
Ответы на вопрос 3
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Ну, как бы сама сеть здесь нипричем. Вам нужна какая нибудь библиотека для сетевых вычислений, например MPI www.opennet.ru/docs/RUS/MPI_intro
habrahabr.ru/company/intel/blog/251357
habrahabr.ru/post/121235

Или просто написать клиен-серверное приложение самому на сокетах или через http.
Ответ написан
Neuroware
@Neuroware
Программист в свободное от работы время
можно использовать MPI, но ему для работы нужен кластер. Можно использовать самопал (есть на готове одна разработка), но расчеты в такой сети имеют смысл лишь если их вычисление занимает времени больше (хотя бы на порядок) чем передача данных для вычисления по сети, то есть если у вас матрица 100*100 ее выгоднее распараллелить на 1 машине, чем гонять по сети данные для расчета. Грубо говоря можно так, если у вашей задачи "умножение 1 строки на 1 столбец" уходит для расчета хотябы 10 мс тогда имеет смысл думать о разделении вычислений, в противном случае накладные расходы на передачу данных в вычислительной сети сожрут все преимущество в распределении вычислений.
Ответ написан
@jkotkot
режим сарказма
Технология называется Map-Reduce. Реализуется, например, Apache Hadoop, или Mongodb, но задача освоения довольно сложная. Возможно есть какие-то другие более простые варианты.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы