кластер PelicanHPC в VirtualBox

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

Модератор: Olej

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

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

Непрочитанное сообщение Olej » 31 окт 2012, 17:51

homecluster писал(а):Спасибо за демонстрацию.
1. Остаются тесты.

2. Вы можете начинать проделывать то же самое в реальном железе - никаких граблей там не предвидится (единственное тонкое место: если ваши сетевые карты, по модели, не предназначены для PXE загрузки ... но и это решаемо - я расскажу что делать, если такое случится ;-) ).

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

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

Непрочитанное сообщение Olej » 31 окт 2012, 18:21

Olej писал(а): 2. что ещё единственно осталось проделать (ни в чём большем этот проект меня не интересует), так это:
а). создать образ перманентной памяти (эквивалент HDD) на терминальном хосте;
б). загрузить туда их экзамплы (многочисленные);
Вот с этим не очень здорово у них обстоят дела (-) :

- описания противоречат друг другу, и одновременно противоречат наблюдаемому на экране...

- http://cluster.linux-ekb.info/QuickStart1.php :
Изображение
Здесь вы должны будете указать устройство, на котором будет располагаться пользовательский каталог. То есть ваш рабочий каталог, где будут храниться ваши программы, исходники и файлы данных. По умолчанию вам предложен раздел на виртуальном диске, расположенном в оперативной памяти. Это самый простой вариант, однако не самый удобный в том смысле, что после выключения компьютера все данные на этом диске будут уничтожены. В этом случае вам придется каждый раз перед выключением сохранять ваши данные на внешний носитель, например на флешку. Более удобным будет, если вы выделите на винчестере компьютера отдельный раздел для ваших данных. Как вариант может рассматриваться подключение внешнего носителя (флешки либо USB-винчестера). В таком случае вместо предложенного ram1 вы должны будуте указать что-то типа hda7, sda5, sdb1 и т.д. в зависимости от конфигурации вашей машины и выбранного варианта.
- http://pareto.uab.es/mcreel/PelicanHPC/ ... ialRus.pdf :
(здесь наблюдаемая картинка инсталляции совпадает таки с описанием)
Изображение
На этом экране вы можете выбрать: использовать постоянное запоминающее устройство для /home (домашнего каталога) пользователя PelicanHPC. По умолчанию, если вы просто нажимаете <Enter>, жесткие диски не используются, и PelicanHPC не будет изменять какие-либо данные на компьютерах, используемых в кластере. (Информация будет хранится в оперативной памяти ) Это безопасно и просто (рекомендуется начинающим пользователям для ознакомления с работой системы ), но это имеет тот недостаток, что любая работа, у вас исчезает при завершении работы кластера. Для использования постоянного носителя информации, вы можете ввести имя устройства (раздела жесткого диска, USB-диск и т.д.), который отформатирован в ext2 или ext3 раздел, который будет смонтирован в /home. Например, можно заменить с "ram1" на "sda2" или "hdb5" (без кавычек). Если вы сделаете это, тогда каталог "user" будет создан в корневом каталоге указанного устройства, и будет
использоваться в качестве домашнего каталога кластера ( /home ) пользователя (имя пользователя "user"). Если вы выключите узлы кластера, каталог не будет удален, и он может быть повторно использованы при перезагрузке PelicanHPC. Если у вас есть какие-либо сомнения по этому поводу, просто нажмите <Enter>. Для экспериментов, вам не нужна эта функция. Эта функция представлена для удобства для продвинутых пользователей. Невозможно проверить эту функцию на всех возможных конфигурациях оборудования, так что НЕТ НИКАКИХ ГАРАНТИЙ, что она не станет причиной удаления данных с вашего жесткого диска (или иного другого устройства). Рекомендуется выполнить резервное копирование данных, прежде чем пытаться что-нибудь сделать.

ВНИМАНИЕ: есть еще один способ использования постоянного хранения, что является довольно гибким решением. Это описано в файле /home/user/pelican_config, которые вы можете увидеть, если загрузитесь с параметрами по умолчанию. Если это ваш первый опыт работы с PelicanHPC, я рекомендую делать загрузки по умолчанию, изучить pelican_config, а затем выбрать вариант для постоянного хранения, то что вы найдете наиболее подходящим для себя.
Согласитесь, указание "ram1" или "-t tmpfs -o size 400m tmpfs" - это две очень разные вещи ( ;-) как сказали бы в Одессе), и где синтаксис этих странных записей? ... не нахожу!

И файла такого /home/user/pelican_config нет на дух ... каталог /home/user/ есть, а файла - нет ;-)

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

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

Непрочитанное сообщение Olej » 31 окт 2012, 19:31

homecluster писал(а):
olej писал(а): 2. Вы можете начинать проделывать то же самое в реальном железе - никаких граблей там не предвидится (единственное тонкое место: если ваши сетевые карты, по модели, не предназначены для PXE загрузки ... но и это решаемо - я расскажу что делать, если такое случится ;-) ).
Есть вопрос. Сейчас на входе сети стоит роутер с DHCP. Он подключен к свичу. При включении роутер раздает адреса на свичь. Сетевые порты у нодов настроены по умолчанию на DHCP. То есть при включении всех нодов каждый получает свой доступ в интернет. При этом каждый нод пингуется с остальными нодами по полученным адресам. Что нужно изменить в этой схеме чтобы данный дистрибутив можно запустить для теста?
Возвращаемся в ему кластера на реальном железе: viewtopic.php?f=20&t=1908&start=30.
Здесь мы говорим о виртуализации.
Там продолжим (во всём должен быть порядок ;-) ).

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

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

Непрочитанное сообщение Olej » 31 окт 2012, 20:15

Olej писал(а):
Olej писал(а): 2. что ещё единственно осталось проделать (ни в чём большем этот проект меня не интересует), так это:
а). создать образ перманентной памяти (эквивалент HDD) на терминальном хосте;
б). загрузить туда их экзамплы (многочисленные);
Вот с этим не очень здорово у них обстоят дела (-) :
Ладно... Делать надо ;-) .

Сделаю для терминального хоста диск (виртуальный). Есть на то разные способы...

1. используя QEMU:

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

[Virtual@nvidia PelicanHPC]$ qemu-img --help
qemu-img version 0.14.0, Copyright (c) 2004-2008 Fabrice Bellard
usage: qemu-img command [command options]
QEMU disk image utility

Command syntax:
  check [-f fmt] filename
  create [-f fmt] [-o options] filename [size]
...
  
Supported formats: host_cdrom host_floppy host_device file blkverify sheepdog blkdebug
nbd parallels qed qcow2 vvfat vpc bochs dmg cloop vmdk vdi qcow cow raw

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

[Virtual@nvidia PelicanHPC]$ qemu-img create -f vmdk pelicanhpc.hdd 900M
Formatting 'pelicanhpc.hdd', fmt=vmdk size=943718400 compat6=off.
[Virtual@nvidia PelicanHPC]$ ls -l *.hdd
-rw-r--r--. 1 Virtual Virtual 131072 окт.  31 17:58 pelicanhpc.hdd
Но только, к сожалению, fdisk + mkfs для этого сжатого диска не позволит ни создать раздел /dev/sda1, ни его разметить...
Можно создать образ диска в формате -f raw ... но мне не захотелось вместо 130Kb места занимать под него 900Mb :-(
А если использовать сжатый формат, то придётся это сделать в 2 приёма:
- сначала загрузить PelicanHPC (можете любой другой Linux ;-) ) с этим не размеченным диском /dev/sda ...
- там его разметить fdisk в /dev/sda1 + форматировать mkfs в ext2 (3, 4, ... ;-) )
- а затем перезагрузить PelicanHPC, чтобы уже можно использовать /dev/sda1

2. А раз так, пошли делать в 2 этапа, то заготовку диска /dev/sda можно и непосредственно в VirtualBox сделать...
-Создать новый виртуальный диск.png
-Создать новый виртуальный диск.png (67.36 КБ) 7833 просмотра
Дальше всё так же:

- загрузка (вхолостую ;-) ) PelicanHPC ...

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

$ sudo fdisk /dev/sda
...
- создание нового primary раздела на весь диск ...

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

$ sudo mkfs /dev/sda1
...

- перезагрузка PelicanHPC

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

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

Непрочитанное сообщение Olej » 31 окт 2012, 20:22

Olej писал(а):- перезагрузка PelicanHPC
А вот после перезагрузки - веселее:
sda1-1.png
sda1-1.png (17.73 КБ) 7850 просмотров
Olej писал(а): Согласитесь, указание "ram1" или "-t tmpfs -o size 400m tmpfs" - это две очень разные вещи ( ;-) как сказали бы в Одессе), и где синтаксис этих странных записей? ... не нахожу!
;-)

Указываем копировать теперь все examples и прочее в /home/user ...
sda1-2.png
sda1-2.png (17.93 КБ) 7831 просмотр
Накопировало довольно много:
sda1-3.png
sda1-3.png (25.94 КБ) 7831 просмотр
P.S. Вот теперь и файл обещанный появился ;-) :
Olej писал(а):И файла такого /home/user/pelican_config нет на дух ... каталог /home/user/ есть, а файла - нет ;-)

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

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

Непрочитанное сообщение Olej » 31 окт 2012, 20:28

Olej писал(а): Накопировало довольно много:

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

user@pel1:~$ pwd
/home/user
user@pel1:~$ du -hs
291M    .
user@pel1:~$ ls -l
total 924
-rw-r--r--  1 user user 779410 Oct 31 17:23 ann_1.1.2+creelmod.tar.gz
drwxr-xr-x  2 user user     60 Oct 31 17:23 Desktop
drwxr-xr-x  2 user user     40 Oct 31 17:24 Documents
drwxr-xr-x  2 user user     40 Oct 31 17:24 Downloads
drwxr-xr-x 14 user user    600 Oct 31 17:23 dynare
drwxr-xr-x  5 user user    500 Oct 31 17:23 Econometrics
-rw-r--r--  1 user user   3349 Oct 31 17:23 flops.f
drwxr-xr-x 11 user user    480 Oct 31 17:23 hpl-2.0
-rw-r--r--  1 user user   3408 Oct 31 17:23 make_pelicanhome.sh
-rw-r--r--  1 user user   3422 Oct 31 17:23 make_pelicanhome.sh~
-rw-r--r--  1 user user  56160 Oct 31 17:23 make_pelican-v2.8
-rw-r--r--  1 user user  56160 Oct 31 17:23 make_pelican-v2.8alpha
drwxr-xr-x  2 user user     40 Oct 31 17:24 Music
-rw-r--r--  1 user user  18941 Oct 31 17:23 pelican_config
drwxr-xr-x  2 user user     40 Oct 31 17:24 Pictures
drwxr-xr-x  2 user user     40 Oct 31 17:24 Public
-rw-r--r--  1 user user      6 Oct 31 17:23 pw
-rw-r--r--  1 user user    805 Oct 31 17:23 README
drwxr-xr-x  2 user user     40 Oct 31 17:24 Templates
drwxr-xr-x  2 user user    660 Oct 31 17:23 Tutorial
drwxr-xr-x  2 user user     40 Oct 31 17:24 Videos
При этой (следующей) перезагрузке я уже говорю "No" (умолчание) на копирование в /home/user ... так что все данные (и на будущее) уже постоянны на диске /dev/sda1.

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

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

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

Olej писал(а): 1. Остаются тесты.
Даже не тесты, а проверка работоспособности ... потому, что в виртуальной реализации что там тестировать, если все хосты кластера крутятся на одних и тех же процессорах (даже если их и 2 в 2-х ядерной машине).

В каталоге /home/user ($HOME) находим такую тестовую программу flops.f (исходный код на FORTRAN-77, на специальном его диалекте под MPI). Компилируем:

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

user@pel1:~$ /usr/bin/mpif77 flops.f -oflops
P.S. Попутно посмотрим какие есть там программы к поддержке MPI:

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

ser@pel1:~$ ls /usr/bin/mp*
/usr/bin/mpartition     /usr/bin/mpic++.openmpi   /usr/bin/mpif77.openmpi
/usr/bin/mpic++         /usr/bin/mpicxx           /usr/bin/mpif90
/usr/bin/mpicc          /usr/bin/mpicxx.openmpi   /usr/bin/mpif90.openmpi
/usr/bin/mpiCC          /usr/bin/mpiexec          /usr/bin/mpirun
/usr/bin/mpicc.openmpi  /usr/bin/mpiexec.openmpi  /usr/bin/mpirun.openmpi
/usr/bin/mpiCC.openmpi  /usr/bin/mpif77
Попутно проверим компиляцию того же кода FORTRAN-90

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

user@pel1:~$ /usr/bin/mpif90 flops.f -oflops90
Запускаем полученный тест на одном терминальном хосте:

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

user@pel1:~$ ./flops
    
  HPC Test ----------------------------------------
  Quantity of processors =   1
  Calculation time       =   4.29 seconds
  Cluster speed          =    419 MFLOPS
  -------------------------------------------------
  Cluster node N00 speed =    419 MFLOPS
  -------------------------------------------------
А теперь то же самое, но на 6-ти хостах кластера (1 терминальный + 5 исполнительных):

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

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

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

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

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

Olej писал(а): P.S. Попутно посмотрим какие есть там программы к поддержке MPI:

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

ser@pel1:~$ ls /usr/bin/mp*
/usr/bin/mpartition     /usr/bin/mpic++.openmpi   /usr/bin/mpif77.openmpi
/usr/bin/mpic++         /usr/bin/mpicxx           /usr/bin/mpif90
/usr/bin/mpicc          /usr/bin/mpicxx.openmpi   /usr/bin/mpif90.openmpi
/usr/bin/mpiCC          /usr/bin/mpiexec          /usr/bin/mpirun
/usr/bin/mpicc.openmpi  /usr/bin/mpiexec.openmpi  /usr/bin/mpirun.openmpi
/usr/bin/mpiCC.openmpi  /usr/bin/mpif77
Вот на это место просто необходимо обратить особое внимание:
- если вашу задачу и возможно удачно распараллелить для выполнения её на кластерной структуре ...
- то программировать эту задачу предстоит на специально диалекте MPI одного из языков программироания ...
- из тех, что мы видим в этом каталоге: FORTRAN-77, FORTRAN-90, C, или C++
- т.е. а). привычные программисту инструменты: GCC, Java, Tcl/Tk, ... все - они непригодны для программирования задач в такой конфигурации...
- б). программы нужно писать индивидуально под задачу, в достаточно необычном синтаксисе...
- в). всё великое множество GNU и другого открытого ПО непригодно для такого выполнения ... не нужно обольщаться в этом смысле;

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

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

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

Достаточно интересный тест: Тест производительности. Как я могу предполагать, не только для этого конкретного кластера PelicanHPC, а для любого, использующего стандарты и технологии MPI. Стоит того, чтобы обратить на него внимание:
Каждый модуль теста выполняется многократно, в соответствии с исходной статистикой Whetstone-инструкций (практически это реализуется с помощью заключения модулей в циклические конструкции с разным числом "оборотов" цикла - от 12 до 899), а производительность рассчитывается как отношение числа Whetstone-инстpукций к суммарному времени выполнения всех модулей пакета. Этот результат представляется в KWIPS (Kilo Whetstone Instructions Per Second) или в MWIPS (Mega Whetstone Instructions Per Second). В известном смысле указанные единицы аналогичны MIPS, но с одной существенной оговоркой: Whetstone-инструкции не привязаны к системе команд какого-либо компьютера, т. е. оценка производительности в MWIPS является моделенезависимой.
Там же исходный код теста, который предстоит скомпилировать.
Olej писал(а): - то программировать эту задачу предстоит на специально диалекте MPI одного из языков программироания ...
- из тех, что мы видим в этом каталоге: FORTRAN-77, FORTRAN-90, C, или C++
Поучительно взглянуть ;-) (файл mwips.f):

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

...
c     Инициализация MPI и определение процессорной конфигурации
      call MPI_INIT( ierr )
      call MPI_COMM_RANK( MPI_COMM_WORLD, myid, ierr )
      call MPI_COMM_SIZE( MPI_COMM_WORLD, np, ierr )
      call MPI_GET_PROCESSOR_NAME(pname,pname_len,ierr)
...
           do 102 exc=1, BC
           call MPI_SENDRECV(
     x        f0(1), xmax, MPI_REAL8, myid+1, 1,
     x        f1(1), xmax, MPI_REAL8, myid+1, 1,
     x        MPI_COMM_WORLD, status, ierr)
  102      continue
...
Для тех кто отвык ;-) (от FORTRAN), или не привыкал ;-) - это, конечно, ужасно. :-o

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

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

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

Olej писал(а): 1. Остаются тесты.
И не только тесты, а ещё и пару слов об управлении этим кластером, "как с ним обращаться" (если кто решит попробовать поиграться):

1. терминальный хост загружаем первым ... это естественно и понятно...

2. но загружать остальные исполнительные хосты (виртуальные или реальные) бессмысленно до тех пор, пока на терминальном хосте не выполнена каманда

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

user@pel1:~$ pelican_setup
...
И, более того, пока её исполнение не дойдёт до вот этого места!:
1.png
1.png (25.65 КБ) 7865 просмотров
До этого времени DHCP-сервер на терминальном хосте не запущен, и загрузка хостов по PXE просто зависнет, её придётся повторять заново.

3. ещё один такой хлопотный в работе вопрос: как перезапустить кластер, когда в нём работало, скажем 5 хостов, а хотелось бы перезапустить на 7?

Перезагружать терминальный хост при этом не нужно (что было бы сильно неприятно), достаточно (лучше именно в такой последовательности):
- дозапустить ещё желаемые 2 хоста (дождаться завершения их загрузки!)
- повторить выполнение команды

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

user@pel1:~$ pelican_setup
...
- перезапускать работающие ранее хосты (4 из 5-ти в условном примере) не надо, на них вообще ничего делать не надо, их терминальный хост переинициализирует сам...

4. Число активных хостов в кластере, а также IP каждого из них, смотрим в файле $HOME/tmp/bhosts:

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

user@pel1:~$ cat tmp/bhosts 
10.11.12.22
10.11.12.37
10.11.12.68
10.11.12.72
10.11.12.83
10.11.12.1
Последний из них - это терминальный хост.

Ответить

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

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

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