Проект экзафлопсных вычислений: Pagoda обновляет программирование PGAS с помощью масштабируемых структур данных и агрессивной асинхронной связи
31 августа 2023 г.
31 августа 2023 г. — Проект «Пагода» исследует и разрабатывает программное обеспечение, которое программисты используют для реализации высокопроизводительных приложений с использованием модели разделенного глобального адресного пространства (PGAS). Проект в основном финансируется Exascale Computing Project (ECP) и взаимодействует с партнерскими проектами в промышленности, правительстве и научных кругах. [1]
PGAS — это модель программирования, которая поддерживает глобальное общее адресное пространство для повышения производительности, одновременно различая локальный и удаленный доступ к данным для обеспечения возможностей оптимизации. Это различие упрощает доступ к данным в распределенной гетерогенной вычислительной среде, принимая во внимание неравномерные затраты на связь. Программистам PGAS предлагает лучшее из обоих миров: они могут просто разместить свои структуры данных в памяти и прозрачно использовать их как на процессорах, так и на графических процессорах, или они могут явно размещать данные рядом с вычислительным оборудованием, чтобы избежать дорогостоящей передачи данных ( с точки зрения увеличения времени работы и энергопотребления), что ограничивает производительность и масштабируемость. Это делает PGAS превосходной платформой для многих приложений, которым необходимо максимизировать производительность и поддерживать масштабируемость на крупномасштабных параллельных архитектурах, таких как экзафлопсные суперкомпьютеры Министерства энергетики США.
Драйвер приложения
Многие научные приложения включают асинхронное обновление нерегулярных структур данных, таких как адаптивные сетки, разреженные матрицы, хеш-таблицы, гистограммы, графики и динамические рабочие очереди.
Иногда программист знает достаточно о структуре данных, чтобы определить наиболее эффективный способ использования локальности памяти. Модель PGAS позволяет программисту явно управлять размещением этих структур данных для оптимизации производительности, скажем, в памяти дискретного графического процессора. Альтернативно, программисту может быть все равно. В этом случае им действительно нужно получить доступ к данным и продолжить вычисления. В этом сценарии доступа и обработки модель памяти PGAS естественным образом поддерживает удобный доступ к данным.
К сожалению, не все виды доступа к памяти так легко классифицировать. Модель PGAS предоставляет программистам инструменты, необходимые для решения сложных проблем доступа к данным, когда производительность доступа к данным действительно имеет значение, но перемещение данных слишком сложное и нерегулярное, чтобы его можно было предсказать.
Техническое введение
Распространение гетерогенных вычислений и связанная с этим сложность аппаратных предложений от множества поставщиков приводит к комбинаторному взрыву разнообразия платформ. С точки зрения программиста, каждый центр обработки данных и суперкомпьютер могут потребовать очень конкретной оптимизации размещения данных для достижения высокой производительности. Чтобы помочь программисту решить эту задачу комбинаторной переносимости, программный стек Pagoda предоставляет уровень переносимой связи GASNet, а также уровни производительности UPC++ и Berkeley UPC (рис. 1).
ГАСНет-ЭКС
GASNet-EX — это обновление 20-летней кодовой базы и системы связи GASNet-1 PGAS. В рамках этого обновления интерфейсы GASNet были переработаны с учетом растущих потребностей экзафлопсных суперкомпьютеров и поддержки коммуникационных сервисов для различных моделей программирования PGAS на текущих и будущих архитектурах HPC. Эти усилия включают в себя пересмотр реализации, а также серьезную переработку программных интерфейсов.
Мотивирующие цели этого редизайна, наряду с обратной совместимостью для клиентов GASNet-1, включают:
Совместимость важна, поскольку GASNet был принят в ряде проектов (рис. 2). Точное семантическое соответствие API-интерфейсов GASNet-EX требованиям клиента и возможностям оборудования часто обеспечивает более высокую производительность, чем у конкурирующих библиотек, благодаря их прямой реализации поверх собственных API-интерфейсов для сетей, представляющих интерес для HPC.
Пол Харгроув, инженер компьютерных систем 5 в отделе прикладной математики и вычислительных исследований (AMCR) Национальной лаборатории Лоуренса Беркли (Лаборатория Беркли) и руководитель проекта ECP Pagoda, заметил, что изменения, обозначенные «-EX», касаются того, как приложения и HPC изменились. изменилось за последние 20 лет. Например, типы памяти важны для выражения того, как удаленный доступ к памяти (RMA) теперь включает получение и запись в/из памяти графического процессора.