Пространственно-распределенная мультикластерная...
TRANSCRIPT
Пространственно-распределеннаямультикластерная вычислительная система:
архитектура и программное обеспечение
В.Г. Хорошевский,
С.Н. Мамойленко, М.Г. Курносов
Семинар “Вычислительные системы”
Институт физики полупроводников им. А.В. Ржанова СО РАН
г. Новосибирск, 7 мая 2010 г.
[email protected], [email protected], [email protected]
Центр параллельных
вычислительных технологий
ГОУ ВПО «Сибирский государственный университет
телекоммуникаций и информатики»
ул. Кирова, 86
630102, Новосибирск, Россия
Тел. & факс: +7 (383) 269 82 75
E-mail: [email protected]
Лаборатория вычислительных систем
Институт физики полупроводников
им. А.В. Ржанова CО РАН
пр-кт ак. Лаврентьева, 13
630090, Новосибирск, Россия
Тел. & факс: +7 (383) 333 21 71
E-mail: [email protected]
Институт систе
много
прогр
аммирования Р
АН
Сеть программы
“Университетский
кластер” 2
Пространственно-распределённая мультикластерная
вычислительная системаGRID-модель
� Программируемость структуры, масштабируемость, живучесть
� Параллельное мультипрограммирование
Кластер GHP BLc3000
Intel Xeon 5410
300 GFLOPS
Институт систе
много
прогр
аммирования Р
АН
Сеть программы
“Университетский
кластер” 3
Пространственно-распределённая мультикластерная
вычислительная системаGRID-модель
� Программируемость структуры, масштабируемость, живучесть
� Параллельное мультипрограммирование
Кластер F1,44 TFLOPS
Кластер GHP BLc3000
Intel Xeon 5410
300 GFLOPS
4
Организация функционирования мультикластерной ВС средствами
пакетов Globus Toolkit и GridWay
5
Организация функционирования мультикластерной ВС средствами
пакетов Globus Toolkit и GridWay
Globus ToolkitGlobus Toolkit
GridFTP GRAM GridFTP GRAM
MyProxy
Certificate Authority
GridWay
GridWay
6
Аутентификация пользователей и передача файлов междусегментами мультикластерной ВС
[griduser@xeon16 ~]$ myproxy-logon -s xeon80.cpct.sibsutis.ru
1. Аутентификация пользователя gridusergridusergridusergriduser на сегменте Xeon16
Enter MyProxy pass phrase: *****
A credential has been received for user griduser in /tmp/x509up_u565.
[griduser@xeon16 ~]$ globus-url-copy file:///tmp/data \
2. Отправка файла /tmp/data/tmp/data/tmp/data/tmp/data с сегмента Xeon16 на сегмент Xeon80
gsiftp://xeon80.cpct.sibsutis.ru/tmp/newdata
3. Отправка файла /tmp/newdata/tmp/newdata/tmp/newdata/tmp/newdata с сегмента Xeon80 на сегмент Xeon32
[griduser@xeon16 ~]$ globus-url-copy \
gsiftp://xeon80.cpct.sibsutis.ru/tmp/newdata \
gsiftp://xeon32.cpct.sibsutis.ru/tmp/inputdata
[griduser@xeon16 ~]$ mpicc -static mpiprog.c –o mpiprog
7
Удаленное выполнение программ на заданном сегментемультикластерной ВС
&(rsl_substitution = (GRIDFTP_XEON32 gsiftp://xeon32.cpct.sibsutis.ru)(GRIDFTP_XEON16 gsiftp://xeon16.cpct.sibsutis.ru))
(executable = $(GRIDFTP_XEON16)/$(HOME)/mpiprog)(arguments = ./file.dat)(job_type = mpi)(count = 8)(stdout = $(HOME)/mpiprog.stdout)(file_stage_in = ($(GRIDFTP_XEON16)/$(HOME)/mpiprog.data
$(HOME)/file.dat))(file_stage_out = ($(HOME)/mpiprog.stdout
$(GRIDFTP_XEON16)/$(HOME)/mpiprog.res)($(HOME)/mpiprog.stdout$(GRIDFTP_XEON32)/$(HOME)/mpiprog.res))
(file_clean_up = $(HOME)/mpiprog.stdout)
1. Компиляция MPI-программы
2. Формирование паспорта задачи в формате RSL – Resource Specification Language
[griduser@xeon16 ~]$ cat job.rsl
Запрос на подсистему из 8 элементарных машин.Входные данные должны быть доставлены с сегмента Xeon16, а результирующий файл переданна сегменты Xeon16 и Xeon32.
8
Удаленное выполнение программ на заданном сегменте
мультикластерной ВС
3. Запуск задачи на сегменте Xeon80
[griduser@xeon16 ~]$ globusrun -b -r xeon80.cpct.sibsutis.ru -f job.rsl
4. Запрос состояния задачи
[griduser@xeon16 ~]$ globusrun –status \https://xeon80.cpct.sibsutis.ru:44383/16073658407281668776/5308558837526086045/
globus_gram_client_callback_allow successfulGRAM Job submission successfulhttps://xeon80.cpct.sibsutis.ru:44383/16073658407281668776/5308558837526086045/GLOBUS_GRAM_PROTOCOL_JOB_STATE_STAGE_INGLOBUS_GRAM_PROTOCOL_JOB_STATE_PENDINGGLOBUS_GRAM_PROTOCOL_JOB_STATE_ACTIVE
ACTIVE
[griduser@xeon16 ~]$ globusrun –status \https://xeon80.cpct.sibsutis.ru:44383/16073658407281668776/5308558837526086045/DONE
9
Удаленное выполнение программ на заданном сегментемультикластерной ВС
Process 0 of 8 is on node1.cluster.localProcess 1 of 8 is on node2.cluster.localProcess 2 of 8 is on node3.cluster.localProcess 3 of 8 is on node4.cluster.localProcess 4 of 8 is on node5.cluster.localProcess 5 of 8 is on node6.cluster.localProcess 6 of 8 is on node7.cluster.localProcess 7 of 8 is on node8.cluster.localPI is approximately 3.1415926535897811, Error is 0.0000000000000120Elapsed time = 0.0092 sec.
5. Проверка результатов выполнения программы на сегменте Xeon32
[griduser@xeon32 ~]$ cat mpiprog.res
HID PRIO OS ARCH MHZ %CPU N(U/F/T) LRMS HOSTNAME0 1 Linux2.6.18-8.e x86_6 2660 0 0/4/4 pbs xeon16.cpct.sibsutis.ru1 1 Linux2.6.18-164 x86_6 2330 0 0/4/4 pbs xeon32.cpct.sibsutis.ru2 1 Linux2.6.18-8.e x86_6 2500 0 0/10/10 pbs xeon80.cpct.sibsutis.ru
10
Запуск программ через GRID-диспетчер GridWay
[griduser@xeon16 ~]$ mpicc -static mpiprog.c -o mpiprog
3. Подготовка паспорта задачи в формате GridWay
[griduser@xeon16 ~]$ cat job.jt
2. Компиляция программы
EXECUTABLE = mpiprogARGUMENTS = ./mpiprog.resINPUT_FILES = gsiftp://xeon16.cpct.sibsutis.ru/home/griduser/mpiprog.dataSTDOUT_FILE = gsiftp://xeon32.cpct.sibsutis.ru/home/griduser/mpiprog.resTYPE = mpiNP = 8
1. Запрос информации о состоянии сегментов мультикластерной ВС
[griduser@xeon16 ~]$ gwhost
[griduser@xeon16 ~]$ gwsubmit job.jt
[griduser@xeon32 ~]$ cat mpiprog.res
[griduser@xeon16 ~]$ gwps
11
Запуск программ через GRID-диспетчер GridWay
5. Запрос информации о состоянии задач
Process 0 of 8 is on node1.cluster.localProcess 1 of 8 is on node2.cluster.localProcess 2 of 8 is on node3.cluster.localProcess 3 of 8 is on node4.cluster.localProcess 4 of 8 is on node5.cluster.localProcess 5 of 8 is on node6.cluster.localProcess 6 of 8 is on node7.cluster.localProcess 7 of 8 is on node8.cluster.localPI is approximately 3.1415926535897811, Error is 0.0000000000000120Elapsed time = 0.0092 sec.
6. Результаты выполнения задания на сегменте Xeon32
USER JID DM EM START END NAME HOSTgriduser:0 0 done ---- 23:47:56 23:48:16 pi.jt xeon32.cpct.sibsutis.rugriduser:0 1 wrap actv 12:41:04 --:--:-- job.jt xeon80.cpct.sibsutis.ru
4. Запуск задачи через диспетчер GridWay
[griduser@xeon16 ~]$ gwpsUSER JID DM EM START END NAME HOSTgriduser:0 0 done ---- 23:47:56 23:48:16 pi.jt xeon32.cpct.sibsutis.rugriduser:0 1 done ---- 12:41:04 12:41:39 job.jt xeon80.cpct.sibsutis.ru
12
Web-сайт мультикластерной ВС
• Руководства для пользователей ресурсов
мультикластерной ВС
• Описание конфигурации сегментов
мультикластерной ВС
• Информация о состоянии сегментов
http://cpct.sibsutis.ru
13
Интеграция нового сегмента в мультикластерную ВС
Globus Toolkit
GridFTP GRAM
MyProxy
Certificate Authority
GridWay
Globus Toolkit
GridFTP GRAM
GridWay
14
Распределенные вычислительные системыс иерархической структурой
Распределенные ВС из списка TOP500 (34 редакция, ноябрь 2009 года) имеют как
минимум два уровня в иерархической организации – общая память узлов
и сеть межузловых связей.
Level 3
Level 2
Level 1
15
Вложение параллельной программы в структурураспределенной ВС
Вложение теста High Performance
Linpack в подсистему:
Стандартными MPI-утилитами (MPICH2):
время выполнения 118 сек. (44 GFLOPS)
Разработанными средствами:
время выполнения 100 сек. (53 GFLOPS)
High Performance Linpack
Кластер с иерархическойструктурой:
2 узла по 2 процессора Intel Xeon 5150
Сеть связи Gigabit Ethernet
Общая память
Ядро Ядро
Кэш L2
Процессор
Ядро Ядро
Кэш L2
Процессор
Общая память
Ядро Ядро
Кэш L2
Процессор
Ядро Ядро
Кэш L2
Процессор
Граф программы
16
Библиотека коммуникационных функций TopoMPI
TopoMPI (от англ. Topology-aware MPI library) – библиотека коммуникационных функций стандарта
MPI, ориентированная на эффективную реализацию параллельных программ в большемасштабных
иерархических распределенных ВС.
Основные возможности:
• Оптимизация вложения (mapping) параллельных программ в иерархические распределенные ВС.
• Эффективные алгоритмы реализации коллективных операций информационных обменов (collective
communication) в иерархических распределенных ВС.
• Переносимая реализация на C99 (ISO/IEC 9899:1999) и MPI 2.2.
17
Программное обеспечение мультикластерной ВС
Операционная система GNU/Linux
Подсистема самоконтроля, самодиагностики ВС и организации отказоустойчивого выполнения параллельных программ
(DMTCP – Distributed MultiThreaded CheckPointing)Удаленный
доступ и
мониторинг
(SS
H,
Glo
bu
sTo
olk
it; G
an
glia
)
Подсистема параллельного мультипрограммирования(TORQUE, MAUI, mpiexec)
Средства организации распределенной очереди задач(Gbroker, dqueued, GridWay)
Средства разработки параллельных программ
• MPI: TopoMPI, MPICH2, OpenMPI
• PGAS: Unified Parallel C• OpenMPI: GNU Compilers, Intel Compilers, Sun Studio Compilers• Средств анализа MPI-программ: mpistat, otfstat, VampirTrace
Подсистема параллельного мультипрограммирования
Разрабатываемые в ИФП СО РАН и ЦПВТ ГОУ ВПО “СибГУТИ” компоненты
18
СПАСИБО
ЗА ВНИМАНИЕ