Научная статья на тему 'Алгоритм широковещательной рассылки на основе биномиального дерева в модели удаленного доступа к памяти '

Алгоритм широковещательной рассылки на основе биномиального дерева в модели удаленного доступа к памяти Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
14
0
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
MPI / коллективные операции / broadcast / RMA / one-sided communications / MPI / collectives / broadcast / RMA / one-sided communications

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Алексей Александрович Пазников

Предлагается алгоритм широковещательной рассылки (трансляционный обмен, схема «один -всем», broadcast), позволяющий повысить эффективность использования модели удаленного доступа к памяти (Remote Memory Access, RMA, one-sided communications) для параллельного программирования на распределенных вычислительных системах. Алгоритм основан на использовании структуры биномиального дерева для организации взаимодействия процессов (схема, широко используемая для классических коллективных операций стандарта MPI). Обладая логарифмической сложностью, алгоритм более эффективен по сравнению с линейным алгоритмом. В статье также построены аналитические оценки сложности в моделях LogP и LogGP. Проведенные эксперименты подтвердили преимущество алгоритма, при этом конечная эффективность зависит от нескольких факторов, включая количество процессов в коммуникаторе, размер передаваемых данных и производительность коммуникационной среды.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Алексей Александрович Пазников

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Binomial tree broadcast in remote memory access model

This article introduces a broadcast (one-to-all scheme) algorithm, designed to enhance the efficiency of utilizing Remote Memory Access (RMA), a one-sided communication model within the MPI standard, for parallel programming in distributed computing systems. The algorithm leverages a binomial tree structure to organize interprocess interactions, a scheme widely employed for classic collective operations within the MPI standard. With logarithmic complexity, this algorithm proves to be more efficient than linear counterparts. The article also provides analytical complexity estimates within the LogP and LogGP models. Experimental results confirm the algorithm's advantages, although the ultimate efficiency depends on several factors, including the number of processes in the communicator, data transmission size, and the performance of the interconnect.

Текст научной работы на тему «Алгоритм широковещательной рассылки на основе биномиального дерева в модели удаленного доступа к памяти »

ВЕСТНИК ТОМСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА

2024 Управление, вычислительная техника и информатика № 66

Tomsk StateUniversity Journalof Control and Computer Science

Научная статья УДК 004.272

doi: 10.17223/19988605/66/10

Алгоритм широковещательной рассылки на основе биномиального дерева в модели удаленного доступа к памяти

Алексей Александрович Пазников

Санкт-Петербургский государственный электротехнический университет «ЛЭТИ» им. В.И. Ульянова (Ленина), Санкт-Петербург, Россия, apaznikov@gmail.com

Аннотация. Предлагается алгоритм широковещательной рассылки (трансляционный обмен, схема «один -всем», broadcast), позволяющий повысить эффективность использования модели удаленного доступа к памяти (Remote Memory Access, RMA, one-sided communications) для параллельного программирования на распределенных вычислительных системах. Алгоритм основан на использовании структуры биномиального дерева для организации взаимодействия процессов (схема, широко используемая для классических коллективных операций стандарта MPI). Обладая логарифмической сложностью, алгоритм более эффективен по сравнению с линейным алгоритмом. В статье также построены аналитические оценки сложности в моделях LogP и LogGP. Проведенные эксперименты подтвердили преимущество алгоритма, при этом конечная эффективность зависит от нескольких факторов, включая количество процессов в коммуникаторе, размер передаваемых данных и производительность коммуникационной среды.

Ключевые слова: MPI; коллективные операции; broadcast; RMA; one-sided communications.

Благодарности: Исследование выполнено при финансовой поддержке гранта Российского научного фонда № 22-21-00686, https://rscf.ru/project/22-21-00686/

Для цитирования: Пазников А.А. Алгоритм широковещательной рассылки на основе биномиального дерева в модели удаленного доступа к памяти // Вестник Томского государственного университета. Управление, вычислительная техника и информатика. 2024. № 66. С. 97-107. doi: 10.17223/19988605/66/10

Original article

doi: 10.17223/19988605/66/10

Binomial tree broadcast in remote memory access model

Alexey A. Paznikov

Saint Petersburg Electrotechnical University "LETI", Saint Petersburg, Russian Federation, apaznikov@gmail.com

Abstract. This article introduces a broadcast (one-to-all scheme) algorithm, designed to enhance the efficiency of utilizing Remote Memory Access (RMA), a one-sided communication model within the MPI standard, for parallel programming in distributed computing systems. The algorithm leverages a binomial tree structure to organize interprocess interactions, a scheme widely employed for classic collective operations within the MPI standard. With logarithmic complexity, this algorithm proves to be more efficient than linear counterparts. The article also provides analytical complexity estimates within the LogP and LogGP models. Experimental results confirm the algorithm's advantages, although the ultimate efficiency depends on several factors, including the number of processes in the communicator, data transmission size, and the performance of the interconnect. Keywords: MPI; collectives; broadcast; RMA; one-sided communications.

Acknowledgments: This research was supported by Russian Science Foundation (RSF) (project № 22-21-00686, https://rscf.ru/project/22-21-00686/).

For citation: Paznikov, A.A. (2024) Binomial tree broadcast in remote memory access model. Vestnik Tomskogo gosudarstvennogo universiteta. Upravlenie, vychislitelnaja tehnika i informatika - Tomsk State University Journal of Control and Computer Science. 66. pp. 97-107. doi: 10.17223/19988605/66/10

© А.А. Пазников, 2024

Введение

Традиционно высокопроизводительные вычислительные системы (ВС) используются для обработки больших объемов данных. Сложность задач и объемы обрабатываемых данных характеризует постоянный рост. Например, размеры социальных графов популярных социальных сетей измеряются в петабайтах [1], а количество вершин графов, обрабатываемых в тестах HPC Graph500, превышает несколько триллионов [2]. Объемы данных, производимые Большим адронным коллайдером (LHC), достигают сотен петабайт, даже после многоуровневой фильтрации данных [3]. Ожидается, что объемы данных, обрабатываемых приложениями, пересекут петабайтный барьер, что повысит текущие вычислительные возможности [4, 5]. Анализ таких наборов данных требует иерархических больше-масштабных распределенных ВС. Данные в таких системах размещаются в памяти вычислительных узлов и могут быть представлены в виде разделяемых распределенных структур данных.

Увеличение производительности распределенных ВС достигается использованием многопроцессорных и многоядерных архитектур и высокоэффективных коммуникационных сетей, поддерживающих технологию RDMA (Remote Direct Memory Access). Несмотря на то, что большинство существующих приложений полагается на модель передачи сообщений, этот подход может оказаться недостаточным для будущих задач из-за больших накладных расходов на синхронизацию и физических ограничений, таких как уменьшение объема памяти на каждый элемент обработки данных, общие кэши и буферы TLB.

В результате сегодня активно исследуются альтернативные программные модели, такие как удаленный доступ к памяти (Remote Memory Access, RMA, MPI one-sided), MPI + X (MPI + threads) и MPI + MPI (MPI с общей памятью). Последние исследования показали, что во многих приложениях эти модели обеспечивают более высокую производительность, чем модель передачи сообщений. Одной из наиболее перспективных моделей параллельного программирования является модель удаленного доступа к памяти (Remote Memory Access, RMA), реализованного в виде подсистемы односторонних коммуникаций стандарта MPI.

Односторонние коммуникационные процедуры позволяют процессу выполнять операции записи или чтения данных в / из памяти другого процесса без участия этого процесса. Многие приложения демонстрируют ускорение после замены отправки и приема сообщений непосредственным удаленным доступом к памяти [6-10]. Программирование с использованием RMA использует различные техники. С точки зрения аппаратного обеспечения большинство распределенных ВС поддерживает технологию RDMA, которая освобождает межузловую коммуникацию от участия центрального процессора и операционной системы [8-13]. RDMA поддерживается многими сетями, такими как Infiniband, IBM PERCS, Cray Gemini, Aries и RoCE over Ethernet и др.

Модель RMA тесно связана с моделью глобального разделенного адресного пространства (PGAS) - моделью программирования, которая активно разрабатывается в настоящее время. PGAS реализует прозрачный интерфейс для операций с распределенными структурами данных. Методы RMA и PGAS используются во многих параллельных языках, моделях и инструментах: MPI, SHMEM, Unified Parallel C, Co-array Fortran, Cray Chapel, IBM X10. В отличие от PGAS, RMA предоставляет более низкоуровневый интерфейс и гибкие возможности управления синхронизацией.

Опишем модель RMA в MPI. В программах, использующих RMA, процессы обмениваются данными, обращаясь напрямую к памяти друг друга с помощью неблокируемых операций одностороннего доступа. Операции MPI_Put записи в удаленную память и MPI_Get чтения из удаленной памяти обладают меньшей задержкой по сравнению с моделью передачи сообщений (рис. 1). Кроме того, имеется набор атомарных операций, реализующих линеаризуемый удаленный доступ (MPI_Accumulate, MPI_Get_accumulate, MPI_Fetch_and_op, MPI_Compare_and_swap и др., соответствующие аналогичным операциям в модели общей памяти). RMA также включает операции, обеспечивающие согласованность данных и упорядочивание операций, например MPI_Win_flush / MPI_Win_flush_all.

В рамках RMA каждый процесс предоставляет часть своей локальной памяти для удаленного доступа (это называется окном, window) (см. рис. 1, а). Окна разделяются между процессами и могут

быть доступны через RMA-вызовы. Все RMA-операции выполняются в рамках участков кода, называемых эпохами (epoch). В пределах эпох выполняется синхронизация. Существует два вида эпох: эпоха выполнения доступа (access epoch) и эпоха предоставления доступа (exposure epoch). Эпоха выполнения доступа может включать только RMA-вызовы, предназначенные для доступа к памяти удаленных (целевых) процессов. Когда процесс находится в эпохе предоставления доступа, другие удаленные процессы могут выполнять операции RMA с локальной памятью данного процесса.

a b

Рис. 1. Модель удаленного доступа к памяти RMA MPI: а - RMA-окна, b - неблокирующий принцип выполнения операций Fig. 1. MPI Remote Memory Access (RMA) model: a is RMA-windows, b is non-blocking RMA-call principle

Модель поддерживает два вида синхронизации: активную (active target) и пассивную (passive target). В случае активной синхронизации вызовы RMA разрешены только между двумя процессами, один из которых находится в эпохе доступа (access epoch), а другой - в эпохе предоставления доступа (exposure epoch). Для реализации разделяемых структур данных подходящей является схема пассивной синхронизации, в которой участвует только процесс, осуществляющий доступ. Идея заключается в том, чтобы разрешить доступ к целевым процессам полностью односторонним образом. Пассивная синхронизация выполняется только процессом, осуществляющим доступ, без каких-либо действий со стороны целевых процессов.

Во многих случаях программы могут включать в себя множество однородных операций RMA к нескольким сегментам удаленной памяти [7-13], подобно коллективным операциям в модели передачи сообщений. Часто такие паттерны встречаются в реализации распределенных структур данных, как, например, BCL [14], Active Message Queue [15], Hcl [16], или более масштабируемые структуры на основе неблокируемой синхронизации [17, 18] или ослабленной семантики [19].

Традиционные коллективные операции являются одной из важнейших компонент MPI. Анализ параллельных алгоритмов и схем коммуникации показывает, что на них тратится более 80% общего времени на коммуникацию [20]. Для широкого класса параллельных программ время, затрачиваемое на коллективные операции, является критическим фактором для общей производительности. На сегодняшний день существует большое количество алгоритмов реализации коллективных операций в модели передачи сообщений [21-23], однако даже реализации, учитывающие разные иерархические уровни ВС [24], тем не менее являются коллективными операциями в классическом понимании и не имеют одностороннего интерфейса. Для модели PGAS предложены эффективные реализации некоторых коллективных операций [25], но они не могут использоваться напрямую в модели RMA.

Чтобы реализовать в RMA семантический аналог коллективных операций, пользователи текущего стандарта MPI могут использовать только простые линейные (последовательные) алгоритмы, что является далеко не самым эффективным в случаях, когда семантика программы позволяет выполнять множественные операции доступа к данным параллельно.

С учетом вышеизложенного интерес представляет создание более эффективных алгоритмов для коллективных операций в модели RMA. В данной работе предложен алгоритм широковещательной рассылки (one-to-all, broadcast), основанный на использовании биномиального дерева. Эта структура является одной из наиболее распространенных и эффективных схем, применяемых для реализации трансляционных обменов. В работе рассматривается реализация алгоритма, включая многопоточную runtime-систему и протоколы взаимодействия процессов. Приводятся результаты экспериментов, подтверждающих преимущество алгоритма перед линейной схемой выполнения рассылки. Для более глубокого анализа эффективности алгоритма построены аналитические оценки в рамках моделей LogP и LogGP.

1. Алгоритмы широковещательной рассылки

Операция широковещательной рассылки выбрана, поскольку она является достаточно простой, с одной стороны, и одной из наиболее часто используемых - с другой. Рассылка реализует схему «один ко всем» (one-to-all): перед операцией буфер находится только в памяти одного процесса, после операции данные копируются на все процессы MPI-коммуникатора. В терминах модели RMA все обменивающиеся процессы должны использовать один объект RMA-окна win с достаточным выделенным объемом памяти. Также вводятся уникальные идентификаторы для всех окон RMA (window id, wid) с соответствующей поддержкой runtime-системы. Входные данные для операции рассылки включают буфер buf[0...m], RMA-окно win для рассылки и его идентификатор wid, смещение в окне disp (определяет местонахождение буфера в корневом процессе).

1.1. Линейный алгоритм широковещательной рассылки

Прежде всего опишем линейный алгоритм (рис. 2). Здесь в рамках эпохи пассивной синхронизации для всех процессов (строки 2, 6) данные buf помещаются в память всех процессов r, соответствующих окну win. Алгоритм включает в себя основной цикл, в котором для каждого ранга r коммуникатора выполняется операция MPI_Put для удаленной записи буфера в память процесса r по смещению disp. Дополнительная синхронизация не требуется, потому что все операции гарантированно должны быть завершены после завершения эпохи синхронизации.

Рис. 2. Линейный алгоритм широковещательной рассылки в модели RMA:

а - псевдокод алгоритма, b - коммуникационная схема Fig. 2. Linear broadcast algorithm in RMA model: a is algorithm pseudocode, b is communication scheme

1.2. Алгоритм широковещательной рассылки на основе биномиального дерева

В данной работе предлагается алгоритм рассылки, основанный на организации процессов в биномиальное дерево (binomial tree). Опишем runtime-систему для организации выполнения алгоритма (рис. 3).

RMA окно win: " рассылаемый буфер

размера т

RMA-окно reel win: * гед-тип запроса

(broadcast, reduce, gather, scatter и др.)

Основной поток е рамках МР1 -процесса

МР1-процесс

□EDU buf

ИШПИгоо!

0ШЕЕ bufsize

[ШЕЕ

donecntrwin | [о] donecntr

ГША-окно йемШШ. - описание запроса, поступившего от процесса I на выполнение коллективной операции;

■ гоо£-корневой процесс " - размеры буфера

■ тс1-идентификатор окна: каждому окну присваивается идентификатор, все используемые окна сохраняются в глобальном списке окон:

Поток Broadcaster, выполняющий атомарное чтение массива req и реализующий коллективную операцию

. Счетчик процессов, завершивши* коллективную операцию

Рис. 3. Runtime-система для реализации алгоритма рассылки в модели RMA Fig. 3. Runtime-system for broadcast implementation in RMA model

b

a

Кроме окна win, содержащего рассылаемые данные, организуется дополнительное окно descrwin, содержащее информацию о выполняемой коллективной операции, окно reqwin, соответствующее запросу на выполнение операции, и окно donecntrwin, содержащее счетчик процессов, завершивших операцию. Кроме того, на каждом MPI-процессе создается вспомогательный поток Broadcaster, который принимает запросы и осуществляет дальнейшую ретрансляцию сообщений.

Перед использованием подсистемы коллективных операций выполняется инициализация runtime-системы, в течение которой поток Broadcaster запускается на всех процессах. Основной поток выполняет функцию RMABcastBinomial, опишем его основные шаги (рис. 4, а):

1. Ожидание завершения предыдущей операции (строка 1). Этот шаг введен для предотвращения перемешивания данных в буфере в случае одновременных рассылок.

2. Инициализация запроса выполнения операции рассылки (строка 2).

3. Ожидание старта потока Broadcaster и начала эпохи синхронизации для дополнительных окон (строка 3).

4. Вызов функции PutLoop для размещения данных в следующие процессы в соответствии со структурой биномиального дерева (строка 4).

Функция PutLoop (рис. 4 b) включает в себя следующие шаги:

1. Вычисляется смещенный ранг srank: ранг, связанный с корневым процессом (строка 2).

2. Выполняется цикл, включающий |~log2p~l коммуникационных раундов (строки 5-16). На каждом раунде проверяется каждый бит смещенного ранга srank.

3. На каждом раунде, если текущий бит в srank не установлен (строка 5), то вычисляется ранг целевого процесса prank (строка 9) и, если получен корректный ранг (строка 7), выполняется обратный перевод из относительно ранга к исходному (строка 5), после чего отправляется запрос к соответствующему процессу в функции PutRequest (строка 9). Иначе, цикл прерывается (строка 12).

a b

Рис. 4. Биномиальный алгоритм широковещательной рассылки в модели RMA Fig. 4. Binomial tree RMA broadcast algorithm

Функция PutRequest реализует копирование запроса, описания операции и самих данных в память указанного процесса rank (рис. 5). Здесь предыдущий процесс i - любой процесс, не являющийся листом биномиального дерева, j - любой из его дочерних элементов. Основные шаги алгоритма:

1. На первом этапе буфер данных buf копируется в удаленный процесс (строка 1).

2. Далее формируется описание операции, состоящее из корневого процесса root и идентификатора окна wid (строка 2), которое копируется в окно descrwin по вычисленному смещению (строка 3).

3. Атомарно установить флаг в окне reqwin (запрос), означающий готовность данных и описания (строка 4).

4. Ожидаем завершения RMA-вызовов, при этом порядок следования функций MPI_Win_flush таков, чтобы гарантировать выполнение операции установки флага после копирования данных и описания операции (строки 5-7).

Рис. 5. Схема выполнения процедуры PutRequest Fig. 5. PutRequest execution scheme

Теперь опишем алгоритм функционирования потока Broadcaster, выполняющего коммуникации на всех процессах, кроме корневого (рис. 6). Данный поток реализует активное ожидание поступающих запросов и данных и дальнейшую их ретрансляцию. В начале его выполнения открываются эпохи для окон reqwin, descrwin и отправляется сигнал о начале эпох. Далее начинается основной алгоритм, его основные шаги:

1. В бесконечном цикле (строки 1-15) атомарно прочитать из локальной памяти массив запросов (строки 2-3) и найти активные запросы (строки 4-13). После каждой итерации ожидать таймаут (строка 14).

2. Если в массиве запросов найден запрос на выполнение рассылки от процесса i (строка 5), то в этот момент в процесс j уже скопирован буфер данных buf и описание операции descr. По идентификатору wid отыскивается окно, которое ему соответствует (строка 6), и выполняется вызов PutLoop для дальнейшей рассылки данных.

3. После завершения передачи данных атомарно увеличить счетчик в корневом процессе (строки 8-10).

Рис. 6. Схема функционирования потока Broadcaster Fig. 6. Broadcaster thread operation scheme

Помимо самих операций рассылки, необходимо реализовать функции синхронизации. Для решения этой задачи каждый процесс обладает счетчиком donecntr (с соответствующим окном donecntrwin), предназначенным для подсчета количества процессов, завершивших операцию.

Рис. 7. Функции синхронизации выполнения операции рассылки Fig. 7. Synchronization functions for RMA broadcast

Определим функции синхронизации RMABcastFlush и RMABcastTest (рис. 7). RMABcastFlush реализует ожидание завершения трансляционного обмена, в то время как RMABcastTest проверяет, завершена операция или нет. Обе функции вызывают операцию MPI_Fetch_and_op для операции NO_OP (соответствует атомарному чтению переменной) для атомарного получения состояния счетчика в локальной памяти. Далее, если количество завершивших процессов соответствует общему числу процессов, то операция считается завершенной.

2. Аналитические оценки в моделях LogP и LogGP

Для оценки сложности алгоритма построим аналитические выражения для времени выполнения алгоритма в моделях LogP и LogGP. LogP - коммуникационная модель для распределенных вычислительных систем, в рамках которой процессы взаимодействуют короткими сообщениями фиксированного размера. Параметры модели:

L - латентность (latency, структурные задержки) передачи сообщения между двумя процессами; o - накладные расходы (overhead) на организацию передачи или получения сообщения; g - минимальный временной интервал (gap) между последовательными операциями передачи или приема сообщений;

P - количество процессов в системе.

Обозначим q = max{o, g}, Or - накладные расходы, связанные с активным ожиданием при получении запроса. Выполнение рассылки по биномиальному дереву можно разбить на стадии, количество которых log2P (высота биноминального дерева для P, равного степени 2). Тогда время выполнения каждой стадии ti = o + 2q + L + Or (рис. 8, a). Таким образом, общее время выполнения

t = (o + 2q + L + Or) log2P + os + L.

a b

Рис. 8. Схема выполнения рассылки в моделях LogP / LogGP: а - LogP, b - LogGP Fig. 8. Broadcast execution scheme in LogP / LogGP model: а is LogP, b is LogGP

Оценим время выполнения алгоритма в модели LogGP - расширении линейной модели LogP для сообщений большого размера. В LogGP пятый параметр G - минимальный интервал времени

между последовательными передачами или приемами одного байта длинного сообщения. Обозначим длину сообщения как m. Время выполнения каждой стадии в этом случае и = o + (т - + 2q + L (рис. 8, Ь). Общее время выполнения операции в этом случае

t = (о + (m - + 2q + L + or) ^гР + o + Ь.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

3. Результаты экспериментов

Моделирование алгоритмов рассылки проведено на кластерах Центра параллельных вычислительных технологий Сибирского государственного университета телекоммуникаций и информатики. Кластер 1 включает в себя 6 узлов, оснащенных 2 процессорами Intel Xeon E5620 с четырьмя ядрами каждый (общее число ядер - 48), подключенных через Infiniband QDR. Библиотека MVAPICH2 2.3.1. Кластер 2 укомплектован 18 узлами 2 x Intel Xeon E5420 (4 процессорных ядра, общее число ядер - 144). Коммуникационная сеть: Gigabit Ethernet. Библиотека MPICH 3.2.1.

В экспериментах использовался тест, в котором рассылка выполняется n = 10 раз. В качестве буфера для рассылки использовался целочисленный массив длиной m = 2, 4, ..., 40 Мб (для кластера 1) и m = 2, 4, ..., 40 Кб (для кластера 2). Количество процессов p = 8, 16, ..., 48 (для кластера 1) и p = 8, 16, ..., 96 (для кластера 2). Показатель эффективности - среднее время t выполнения операции.

Перед основными измерениями выполнялась фаза прогрева с nw = 5 итерациями рассылки. Оба параметра WaiterTimeout и FlushTimeout были установлены на 1 мс. Эксперименты проводились для линейного и биномиального алгоритмов. Корневой процесс во всех экспериментах равен 0.

Результаты экспериментов представлены на рис. 9, 10 (кластер 1), 11, 12 (кластер 2). В первую очередь следует отметить, что эффективность биномиального алгоритма начинает превосходить линейный алгоритм после определенного значения размера буфера или количества процессов.

Для кластера 1 (Infiniband), если варьировать размер буфера при фиксированном количестве ядер, то при p = 24 разработанный алгоритм начинает опережать линейный алгоритм начиная с m = 25 Мб (см. рис. 9, b), при p = 32 - с m = 10 Мб (см. рис. 9, в), а для p = 48 - с m = 7 Мб (см. рис. 9, с). Для размера буфера m = 10 Мб эта граница начинается уже с p = 32 процессов (см. рис. 10, b), при m = 16 Мб - начиная c p = 24 (см. рис. 10, с), а при m = 32 Мб - с p = 20 (см. рис. 10, d).

b

d

Рис. 9. Время выполнения операции линейным и биномиальным алгоритмом в зависимости от размера буфера

(кластер 1, Infiniband QDR) Fig. 9. Comparison of latency for linear and binomial tree broadcast on buffer size (cluster 1, Infiniband QDR)

b

d

Рис. 10. Время выполнения операции линейным и биномиальным алгоритмом в зависимости от количества процессов

(кластер 1, Infiniband QDR)

Fig. 10. Comparison of latency for linear and binomial tree broadcast on process number (cluster 1, Infiniband QDR)

a

с

a

с

В случае кластера 2 (Gigabit Ethernet), если варьировать размер буфера при фиксированном количестве ядер, то при p = 40 разработанный алгоритм опережает линейный алгоритм начиная с m = 32 Кб (см. рис. 11, b), приp = 64 - с m = 26 Кб (см. рис. 11, с), а дляp = 96 - с m = 16 Кб (см. рис. 9, d). Если фиксировать размер буфера, то при m = 16 Кб эффект проявляется начиная с p = 80 (см. рис. 12, b), для m = 32 Кб - с p = 43 (см. рис. 12, с), а для m = 40 Кб - с p = 32 (см. рис. 12, d).

/3-16 Р = 40 р - 64 р = 96

a b с d

Рис. 11. Время выполнения операции линейным и биномиальным алгоритмом в зависимости от размера буфера

(кластер 2, Gigabit Ethernet) Fig. 11. Comparison of latency for linear and binomial tree broadcast on buffer size (cluster 2, Gigabit Ethernet)

a b с d

Рис. 12. Время выполнения операции линейным и биномиальным алгоритмом в зависимости от количества процессов

(кластер 2, Gigabit Ethernet) Fig. 12. Comparison of latency for linear and binomial tree broadcast on process number (cluster 2, Gigabit Ethernet)

В целом следует отметить, что эффективность биномиального алгоритма растет с увеличением размера буфера и количества процессов. Эффект проявляется раньше в коммуникационных сетях меньшей производительности. Тем не менее для небольших буферов линейный алгоритм более эффективен из-за накладных расходов биномиального алгоритма на синхронизацию процессов во время выполнения алгоритма. Полагаем, что накладные расходы можно сократить путем варьирования параметров алгоритма. Кроме того, существенный вклад в общее время вносит то, как в конкретной MPI-библиотеке реализован режим MPI_THREADS_MULTIPLE, который необходим для выполнения коммуникаций двумя потоками: основным и Broadcaster.

Заключение

Текущее развитие и распространение модели удаленного доступа памяти в MPI стало очередным этапом в проявившейся в последнее десятилетие тенденции на постепенный синтез моделей программирования для распределенной и общей памяти. RMA стала своеобразным компромиссом между классической моделью передачи сообщений и PGAS: она сохраняет гибкость управления операциями и синхронизацией, оставляя тем самым широкую свободу для оптимизаций, и дает достаточную прозрачность для наследования классических приемов многопоточного программирования.

Тем не менее есть ряд ограничений RMA в текущем стандарте, которые мешают еще более широкому ее использованию; одним из таких, на наш взгляд, очевидных ограничений является отсутствие коллективных операций. Для обхода данного ограничения пользователи вынуждены использовать линейные алгоритмы или переходить в модель передачи сообщений, чтобы воспользоваться классическими коллективными обменами (последнее нарушает целостность программы и чревато дополнительными накладными расходами).

В настоящей статье ставилась задача исследовать потенциал преодоления данного ограничения. На примере широковещательной рассылки была продемонстрирована возможность достичь большей эффективности операций, по сравнению с линейным подходом. Так, применение специальных схем реализации рассылки (в частности, биномиального дерева) позволила существенно сократить время выполнения операции. Эффект растет с увеличением общего числа процессов и размера пересылаемого буфера, что делает новый подход особенно важным в большемасштабных системах и при обработке больших объемов данных. Дальнейшая интеграция коллективных RMA-операций в MPI, безусловно, потребует внесения изменений в стандарт и существенной доработки runtime-систем библиотек MPI.

Список источников

1. Bronson N. et al. TAO: Facebook's distributed data store for the social graph // USENIX ATC 13. 2013. P. 49-60.

2. Murphy R.C. et al. Introducing the graph 500 // Cray Users Group (CUG). 2010. V. 19. P. 45-74.

3. Âkesson T. et al. ATLAS Computing: technical design report // LHCC Reports. 2005. 246 р.

4. Chen C.L.P., Zhang C.Y. Data-intensive applications, challenges, techniques and technologies: a survey on Big Data // Infor-

mation Sciences. 2014. V. 275. P. 314-347.

5. Gantz J., Reinsel D. The digital universe in 2020: Big data, bigger digital shadows, and biggest growth in the far east // IDC

iView: IDC Analyze the future. 2012. V. 2007 (2012). P. 1-16.

6. Balaji P. et al. MPI on a Million Processors // Recent Advances in Parallel Virtual Machine and Message Passing Interface. 2009.

P. 20-30.

7. Nieplocha J., Harrison R.J., Littlefield R.J. Global arrays: A nonuniform memory access programming model for high-

performance computers // The Journal of Supercomputing. 1996. V. 10. P. 169-189.

8. Hoefler T. et al. Remote memory access programming in MPI-3 // TOPC. 2015. V. 2 (2). P. 1-26.

9. Gerstenberger R., Besta M., Hoefler T. Enabling highly-scalable remote memory access programming with MPI-3 one sided //

SC'13. 2013. P. 1-12.

10. Liu J. et al. High performance RDMA-based MPI implementation over InfiniBand // ICS. 2003. P. 295-304.

11. Petrovic D. et al. High-performance RMA-based Broadcast on the Intel SCC // SPAA. 2012. P. 121-130.

12. Tipparaju V., Nieplocha J., Panda D. Fast collective operations using shared and remote memory access protocols on clusters // IPDPS. IEEE, 2003. P. 10.

13. Sur S. et al. High performance rdma based all-to-all broadcast for infiniband clusters // HiPC. 2005. P. 148-157.

14. Brock B., Buluç A., Yelick K. BCL: A cross-platform distributed data structures library // ICPPs. 2019. P. 1-10.

15. Schuchart J., Bouteiller A., Bosilca G. Using MPI-3 RMA for active messages // ExaMPI. 2019. P. 47-56.

16. Devarajan H. et al. Hcl: Distributing parallel data structures in extreme scales // IEEE Cluster. 2020. P. 248-258.

17. Бураченко А.В., Пазников А.А., Державин Д.П. Распределенная очередь без использования блокировок в модели удаленного доступа к памяти // Вестник Томского государственного университета. Управление, вычислительная техника и информатика. 2023. № 62. С. 13-24. doi: 10.17223/19988605/62/2

18. Diep T.D., Ha P.H., Fürlinger K. A general approach for supporting nonblocking data structures on distributed-memory systems // Journal of Parallel and Distributed Computing. 2023. V. 173. P. 48-60.

19. Paznikov A.A., Anenkov A.D. Implementation and analysis of distributed relaxed concurrent queues in remote memory access model // Procedia Computer Science. 2019. V. 150. P. 654-662. doi: 10.1016/j.procs.2019.02.101

20. Rabenseifner R. Automatic MPI counter profiling // Proc. 42nd CUG Conference. 2000. P. 396-405.

21. Thakur R., Rabenseifner R., Gropp W. Optimization of collective communication operations in MPICH // The International Journal of High Performance Computing Applications. 2005. V. 19 (1). P. 49-66.

22. Pjesivac-Grbovic J. et al. Performance analysis of MPI collective // Cluster Computing. 2007. V. 10. P. 127-143.

23. Paznikov A.A., Kupriyanov M.S. Adaptive MPI collective operations based on evaluations in LogP model // Procedia Computer Science. 2021. V. 186. P. 323-330. doi: 10.1016/j.procs.2021.04.208

24. Tipparaju V. et al. Fast collective operations using shared and remote memory access protocols on clusters // IPDPS. 2003. P. 10.

25. Kulagin I., Paznikov A., Kurnosov M. Heuristic Algorithms for Optimizing Array Operations in Parallel PGAS-programs // International Conference on Parallel Computing Technologies. 2015. P. 405-409.

References

1. Bronson, N. et al. (2013) TAO: Facebook's distributed data store for the social graph. USENIX ATC 13. pp. 49-60.

2. Murphy, R.C. et al. (2010) Introducing the graph 500. Cray Users Group (CUG). 19. pp. 45-74.

3. Âkesson, T. et al. (2005) ATLAS Computing: technical design report. LHCC Reports.

4. Chen, C.L.P. & Zhang, C.Y. (2014) Data-intensive applications, challenges, techniques and technologies: A survey on Big Data.

Information Sciences. 275. pp. 314-347.

5. Gantz, J. & Reinsel, D. (2012) The digital universe in 2020: Big data, bigger digital shadows, and biggest growth in the far east.

IDC iView: IDC Analyze the future. 2012. pp. 1-16.

6. Balaji P. et al. (2009) MPI on a Million Processors. In: Kranzlmuller, D., Kacsuk, P. & Dongarra, J. (eds) Recent Advances

in Parallel Virtual Machine and Message Passing Interface. Springer. pp. 20-30.

7. Nieplocha, J., Harrison R.J. & Littlefield R.J. (1996) Global arrays: A nonuniform memory access programming model for high-

performance computers. The Journal of Supercomputing. 10. pp. 169-189.

8. Hoefler, T. et al. (2015) Remote memory access programming in MPI-3. TOPC. 2(2). pp. 1-26.

9. Gerstenberger, R., Besta, M. & Hoefler, T. (2013) Enabling highly-scalable remote memory access programming with MPI-3 one

sided. SC'13. arXiv:2001.07747 DOI: https://doi.org/10.1145/2503210.2503286

10. Liu, J. et al. (2003) High performance RDMA-based MPI implementation over InfiniBand. ICS '03: Proceedings of the 17th annual international conference on Supercomputing. June. pp. 295-304. DOI: 10.1145/782814.782855

11. Petrovic, D. et al. (2012) High-performance RMA-based Broadcast on the Intel SCC. SPAA. June. pp. 121-130. DOI: 10.1145/2312005.2312029

12. Tipparaju, V., Nieplocha, J. & Panda, D. (2003) Fast collective operations using shared and remote memory access protocols on clusters. International Parallel and Distributed Processing Symposium, Nice, France, 2003, pp. 10. DOI: 10.1109/IPDPS.2003.1213188

13. Sur, S., Bondhugula, U.K.R., Mamidala, A., Jin, H.W., & Panda, D.K. (2005). High Performance RDMA Based All-to-All Broadcast for InfiniBand Clusters. In: Bader, D.A., Parashar, M., Sridhar, V., & Prasanna, V.K. (eds) High Performance Computing -HiPC 2005. Vol 3769. Berlin, Heidelberg: Springer. DOI: 10.1007/11602569_19

14. Brock, B., Buluç, A. & Yelick, K. (2019) BCL: A cross-platform distributed data structures library. ICPP '19: Proceedings of the 48th International Conference on Parallel Processing. August. Article No. 102. pp. 1-10. DOI: 10.1145/3337821.3337912

15. Schuchart, J., Bouteiller, A. & Bosilca, G. (2019) Using MPI-3 RMA for active messages. IEEE/ACM Workshop on Exascale MPI (ExaMPI). Denver, CO, USA. pp. 47-56. DOI: 10.1109/ExaMPI49596.2019.00011

16. Devarajan, H. et al. (2020) Hcl: Distributing parallel data structures in extreme scales. IEEE International Conference on Cluster Computing (CLUSTER). Kobe, Japan. pp. 248-258. DOI: 10.1109/CLUSTER49012.2020.00035

17. Burachenko, A.V., Paznikov, A.A. & Derzhavin, D.P. (2023) Lock-free distributed queue in remote memory access model. Vestnik Tomskogo gosudarstvennogo universiteta. Upravlenie, vychislitel'naya tekhnika i informatika - Tomsk State University Journal of Control and Computer Science. 62. pp. 13-24. DOI: 10.17223/19988605/62/2

18. Diep, T.D., Ha, P.H. & Furlinger, K. (2023) A general approach for supporting nonblocking data structures on distributed-memory systems. Journal of Parallel and Distributed Computing. 173. pp. 48-60.

19. Paznikov, A.A. & Anenkov, A.D. (2019) Implementation and analysis of distributed relaxed concurrent queues in remote memory access model. Procedia Computer Science. 150. pp. 654-662. DOI: 10.1016/j.procs.2019.02.101

20. Rabenseifner, R. (2000) Automatic MPI counter profiling. Proceedings 42nd CUG Conference. May 22-26. pp. 396-405.

21. Thakur, R., Rabenseifner, R. & Gropp, W. (2005) Optimization of collective communication operations in MPICH. The International Journal of High Performance Computing Applications. 19(1). pp. 49-66.

22. Pjesivac-Grbovic, J. et al. (2007) Performance analysis of MPI collective. Cluster Computing. 10. pp. 127-143.

23. Paznikov, A.A. & Kupriyanov, M.S. (2021) Adaptive MPI collective operations based on evaluations in LogP model. Procedia Computer Science. 186. pp. 323-330. DOI: 10.1016/j.procs.2021.04.208

24. Tipparaju, V. et al. (2003) Fast collective operations using shared and remote memory access protocols on clusters. Proceedings International Parallel and Distributed Processing Symposium. Nice, France. pp. 10. DOI: 10.1109/IPDPS.2003.1213188

25. Kulagin, I., Paznikov, A. & Kurnosov, M. (2015) Heuristic Algorithms for Optimizing Array Operations in Parallel PGAS-programs. In: Malyshkin, V. (ed.) Parallel Computing Technologies. PaCT 2015. Lecture Notes in Computer Science. Vol. 9251. Springer, Cham. DOI: 10.1007/978-3-319-21909-7_39.

Информация об авторе:

Пазников Алексей Александрович - кандидат технических наук, доцент кафедры вычислительной техники факультета компьютерных технологий и информатики Санкт-Петербургского государственного электротехнического университета «ЛЭТИ» им. В.И. Ульянова (Ленина) (Санкт-Петербург, Россия). E-mail: apaznikov@gmail.com

Автор заявляет об отсутствии конфликта интересов.

Information about the author:

Paznikov Alexey A. (Candidate of Technical Sciences, Associate Professor of Computer Engineering Department, Faculty of Computer Technologies and Informatics, Saint Petersburg Electrotechnical University "LETI", Saint Petersburg, Russian Federation). E-mail: apaznikov@gmail.com

The author declares no conflicts of interests.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Поступила в редакцию 22.09.2023; принята к публикации 05.03.2024 Received 22.09.2023; accepted for publication 05.03.2024

i Надоели баннеры? Вы всегда можете отключить рекламу.