Аннотация:
Предложены алгоритмы реализации коллективных операций MPI_Bcast, MPI_Reduce, MPI_Allreduce с использованием разделяемой памяти многопроцессорных серверов. Алгоритмы создают сегмент разделяемой памяти и систему очередей в нем, через которые выполняется передача блоков сообщений. Программная реализация выполнена на базе библиотеки Open MPI в виде изолированного компонента coll/sharm. В отличие от существующих алгоритмов, взаимодействие с системой очередей организовано через активное ожидание, что сокращает количество барьерных синхронизаций и атомарных операций. При проведении экспериментов на сервере с архитектурой x86–64 для операции MPI_Bcast получено наибольшее сокращение времени в 6.5 раз (на 85% меньше) и MPI_Reduce в 3.3 раза (на 70% меньше) по сравнению с реализацией в компоненте coll/tuned библиотеки Open MPI. Предложены рекомендации по использованию алгоритмов для различных размеров сообщений.
Ключевые слова:Bcast; Reduce; Allreduce; коллективные операции; MPI; вычислительные системы.