Skip to content
August 29, 2011 / ahriman hpc mode

Параллельные технологии, немного о главном.

Здравствуйте!
Итак, кластер. Всё, что будет написано впоследствии, будет относиться к нашему тестовому кластеру: гомогенной системе из 24 узлов со следующими ТТХ:

– Количество вычислительных узлов: 24
– Количество процессоров: 48 (Intel XEON 5150)
– Количество вычислительных ядер: 96 (2.66Ghz)
– Общий объем ОП: 192ГБ
– Общий объем НDD: 2880ГБ
– Системная сеть: Infiniband 4x, 24 порта
– Вспомогательная сеть: Gigabit Etherhet, 48 портов
– Сервисная сеть: ServNet, 25 портов

На каждом узле установлены на разных партициях SuSE 10.3 и Windows HPC Server 2008.
Тестовый кластер разделен на два “виртуальных” кластера – под SuSE 10.3 и Server 2008 соответственно. Оба головных узла (как для SuSE, так и для Server) вынесены на отдельные узлы, которые не трогаются, дабы не нарушать инфраструктуры.
Естественнно, что при перезагрузке узла под SuSE или под Windows головной узел автоматически определяет, что в его “домене” появилась новая вычислительная единица.

Теперь совсем немного теории.

Распределённые архитектуры

Поскольку в дальнейших постах мультипроцессорные и грид-архитектуру будут затронуты поверхностно, ограничусь ссылками на соответствующую литературу:
Интернет-портал по грид-технологиям
Мультипроцессорные технологии

Имеющуюся в наличии и рассматриваемую в дальнейшем мультикомпьютерную архитектуру (а именно cluster of workstations) мы и рассмотрим кратко.

Мультикомпьютерная архитектура

Согласно пионеру в поле кластерных технологий Грегори Пфистеру,
“Кластер — это разновидность параллельной или распределённой системы, которая:
1. состоит из нескольких связанных между собой компьютеров;
2. используется как единый, унифицированный компьютерный ресурс».

Лучше и не скажешь. Компьютерная “ферма”, соединённая какой-либо сетью и которую конечный пользователь видит как единый ресурс. Именно какой-либо сетью, поскольку для понятия “кластер” вид кабеля или топология сети не имеет критического значения. Но: чаще всего кластера с низкоскоростной сетью (UTP) используются в домашних либо строго ограниченных финансово условиях. Иначе же стандартом де-факто является InfiniBand.

Другим стандартом де-факто для программирования под мультикомпьютерные системы является MPI (Message Passing Interface), библиотека передачи сообщений, собрание функций на C/C++/Fortran, облегчающих коммуникацию между процессами параллельной программы с распределенной памятью.

MPI не является формальным стандартом но является стандартом, принятым сообществом, в которое входят не только простые разработчики, но и крупные фирмы-поставщики компьютерного оборудования. После его принятия MPI получил бурное развитие и на данный момент есть вторая его версия и больше десятка имплементаций как свободно-распространяемых (MPICH), так и коммерческих и имеющих свои “плюшки” (например, Intel MPI с оптимизацией под собственную архитектуру etc).

Естественно, что перед современным IT-сообществом проблемы администрирования и программирования под подобные системы стоят особенно остро (по сравнению с администрированием классической системы). Некоторые проблемы, с которыми сталкивался лично я, в Google не были описаны вообще и техподдержка интегратора затруднялась ответить, приходилось выкручиваться собственными силами. Некоторые из этих моментов я и буду пытаться осветить в дальнейшем, дабы помочь хотя бы чем-нибудь российскому “параллельному” сообществу (я очень надеюсь, что таковое имеет место быть).

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: