Массовая синхронная параллель (BSP ) абстрактный компьютер - это модель моста для разработки параллельных алгоритмов. Он служит цели, аналогичной модели параллельной машины с произвольным доступом (PRAM). BSP отличается от PRAM тем, что не воспринимает связь и синхронизацию как должное. Важная часть анализа алгоритма BSP заключается в количественной оценке необходимой синхронизации и обмена данными.
Модель BSP была разработана Лесли Валиантом из Гарвардского университета в 1980-х годах. Окончательная статья была опубликована в 1990 году.
Между 1990 и 1992 годами Лесли Валиант и Билл МакКолл из Оксфордского университета работали над идеями модели программирования BSP с распределенной памятью в Принстоне и Гарварде. В период с 1992 по 1997 год Макколл возглавлял большую исследовательскую группу в Оксфорде, которая разработала различные библиотеки программирования BSP, языки и инструменты, а также многочисленные алгоритмы массового параллелизма BSP. С ростом интереса и импульса МакКолл возглавил группу из Оксфорда, Гарварда, Флориды, Принстона, Bell Labs, Колумбии и Утрехта, которая разработала и опубликовала стандарт BSPlib для программирования BSP в 1996 году.
Valiant разработал расширение для модель BSP в 2000-х годах, что привело к публикации модели Multi-BSP в 2011 году.
В 2017 году МакКолл разработал новое крупное расширение модели BSP, которое обеспечивает отказоустойчивость и хвостовую устойчивость для крупномасштабных параллельные вычисления в AI, Analytics и HPC.
BSP-компьютер состоит из
Обычно это интерпретируется как набор процессоров, которые могут выполнять разные потоки вычислений, при этом каждый процессор оснащен быстрой локальной памятью и соединен сетью связи. Алгоритм BSP сильно зависит от третьей особенности; вычисление выполняется в виде серии глобальных супершагов, которые состоят из трех компонентов:
Вычислительные и коммуникационные действия не должны быть упорядочены во времени. Связь обычно принимает форму односторонних вызовов прямого доступа к удаленной памяти (DRMA), а не парных двусторонних вызовов отправки и получения сообщений. Синхронизация барьеров завершает супершаг: она обеспечивает правильное завершение всех односторонних коммуникаций. Системы, основанные на двусторонней связи, неявно включают эту стоимость синхронизации для каждого отправленного сообщения. Метод барьерной синхронизации зависит от аппаратных средств компьютера BSP. В исходной статье Valiant это средство периодически проверяет, достигнут ли конец текущего супершага в глобальном масштабе. Период этой проверки обозначается .
На рисунке ниже это показано в виде диаграммы . Процессы не считаются имеющими определенный линейный порядок (слева направо или иным образом) и могут быть отображены на процессоры любым способом.
Модель BSP также хорошо подходит для включения автоматического управления памятью для вычислений с распределенной памятью посредством чрезмерной декомпозиции проблемы и превышения лимита ресурсов для процессоров. Вычисления делятся на большее количество логических процессов, чем есть физических процессоров, и процессы назначаются процессорам случайным образом. Статистически можно показать, что эта стратегия приводит к почти идеальной балансировке нагрузки как при работе, так и при общении.
Во многих системах параллельного программирования коммуникация рассматривается на уровне отдельных действий: отправка и получение сообщения, передача из памяти в память и т. Д. С этим трудно работать, поскольку - это множество одновременных коммуникационных действий в параллельной программе, и их взаимодействия обычно сложны. В частности, трудно много сказать о времени, которое потребуется для завершения любого отдельного действия по общению.
Модель BSP рассматривает коммуникационные действия в массовом порядке. Это приводит к тому, что может быть задана верхняя граница времени, необходимого для передачи набора данных. BSP рассматривает все коммуникационные действия супершага как одно целое и предполагает, что все отдельные сообщения, отправленные как часть этого блока, имеют фиксированный размер.
Максимальное количество входящих или исходящих сообщений для супершага обозначается . Способность коммуникационной сети доставлять данные фиксируется параметром , определяемым таким образом, что требуется время для процессора, чтобы доставить сообщения размера 1.
Сообщение длиной очевидно, требуется больше времени для отправки, чем сообщение размера 1. Однако модель BSP не делает различия между длиной сообщения или сообщения длины 1. В любом случае стоимость считается равной .
Параметр зависит от следующих факторов:
На практике равно d определяется эмпирически для каждого параллельного компьютера. Обратите внимание, что - это не нормализованное время доставки одного слова, а время доставки одного слова в условиях непрерывного трафика.
Для одностороннего обмена данными модели BSP требуется синхронизация барьеров. Барьеры потенциально дороги, но позволяют избежать возможности взаимоблокировки или livelock, поскольку барьеры не могут создавать циклические зависимости данных. Инструменты для их обнаружения и борьбы с ними не нужны. Барьеры также допускают новые формы отказоустойчивости.
На стоимость барьерной синхронизации влияет пара проблем:
Стоимость барьерной синхронизации обозначается . Обратите внимание, что
На больших компьютерах барьеры стоят дорого, и это становится все более и более важным в больших масштабах. Существует большое количество литературы по удалению точек синхронизации из существующих алгоритмов как в контексте вычислений BSP, так и за его пределами. Например, многие алгоритмы позволяют локальное обнаружение глобального конца супершага, просто сравнивая локальную информацию с количеством уже полученных сообщений. Это сводит к нулю стоимость глобальной синхронизации по сравнению с минимально необходимой задержкой связи. Однако ожидается, что эта минимальная задержка будет и дальше увеличиваться для будущих архитектур суперкомпьютеров и сетевых соединений; Модель BSP, наряду с другими моделями для параллельных вычислений, требует адаптации, чтобы справиться с этой тенденцией. Multi-BSP - это одно решение на основе BSP.
Стоимость супершага определяется как сумма трех условий; стоимость самого длительного локального вычисления, стоимость глобальной связи между процессорами и стоимость барьерной синхронизации в конце супершага. Стоимость одного супершага для
Интерес к BSP в последние годы резко возрос, и Google принял его как основная технология для массового анализа графиков с помощью таких технологий, как Pregel и MapReduce. Кроме того, со следующим поколением Hadoop, отделяющим модель MapReduce от остальной инфраструктуры Hadoop, теперь существуют активные проекты с открытым исходным кодом, которые добавляют явное программирование BSP, а также другие высокопроизводительные модели параллельного программирования поверх Hadoop. Примеры: Apache Hama и Apache Giraph.
BSP был расширен многими авторами, чтобы устранить опасения по поводу непригодности BSP для моделирования конкретных архитектур или вычислительных парадигм. Одним из примеров этого является разложимая модель BSP. Модель также использовалась при создании ряда новых языков программирования и интерфейсов, таких как Bulk Synchronous Parallel ML (BSML), BSPLib, Apache Hama и Pregel.
Примечательно реализациями стандарта BSPLib являются библиотека BSP Падерборнского университета и Oxford BSP Toolset от Джонатана Хилла. Современные реализации включают BSPonMPI (который имитирует BSP поверх интерфейса передачи сообщений ) и MulticoreBSP (новая реализация, ориентированная на современные архитектуры с общей памятью). MulticoreBSP для C особенно примечателен своей способностью запускать вложенные запуски BSP, что позволяет явно программировать Multi-BSP.