Создание кластера домашнего сервера для анализа данных

2532
user1074057

Я видел пару вопросов здесь, которые похожи на то, что я думаю, но не совсем. Итак, я решил спросить и посмотреть, что выпадет.

В основном, у меня есть 2 или 3 старых, более медленных ноутбука. То, что я хотел бы сделать, - это кластеризовать эти компьютеры, чтобы выполнить на них некоторые «смущающие параллельные» процедуры анализа данных (например, обучить алгоритм машинного обучения множеству разных ядер). Чтобы быть более конкретным, я хочу запустить код Python (scikit-learn, который может работать на разных ядрах) в этом кластере.

В идеале я хотел бы иметь кластер с 3 ноутбуками, соединенными вместе, и устройство хранения данных (1-2 ТБ), подключенное к сети. Затем я хотел бы написать сценарии для анализа данных на моем текущем ноутбуке, каким-то образом получить доступ к кластеру (ssh?) И запустить сценарии для данных, хранящихся на подключенном устройстве, в то же время разделив анализ между различными ноутбуками. Мысли?

Я читал о кластерах Beowulf, кластеризации с Ubuntu и других вещах. Однако у меня нет опыта работы с сетями, кластеризацией, командами Unix и т. Д., И я не совсем понимаю их. Я готов учиться, но на самом деле понятия не имею, с чего начать, поэтому советы, ресурсы, предложения будут с благодарностью.

1

4 ответа на вопрос

2
Luis

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

0
Gergely Szilagyi

Если вы не хотите вдаваться в подробности низкоуровневой кластеризации, я бы посоветовал вам взглянуть на BOINC http://en.wikipedia.org/wiki/BOINC . (Относительно) легко настроить, очень весело :)

0
Drizzt321

Если ноутбуки очень старые, возможно, будет проще купить новую единственную машину, которая сделает работу намного быстрее. Или купите целую кучу новых крошечных Linux-машин с процессором ARM (RaspberryPi et al.), Которые стоят довольно дешево, и подключите их ко многим процессорам в довольно компактном размере.

Или, если вы просто хотите поиграть и узнать, посмотрите другие ответы по кластеризации.

0
chuck

В вашей ситуации я узнал бы о совместном использовании каталогов с NFS, чтобы у каждой машины был доступ к одним и тем же данным. Для этого примера мы назовем каталог / data. Тогда вы захотите настроить ssh на работу без пароля с помощью ключей ssh ​​(ssh-keygen). Оттуда вы захотите сделать некоторые сценарии, возможно, на Python, так как вы все равно будете их использовать, чтобы автоматизировать выполнение ваших заданий. В результате ваш скрипт выполнит что-то вроде «ssh otherlaptop doexecutable / data / datafile». Вы также можете использовать что-то вроде менеджера ресурсов Torque или Slurm (Simple Linux Utility для управления ресурсами) для выполнения на ноутбуках, но вам все равно понадобится сценарий для создания заданий, которые вы будете передавать крутящему моменту.