Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Общий по Linux (http://forum.oszone.net/forumdisplay.php?f=9)
-   -   MOSIX - принцип действия домашнего кластера (http://forum.oszone.net/showthread.php?t=202256)

Fevr 17-03-2011 13:31 1637021

MOSIX - принцип действия домашнего кластера
 
Дома имеются 3 компа, решил поэкспериментировать с кластеризацией. В качестве софта выбрал MOSIX. Не могу найти точного ответа в его принципе работы. Одни источники описывают работу кластеры как "MOSIX автоматически ищет свободную машину и кидает исполнение процесса на нее, как только освобождается машина с более сильными ресурсами процесс мигрирует на эту систему", в других описаниях звучит так "МОSIX подключает к решению задачи все свободные и не очень загруженные машины, так, к примеру, если выполнять конвертацию видио емких форматов на одной машине это займет 2 часа, а раскинув это на 3-4 системы в вашем домашнем кластере эта задача будет решена за 30-40 мину максиму". Вот и вопрос - как в итоге будет работать MOSIX - перекидывать задачу с системы на систему или подключит все системы для решении задачи одновременно.

ra6fho 21-03-2011 19:19 1640351

Привет.

Сейчас занимаюсь аналогичной проблемой. Как я понял всё зависит от запускаемого приложения. Я читал что в mosix мигрируют только процессы (не потоки). Т.е. если программа написана при помощи библиотеки MPI (она разбивает вычисления на процессы, а не потоки, как например OpenMP), то кластер будет работать над решением одной задачи. Но если программа последовательная, то она целиком будет мигрировать между машинами.

Какие уже есть наработки? Пробовал настраивать mosix? Я пропатчил и собрал ядро, но пока что не смог настроить mosix, возникает следующая ошибка:

Код:

anton@ra6fho:~/mosix-2.29.0.2$ mosrun -j1 testload
MOSRUN: failed migrating to 192.168.1.2: not in map

Содержимое файла /etc/mosix/mosix.map:

Код:

192.168.1.2 6 o
Еще пробовал так:
Код:

1 192.168.1.2 1
2 192.168.1.3 1
3 192.168.1.4 1
4 192.168.1.5 1
5 192.168.1.6 1
6 192.168.1.7 1

Можно попробовать еще использовать вот такую программу:
MOSIXVIEW

Fevr 22-03-2011 17:48 1641197

Цитата:

если программа написана при помощи библиотеки MPI (она разбивает вычисления на процессы, а не потоки, как например OpenMP), то кластер будет работать над решением одной задачи. Но если программа последовательная, то она целиком будет мигрировать между машинами.
Вот это действительно ценная информация, которая дает полную ясность.

Сам хочу пересобрать и пропатичтся на 3 машинах.

cat /proc/$$/lock <------ покажет, могут ли процессы потомки мигрировать с данного узла (0) или нет (1). Если же они заблокированы, то разблокировать их командой

echo 0 > /proc/$$/lock

Тоже самое на другой системе. Должно заработать

ra6fho 22-03-2011 22:09 1641437

Хочу поделиться своим опытом по установке и настройке, может кому то пригодится.
1. Скачиваем самую последнюю версию MOSIX-2.29.0.2
Код:

wget http://www.mosix.org/mos2/MOSIX-2.29.0.2.for_Linux_kernel-2.6.37.1.tbz
2. Скачиваем ядро для этой версии linux-2.6.37.1
Код:

wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.37.1.tar.bz2
3. Распаковываем оба архива:
Код:

tar -xjvf MOSIX-2.29.0.2.for_Linux_kernel-2.6.37.1.tbz
tar xjf linux-2.6.37.1.tar.bz2

4. Переходим в папку с ядром:
Код:

cd linux-2.6.37.1
5. Патчим:
Код:

patch -p1 < ../mosix-2.29.0.2/other/patch-2.6.37.1
6. Конфигурируем ядро:
Код:

make menuconfig
7. Компилируем ядро:
Код:

make -jN bzImage
make -jN modules

где N количество ядер в вашей системе + 1
8. Устанавливаем ядро (требуются права суперпользователя):
Код:

sudo make modules_install
sudo make install

9. Создаем загрузочный RAM диск:
Код:

sudo mkinitramfs /boot/initrd.img-2.6.37.1 2.6.37.1
10. Обновляем загрузчик:
Код:

sudo update-grub2
11. Добавляем адреса машин в кластер:
Код:

sudo nano /etc/mosix/mosix.map
Прописываем:
Код:

192.168.1.2 6 p
В первом столбце указываем ip-адреса машин, во втором кол-во адресов следующих за ним (в моем случае 192.168.1.2, 192.168.1.3, ... , 192.168.1.7), в третьем на находятся ли эти адреса внутри вашей сети или за ее пределами (с этим еще не совсем разобрался). Параметр "p" - внутри сети, параметр "o" - за перделами сети.
13. На этом установки и настройка завершена, можно перезагружаться и переходить к тестированию.

Тестирование:
1. Для запуска необходимо выполнить (на всех машинах кластера):
Код:

sudo /etc/init.d/mosix start
2. Запустить несколько копий тестовой программы:
Код:

mosrun testload
3. И посмотреть на сколько загружены машины в кластере:
Код:

mon

Так же можно посмотреть загрузку процессора на каждой машине:



Время: 19:16.

Время: 19:16.
© OSzone.net 2001-