ОРГАНИЗАЦИЯ ВЫЧИСЛИТЕЛЬНОГО КЛАСТЕРА НА БАЗЕ ПЕРСОНАЛЬНЫХ КОМПЬЮТЕРОВ УЧЕБНЫХ АУДИТОРИЙ - Студенческий научный форум

V Международная студенческая научная конференция Студенческий научный форум - 2013

ОРГАНИЗАЦИЯ ВЫЧИСЛИТЕЛЬНОГО КЛАСТЕРА НА БАЗЕ ПЕРСОНАЛЬНЫХ КОМПЬЮТЕРОВ УЧЕБНЫХ АУДИТОРИЙ

Ечмаев А.И. 1
1Тобольская социально-педагогическая академияим. Д.И. Менделеева
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
Введение

В современных условиях темпы технического прогресса и успехи в решении фундаментальных научных проблем во многом определяются уровнем развития вычислительной техники. В настоящее время выделен круг фундаментальных и прикладных проблем, эффективное решение которых возможно только с использованием сверхмощных вычислительных ресурсов с производительностью сотен Gflops и выше. Этот круг, обозначаемый понятием «Grand challenges», включает такие задачи как предсказания погоды, климата и глобальных изменений в атмосфере; построение полупроводниковых приборов; сверхпроводимость; структурная биология; разработка фармацевтических препаратов; генетика и т.д.

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

В связи с введением в учебный план подготовки бакалавров, по направлению «физико-математическому образованию», дисциплины «вычислительные машины и системы», курса по выбору «Технология параллельных вычислений» специальность информатика, возникла необходимость создания соответствующей технической базы. Чем и определяется Актуальностью данной темы.

Объектом исследования является процесс создания вычислительной системы.

Предметом исследования является организация вычислительного кластера на базе ПК.

Цель работы: разработать рекомендации по технической и программной организации вычислительного кластера на базе ПК и его применению в практических и учебных целях.

Исходя из целей и предмета исследования, определены следующие задачи:

1. Изучить техническую и специальную литературу по проблеме исследования;

2. Рассмотреть понятие вычислительной системы, ее виды, классификации, характеристики и требования;

3. Изучить особенности коммуникационных соединений узлов системы и принципы технической организации вычислительного кластера на базе ПК;

4. Изучить особенности различных программных средств построения вычислительного кластера на базе ПК;

5. Организовать вычислительную систему на базе ПК учебных аудиторий кафедры, проверить работоспособность и производительность вычислительного кластера;

6. Рассмотреть специфику технологии организации параллельных вычислений;

7. Разработать рекомендации по применению вычислительного кластера для решения практических задач и его использованию в учебном процессе.

Теоретической основой исследования выступают:

  • работы в области организации вычислительных систем отечественных и зарубежных авторов (Воеводин В.В. Гудыно Л.П., Каган Б.М., Капитонова А.П., Кириченко А.А., Кузьминский М., Орлов С.А., Пятибратор А.П., Феррари Д., Цилькер Б. Я., и др.);

  • исследования в области технологии параллельных вычислений (Антонов А.С., Букатов А.А., Воеводин В.В., Дацюк В.Н., Жигуло А.И., Киреев В.Д., Лацис А. О., и др.);

Методы исследования: изучение литературы в рамках исследования; анализ, систематизация и обобщение данных по вопросам организации вычислительным системам; формализация, моделирование, кодирование при решении задач на вычислительном кластере; тестирование производительности вычислительного кластера.

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

Следует отметить, что в последнее время чрезвычайно быстро развиваются многопроцессорные вычислительные системы кластерного типа. Под кластером обычно понимается множество отдельных компьютеров, объединенных в сеть, для которых при помощи специальных аппаратно-программных средств обеспечивается возможность унифицированного управления (single system image), надежного функционирования (availability) и эффективного использования (performance).

Поскольку кластер может быть использован для решения различных классов задач (большого массива последовательных программ, никак не связанных друг с другом; обработки данных распределеннымипрограммами, состоящими из большого числа независимых процессов, имеющих общие данные; выполнения параллельныхпрограмм, когда выполнение отдельных операторов программы распределяется по узлам вычислительной сети, чтобы сократить время выполнения программы), то основное требование его системе управления – масштабируемость, т.е. при увеличении числа узлов кластера должна пропорционально возрастать его производительность.

В простейшем случае, когда на кластере требуется выполнить только одну параллельную программу, вся функциональность, необходимая для запуска, выполнения и завершения программы, может обеспечиваться операционными системами на узлах самой программой. В более сложных случаях, когда требуется выполнить несколько задач, как параллельных, так и последовательных, имеющих различные требования к системным ресурсам в дополнение к среде выполнения (т.е. операционной системе узла и, возможно, дополнительных библиотек, поддерживающих выполнение параллельных программ), необходима некоторая система, управляющая вычислительными ресурсами кластера в целом. Таким, образом, кластер можно определить как множество рабочих станций (узлов), связанных коммуникационной средой и способных работать как единое целое за счет дополнительного программного обеспечения, называемого системой управления кластером.

Система управления кластером в очень ограниченном смысле может рассматриваться как распределенная операционная система для кластера. Она обеспечивает управление над выполняемыми заданиями, пользователями и ресурсами. Подробный список основных функций, обеспечиваемых системами управления, сформулирован в работах отечественных (А.Н. Андреева, А.С. Антонова, В.В. Воеводина, С.А. Жуматия, М.П. Филамофитского, П.А. Церетели и др.) и зарубежных авторов (Mark A. Baker, Geoffrey C. Fox, Hon W. Yau и др.).

В настоящее время разработано достаточное количество систем управления вычислительным кластером. Рассмотрим наиболее используемые из них.

Основные функции системы управления кластером:

  1. Обеспечение выполнения различных классов задач (массив последовательных программ, никак не связанных одна с другой; распределенные программы, состоящие из независимых процессов, имеющих общие данные; параллельные программы);

  2. Обеспечение балансировки нагрузки (система управления должна отправлять задачи на выполнение на конкретные узлы в кластере не просто по мере их получения от пользователей, а, таким образом, чтобы каждый узел, входящий в состав кластера, выполнял работу пропорционально своей мощности и не простаивал);

  3. Обеспечение защиты от сбоев (поскольку система управления может рассматриваться как распределенная операционная система для кластера, следовательно, ее основным принципом является иллюзия целостности, когда совокупность независимых компьютеров представляется пользователю единой вычислительной машиной. Во время работы кластера один из узлов может отказать, в этом случае все вычисления, производимые на данном узле теряются, и система должна реагировать на такие отказы аппаратуры, в случае необходимости перезапускать остановленные задачи). Кластеры как правило, создаются с выделенным управляющим узлом, на котором не производятся вычисления, а работает основная часть системы управления: подсистема очередей, система сбора и обработки различной информации. Управляющий узел также может включать в себя файловый сервер и служить шлюзом, ограничивающим узлы кластера от внешней сети.

  4. Обеспечение пользовательского интерфейса - очень важная характеристика системы для конечных пользователей. Если пользователь не понимает систему из-за сложного или громоздкого интерфейса, система не будет использоваться. Задания для системы управления должны формулироваться с использованием некоторого языка. Этот язык не должен быть сложен при изучении и использовании;

В настоящее время для управления вычислительными кластерами используются такие операционные системы как Beowulf, EnFuzion, MOSIX, Condor, LoadLeveler, LSF, PBS и Cleo, планировщик заданий MAUI и т.д. Проведем сравнительный анализ наиболее распространенных систем управления кластером в виде следующей таблицы (табл. 1).

Таблица 1

Сравнительная оценка систем управления кластерами

 

Beowulf

EnFuzion

MOSIX

Condor

Load Leveler

LSF

Cleo

PBS Pro

Пакетные задания

Да

Да

Да

Да

Да

Да

Да

Да

Файл задания

Да

Да

Нет

Да

Да

Да

Нет

Да

Зависимость задач по результатам

Нет

Нет

Нет

Нет

Нет

Да

Нет

Нет

Статус задачи

Да

Да

Да

Да

Да

Да

Да

Да

Балансировка

Нет

Нет

Да

Нет

Да

Да

Да

Да

Задание ресурсов

Да

Нет

Нет

Да

Да

Да

Да

Да

Задание приоритетов

Да

Да

Нет

Да

Да

Да

Да

Да

Интерактивные задачи

Нет

Нет

Да

Нет

Да

Да

Нет

Да

Ограничение ресурсов

Да

Нет

Нет

Нет

Да

Да

Нет

Да

Контрольные точки

Нет

Нет

Нет

Да

Да

Да

Нет

Нет

Миграция процессов

Нет

Нет

Да

Да

Да

Да

Нет

Нет

Перекомпиляция

Да

Нет

Нет

Да

Нет

Нет

Нет

Нет

Защита от сбоев

Нет

Да

Да

Да

Да

Да

Нет

Да

Параллельные программы

Да

Нет

Нет

Да

Да

Да

Да

Да

Монопольный режим

Да

Да

Да

Да

Да

Да

Да

Да

Интерфейс

Да

Нет

Да

Нет

Да

Да

Нет

Да

Хотя все рассмотренные выше ОС оптимизированы для работы на кластерных вычислительных системах и имеют множество преимуществ, у них все есть существенный недостаток – они являются коммерческими разработками и дорого стоят. Поэтому в рамках нашего исследования рассмотрим кластерную операционную систему PelicanHPC GNU Linux. Данная операционная система привлекает наше внимание тем, что позволяет организовать временный кластер, который может быть запущен в любой момент и на приведение его в работоспособное состояние потребуется не более пяти минут. Причем исходная операционная система, программное обеспечение и данные на используемых в качестве кластера компьютерах не будет модифицированы. После выключения кластера компьютеры придут в то состояние, которое было до начала работы кластера. Кроме того, PelicanHPC GNU Linux - это бесплатный и легко настраиваемый дистрибутив.

Техническая реализация вычислительного кластера на базе персональных компьютеров учебных аудиторий

Кластеры могут быть образованы на базе уже существующих у пользователей отдельных компьютеров, либо сконструированы из типовых компьютерных элементов, что обычно не требует значительных финансовых затрат. Техническое развертывание кластера как такового – это задача, которую можно разбить на несколько этапов:

  1. Организация аппаратного обеспечение кластера. Основная задача данного этапа - получить совокупность соединенных между собой компьютеров. В идеале, машины должны быть максимально идентичными - так, чтобы ни одна из них не была "слабым звеном" во всей группе, что бы приводило к рассинхронизации и увеличению времени параллельного вычисления. В сети также должна быть однородность, ведь в большинстве случаев параллельные вычисления полагаются на постоянные соединения между всеми узлами кластера. В рамках реализации данного шага необходимо найти место, где расположить все машины, позаботиться об их питании и охлаждении. При подключении машин следует промаркировать их кабели коммуникации.

В рамках данного исследования на базе физико-математического факультета ТГСПА им. Д.И. Менделеева был организован вычислительный кластер. В качестве места для развертывания кластера была выбрана 328 аудитория кафедры Информатики и ТиМОИ т.к. представляет собой компьютерный кабинет с наиболее новыми персональными компьютерами (ПК) из всех доступных. Все ПК из данной аудитории идентичны и собраны на базе двуядерных процессоров семейства Intel Core 2 Duo. Также, каждый имеет 2 GB оперативной памяти и встроенный телекоммуникационный порт Ethernet 1 Gb. В виду того что у каждого ПК отдельный компьютерный стол и расположены они на достаточно удаленном расстоянии в дополнительном охлаждении системы не было необходимости.

Далее необходимо было обновить и настроить на каждой машине BIOS. Требовалось настроить часы BIOS так, чтобы они на всех ПК показывали одно и то же время (погрешность в 5 минут можно считать нормальной). Большинство кластерных систем поддерживают синхронный ход системных часов автоматически, но для этого необходимо, чтобы в самом начале они шли одинаково.

Если развертывается стационарный кластер, а машины уже использовались ранее, следует очистить жесткие диски всех машин перед загрузкой кластерной управляющей программы. Существует несколько способов очистки диска, например с помощью программы DBAN (Darik's Boot and Nuke). Следует помнить, что целью данного шага является сделать все узлы кластера как можно более идентичными. Это лишь желательное условие, но не жесткое требование. Разнородный кластер так же будет работать, только в этом случае придется более пристально следить за распределением нагрузки между узлами. Кроме того, при развертывании временного кластера, как в нашем случае, этого делать не требуется.

  1. Коммуникационное обеспечение кластера. Самое «узкое место» кластера - это среда передачи данных между узлами, то есть пропускная способность используемой сети. Поэтому увеличение количества узлов в значительной степени влияет на производительность кластера в целом. Как показывают практические данные (рис. 17), в общем случае эффективность кластера зависит от числа узлов нелинейно. Точный вид этой функции зависит от задачи, которая решается с помощью кластера. Как правило эффективность кластера растет до того момента, когда время передачи между узлами информации, необходимой для решения задачи, становится сравнимым со временем решения вычислительным узлом самой задачи. В других случаях, например для решения системы уравнений методом Монте-Карло или методом перебора, функция эффективности принимает линейный вид. То есть, чем больше машин в кластере, тем быстрее работает программа. Однако при методе прогонки, функция эффективности имеет максимум при количестве узлов равном единице и спадает до нуля обратно пропорционально росту количества узлов.

Рис.17. Зависимость производительности кластера от количества узлов системы

При организации временного кластера, как в нашем случае, создается сетевая файловая система – NFS, работа которой сопровождается большой нагрузкой на коммуникационную сеть кластера. Чтобы функционирование сетевой файловой системы NFS не мешало обмену данными, который осуществляют между собой части параллельной программы, работающие на разных узлах, желательно физически разделить сеть на два сегмента. В одном сегменте будет работать NFS, в другом - будет происходить обмен данными между частями программы. Таким образом, и в консоли кластера и в его узлах желательно иметь два сетевых интерфейса (две сетевые карты). Соответственно, необходимы два набора свитчей, не связанных друг с другом, и два набора сетевых реквизитов для этих интерфейсов. Например, схема сети простого вычислительного кластера может быть такой, как представлена рисунке 18. В такой топологии Ethernet-соединения используются для административных целей, а соединения типа InfiniBand предназначены для вычислительного трафика.

Рис.18. Схема сети простого вычислительного кластера

Однако, как показывает практика, если в наличии нет оборудования InfiniBand, то нижнюю часть схемы можно игнорировать, и Ethernet-кабель может нести как административную, так и вычислительную нагрузку. В этом случае следует использовать один Ethernet-свитч на достаточное количество портов. В противном случае машины можно соединить с помощью нескольких меньших свитчей, но они должны формировать полное толстое дерево. Как и узлы, входящие в кластер, так и межсоединения между ними должны быть по возможности однородными.

Поскольку кластер развертывается на базе уже функционирующего компьютерного класса с уже организованной телекоммуникационной локальной сетью, то при выстраивании коммуникационного обеспечения кластера не было необходимости в планировании ход всех кабелей с учетом их толщины, а так же в проверке их работоспособности и маркировке. В противном случае это необходимые процедуры на данном этапе.

Как показывает практика, для организации сети может быть использована сеть Gigabit Ethernet (как наиболее доступная с точки зрения финансов), несмотря на то, что она обладает достаточно большой латентностью (задержкой). Более эффективный вариант - Myrinet или 10Gbit Ethernet. Далее, по возможности следует улучшить параметры сети. Если Myrinet или 10 GbE являются недоступными, то можно улучшить характеристики гигабитной сети, например, сделать из нее двухгигабитную следующим образом: вместо одной сетевой карты использовать две, объединив их специальным драйвером в единый виртуальный канал с двойной пропускной способностью. В этом случае карты должны быть подключены к двум отдельным свитчам, то есть потоки по этим картам следует разделить так же, как при разделении NFS и передачи данных. Создание такого канала требует больше времени, но дает ощутимый эффект.

В нашем случае для организации коммуникационной составляющей вычислительного кластера, воспользоваться данными рекомендациями не представлялось возможным. Коммуникационный узел класса представлял собой свитч на 10 Mb, что обеспечивает не допустимо малую скорость передачи данных для телекоммуникации вычислительного кластера, поэтому было принято решение об установке более скоростного оборудования. Из имеющегося в наличии был выбран свитч ZyXEL 100 Mb на 5 портов.

Далее, будущие узлы кластера были отделены от общей локальной сети академии, чтобы не создавать конфликтов между сетями.

3. Группировка компьютеров. На данном этапенеобходимо выбрать один компьютер в качестве главного узла кластера. Главный узел будет осуществлять управление всем кластером, и следить за его работой. Через него будет осуществляться запуск программ и получение результатов, к тому же это единственный узел вычислительной системы для которого нужен монитор. Все остальные машины будут выполнять вычислительную работу.

При подключении вычислительных узлов, операционная система нумерует их в виде: compute-X-Y,

Где, X - номер стойки,

Y - номер машины внутри данной стойки.

Например, кластер содержит 32 узла в 4 стойках. В определении нумерации вычислительных узлов допустимы два подхода:

  • если следовать соглашению именования, то первая стойка будет иметь номер 0 и содержать главный узел, поэтому нумерация вычислительных узлов в стойке будет от compute-0-0 до compute-0-6. Следующая стойка - 1 будет содержать узлы от compute-1-0 до compute-1-7, стойка 2 - от compute-2-0 до compute-2-7 и т.д.

  • второй подход проще: можно условно считать, что все машины расположены в одной стойке, тогда нумерация вычислительных узлов будет от compute-0-0 и до compute-0-30.

На практике широко используются оба способы.

В нашем исследовании из-за небольшого количества портов на свитче вычислительный кластер организован из 5 персональных компьютеров: одного терминала и четырех вычислительных узлов. В качестве терминального узла кластера в аудитории был выбран ПК №10. Остальным ПК, работающим в качестве вычислительных узлов, были присвоены номера от compute-0-1 и до compute-0-4. К сожалению проверить правильность данной нумерации на практике не представилось возможным.

Таким образом, в ходе исследования был уточнен и адаптирован типовой алгоритм технической организации вычислительного кластера на базе персональных компьютеров под специфику компьютерного класса ТГСПА им. Д.И. Менделеева.

Организация программного обеспечения вычислительного кластера на базе компьютерного класса

Кластер называется однородным, если он состоит из узлов, имеющих одинаковую конфигурацию, и работающих под управлением одинаковых операционных систем. В рамках нашего исследования будем рассматривать только управление однородным кластером, в связи со спецификой той технической платформой, которая была использована для нашего исследования. В качестве ОС кластера был выбран дистрибутив PelicanHPC GNU Linux (самая последняя версия на данный момент 2.2). Размер дистрибутива составляет 680 MB, что позволяет записать и запустить его, используя уже устаревший CD-R привод.

Для развертывания временного кластера по управлением данной операционной системы требуется компакт-диск с последней версией дистрибутива PelicanHPC GNU Linux, iso-образ которого может быть получен по адресу http://pareto.uab.es/mcreel/PelicanHPC/download/. Данный диск будет являться загрузочным. С него осуществляется загрузка операционная система кластера без установки ее на винчестер. Загрузка операционной системы осуществляется на компьютере, который играть роль консоли кластера, то есть того компьютера, непосредственно за которым производится работа, по компиляции и запуску параллельных программ. Остальные узлы кластера загружаются по сети.

Для загрузки операционной системы остальных вычислительных узлов кластера по сети необходимо, чтобы сетевые карты этих компьютеров умели выполнять загрузку ОС по сети. Большинство современных карт, в том числе встроенных, способны осуществлять данную процедуру. В противном случае необходимо создать загрузочный CD диск из образа gpxe.iso (доступ к ресурсу осуществляется по адресу http://cluster.linux-ekb.info/download/gpxe.iso ) и загрузить вычислительные узлы с этого CD диска. Если на предполагаемых вычислительных узлах отсутствует возможность загрузки по сети, а так же с CD-привода, то следует сгенерировать и записать на дискету загрузочный floppy-образ, соответствующий сетевым картам (доступ к соответствующему ресурсу осуществляется по адресу www.rom-o-matic.net ). С созданной дискеты следует осуществить загрузку ОС на остальных узлах кластера.

Для установки операционной системы кластера в настройках BIOSа терминального узла была выставлена загрузка ОС через DVD привод. Остальные четыре узла кластера были настроены на загрузку через сетевой интерфейс Ethernet. Так как в качестве пользовательского каталога предполагалось использовать виртуальный жесткий диск физический жесткий диск в кластере не задействовался.

Запуск ОС производилась на терминале будущего кластера. Опишем процедуру загрузки данной операционной системы.

Процесс начинается с загрузки стартового меню (в разных версиях ОС стартовое меню может различаться) (рис. 19), в котором предлагается 4 варианта действия: обычная загрузка ОС, загрузка в безопасном режиме, тестирование оперативной памяти и помощь.

Рис. 19. Стартовое окно

После выбора первого пункта начинается загрузка ОС. Это выглядит как множество бегущих строк, где прописывается загружаемый компонент ОС и его состояние. В процессе загрузки, надписи на экране могут останавливаться на непродолжительное время. Если все прошло успешно на экране появится запрос, где необходимо указать, где будет расположен пользовательский каталог (Рис.20).

Рис. 20. Окно запроса

По умолчанию предлагается создать виртуальный жесткий диск в оперативной памяти. Поскольку это предполагалось изначально, то нужно просто выбрать «OK».

Следующий вопрос, который будет выдан на экран, представлен на рисунке 21. Данное диалоговое окно запрашивает, будет ли выполнена начальная конфигурация пользовательского каталога. Т.к. используется виртуальный диск ram1, следует ответить "Yes".

Рис.21. Окно запроса

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

Рис.22. Окно запроса пароля

После задания пароля настройка ОС будет завершена и будет необходимо войти в систему (рис.23). Для входа в систему нужно ввести логин «user» и пароль, который задали на прошлом шаге. При вводе пароля, в целях безопасности, на экране не отображаются ни какие символы, курсор стоит на месте. После входа в систему можно запустить конфигурирование кластера. Делается это командой pelican_setup.

Рис.23. Окно входа в систему

Далее будет задан вопрос о необходимости конфигурации сервера сетевой загрузки вычислительных узлов (рис.24). На данный запрос следует ответить "Yes". На этом этапе терминал конфигурирует DHCP сервер, с которого пойдет загрузка всех узлов.

Рис.24. Окно запроса о конфигурации загрузки вычислительных узлов

После конфигурации сервера сетевой загрузки, программа предложит выполнить загрузку всех стальных узлов кластера (рис. 25).

Рис.25. Диалоговое окно

Прежде чем здесь выбрать «Yes», необходимо запустить все узлы кластера. После прохождения BIOSа на узлах кластера появится информация о используемом сетевом адаптере и поиске DHCP сервера. Если DHCP сервер был найден, пойдет загрузка ОС также как на терминале (на протяжение всей работы кластера запрещено вынимать диск с ОС из терминала, т.к. это может привести в краху системы). После загрузки ОС на всех узлах кластера (рис.26), необходимо выбрать «Yes» в диалоговом окне терминала. В этот момент терминал начинает опрашивать все сетевые адреса, зарезервированные DHCP сервером, с целью установить количество подключенных узлов в кластере.

Рис. 26. Экран вычислительных узлов после загрузки кластера

После выполнения поиска узлов, программа выдаст на экран итоговый результат - сообщение о том, сколько найдено вычислительных узлов кроме узла, который является терминалом кластера (в данном случае – 4). Если терминал обнаружил все узлы кластера, то выбрать кнопку "Yes" (рис.27).

Далее идет шаг, где программа конфигурации сообщает, что кластер настроем и готов к эксплуатации (рис.28).

Рис.27. Диалоговое окно

Рис.28. Итоговое информационное окно

Таким образом, если развернуть стационарный кластер не представляется возможным (например, когда компьютерный класс, который будет использоваться в качестве вычислительного кластера, по каким-либо причинам обязательно должен работать под управлением операционной системы Windows), то с помощью дистрибутива PelicanHPC GNU Linux кластер может быть запущен в любой момент (например после окончания рабочего дня и занятий в компьютерном классе), и на приведение его в работоспособное состояние потребуется не более пяти минут.

Тестирование и проверка на работоспособность кластера

Сразу после конфигурирования кластера, запускается стандартная программа тестирования на производительность, встроенная в дистрибутив. Также тестовая программа показывает, на сколько потоков данных она была распараллелена и какова вычислительная мощь обрабатывает каждый поток данных.

В виду достаточно низкой скорости работы телекоммуникационной сети и не оптимизированность тестовой программы под многоядерные процессоры программа показала очень низкую вычислительную мощь кластера: 2GFlops.

Данную программу можно в ручную распараллелить на необходимое количество потоков. Число потоков не должно превышать количество вычислительных ядер в кластере, с учетом терминала (в данном кластере присутствовало 8 вычислительных ядер). Исходный файл программы, написанный на языке фортран, находится в домашнем каталоге и называется flops.f. Для ее компиляции необходимо воспользоваться компилятором ОС – mpif77. Команда компиляции: mpif77 flops.f –o flops. Откомпилированный файл тоже появится в домашнем каталоге с именем «flops». Для параллельного запуска программ применяется программа mpirun. Команда запуска программы: mpirun –np 8 ./flops. Ключ –np 8 говорит программе о том, что программу нужно распараллелить на 8 потоков.

Применение кластеров может также в некоторой степени снизить проблемы, связанные с разработкой параллельных алгоритмов и программ, поскольку повышение вычислительной мощности отдельных процессоров позволяет строить кластеры из сравнительно небольшого количества (несколько десятков) отдельных компьютеров (lowly parallel processing). Это приводит к тому, что для параллельного выполнения в алгоритмах решения вычислительных задач достаточно выделять только крупные независимые части расчетов (coarse granularity), что, в свою очередь, снижает сложность построения параллельных методов вычислений и уменьшает потоки передаваемых данных между компьютерами кластера.

Вместе с этим следует отметить, что организация взаимодействия вычислительных узлов кластера при помощи передачи сообщений обычно приводит к значительным временным задержкам, что накладывает дополнительные ограничения на тип разрабатываемых параллельных алгоритмов и программ.

Библиография

  1. Антонов А.С. Введение в параллельные вычисления (методическое пособие) [Текст] / Антонов А.С. - М.: Изд. МГУ, 2002. – 69 с.

  2. Артемов И.Л. Fortran: основы программирования [Текст] / Артемов И.Л. – Диалог-МИФИ, 2007. – 304 с.

  3. Барский А.Б. Параллельные информационные технологии [Текст] / Барский А.Б. – М.: БИНОМ, 2007. – 504 с.

  4. Богачев К.Ю. Основы параллельного программирования [Текст] / Богачев К.Ю. – Бином, 2003. – 344 с.

  5. Воеводин В.В., Воеводин Вл.В. Паралельные вычисления [Текст] / В.В. Воеводин, Вл.В. Воеводин. - СПб.: БХВ-Петербург, 2002. – 608 с.

  6. Воеводин Вл. В. Капитонова А. П. Методы описания и классификации вычислительных систем [Текст] / Вл.В. Воеводин, Капитонова А.П. - М.: Изд. МГУ, 1994. – 103 с.

  7. Каган Б. М. Электронные вычислительные машины и системы [Текст] / Б. М. Каган . - М.: Энергоатом-издат, 1991. – 592 с.

  8. Колисниченко Д. Н. Linux. От новичка к профессионалу [Текст] / Колисниченко Д. Н. – СПб.: БХВ-Петербург, 2010. – 781 с.

  9. Кузьминский М. Между строк таблиц Linpack [Текст] / М. Кузьминский // Computerworld, 1998. - №13. – С. 34 – 41.

  10. Лацис А. О. Параллельная обработка данных [Текст] / А.О. Лацис. - М.: Изд. Академия, 2010. – 336 с.

  11. Лупин С.А. Посыпкин М.А. Технологии параллельного программирования [Текст] / Лупин С.А. Посыпкин М.А. - ИД «ФОРУМ»: ИНФРА-М, 2011. – 208 с.

  12. Михайлов Б.М. Халабия Р.Ф. Классификация и организация вычислительных систем [Текст]/ Михайлов Б.М. Халабия Р.Ф. – М.: Изд. МГУПИ, 2010. – 144 с.

  13. Пятибратов А.П., и др. Вычислительные системы сети и телекоммуникации [Текст] / А. П. Пятибратор, Л. П. Гудыно, А. А. Кириченко. - М.: Финансы и статистика, 1998. – 400 с.

  14. Сойфер В.А. Высокопроизводительные параллельные вычисления на кластерных системах [Текст]/ Сойфер В.А. – Самара, 2004. – 280 с.

  15. Токарев В.Л. Вычислительные системы, сети и телекоммуникации [Текст] / Токарев В.Л. – СПб.: Промпилот, 2010. – 477 с.

  16. Феррари Д. Оценка производительности вычислительных систем [Текст] / Д. Феррари // Пер. с англ. - М.: Мир, 1981. – 576 с.

  17. Цилькер Б. Я., Макеев В. Я. Архитектура вычислительных машин. [Текст] / Б. Я. Цилькер, В. Я. Макеев - Рига: TSI, 2000, - 213 с.

  18. Цилькер Б. Я., Орлов С. А. Организация ЭВМ и систем: Учебник для вузов. [Текст] / Б. Я. Цилькер, С. А. Орлов - СПб.: Питер, 2007. - 668 с.

  19. Цилькер Б. Я., Пятков В. П. Архитектура вычислительных систем [Текст] / Б. Я. Цилькер, В. П. Пятков. - Рига: TSI, 2001. – 249 с.

  20. Шпаковский Г. И. и д.р. Руководство по работе на вычислительном кластере. Учебное пособие. / Шпаковский Г. И., Верхотуров А. Е., Серикова Н. В. - Минск.: БГУ, 2004. – 172 с.

Электронные источники

  1. http://www.mpi-forum.org/ [Электронный ресурс] – Форум по MPI технологии.

  2. http://www.openmp.org/ [Электронный ресурс] – Официальный сайт технологии OpenMP

  3. http://cluster.linux-ekb.info/ [Электронный ресурс] - Практическое руководство по параллельным вычислениям

  4. http://bigor.bmstu.ru/?cnt/?doc=Parallel/base.cou/ [Электронный ресурс] - Параллельные вычисления (базовый курс)

  5. http://www.icmm.ru/~masich/win/lexion/l4/l4.htm [Электронный ресурс] - Вычислительные системы

  6. http://www.parallel.ru/cluster [Электронный ресурс] - система управления заданиями Cleo – НИВЦ МГУ

  7. http://pbs.mrj.com/ [Электронный ресурс] - Portable Batch System Pro.

Зарубежные источники

  1. D. Abramson, R. Sosic, J. Giddy and B. Hall, "Nimrod: A Tool for Performing Parameterized Simulations using Distributed Workstations", The 4th IEEE Symposium on High Performance Distributed Computing, Virginia, August 1995.

  2. A. Bricker, M. Litzkow, M. Livny, “Condor Technical Summary”, University of Wisconsin, 1991.

  3. J.A. Kaplan, M.L. Nelson, “A comparison of Queuing, Cluster and Distributed Computing Systems”, NASA Langley Research Center June 1994.

  4. Scyld Computing Corporation, Technology Brief, April 2001 document #3720-2-1.

  5. EnFuzion 7.0 Administrator's Manual, Turbolinux

  6. L. Amar, A. Barak, A. Eizenberg, A. Shiloh, “The MOSIX Scalable Cluster File Systems for LINIX”.

Просмотров работы: 4981