Принципы построения параллельных вычислительных систем
1.2.2. Кластеры
Кластер – группа компьютеров, объединенных в локальную вычислительную сеть (ЛВС) и способных работать в качестве единого вычислительного ресурса. Дополнительно предполагается, что для кластера обеспечивается более высокая надежность и эффективность, нежели для ЛВС, и существенно более низкая стоимость в сравнении с другими типами параллельных вычислительных систем (за счет использования типовых аппаратных и программных решений).
Исчисление истории кластеров можно начать от первого проекта, в котором одной из основных целей являлось установление связи между компьютерами, – проекта ARPANET2ARPANET - проект Агентства передовых исследовательских проектов Министерства обороны США (Defense Advanced Research Projects Agency, DARPA) по созданию компьютерной сети с целью проведения экспериментов в области компьютерных коммуникаций, поддержания связи в условиях ядерного нападения, разработки концепции децентрализованного управления (1966-1969 гг.) . Именно тогда были заложены первые, оказавшиеся фундаментальными, принципы, приведшие впоследствии к созданию локальных и глобальных вычислительных сетей и, конечно же, всемирной глобальной компьютерной сети Интернет. Правда, с момента ввода в действие сети ARPANET до появления первого кластера должно было пройти более двадцати лет.
Эти годы вместили в себя гигантский скачок в развитии аппаратной базы, появление и воцарение на рынке микропроцессоров и персональных компьютеров, накопление критической массы идей и методов параллельного программирования, что привело, в конечном счете, к решению извечной проблемы уникальности каждой параллельной вычислительной установки – разработке стандартов на создание параллельных программ для систем с общей и распределенной памятью. Добавим к этому дороговизну имевшихся на тот момент решений в области высокопроизводительных систем, предполагавших использование быстродействующих, а потому специфических компонентов. Также учтем непрерывное улучшение соотношения "цена/производительность" персональных компьютеров. В свете всех этих обстоятельств появление кластеров было неизбежным.
Преимущества нового подхода к созданию вычислительных систем большой мощности, получившие признание практически сразу после первого представления такой системы, со временем только возрастали, поддерживаемые непрерывным ростом производительности типовых компонентов.
В настоящее время в списке Top 500 самых высокопроизводительных систем кластеры составляют большую часть – 294 установки.
1.2.2.1. Кластер Beowulf
Первым в мире кластером, по-видимому, является кластер, созданный под руководством Томаса Стерлинга и Дона Бекера в научно-космическом центре NASA – Goddard Space Flight Center – летом 1994 года. Названный в честь героя скандинавской саги, обладавшего, по преданию, силой тридцати человек, кластер состоял из 16 компьютеров на базе процессоров 486DX4 с тактовой частотой 100 MHz. Каждый узел имел 16 Mb оперативной памяти. Связь узлов обеспечивалась тремя параллельно работавшими 10 Mbit/s сетевыми адаптерами. Кластер функционировал под управлением операционной системы Linux, использовал GNU-компилятор и поддерживал параллельные программы на основе MPI. Процессоры узлов кластера были слишком быстрыми по сравнению с пропускной способностью обычной сети Ethernet, поэтому для балансировки системы Дон Бекер переписал драйверы Ethernet под Linux для создания дублированных каналов и распределения сетевого трафика.
Идея "собери суперкомпьютер своими руками" быстро пришлась по вкусу, в первую очередь академическому сообществу. Использование типовых массово выпускающихся компонентов, как аппаратных, так и программных, вело к значительному уменьшению стоимости разработки и внедрения системы. Вместе с тем производительность получающегося вычислительного комплекса была вполне достаточной для решения существенного количества задач, требовавших большого объема вычислений. Системы класса "кластер Beowulf" стали появляться по всему миру.
Четыре годя спустя в Лос-Аламосской национальной лаборатории (США) астрофизик Майкл Уоррен и другие ученые из группы теоретической астрофизики построили суперкомпьютер Avalon, который представлял собой Linux-кластер на базе процессоров Alpha 21164A с тактовой частотой 533 MHz. Первоначально включавший 68 процессоров, позднее Avalon был расширен до 140. Каждый узел содержал 256 Mb оперативной памяти, 3 Gb дисковой памяти, Fast Ethernet card. Общая стоимость проекта Avalon составила чуть более 300 тыс. долл.
На момент ввода в строй полной версии (осень 1998 года) с пиковой производительностью в 149 GFlops и показанной на тесте LINPACK производительностью 48,6 GFlops кластер занял 113-е место в списке Top 500.
В том же году на самой престижной конференции в области высокопроизводительных вычислений Supercomputing'98 создатели Avalon получили первую премию в номинации "наилучшее отношение цена/производительность".
В настоящее время под кластером типа Beowulf понимается система, которая состоит из одного серверного узла и одного или более клиентских узлов, соединенных при помощи Ethernet или некоторой другой сети. Это система, построенная из готовых серийно выпускающихся промышленных компонентов, на которых может работать ОС Linux, стандартных адаптеров Ethernet и коммутаторов. Она не содержит специфических аппаратных компонентов и легко воспроизводима. Серверный узел управляет всем кластером и является файл-сервером для клиентских узлов. Он также является консолью кластера и шлюзом во внешнюю сеть. Большие системы Beowulf могут иметь более одного серверного узла, а также, возможно, специализированные узлы, например консоли или станции мониторинга. В большинстве случаев клиентские узлы в Beowulf пассивны. Они конфигурируются и управляются серверными узлами и выполняют только то, что предписано серверным узлом.
1.2.2.2. Кластер AC3 Velocity Cluster
Кластер AC3 Velocity Cluster, установленный в Корнельском университете (США) (http://www.tc.cornell.edu), стал результатом совместной деятельности университета и консорциума AC3 (Advanced Cluster Computing Consortium), образованного компаниями Dell, Intel, Microsoft, Giganet и еще 15 производителями ПО с целью интеграции различных технологий для создания кластерных архитектур для учебных и государственных учреждений.
Состав кластера:
- 64 четырехпроцессорных сервера Dell PowerEdge 6350 на базе Intel Pentium III Xeon 500 MHz, 4 GB RAM, 54 GB HDD, 100 Mbit Ethernet card;
- 1 восьмипроцессорный сервер Dell PowerEdge 6350 на базе Intel Pentium III Xeon 550 MHz, 8 GB RAM, 36 GB HDD, 100 Mbit Ethernet card.
Четырехпроцессорные серверы смонтированы по восемь штук на стойку и работают под управлением ОС Microsoft Windows NT 4.0 Server Enterprise Edition. Между серверами установлено соединение на скорости 100 Мбайт/c через Cluster Switch компании Giganet.
Задания в кластере управляются с помощью Cluster ConNTroller, созданного в Корнельском университете. Пиковая производительность AC3 Velocity составляет 122 GFlops при стоимости в 4 – 5 раз меньше, чем у суперкомпьютеров с аналогичными показателями.
На момент ввода в строй (лето 2000 года) кластер с показателем производительности на тесте LINPACK в 47 GFlops занимал 381-ю строку списка Top 500.
1.2.2.3. Кластер NCSA NT Supercluster
В 2000 году в Национальном центре суперкомпьютерных технологий (NCSA – National Center for Supercomputing Applications) на основе рабочих станций Hewlett-Packard Kayak XU PC workstation (http://www.hp.com/desktops/kayak/) был собран еще один кластер, для которого в качестве операционной системы была выбрана ОС Microsoft Windows. Недолго думая, разработчики окрестили его NT Supercluster (http://archive.ncsa.uiuc.edu/ SCD/Hardware/NTCluster/).
На момент ввода в строй кластер с показателем производительности на тесте LINPACK в 62 GFlops и пиковой производительностью в 140 GFlops занимал 207-ю строку списка Top 500.
Кластер построен из 38 двупроцессорных серверов на базе Intel Pentium III Xeon 550 MHz, 1 Gb RAM, 7.5 Gb HDD, 100 Mbit Ethernet card.
Связь между узлами основана на сети Myrinet (http://www.myri.com/ myrinet/index.html).
Программное обеспечение кластера:
- операционная система – Microsoft Windows NT 4.0;
- компиляторы – Fortran77, C/C++;
- уровень передачи сообщений основан на HPVM (ref src="http://www-csag.ucsd.edu/projects/clusters.html" type="url" /).
1.2.2.4. Кластер Thunder
В настоящий момент число систем, собранных на основе процессоров корпорации Intel и представленных в списке Top 500, составляет 318. Самый мощный суперкомпьютер, представляющий собой кластер на основе Intel Itanium2, установлен в Ливерморской национальной лаборатории (США).
Аппаратная конфигурация кластера Thunder (http://www.llnl.gov/linux/thunder/):
- 1024 сервера, по 4 процессора Intel Itanium 1.4 GHz в каждом;
- 8 Gb оперативной памяти на узел;
- общая емкость дисковой системы 150 Tb.
Программное обеспечение:
- J операционная система CHAOS 2.0;
- среда параллельного программирования MPICH2;
- отладчик параллельных программ TotalView;
- Intel и GNU Fortran, C/C++ компиляторы.
В данное время кластер Thunder занимает 5-ю позицию списка Top 500 (на момент установки – лето 2004 года – занимал 2-ю строку) с пиковой производительностью 22938 GFlops и максимально показанной на тесте LINPACK 19940 Gflops.
1.2.3. Высокопроизводительный вычислительный кластер ННГУ
В качестве следующего примера рассмотрим вычислительный кластер Нижегородского университета, оборудование для которого было передано в рамках Академической программы Интел в 2001 г. В состав кластера входят (см. рис. 1.3):
- 2 вычислительных сервера, каждый из которых имеет 4 процессора Intel Pentium III 700 MHZ, 512 MB RAM, 10 GB HDD, 1 Gbit Ethernet card;
- 12 вычислительных серверов, каждый из которых имеет 2 процессора Intel Pentium III 1000 MHZ, 256 MB RAM, 10 GB HDD, 1 Gbit Ethernet card;
- 12 рабочих станций на базе процессора Intel Pentium 4 1300 MHZ, 256 MB RAM, 10 GB HDD, 10/100 Fast Ethernet card.
Следует отметить, что в результате передачи подобного оборудования Нижегородский госуниверситет оказался первым вузом в Восточной Европе, оснащенным ПК на базе новейшего процессора Intel®Pentium®4. Подобное достижение является дополнительным подтверждением складывающегося плодотворного сотрудничества ННГУ и корпорации Интел.
Важной отличительной особенностью кластера является его неоднородность (гетерогенность). В состав кластера входят рабочие места, оснащенные процессорами Intel Pentium 4 и соединенные относительно медленной сетью (100 Мбит), а также вычислительные 2- и 4-процессорные серверы, обмен данными между которыми выполняется при помощи быстрых каналов передачи данных (1000 Мбит). В результате кластер может использоваться не только для решения сложных вычислительно-трудоемких задач, но также и для проведения различных экспериментов по исследованию многопроцессорных кластерных систем и параллельных методов решения научно-технических задач.
В качестве системной платформы для построения кластера выбраны современные операционные системы семейства Microsoft Windows (для проведения отдельных экспериментов имеется возможность использования ОС Unix). Такой выбор определяется рядом причин:
- операционные системы семейства Microsoft Windows (так же как и ОС Unix) широко используются для построения кластеров ; причем если раньше применение ОС Unix для этих целей было преобладающим системным решением, то в настоящее время тенденцией является увеличение числа создаваемых кластеров под управлением ОС Microsoft Windows (см., например, http://www.tc.cornell.edu/ac3/, http://www.windowclusters.org и др.);
- разработка прикладного программного обеспечения выполняется преимущественно с использованием ОС Microsoft Windows;
- корпорация Microsoft проявила заинтересованность в создании подобного кластера и передала в ННГУ для поддержки работ все необходимое программное обеспечение (ОС MS Windows 2000 Professional, ОС MS Windows 2000 Advanced Server и др.).
В результате принятых решений программное обеспечение на момент установки кластера являлось следующим:
- вычислительные серверы работают под управлением ОС Microsoft Windows 2000 Advanced Server; на рабочих местах разработчиков установлена ОС Microsoft Windows 2000 Professional;
- в качестве сред разработки применяются Microsoft Visual Studio 6.0; для выполнения исследовательских экспериментов возможно использование компилятора Intel C++ Compiler 5.0, встраиваемого в среду Microsoft Visual Studio;
- на рабочих местах разработчиков установлены библиотеки:
- Plapack 3.0 (см. http://www.cs.utexas.edu/users/plapack);
- MKL (см. http://www.developer.intel.com/software/products/mkl/index.htm);
- в качестве средств передачи данных между процессорами установлены две реализации стандарта MPI:
- Argonne MPICH (http://www.unix.mcs.anl.gov/mpi/MPICH/);
- MP-MPICH (http://www.lfbs.rwth-aachen.de/~joachim/MP-MPICH.html);
- в опытной эксплуатации находится система разработки параллельных программ DVM (см. http://www.keldysh.ru/dvm/).
В 2006 году в рамках инновационной образовательной программы Нижегородского университета Приоритетного национального проекта "Образование" была выполнена модернизация вычислительного кластера ННГУ, в результате пиковая производительность кластера была доведена до 3000 Gflops.