|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
07.11.2016, 12:41 | #1 |
Регистрация: 07.11.2016
Сообщений: 4
|
Параллельная вычислительная деятельность компьютеров, с помощью сокетов в Delphi
Необходимо соединить несколько компов по локальной сети через сокеты в Delpi(локальный параллелизм) и выполнить запуск программы. Запускается программа на сервере, передается клиентам, и выполняется параллельно на всех компах. проверить скорость выполнения операции.
Я их соединила, но не могу разобраться, как выполнять программу одновременно. Помогите с кодом,пожалуйста. |
07.11.2016, 12:50 | #2 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
Что программа делает? какой алгоритм реализован?
делал "распределенного" Мандельброта на 1 курсе на яве... 4 сервера вычислений и 1 клиент - клиент разбивает канву на зоны и отдает координаты зон серверам - сервера обратно отсылают отрендереный битмап - клиент сшивает битмапы на канву было реально быстрее в 4 раза чем на 1 компе... а компы в то время были P2Celeron 333Mhz
Не стесняемся, плюсуем!
|
07.11.2016, 13:11 | #3 |
Регистрация: 07.11.2016
Сообщений: 4
|
программа любая,
пишешь проги одинаковые На несколько компов Только они кусок вычислений делают, а не все А потом вычисления складываются на сервере . главное реализовать совместную вычислительную деятельность между компами. У меня есть отдельно клиент и отдельно сервер, нужно часть кода, для передачи и запуска программы. Последний раз редактировалось Olga Fedorova; 07.11.2016 в 13:52. |
07.11.2016, 15:10 | #4 |
мальчик-помогай =)
Форумчанин
Регистрация: 16.09.2010
Сообщений: 522
|
[телепатия]
Сервер должен отслеживать момент подключения клиента и отсылать ему данные о его части работы (они напрямую зависят от задачи т. е. это никак не "копируем любую прогу N раз и оно само себя распараллелит").... клиент выполняет свою часть и отправляет серверу ответ Сервер должен откуда-то (от главного клиента) получать исходные данные и делить её на части, которые и будут отправлены вычисляющим_клиентам... так же, сервер должен хранить данные вида "часть задачи - статус", где статус - не решена, в процессе и решена... статус "в процессе" нужен т. к.может произойти ошибка и клиент никогда уже не окончит работу... с этим статус, сервер может как-то (по таймауту) переводить куски задачи из "в процессе" в "не решена" и др.клиенты смогут снова попытаться вычислить этот участок Исходную задачу стоит дробить на подзадачи не по объёму, а по предполагаемому времени решения... это сложнее, но тогда нагрузка распределяется равномернее и отказы наносят меньший ущерб..... если брать пример с вычислением фрактала, то я бы не делил на 4 равных части, а делил бы, например, на 16 частей, чтоб: а) в случае отказа, пришлось меньше пересчитывать б) самый быстрый сервер (в силу любых причин) мог выполнить не свои 4\16, а 5\16, скажем Кроме того, если у нас много подзадач, то очень легко посчитать суммарный прогресс вычислений. Конечно же, если подзадачи несут в себе много данных, то это замедлит процесс, как и в ряде др. случаев. Очень многое зависит от самой задачи, поэтому никто вам не поможет, если не назвать что конкретно ваша программа вычисляет. Расчёт движения атомов, моделирование популяций животных, майнинг криптовалют - всё это распределённые вычисления, НО они кардинально отличаются друг от друга. [/телепатия] |
08.11.2016, 07:56 | #5 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
Если делать можно все что угодно я предпочту Sleep... тем более этот алгоритм легко параллелится
спать распределенно - это круто и энергоэффективно... а ты вот попробуй факториал распараллелить
Не стесняемся, плюсуем!
|
08.11.2016, 13:08 | #6 |
Регистрация: 07.11.2016
Сообщений: 4
|
Например,программа подсчета простых чисел от 1 до 100000
|
08.11.2016, 14:48 | #7 |
мальчик-помогай =)
Форумчанин
Регистрация: 16.09.2010
Сообщений: 522
|
Прекрасно, простые числа - простой алгоритм: берём кластер с разделяемой памятью.......)
Как сама бы решала? у меня стойкое ощущение, что ты не понимаешь что к чему и думаешь что есть одно универсальное решение, которое сразу подойдёт и твой код заработает.... код твой, кстати, никто не видел, поэтому конкретных советов не будет |
08.11.2016, 15:08 | #8 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,707
|
Цитата:
|
|
17.11.2016, 13:24 | #9 |
Регистрация: 07.11.2016
Сообщений: 4
|
Подскажите, пожалуйста, я не совсем понимаю, как это реализовать. Можно ли подключить библиотеку PPL.? Помогите конкретно с кодом, хотя бы структуру его
|
17.11.2016, 13:56 | #10 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,707
|
Что вы не понимаете? Я ж все описал. Откройте книжку или гугл про сокеты и прочитайте как передавать и принимать числа, остальное элементарщина.
Структура описана постом выше, за исключение ввода/вывода. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Потребители сдали в ремонт 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 |