Разработка алгоритмов для неблокирующих и разреженных коллективных операций MPI стандарта

Разработано для: Intel Inc., Нижний Новгород, Россия

Целью проекта являлась разработка новых алгоритмов для неблокирующих и разреженных коллективных операций стандарта MPI.

Неблокирующие и разреженные коллективные операции были добавлены в версии 3 MPI стандарта. На текущий момент MPI реализации с открытым исходным кодом (MPICH*, Open MPI*) содержат малое количество алгоритмов для этих типов коллективных операций.

Необходимо было решить следующие задачи:

1. Исследование существующего набора алгоритмов неблокирующих и разреженных коллективных операций.

2. Разработка новых алгоритмов и оценка их производительности.

Были разработаны алгоритмы для функций MPI_Iallreduce, MPI_Bcast, MPI_Ireduce, MPI_Igather, MPI_Iscatter, MPI_Ineighbour_alltoall.

Разработанные knomial алгоритмы для коллективных операций предпочтительней использовать, когда количество процессов кратно knomial-factor'у.

Разработаны и исследованы тестовые методы для оптимизации локальных обменов на топологии k-дерева. Тестирование показало, что данное преобразование структуры обменов уменьшает время выполнения тестов для небольших размеров сообщений, на больших размерах сообщения алгоритм начинает проигрывать стандартному.

Исследованы  методы оптимизации для декартовых топологий. Оптимизация позволяет получить ускорение относительно стандартного алгоритма MPICH на средних размерах сообщения от 512 до 1024 байт, c увеличением количества процессов ускорение возрастает.

Спецификация

Заказчик
Intel, Нижний Новгород, Россия
Сфера применения
Алгоритмы были внедрены и протестированы в библиотеке mpich в качестве исследования для последующих внутренних разработок компании Intel (Intel MPI)
Назначение
разработка алгоритмов для неблокирующих и разреженных коллективных операций MPI стандарта
Тип (платформа)
Linux
Технологии и алгоритмы
Основой разработки были исходные коды библиотек MPICH, MVAPICH и OpenMPI. Для реализации были использованы knomial алгоритмы из статей ученого Торстена и алгоритм Патарасюка для неблокирующей функции IAllReduce. Для тестирования производительности использовали бенчмарк IMB-NBC.
0