Построить параллельную сетку обработки из 32-битных рабочих столов

Я запускаю симуляцию на своем ноутбуке (Core 2 Duo 1,8 ГГц с 4 ГБ оперативной памяти под управлением Windows 7), что занимает очень много времени.

У меня есть пара неиспользуемых 32-битных (Core 2 Duo 1,8 ГГц с 4 ГБ ОЗУ) рабочих столов. Я хотел бы соединить их (как подчиненных) в сетке, используя локальную сеть к моему ноутбуку (как ведущему устройству), чтобы завершить выполнение алгоритмов быстрее.

Как это сделать? Какую операционную систему мне использовать? Должна ли моя операционная система быть сервером? Нужно ли дополнительное оборудование?

Пожалуйста, укажите мне на любые учебники или книги. Пожалуйста, дайте мне ваши ценные предложения и советы.

2 ответа

Решение

Какой тип инфраструктуры распределенных / параллельных вычислений вы строите, во многом зависит от решаемой проблемы. Самые легкие для распределения рабочие нагрузки - это те, которые легко подразделяются: разбить набор задач на 4 блока, разбить фрагменты на 4 машины, объединить результаты обратно после завершения обработки. Рабочие нагрузки, которые являются плохим выбором для подразделения, это те, которые сильно зависят от ранее или в настоящее время обработки данных.

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

Для данных, которые могут подразделяться, у вас есть гораздо больше вариантов. Самым большим из них является, возможно, BOINC, который разработан для отчетов рабочих блоков с очень высокой задержкой (часы, дни или даже недели). Я слышал о частных кластерах BOINC там.

В колледже я использовал PVM. Это C-библиотека (существует оболочка perl, которая является новой), которая обеспечивает межсистемную связь по различным транспортным сетям.

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

В зависимости от ваших потребностей. Но для вычислительной нагрузки попробуйте Java RMI или MPI.
Для обработки данных попробуйте Hadoop

Другие вопросы по тегам