stringtranslate.com

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

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

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

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

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

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

Специальные инструменты могут использоваться для моделирования и понимания производительности передачи сообщений на компьютерных кластерах. Например, CLUSTERSIM использует визуальную среду на основе 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. ^ ab Организация и проектирование компьютеров Дэвида А. Паттерсона и Джона Л. Хеннесси 2011 ISBN  0123747503 страница 641 [1]
  2. ^ Beowulf Cluster Computing With Windows Томаса Лоуренса Стерлинга 2001 ISBN 0262692759 MIT Press страницы 7–9 
  3. ^ abcd Последние достижения в интерфейсе передачи сообщений Яннис Котронис, Энтони Даналиса, Димитриса Николопулоса и Джека Донгарры 2011 ISBN 3642244483 страницы 160–162 
  4. ^ abc Petascale Computing: Algorithms and Applications Дэвида А. Бейдера 2007 ISBN 1584889098 страницы 435–435 
  5. ^ abcde Языки и компиляторы для параллельных вычислений под редакцией Кейта Купера, Джона Меллора-Крамми и Вивека Саркара 2011 ISBN 3642195946 страницы 202–203 
  6. ^ abc Распределенные сервисы с OpenAFS: для предприятий и образования Франко Миликкио, Вольфганг Александр Герке 2007, стр. 339-341
  7. ^ ab Последние достижения в области параллельных виртуальных машин и интерфейса передачи сообщений Матти Ропо, Ян Вестерхольм и Джек Донгарра 2009 ISBN 3642037690 страница 231 
  8. ^ abc Grid and Cluster Computing Дж. Прабху 2008 ISBN 8120334280 страницы 109–112 
  9. ^ Гропп, Уильям; Ласк, Юинг; Скьеллум, Энтони (1996). «Высокопроизводительная, переносимая реализация интерфейса передачи сообщений MPI». Параллельные вычисления . doi :10.1016/0167-8191(96)00024-5.
  10. ^ Суперкомпьютер TianHe-1A: его аппаратное и программное обеспечение, авторы Xue-Jun Yang, Xiang-Ke Liao и др. в Journal of Computer Science and Technology , том 26, номер 3, май 2011 г., страницы 344–351 «Архивная копия». Архивировано из оригинала 21.06.2011 . Получено 08.02.2012 .{{cite web}}: CS1 maint: архивная копия как заголовок ( ссылка )
  11. ^ США заявили, что Китай строит «полностью отечественный» суперкомпьютер , Патрик Тибодо Computerworld , 4 ноября 2010 г. [2]
  12. ^ Что такое ПМПИ?
  13. ^ ab Последние достижения в области параллельной виртуальной машины и интерфейса передачи сообщений Бернд Мор, Йеспер Ларссон Трефф, Йоахим Ворринген и Джек Донгарра 2006 ISBN 354039110X страница 347 
  14. ^ ab PARAVER: Инструмент для визуализации и анализа параллельного кода Винсента Пилле и др., Труды конференции по разработкам Transputer и Occam, 1995, стр. 17–31
  15. ^ Computational Science-- Iccs 2003 под редакцией Питера М.А. Слоота, Дэвида Абрамсона, Александра В. Богданова и Джека Дж. Донгарры ISBN 3540401970 страница 183 
  16. ^ abc Modeling Message Passing Overhead автор CY Chou и др. в Advances in Grid and Pervasive Computing: First International Conference, GPC 2006 под редакцией Yeh-Ching Chung и José E. Moreira ISBN 3540338098 страницы 299–307 
  17. ^ Высокопроизводительные вычисления и сети под редакцией Питера Слоота, Мариан Бубак и Боба Герцберге 1998 ISBN 3540644431 страница 935 
  18. ^ abc High Performance Computational Science and Engineering под редакцией Майкла К. Нга, Андрея Донческу, Лоренса Т. Янга и Тау Ленга, 2005 ISBN 0387240489 страницы 59–63 
  19. ^ abc Достижения в области компьютерных наук, окружающей среды, экоинформатики и образования под редакцией Сун Линя и Сюн Хуана 2011 ISBN 3642233236 страница 16