Jump to content

Передача сообщений в компьютерных кластерах

Технические специалисты работают над кластером, состоящим из множества компьютеров, работающих вместе, отправляя сообщения по сети.

Передача сообщений является неотъемлемым элементом всех компьютерных кластеров . Все компьютерные кластеры, начиная от самодельных «Беовульфов» и заканчивая одними из самых быстрых суперкомпьютеров в мире, полагаются на передачу сообщений для координации действий множества узлов, которые они охватывают. [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]

Тестирование, оценка и оптимизация

[ редактировать ]
Virginia Tech Xserve Кластер компьютеров Apple

Компьютерные кластеры используют ряд стратегий для решения проблемы распределения обработки по нескольким узлам и связанных с этим накладных расходов на связь. Некоторые компьютерные кластеры, такие как 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]

Моделирование производительности

[ редактировать ]
Кластерный IBM Roadrunner суперкомпьютер

Для моделирования и понимания производительности передачи сообщений в компьютерных кластерах можно использовать специальные инструменты. Например, 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]

См. также

[ редактировать ]
  1. ^ Jump up to: а б Компьютерная организация и дизайн Дэвида А. Паттерсона и Джона Л. Хеннесси , 2011 г. ISBN   0123747503 страница 641 [1]
  2. ^ Кластерные вычисления Беовульфа с Windows , Томас Лоуренс Стерлинг, 2001 г. ISBN   0262692759 MIT Press, страницы 7–9.
  3. ^ Jump up to: а б с д Последние достижения в интерфейсе передачи сообщений Янниса Котрониса, Энтони Даналиса, Димитриса Николопулоса и Джека Донгарры, 2011 г. ISBN   3642244483 страницы 160–162.
  4. ^ Jump up to: а б с Петамасштабные вычисления: алгоритмы и приложения Дэвида А. Бадера, 2007 г. ISBN   1584889098, страницы 435–435.
  5. ^ Jump up to: а б с д и Языки и компиляторы для параллельных вычислений под редакцией Кейта Купера, Джона Меллора-Крамми и Вивека Саркара, 2011 г. ISBN   3642195946, страницы 202–203.
  6. ^ Jump up to: а б с Распределенные сервисы с OpenAFS: для предприятий и образования Франко Миликкио, Вольфганг Александр Герке, 2007, стр. 339-341.
  7. ^ Jump up to: а б Последние достижения в области параллельных виртуальных машин и интерфейса передачи сообщений , Матти Ропо, Ян Вестерхольм и Джек Донгарра, 2009 г. ISBN   3642037690 стр. 231
  8. ^ Jump up to: а б с Грид и кластерные вычисления Дж. Прабху, 2008 г. ISBN   8120334280 страницы 109–112.
  9. ^ Гропп, Уильям; Ласк, Юинг; Скьеллум, Энтони (1996). «Высокопроизводительная портативная реализация интерфейса передачи сообщений MPI». Параллельные вычисления . дои : 10.1016/0167-8191(96)00024-5 .
  10. ^ Суперкомпьютер TianHe-1A: его аппаратное и программное обеспечение, Сюэ-Цзюнь Ян, Сян-Ке Ляо и др. в Журнале компьютерных наук и технологий , том 26, номер 3, май 2011 г., страницы 344–351 «Архивная копия» . Архивировано из оригинала 21 июня 2011 г. Проверено 8 февраля 2012 г. {{cite web}}: CS1 maint: архивная копия в заголовке ( ссылка )
  11. США заявляют, что Китай строит «полностью местный» суперкомпьютер , Патрик Тибодо Computerworld , 4 ноября 2010 г. [2]
  12. ^ Что такое PMPI?
  13. ^ Jump up to: а б Последние достижения в области параллельных виртуальных машин и интерфейса передачи сообщений Бернда Мора, Йеспера Ларссона Треффа, Йоахима Воррингена и Джека Донгарры, 2006 г. ISBN   354039110X стр. 347
  14. ^ Jump up to: а б PARAVER: Инструмент для визуализации и анализа параллельного кода Винсента Пилле и др., Материалы конференции по разработкам Transputer и Occam, 1995, страницы 17–31.
  15. ^ Вычислительная наука - Iccs 2003 под редакцией Питера М.А. Слота, Дэвида Абрамсона, Александра В. Богданова и Джека Дж. Донгарры. ISBN   3540401970 стр. 183
  16. ^ Jump up to: а б с Моделирование служебной передачи сообщений, автор: CY Chou et al. в «Достижениях в области Grid и всеобъемлющих вычислений: Первая международная конференция, GPC 2006», под редакцией Йе-Чинг Чунга и Хосе Э. Морейры ISBN   3540338098, страницы 299–307.
  17. ^ Высокопроизводительные вычисления и сети под редакцией Питера Слоота, Мэриан Бубак и Боба Херцберге, 1998 г. ISBN   3540644431 страница 935
  18. ^ Jump up to: а б с Высокопроизводительные вычисления и инженерия под редакцией Майкла К. Нг, Андрея Донческу, Лоуренса Т. Янга и Тау Ленга, 2005 г. ISBN   0387240489, страницы 59–63.
  19. ^ Jump up to: а б с Достижения в области компьютерных наук, окружающей среды, экоинформатики и образования под редакцией Сун Линя и Сюн Хуана, 2011 г. ISBN   3642233236 стр. 16
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: ddd633b8dcced55ba7f4ce14904c060b__1697630580
URL1:https://arc.ask3.ru/arc/aa/dd/0b/ddd633b8dcced55ba7f4ce14904c060b.html
Заголовок, (Title) документа по адресу, URL1:
Message passing in computer clusters - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)