Передача сообщений в компьютерных кластерах
Передача сообщений является неотъемлемым элементом всех компьютерных кластеров . Все компьютерные кластеры, начиная от самодельных «Беовульфов» и заканчивая одними из самых быстрых суперкомпьютеров в мире, полагаются на передачу сообщений для координации действий множества узлов, которые они охватывают. [1] [2] Передача сообщений в компьютерных кластерах, состоящих из обычных серверов и коммутаторов, используется практически всеми интернет-сервисами. [1]
В последнее время получает распространение использование компьютерных кластеров с числом узлов более тысячи. По мере увеличения количества узлов в кластере быстрый рост сложности подсистемы связи делает задержки передачи сообщений по межсоединению серьезной проблемой производительности при выполнении параллельных программ . [3]
Специальные инструменты могут использоваться для моделирования, визуализации и понимания производительности передачи сообщений в компьютерных кластерах. Прежде чем будет собран большой компьютерный кластер, симулятор на основе трассировки может использовать небольшое количество узлов, чтобы помочь спрогнозировать производительность передачи сообщений в более крупных конфигурациях. После тестовых запусков на небольшом количестве узлов симулятор считывает файлы журналов выполнения и передачи сообщений и моделирует производительность подсистемы обмена сообщениями, когда между гораздо большим количеством узлов происходит обмен гораздо большим количеством сообщений. [4] [5]
Сообщения и вычисления
[ редактировать ]Подходы к передаче сообщений
[ редактировать ]Исторически сложилось так, что двумя типичными подходами к обмену данными между узлами кластера были PVM ( параллельная виртуальная машина) и MPI ( интерфейс передачи сообщений) . [6] Однако теперь MPI стал фактическим стандартом передачи сообщений в компьютерных кластерах. [7]
PVM предшествовал MPI и был разработан в Национальной лаборатории Ок-Ридж примерно в 1989 году. Он предоставляет набор программных библиотек, которые позволяют вычислительному узлу действовать как «параллельная виртуальная машина». Он обеспечивает среду выполнения для передачи сообщений, управления задачами и ресурсами, а также уведомления о сбоях и должен быть установлен непосредственно на каждом узле кластера. PVM может использоваться пользовательскими программами, написанными на C , C++, Fortran и т. д. [6] [8]
В отличие от PVM, который имеет конкретную реализацию, MPI — это спецификация, а не конкретный набор библиотек. Спецификация появилась в начале 1990 года в результате обсуждений между 40 организациями, первоначальные усилия были поддержаны ARPA и Национальным научным фондом . В конструкции MPI использовались различные функции, доступные в коммерческих системах того времени. Спецификации MPI затем привели к появлению конкретных реализаций. Реализации MPI обычно используют соединения TCP/IP и сокеты. [6] MPI теперь является широко доступной моделью связи, которая позволяет писать параллельные программы на таких языках, как C , Fortran, Python и т. д. [8] Спецификация MPI реализована в таких системах, как MPICH и Open MPI . [8] [9]
Тестирование, оценка и оптимизация
[ редактировать ]Компьютерные кластеры используют ряд стратегий для решения проблемы распределения обработки по нескольким узлам и связанных с этим накладных расходов на связь. Некоторые компьютерные кластеры, такие как Tianhe-I, используют для передачи сообщений процессоры, отличные от тех, которые используются для выполнения вычислений. Tiahnhe-I использует более двух тысяч процессоров FeiTeng-1000 для улучшения работы своей собственной системы передачи сообщений, а вычисления выполняются процессорами Xeon и Nvidia Tesla . [10] [11]
Одним из подходов к снижению накладных расходов на связь является использование локальных окрестностей (также называемых локалями ) для конкретных задач. Здесь вычислительные задачи распределяются по определенным «районам» кластера, чтобы повысить эффективность за счет использования процессоров, находящихся ближе друг к другу. [3] Однако, учитывая, что во многих случаях реальная топология узлов компьютерного кластера и их взаимосвязей может быть неизвестна разработчикам приложений, попытка точной настройки производительности на уровне прикладной программы весьма затруднительна. [3]
Учитывая, что MPI в настоящее время стал стандартом де-факто для компьютерных кластеров, увеличение количества узлов кластера привело к продолжению исследований по повышению эффективности и масштабируемости библиотек MPI. Эти усилия включали исследования по уменьшению объема памяти, занимаемого библиотеками MPI. [7]
С самого начала MPI предоставляла средства для профилирования производительности через «систему профилирования» PMPI. [12] Использование префикса PMIPI- позволяет отслеживать точки входа и выхода сообщений. Однако, учитывая высокий уровень этого профиля, этот тип информации дает лишь представление о реальном поведении системы связи. Потребность в дополнительной информации привела к разработке системы MPI-Peruse. Peruse предоставляет более подробный профиль, позволяя приложениям получать доступ к изменениям состояния в MPI-библиотеке. Это достигается путем регистрации обратных вызовов в Peruse, а затем их вызова в качестве триггеров при возникновении событий сообщения. [13] Peruse может работать с системой визуализации PARAVER. PARAVER имеет два компонента: компонент трассировки и визуальный компонент для анализа трассировок, статистики, связанной с конкретными событиями и т. д. [14] PARAVER может использовать форматы трассировки из других систем или выполнять собственную трассировку. Он работает на уровне задачи, уровне потока и в гибридном формате. Следы часто содержат так много информации, что зачастую они оказываются подавляющими. Таким образом, PARAVER суммирует их, чтобы пользователи могли визуализировать и анализировать их. [13] [14] [15]
Анализ производительности
[ редактировать ]крупномасштабной, часто уровня суперкомпьютера При разработке , параллельной системы очень важно иметь возможность экспериментировать с несколькими конфигурациями и моделировать производительность. В этом сценарии существует ряд подходов к моделированию эффективности передачи сообщений: от аналитических моделей до моделирования на основе трассировки, а некоторые подходы основаны на использовании тестовых сред, основанных на «искусственных коммуникациях», для выполнения синтетических тестов производительности передачи сообщений. [3] Такие системы, как BIGSIM, предоставляют эти возможности, позволяя моделировать производительность различных топологий узлов , стратегии передачи сообщений и планирования. [4]
Аналитические подходы
[ редактировать ]На аналитическом уровне необходимо смоделировать время связи T с точки зрения набора подкомпонентов, таких как задержка запуска , асимптотическая пропускная способность и количество процессоров. Хорошо известной моделью является модель Хокни, которая просто опирается на связь «точка-точка» , используя T = L + (M / R), где M — размер сообщения, L — задержка при запуске, а R — асимптотическая пропускная способность в МБ/с. [16]
Сюй и Хван обобщили модель Хокни, включив в нее количество процессоров, так что и задержка, и асимптотическая пропускная способность являются функциями количества процессоров. [16] [17] Затем Гунаван и Цай обобщили это, введя размер кэша , и разделили сообщения в зависимости от их размеров, получив две отдельные модели: одну для сообщений меньшего размера кэша, а другую для тех, которые выше. [16]
Моделирование производительности
[ редактировать ]Для моделирования и понимания производительности передачи сообщений в компьютерных кластерах можно использовать специальные инструменты. Например, CLUSERSIM использует визуальную среду на основе Java для моделирования дискретных событий . В этом подходе визуально моделируются вычисляемые узлы и топология сети. Задания, их продолжительность и сложность представлены с помощью конкретных распределений вероятностей, различными алгоритмами параллельного планирования заданий что позволяет предлагать и экспериментировать с . Таким образом, можно смоделировать и лучше понять затраты на связь при передаче сообщений MPI в контексте крупномасштабного параллельного выполнения заданий. [18]
Другие инструменты моделирования включают MPI-sim и BIGSIM. [19] MPI-Sim — это симулятор, управляемый выполнением, для работы которого требуются программы C или C++. [18] [19] ClusterSim, с другой стороны, использует гибридную систему моделирования более высокого уровня, независимую от языка программирования, используемого для выполнения программы. [18]
В отличие от MPI-Sim, BIGSIM представляет собой систему, управляемую трассировкой, которая моделирует на основе журналов выполнения, сохраненных в файлах отдельной программой-эмулятором. [5] [19] BIGSIM включает в себя эмулятор и симулятор. Эмулятор выполняет приложения на небольшом количестве узлов и сохраняет результаты, поэтому симулятор может использовать их и моделировать действия на гораздо большем количестве узлов. [5] Эмулятор хранит информацию о блоках последовательного выполнения (SEB) для нескольких процессоров в файлах журналов, при этом каждый SEB записывает отправленные сообщения, их источники и места назначения, зависимости, время и т. д. Симулятор считывает файлы журналов, моделирует их и может запускать дополнительные сообщения, которые затем также сохраняются как SEB. [4] [5] Таким образом, симулятор может обеспечить представление о производительности очень больших приложений на основе трассировок выполнения, предоставляемых эмулятором на гораздо меньшем количестве узлов, прежде чем вся машина станет доступной или настроена. [5]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Jump up to: а б Компьютерная организация и дизайн Дэвида А. Паттерсона и Джона Л. Хеннесси , 2011 г. ISBN 0123747503 страница 641 [1]
- ^ Кластерные вычисления Беовульфа с Windows , Томас Лоуренс Стерлинг, 2001 г. ISBN 0262692759 MIT Press, страницы 7–9.
- ^ Jump up to: а б с д Последние достижения в интерфейсе передачи сообщений Янниса Котрониса, Энтони Даналиса, Димитриса Николопулоса и Джека Донгарры, 2011 г. ISBN 3642244483 страницы 160–162.
- ^ Jump up to: а б с Петамасштабные вычисления: алгоритмы и приложения Дэвида А. Бадера, 2007 г. ISBN 1584889098, страницы 435–435.
- ^ Jump up to: а б с д и Языки и компиляторы для параллельных вычислений под редакцией Кейта Купера, Джона Меллора-Крамми и Вивека Саркара, 2011 г. ISBN 3642195946, страницы 202–203.
- ^ Jump up to: а б с Распределенные сервисы с OpenAFS: для предприятий и образования Франко Миликкио, Вольфганг Александр Герке, 2007, стр. 339-341.
- ^ Jump up to: а б Последние достижения в области параллельных виртуальных машин и интерфейса передачи сообщений , Матти Ропо, Ян Вестерхольм и Джек Донгарра, 2009 г. ISBN 3642037690 стр. 231
- ^ Jump up to: а б с Грид и кластерные вычисления Дж. Прабху, 2008 г. ISBN 8120334280 страницы 109–112.
- ^ Гропп, Уильям; Ласк, Юинг; Скьеллум, Энтони (1996). «Высокопроизводительная портативная реализация интерфейса передачи сообщений MPI». Параллельные вычисления . дои : 10.1016/0167-8191(96)00024-5 .
- ^ Суперкомпьютер TianHe-1A: его аппаратное и программное обеспечение, Сюэ-Цзюнь Ян, Сян-Ке Ляо и др. в Журнале компьютерных наук и технологий , том 26, номер 3, май 2011 г., страницы 344–351 «Архивная копия» . Архивировано из оригинала 21 июня 2011 г. Проверено 8 февраля 2012 г.
{{cite web}}
: CS1 maint: архивная копия в заголовке ( ссылка ) - ↑ США заявляют, что Китай строит «полностью местный» суперкомпьютер , Патрик Тибодо Computerworld , 4 ноября 2010 г. [2]
- ^ Что такое PMPI?
- ^ Jump up to: а б Последние достижения в области параллельных виртуальных машин и интерфейса передачи сообщений Бернда Мора, Йеспера Ларссона Треффа, Йоахима Воррингена и Джека Донгарры, 2006 г. ISBN 354039110X стр. 347
- ^ Jump up to: а б PARAVER: Инструмент для визуализации и анализа параллельного кода Винсента Пилле и др., Материалы конференции по разработкам Transputer и Occam, 1995, страницы 17–31.
- ^ Вычислительная наука - Iccs 2003 под редакцией Питера М.А. Слота, Дэвида Абрамсона, Александра В. Богданова и Джека Дж. Донгарры. ISBN 3540401970 стр. 183
- ^ Jump up to: а б с Моделирование служебной передачи сообщений, автор: CY Chou et al. в «Достижениях в области Grid и всеобъемлющих вычислений: Первая международная конференция, GPC 2006», под редакцией Йе-Чинг Чунга и Хосе Э. Морейры ISBN 3540338098, страницы 299–307.
- ^ Высокопроизводительные вычисления и сети под редакцией Питера Слоота, Мэриан Бубак и Боба Херцберге, 1998 г. ISBN 3540644431 страница 935
- ^ Jump up to: а б с Высокопроизводительные вычисления и инженерия под редакцией Майкла К. Нг, Андрея Донческу, Лоуренса Т. Янга и Тау Ленга, 2005 г. ISBN 0387240489, страницы 59–63.
- ^ Jump up to: а б с Достижения в области компьютерных наук, окружающей среды, экоинформатики и образования под редакцией Сун Линя и Сюн Хуана, 2011 г. ISBN 3642233236 стр. 16