- ↑; Эндрю Таненбаум, Мартин ван Стеен Распределенные системы. Принципы и парадигмы = Andrew S. Tanenbaum, Maarten van Steen. "Destributed systems. Principles and paradigms. — Санкт-Петербург: Питер, 2003. — 877 с. — (Классика computer science). — ISBN 5-272-00053-6
- ↑; Словарь по кибернетике / Под редакцией академика В. С. Михалевича. — 2-е. — Киев: Главная редакция Украинской Советской Энциклопедии имени М. П. Бажана, 1989. — 751 с. — (С48). — 50000 экз. — ISBN 5-88500-008-5
- ↑; http://parallel.ru/meta/
- ↑ Перейти к: абвгд С. Н. Андрианов, А. Б. Дегтярев 1 // ПАРАЛЛЕЛЬНЫЕ И РАСПРЕДЕЛЕННЫЕ ВЫЧИСЛЕНИЯ. — С.-Петерб.: Издательство С.-Петербургского университета, 2007. — 61 с.
- ↑ Перейти к: абвгдеё А. А. Букатов, В. Н. Дацюк, А. И. Жегуло Программирование многопроцессорных вычислительных систем. — Ростов-на-Дону: ООО «ЦВВР», 2003. — 208 с. — ISBN 5-94153-062-5
- ↑; Гэри М., Джонсон Д. Вычислительные машины и труднорешаемые задачи. – М.: Мир, 1982. – 416 с.
- ↑ Перейти к: абвгде Материалы Девятой международной конференции-семинара ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ПАРАЛЛЕЛЬНЫЕ ВЫЧИСЛЕНИЯ НА КЛАСТЕРНЫХ СИСТЕМАХ / С.М. Аракелян (ответственный редактор). — Владимир: Издательство Владимирского государственного университета, 2009. — 437 с. — 150 экз. экз. — ISBN 978-5-89368-958-7
- ↑; Federal Plan for High-End Computing: Report of the High-End Computing Revitalization Task Force (HECRTF), 2004, http://www.nitrd.gov/pubs/2004_hecrtf/20040702_hecrtf.pdf
- ↑; ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ПАРАЛЛЕЛЬНЫЕ ВЫЧИСЛЕНИЯ НА КЛАСТЕРНЫХ СИСТЕМАХ — Материалы Седьмой Международной конференции-семинара, Нижний Новгород, 26–30 ноября 2007 г.
Перед тем как приступить к изучению параллельных и распределенных вычислительных систем необходимо четко представлять о чем идет речь, понимать смысл узкоспециализированных терминов.
- Кластерw ↑; — группа компьютеров, объединённых высокоскоростными каналами связи и представляющая с точки зрения пользователя единый аппаратный ресурс.
- Статический кластер
- Динамический кластер
- Метакомпьютинг
Сравнение статических и динамических кластеров[править]
Параллельный кластер
| Распределенная открытая сеть (Grid)
|
Высокая полная стоимость владения.
| Один сервер, низкая стоимость владения.
|
Постоянное количество вычислительных единиц.
| Динамическая, не имеет постоянной конфигурации. Отдельные вычислительные единицы могут включаться в его конфигурацию или отключаться от нее в процессе вычислений.
|
Широкий спектр решаемых задач.
| Оптимальные задачи переборного и поискового типа, где вычислительные узлы практически не взамодействуют друг с другом и основную часть работы производят в автономном режиме.[1]
|
Для использования любой кластерной системы необходимо решить следующие проблемы:
- установка и обновление программного обеспечения
- мониторинг состояния вычислительных узлов и вычислительных процессов
- предоставления пользователю удобного интерфейса для запуска задач и проверки их состояния
- динамическое распределение нагрузки на вычислительных узлах кластера[1]
Содержание
[убрать]
- 1 Установка и обновление программного обеспечения
- 2 Мониторинг
- 3 Динамическое распределение нагрузки
- 4 Примечания
Установка и обновление программного обеспечения[править]
Большинство кластерных систем работают под управлением операционных систем из семейства Linux. И хотя удаленный доступ, установка и обновление в данных ОС программно реализованы, эти задачи остаются трудоемкими. Частично эту проблему решают специализированные программные продукты, такие как:
- IBM CSM (Cluster System Management)[1]
- xCAT (Extreme Cloud Administration Tool)[1]
Мониторинг[править]
Для мониторинга состояния вычислительных узлов наиболее часто применяют связку из систем Ganglia и Nagios.[1] Основным недостатком этих систем является отсутствие механизмов наблюдения за параллельными процессами. А ведь для динамического распределения нагрузки очень важно не просто знать насколько загружен процессор на каждом из вычислительных узлов, но и иметь возможность определить долю полезной загрузки параллельными процессами, особенно если этих процессов несколько.
Динамическое распределение нагрузки[править]
Рассмотрим частный случай когда при решении некоторой параметрической задачи для разных значений параметров время поиска решения может значительно различаться.[2] Тогда мы получим значительный перекос загрузки узлов кластера. В действительности практически любая вычислительная задача выполняется в кластере не равномерно. Использование кластерных систем всегда более эффективно для обслуживания вычислительных потребностей большого количества пользователей, чем использование эквивалентного количества однопроцессорных рабочих станций, так как в этом случае с помощью системы управления заданиями легче обеспечить равномерную и более эффективную загрузку вычислительных ресурсов.[2]
Для динамического распределения нагрузки чаще всего используют менеджер ресурсов Torque в связке с локальным планировщиком задач Maui.[1]
Примечания[править]
- ↑ Перейти к: абвгд Материалы Девятой международной конференции-семинара ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ПАРАЛЛЕЛЬНЫЕ ВЫЧИСЛЕНИЯ НА КЛАСТЕРНЫХ СИСТЕМАХ / С.М. Аракелян (ответственный редактор). — Владимир: Издательство Владимирского государственного университета, 2009. — 437 с. — 150 экз. экз. — ISBN 978-5-89368-958-7
- ↑ Перейти к: аб А. А. Букатов, В. Н. Дацюк, А. И. Жегуло Программирование многопроцессорных вычислительных систем. — Ростов-на-Дону: ООО «ЦВВР», 2003. — 208 с. — ISBN 5-94153-062-5
Если принять во внимание, что узлы кластеров (Beowulf в частности) никогда не бывают абсолютно гомогенными, то становится очевидно, что время выполнения вычислительных задач на разных узлах будет разное. Гетерогенность на программном уровне уровне обусловлена отличиями в наборе пакетов, в количестве запущенных служб и процессов, и наличием "накладных" задач. Накладными задачами будем считать совокупность активных системных или пользовательских задач, которые не связаны с обеспечением параллельных вычислений.
Для организации вычислений в кластере наиболее эффективным способом, необходимо четко описать свойства кластера как вычислительной системы. Для этого нужно ответить на ряд вопросов:
- Допускается ли выполнение нескольких задач на каждом из процессоров?
- На сколько задачи будут загружать процессоры, можно ли ограничивать нагрузку?
- Как свести к мнимому конкуренцию между параллельными и накладными задачами?
- Как отличить полезную нагрузку от паразитной (накладные задачи)?
- Как предотвратить "трагедию общин" как следствия монопольного, длительного захвата вычислительных ресурсов.
- Как определить мощность каждого из узлов в гетерогенных системах.
- Как приостановить выполнение вычислений в случае исчерпания лимита времени или в случае экстренного завершения всех процессов?
На сегодняшний день (2011) не существует универсального программного комплекса для мониторинга распределенных вычислительных систем. В связи с этим в кластерах используются или несколько программных продуктов одновременно, или программы мониторинга создаются с нуля.
Среди готовых решений можно выделить такие программы:
- Ganglia — гибкая легко масштабируемая система
- Nagios↑ — стала популярной благодаря встроенной системы оповещения
- w:en:GStat↑ (англ.) — используется для GRID систем
также используются следующие утилиты и библиотеки:
Высокопроизводительные вычисления реализуется параллельным и распределенным вычисления.