За последние несколько лет в Интернете было несколько статей о создании кластера компьютеров дома - например, здесь .
Pi кажется мне хорошей платформой для создания / тестирования подобных вещей из-за их низкой стоимости; Должны ли "общие" руководства, такие как эта передача, довольно легко переноситься на Pi или есть что-то конкретное, о чем я должен знать при попытке такого проекта?
Ответы:
Я предлагаю взглянуть на Dispy - модуль Python для распределенных вычислений.
Чтобы запустить программу на нескольких Raspberry Pi (узлах) с ПК (сервер - предположим, что IP есть
192.168.0.100
):Установите операционную систему на каждый RasPi
Подключите каждый RasPi к вашей сети. Найдите IP-адрес (если он динамический) или настройте статический IP-адрес.
(Давайте предположим, что у вас есть три узла, и их IP-адреса
192.168.0.50-52
)Установите Python (если еще нет), установите
dispy
, а затем запуститеdispynode.py -i 192.168.0.100
на каждом RasPi. Это сообщит dispynode о получении информации о задании с сервера.На ПК (сервере) установите
dispy
и запустите следующий код Python:Вы также можете заменить
/some/program
на функцию Python - напримерcompute
.Вы также можете включить зависимости, такие как объекты Python, модули и файлы (которые
dispy
будут передаваться на каждый узел), добавивdepends=[ClassA, moduleB, 'file1']
источник
Вы должны знать о проделанной работе - даже есть название кластера RasPi boxen. Embedded Linux Wiki говорит Bramble определяется как « кластер Beowulf устройств Raspberry Pi». Raspberry Pi Homebrew имеет ряд сообщений о Брамблсе , и видеть также Фонд собственного форума «s.
источник
Некоторые ребята из Southampton Uni собрали кластер и написали подробный обзор своей работы на http://www.southampton.ac.uk/~sjc/raspberrypi/ .
источник
Это вполне возможно, но самая большая проблема - это достижимость. Это идея, которую я не только считаю работоспособной, но и полезной, поскольку вы могли бы пойти с идеей переносимых параллельных вычислений. Что касается специфики, то лучше всего подойдут языки программирования, такие как FORTRAN и C ++.
Посмотрите на beowulf.org больше о кластерных вычислениях
источник
Это ответ на пост Гвидо Гарсии выше относительно «диспи» - я не могу понять, как ответить на его пост.
Когда программа ('/ bin / ls') распространяется с 'dispy' для параллельного выполнения, эта программа на клиентском компьютере передается на каждый из узлов (в '/ tmp'). Это так, что разработанная пользователем программа на клиентском компьютере передается без NFS или какой-либо общей директории. Это работает с двоичными программами, только когда узлы и клиентские архитектуры совместимы. В вашем случае, я предполагаю, что клиентская архитектура отличается от архитектуры удаленных узлов, и узел не может выполнять двоичные файлы '/ bin / ls', переданные от клиента. Если вы хотите выполнить / bin / ls на каждом узле, может быть проще написать функцию или программу Python для печати каталога (например, с использованием os.listdir) и распространить его вместо двоичного исполняемого файла.
источник
Там также http://pi.interworx.com, если вы хотите полнофункциональную панель управления с ним. На этой странице есть инструкции по репликации, но вам придется набраться терпения, так как этот поддомен работает из кластера Rasberry Pi. Вот фото на случай, если оно упадет:
http://www.facebook.com/photo.php?fbid=596262440393836&set=a.244167858936631.60071.170159826337435&type=1
источник