кластер PelicanHPC в VirtualBox

Виртуальные машины и среды исполнения

Модератор: Olej

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: кластер PelicanHPC в VirtualBox

Непрочитанное сообщение Olej » 02 ноя 2012, 18:14

Olej писал(а): Там же исходный код теста, который предстоит скомпилировать.
Скачиваем эти 2 файла: whetstoned.f и mwips.f.

Компиляция:

Код: Выделить всё

ser@pel1:~$ mpif77 mwips.f whetstoned.f -o mwips
user@pel1:~$ ls -l mwips
-rwxr-xr-x 1 user user 23636 Nov  2 15:10 mwips
Компиляция успешно проходит, и программа запускается, ... но запуска её на многопроцессоре у меня влёт не получается, работает 1 терминальный хост:

Код: Выделить всё

user@pel1:~$ ./mwips 
   
  Cluster Double Precision Whetstone Test ---------
  Quantity of processors =   1
  Calculation time       = 221.00 seconds
  Cluster speed          =   2714 MWIPS
  -------------------------------------------------
  Cluster node N00 speed =   2714 MWIPS (pel1)
  -------------------------------------------------
  Nodes minimal speed    =   2714 MWIPS
  Acceleration factor    =   1.00
  -------------------------------------------------
Так же, как и проверка стандартным тестом:

Код: Выделить всё

user@pel1:~$ ./flops
                                                                                
  HPC Test ----------------------------------------                             
  Quantity of processors =   1
  Calculation time       =   4.33 seconds
  Cluster speed          =    415 MFLOPS                                        
  -------------------------------------------------
  Cluster node N00 speed =    415 MFLOPS
  -------------------------------------------------
Почему так, я как-то не пойму...
И вообще, вся эта конструкция страшно капризная!

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: кластер PelicanHPC в VirtualBox

Непрочитанное сообщение Olej » 02 ноя 2012, 18:38

Olej писал(а):... но запуска её на многопроцессоре у меня влёт не получается, работает 1 терминальный хост:
Ой :oops:
Виноват ;-)
Так и должно быть! Для многопроцессорного выполнения их нужно выполнять специальным образом MPI-запуска (это ещё раз к вопросу о капризности):

Код: Выделить всё

user@pel1:~$ mpirun -n 6,0-5 ./flops
    
  HPC Test ----------------------------------------
  Quantity of processors =   6
  Calculation time       =   4.37 seconds                                       
  Cluster speed          =    411 MFLOPS
  -------------------------------------------------
  Cluster node N00 speed =     68 MFLOPS
  Cluster node N01 speed =     68 MFLOPS
  Cluster node N02 speed =     68 MFLOPS
  Cluster node N03 speed =     68 MFLOPS
  Cluster node N04 speed =     68 MFLOPS
  Cluster node N05 speed =     68 MFLOPS
  -------------------------------------------------

Код: Выделить всё

user@pel1:~$ mpirun -n 6,0-5 ./mwips 
    
  Cluster Double Precision Whetstone Test ---------
  Quantity of processors =   6
  Calculation time       = 237.16 seconds
  Cluster speed          =  15179 MWIPS
  -------------------------------------------------
  Cluster node N00 speed =   2534 MWIPS (pel1)
  Cluster node N01 speed =   2666 MWIPS (pel1)
  Cluster node N02 speed =   2644 MWIPS (pel1)
  Cluster node N03 speed =   2667 MWIPS (pel1)
  Cluster node N04 speed =   2670 MWIPS (pel1)
  Cluster node N05 speed =   2670 MWIPS (pel1)
  -------------------------------------------------
  Nodes minimal speed    =   2534 MWIPS
  Acceleration factor    =   5.99
  -------------------------------------------------

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: кластер PelicanHPC в VirtualBox

Непрочитанное сообщение Olej » 02 ноя 2012, 23:00

Olej писал(а):Достаточно интересный тест: Тест производительности.
Заинтриговала там ещё фраза:
Для сравнения, при использовании компилятора gfortran ver. 4.3.3 из коллекции GCC этот же тест на том же оборудовании дает следующий результат:
Но это оказалось не так просто:

Код: Выделить всё

user@pel1:~$ gfortran mwips.f whetstoned.f -o gmwipsmwips.f:2: Error: Can't open included file 'mpif.h'
Определяем ему заголовочный файл (нашёл):

Код: Выделить всё

user@pel1:~$ gfortran -I /usr/include/mpi mwips.f whetstoned.f -o gmwips/tmp/ccExrC3S.o: In function `MAIN__':
mwips.f:(.text+0x74): undefined reference to `mpi_init_'
mwips.f:(.text+0x8e): undefined reference to `mpi_comm_rank_'
mwips.f:(.text+0xa8): undefined reference to `mpi_comm_size_'
mwips.f:(.text+0xcf): undefined reference to `mpi_get_processor_name_'
mwips.f:(.text+0xe5): undefined reference to `mpi_barrier_'
mwips.f:(.text+0x22d): undefined reference to `mpi_sendrecv_'
mwips.f:(.text+0x2f4): undefined reference to `mpi_sendrecv_'
mwips.f:(.text+0x327): undefined reference to `mpi_barrier_'
mwips.f:(.text+0x917): undefined reference to `mpi_recv_'
mwips.f:(.text+0x964): undefined reference to `mpi_recv_'
mwips.f:(.text+0xdd4): undefined reference to `mpi_send_'
mwips.f:(.text+0xe13): undefined reference to `mpi_send_'
mwips.f:(.text+0xe24): undefined reference to `mpi_finalize_'
collect2: ld returned 1 exit status
Теперь компиляция проходит, но линковка не проходит, нужна библиотека (опции -L... + -l...), но какая?

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: кластер PelicanHPC в VirtualBox

Непрочитанное сообщение Olej » 02 ноя 2012, 23:13

Вопреки обстоятельным описаниям автора, не могу толком разобраться с опциями запуска mpirun :
Olej писал(а):

Код: Выделить всё

user@pel1:~$ mpirun -n 6,0-5 ./mwips 
...
Этого вот оказывается тоже вполне достаточно:

Код: Выделить всё

user@pel1:~$ mpirun -n 2 ./mwips 
    
  Cluster Double Precision Whetstone Test ---------
  Quantity of processors =   2
  Calculation time       =   2.53 seconds
  Cluster speed          =   4746 MWIPS
  -------------------------------------------------
  Cluster node N00 speed =   2516 MWIPS (pel1)
  Cluster node N01 speed =   2577 MWIPS (pel1)
  -------------------------------------------------
  Nodes minimal speed    =   2516 MWIPS
  Acceleration factor    =   1.89
  -------------------------------------------------

Код: Выделить всё

user@pel1:~$ mpirun -n 4 ./mwips 
    
  Cluster Double Precision Whetstone Test ---------
  Quantity of processors =   4
  Calculation time       =   2.66 seconds
  Cluster speed          =   9035 MWIPS
  -------------------------------------------------
  Cluster node N00 speed =   2520 MWIPS (pel1)
  Cluster node N01 speed =   2475 MWIPS (pel1)
  Cluster node N02 speed =   2533 MWIPS (pel1)
  Cluster node N03 speed =   2508 MWIPS (pel1)
  -------------------------------------------------
  Nodes minimal speed    =   2475 MWIPS
  Acceleration factor    =   3.65
  -------------------------------------------------

Код: Выделить всё

user@pel1:~$ mpirun -n 6 ./mwips 
    
  Cluster Double Precision Whetstone Test ---------
  Quantity of processors =   6
  Calculation time       =   3.30 seconds
  Cluster speed          =  10895 MWIPS
  -------------------------------------------------
  Cluster node N00 speed =   2475 MWIPS (pel1)
  Cluster node N01 speed =   1984 MWIPS (pel1)
  Cluster node N02 speed =   2458 MWIPS (pel1)
  Cluster node N03 speed =   2504 MWIPS (pel1)
  Cluster node N04 speed =   2495 MWIPS (pel1)
  Cluster node N05 speed =   2471 MWIPS (pel1)
  -------------------------------------------------
  Nodes minimal speed    =   1984 MWIPS
  Acceleration factor    =   5.49
  -------------------------------------------------

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: кластер PelicanHPC в VirtualBox

Непрочитанное сообщение Olej » 04 ноя 2012, 01:24

Olej писал(а): Задача: поднять кластер из N (2, 3, 4, ...) сетевых хостов, но для "раскрутки" всей этой конфигурации использовать все "хосты" виртуальные, VM под VirtualBox.
Вот такое замечание:

- теперь, когда такой кластер раскручен и проверен...
- хочется отметить, что он интересен не только как игрушка для изучения и освоения кластера...
- но очень даже может иметь реальное практическое применение.

Речь вот о чём:
- в реальной (физической) LAN организации, с некоторым немалым количеством хостов (5, 20, 100...)
- можно поднять кластер на этом достаточном количестве хостов,
- независимо от операционных систем под которыми работают эти хосты (пусть это будет Windows, Linux, Solaris и др.),
- запустив на каждом их них виртуальную машину хоста под WirtualBox.
Такой кластер мог бы использоваться по назначению ... для некоторых массированных вычислений, выбирая фоновую (не используемую) производительность всех этих хостов (особенно учитывая, что VM обычно, без специальных настроек - использует одно ядро многоядерных процессоров). И не мешая привычной работе пользователей за этими рабочими местами.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: кластер PelicanHPC в VirtualBox

Непрочитанное сообщение Olej » 07 ноя 2012, 02:23

Olej писал(а): Задача: поднять кластер из N (2, 3, 4, ...) сетевых хостов, но для "раскрутки" всей этой конфигурации использовать все "хосты" виртуальные, VM под VirtualBox.
- с этого началась тема.

К этому времени всё обсуждено и ясно:
- как поднять кластер на PelicanHPC
- как запускать в нём параллельные программы
- что в точности так, как под VirtualBox, кластер на PelicanHPC подымается и на реальных сетевых хостах

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: кластер PelicanHPC в VirtualBox

Непрочитанное сообщение Olej » 08 ноя 2012, 13:01

homecluster писал(а):Не пробовал ещё тестить VB и по этому мне интересно VB запускается как отдельное приложение в установленной ОС или сначала ставится VB а потом в него ставятся гостевые ОС и приложения запускаются в этих гостевых системах?
VirtualBox (ресурсы и возможности) :

- установлена ОС, одна из - Download VirtualBox
VirtualBox 4.2.4 for Windows hosts x86/amd64
VirtualBox 4.2.4 for OS X hosts x86/amd64
VirtualBox 4.2.4 for Linux hosts
VirtualBox 4.2.4 for Solaris hosts x86/amd64
- в ней установлено и запускается приложение VirtualBox (менеджер VM)...

- в менеджере (его средствами) создаётся сколько надо разных VM (виртуальных машин):
Изображение

- когда какая-то из VM нужна, она запускается (зелёная стрелка вверху на каринке ;-) ).

P.S. У меня одновременно работало и до 10 VM, среди которых были Windows и Solaris, это достаточно интересное место, когда на 4Gb RAM хостовой Linux машины (базовой) крутятся 10 VM, каждая из которых имеет в своём распоряжении 1Gb RAM ;-) : управление RAM для VM.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: кластер PelicanHPC в VirtualBox

Непрочитанное сообщение Olej » 08 ноя 2012, 20:33

homecluster писал(а): 1. Если поднять в VB терминальный нод с PelicanHPC то лайвсиди образ должен быть реальным который вставляется в привод с которого идёт загрузка терминального нода или этот образ можно записать в раздел на диске и его можно от туда считать типа в режиме эмуляции привода CD?
Можно (и так, и так, и по всякому)...
Только зачем? Если можно в качестве загрузочного CD просто ткнуть в .iso файл загрузочного образа: и проще многократ, и куда быстрее при считывании.
homecluster писал(а): 2. Может ли терминальный нод из VB загрузить по РХЕ ноды которые вне VB?
Запросто... Если сетевые настройки соответствуют.
homecluster писал(а): 3. Какой на ваш взгляд должна быть структура диска в смысле необходимые разделы, их минимальный размер, порядок следования чтобы на диске была хост система на основе openSUSE, VB, и всё необходимое для запуска PelicanHPC.
:?: ... здесь каждый себе хозяин ...

/ - 15Gb
/home - 45Gb
итого: HDD 60Gb уже достаточно - а это можно и на твёрдотельный SSD уместить (а скорости раз в 5 выше!).
А дальше на свой вкус.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: кластер PelicanHPC в VirtualBox

Непрочитанное сообщение Olej » 08 ноя 2012, 21:07

homecluster писал(а): 1.А где лучше разместить .iso файл загрузочного образа - на отдельном разделе диска или в просто в каталоге/home/user? Проще в каталоге/home/user. Но может есть еще какие то критерии для выбора места для .iso файл загрузочного образа?
Если вы назвали /home/user каталог $HOME на хост-компьютере Linux, в openSUSE (назовите его лучше /home/homecluster для определённости, чтоб не путать с VM) то да, кидайте .iso в $HOME и будет вам счастье.
homecluster писал(а): 3.Вы говорили что для терминального нода чтобы не хранить файлы в памяти нужно создать раздел на диске. Сколько примерно нужно? Это идёт как добавление к 15+45?
Сделайте 1 Gb - за глаза хватит, а 1 к 15+45 - что включительно, что исключительно - погоды не делает.
homecluster писал(а): 4. В терминальном ноде уже есть необходимые библиотеки для компиляции или их нужно доустанавливать?
Всё есть.
Я же показывал раньше примеры компиляции.

А вот доустановка ПО в терминальном ноде - это уже проблема (последняя непонятная с PelicanHPC):
- apt-get замечательно устанавливает по сети из репозитария ... например mc
- но устанавливает он в /usr/lib и в другие места, в зависимости от пакета - не в /home/user
- но эти все "другие" места - tmpfs ...
- до следующей перезагрузки :shock:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: кластер PelicanHPC в VirtualBox

Непрочитанное сообщение Olej » 08 ноя 2012, 21:55

homecluster писал(а):Вы говорили что выходили в интернет из PelicanHPC. Значит ли что дистрибутив предполагает наличие двух сетевых карт на терминальном ноде? Одна в кластер другая в интернет.
Да, у меня именно так было: eth0 - внаружу, в интернет + eth1 - в LAN кластера.
homecluster писал(а): И он сам настраивает эти карты для их использования - одну для интернета а другую для кластера?
Само ничего не бывает ;-)

После выполнения pelican_setup интерфейс eth1 получит IP=10.11.12.1/24 и в подсети 10.11.12.0/24 будет запущен DHCP-сервер для работы с хостами кластера.

Но интерфейс eth0 (у меня это подсеть 192.168.1.0/24) нужно настраивать самому: если в этой подсети работает DHCP-сервер (на каком-то другом хосте реальной LAN), то eth0 получит IP (DNS и шлюз) от него (у меня именно так и получался IP=192.168.1.20/24), иначе вам нужно это конфигурировать статически (руками).

Ответить

Вернуться в «Виртуализация»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 10 гостей