![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 07.11.2016
Сообщений: 4
|
![]()
Необходимо соединить несколько компов по локальной сети через сокеты в Delpi(локальный параллелизм) и выполнить запуск программы. Запускается программа на сервере, передается клиентам, и выполняется параллельно на всех компах. проверить скорость выполнения операции.
Я их соединила, но не могу разобраться, как выполнять программу одновременно. Помогите с кодом,пожалуйста. ![]() |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
![]()
Что программа делает? какой алгоритм реализован?
делал "распределенного" Мандельброта на 1 курсе на яве... 4 сервера вычислений и 1 клиент - клиент разбивает канву на зоны и отдает координаты зон серверам - сервера обратно отсылают отрендереный битмап - клиент сшивает битмапы на канву было реально быстрее в 4 раза чем на 1 компе... а компы в то время были P2Celeron 333Mhz
Не стесняемся, плюсуем!
![]() |
![]() |
![]() |
![]() |
#3 |
Регистрация: 07.11.2016
Сообщений: 4
|
![]() ![]() пишешь проги одинаковые На несколько компов Только они кусок вычислений делают, а не все А потом вычисления складываются на сервере . главное реализовать совместную вычислительную деятельность между компами. У меня есть отдельно клиент и отдельно сервер, нужно часть кода, для передачи и запуска программы. Последний раз редактировалось Olga Fedorova; 07.11.2016 в 13:52. |
![]() |
![]() |
![]() |
#4 |
мальчик-помогай =)
Форумчанин
Регистрация: 16.09.2010
Сообщений: 522
|
![]()
[телепатия]
Сервер должен отслеживать момент подключения клиента и отсылать ему данные о его части работы (они напрямую зависят от задачи т. е. это никак не "копируем любую прогу N раз и оно само себя распараллелит").... клиент выполняет свою часть и отправляет серверу ответ Сервер должен откуда-то (от главного клиента) получать исходные данные и делить её на части, которые и будут отправлены вычисляющим_клиентам... так же, сервер должен хранить данные вида "часть задачи - статус", где статус - не решена, в процессе и решена... статус "в процессе" нужен т. к.может произойти ошибка и клиент никогда уже не окончит работу... с этим статус, сервер может как-то (по таймауту) переводить куски задачи из "в процессе" в "не решена" и др.клиенты смогут снова попытаться вычислить этот участок Исходную задачу стоит дробить на подзадачи не по объёму, а по предполагаемому времени решения... это сложнее, но тогда нагрузка распределяется равномернее и отказы наносят меньший ущерб..... если брать пример с вычислением фрактала, то я бы не делил на 4 равных части, а делил бы, например, на 16 частей, чтоб: а) в случае отказа, пришлось меньше пересчитывать б) самый быстрый сервер (в силу любых причин) мог выполнить не свои 4\16, а 5\16, скажем Кроме того, если у нас много подзадач, то очень легко посчитать суммарный прогресс вычислений. Конечно же, если подзадачи несут в себе много данных, то это замедлит процесс, как и в ряде др. случаев. Очень многое зависит от самой задачи, поэтому никто вам не поможет, если не назвать что конкретно ваша программа вычисляет. Расчёт движения атомов, моделирование популяций животных, майнинг криптовалют - всё это распределённые вычисления, НО они кардинально отличаются друг от друга. [/телепатия] |
![]() |
![]() |
![]() |
#5 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
![]()
Если делать можно все что угодно я предпочту Sleep... тем более этот алгоритм легко параллелится
![]() спать распределенно - это круто и энергоэффективно... а ты вот попробуй факториал распараллелить ![]()
Не стесняемся, плюсуем!
![]() |
![]() |
![]() |
![]() |
#6 |
Регистрация: 07.11.2016
Сообщений: 4
|
![]()
Например,программа подсчета простых чисел от 1 до 100000
|
![]() |
![]() |
![]() |
#7 |
мальчик-помогай =)
Форумчанин
Регистрация: 16.09.2010
Сообщений: 522
|
![]()
Прекрасно, простые числа - простой алгоритм: берём кластер с разделяемой памятью.......)
Как сама бы решала? у меня стойкое ощущение, что ты не понимаешь что к чему и думаешь что есть одно универсальное решение, которое сразу подойдёт и твой код заработает.... код твой, кстати, никто не видел, поэтому конкретных советов не будет |
![]() |
![]() |
![]() |
#8 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,831
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#9 |
Регистрация: 07.11.2016
Сообщений: 4
|
![]()
Подскажите, пожалуйста, я не совсем понимаю, как это реализовать. Можно ли подключить библиотеку PPL.? Помогите конкретно с кодом, хотя бы структуру его
![]() ![]() ![]() |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,831
|
![]()
Что вы не понимаете? Я ж все описал. Откройте книжку или гугл про сокеты и прочитайте как передавать и принимать числа, остальное элементарщина.
Структура описана постом выше, за исключение ввода/вывода. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Потребители сдали в ремонт 16 компьютеров. Из них 8 нуждают- ся в мелком ремонте. Мастер берет 6 компьютеров. Какова вероятность т | now2 | Помощь студентам | 8 | 18.03.2014 09:47 |
Вычислительная геометрия, Delphi/Pascal | holy_0dmin | Фриланс | 9 | 24.04.2011 07:26 |
Вычислительная математика Delphi | milawka | Фриланс | 3 | 14.04.2011 15:21 |
Параллельная программа для метода холецкого с помощью openMp и mpi | игоревна | Помощь студентам | 0 | 06.06.2009 20:47 |
отправка e-mail с помощью сокетов | andrey4623 | PHP | 3 | 27.06.2008 13:20 |