Смешанная модель параллельной программы Приятное с полезным Сергей Петрович Нечаев, Сибирский Суперкомпьютерный центр
Основная идея Параллелизм в пределах одного узла – многопоточность Параллелизм в пределах одного узла – многопоточность Параллелизм между узлами – MPI Параллелизм между узлами – MPI
Смешанный параллелизм: за и против Плюсы Плюсы Быстрее + более масштабируемо Быстрее + более масштабируемо Минусы Минусы Сложнее в разработке Сложнее в разработке
Особенности реализации Старые реализации MPI не поддерживают многопоточность Старые реализации MPI не поддерживают многопоточность Только один поток может вызывать функции MPI Только один поток может вызывать функции MPI
Как это преодолевать Выделяются серверный поток, задача которого – диспетчеризация MPI сообщений, и пул рабочих потоков – только для вычислений. Выделяются серверный поток, задача которого – диспетчеризация MPI сообщений, и пул рабочих потоков – только для вычислений. Вводится внутренняя нумерация потоков – каждый рабочий поток имеет уникальный номер в пределах всей параллельной программы Вводится внутренняя нумерация потоков – каждый рабочий поток имеет уникальный номер в пределах всей параллельной программы Вся логика параллельной программы зависит от внутренней нумерации, ранги MPI знают только серверные потоки Вся логика параллельной программы зависит от внутренней нумерации, ранги MPI знают только серверные потоки В каждом процессе вводятся очереди сообщений. В каждом процессе вводятся очереди сообщений.
Задача: Реализовать систему программирования в смешанной модели Реализовать систему программирования в смешанной модели Серверный поток Серверный поток Пул рабочих потоков Пул рабочих потоков Глобальная нумерация рабочих потоков Глобальная нумерация рабочих потоков Протокол служебных сообщений Протокол служебных сообщений Поддержка отправки сообщений: методы send и recv Поддержка отправки сообщений: методы send и recv
Демонстрация Взять какую-нибудь задачу, в которой используются только send и recv Взять какую-нибудь задачу, в которой используются только send и recv Реализовать ее чисто в MPI и в смешанной модели Реализовать ее чисто в MPI и в смешанной модели Сравнить две реализации Сравнить две реализации
Это последний слайд Здесь нужно написать что-то типа «спасибо за внимание» или «пожалуйста, вопросы», или «удачи в параллельном мире», а, может быть, «приходите к нам еще», но я так и не определился и решил временно оставить так. Здесь нужно написать что-то типа «спасибо за внимание» или «пожалуйста, вопросы», или «удачи в параллельном мире», а, может быть, «приходите к нам еще», но я так и не определился и решил временно оставить так. И за полгода текст этого слайда не изменился И за полгода текст этого слайда не изменился