Здравствуйте!
Меня зовут Александр, я являюсь администратором в отделе коллективного пользования кластером в одном из университетов Томска. Данный блог будет посвящён тому, что происходит в процессе моей работы как научной (об этом позже), так и в качестве системного администратора.
Первый пост — вводная в параллельные технологии.
Итак, кластер. Всё, что будет написано впоследствии, будет относиться к нашему тестовому кластеру: гомогенной системе из 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 не были описаны вообще и техподдержка интегратора затруднялась ответить, приходилось выкручиваться собственными силами. Некоторые из этих моментов я и буду пытаться осветить в дальнейшем, дабы помочь хотя бы чем-нибудь российскому «параллельному» сообществу (я очень надеюсь, что таковое имеет место быть).
Меня зовут Александр, я являюсь администратором в отделе коллективного пользования кластером в одном из университетов Томска. Данный блог будет посвящён тому, что происходит в процессе моей работы как научной (об этом позже), так и в качестве системного администратора.
Первый пост — вводная в параллельные технологии.
Итак, кластер. Всё, что будет написано впоследствии, будет относиться к нашему тестовому кластеру: гомогенной системе из 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 не были описаны вообще и техподдержка интегратора затруднялась ответить, приходилось выкручиваться собственными силами. Некоторые из этих моментов я и буду пытаться осветить в дальнейшем, дабы помочь хотя бы чем-нибудь российскому «параллельному» сообществу (я очень надеюсь, что таковое имеет место быть).