Содержание
- 2. СИСТЕМЫ С РАСПРЕДЕЛЕННОЙ ПАМЯТЬЮ Особенности систем с распределенной памятью
- 3. Распределенные системы (1) Мультикомпьютеры Кластерные системы (Clusters) Массивно-параллельные процессоры (MPP)
- 4. Распределенные системы (2) Своя оперативная память Своя операционная система Различные вычислительные мощности Неограниченное масштабирование
- 5. Распределенные системы (3) Возможно использовать только процессы Высокая стоимость коммуникаций
- 6. СОЗДАНИЕ РАСПРЕДЕЛЕННЫХ ПРИЛОЖЕНИЙ Способы создания распределенных программ
- 7. Распределенное приложение Распределенное приложение (программа) - множество одновременно выполняемых взаимодействующих процессов, которые могут выполняться на одном
- 8. Стоимость коммуникаций Выбор оптимальной топологии Минимизация количества связей Минимизация количества пересылок Минимизация размера сообщений Унификация и
- 9. Выбор технологии Специальные языки Erlang, Go и т.п. Общая шина сообщений RabbitMq и т.п. Высокоуровневые библиотеки
- 10. Специализированные языки Инкапсулируют сложность коммуникаций Основное внимание на прикладной задаче Простая запись математических алгоритмов Встроенные средства
- 11. Общая шина сообщений Инкапсулирует сложность коммуникаций Основное внимание на прикладной задаче Простая и очевидная схема взаимодействия
- 12. Высокоуровневые библиотеки Инкапсулируют сложность коммуникаций Основное внимание на прикладной задаче Асинхронность чаще реализуется вручную Произвольная схема
- 13. Низкоуровневые функции Сложность осуществления коммуникаций Гибкость осуществления коммуникаций Вероятная зависимость от платформы Произвольная схема взаимодействия
- 14. Combo? При разработке крупных систем зачастую используются разные подходы
- 15. ОСНОВЫ ТЕХНОЛОГИИ MPI Распараллеливание вычислительных алгоритмов с помощью MPI
- 16. Почему рассматриваем MPI? Позволяет раскрыть некоторые особенности реализации более высокоуровневых решений, а также дает хорошее представление
- 17. MPI «The MPI standard includes point-to-point message-passing, collective communications, group and communicator concepts, process topologies, environmental
- 18. Концепция MPI Определяет API и протокол обмена сообщениями между процессами распределенного приложения Базовые понятия касаются преимущественно
- 19. Коммуникатор
- 20. Виртуальные топологии Есть возможность задавать виртуальную топологию связей между процессами, которая будет отражать логическую взаимосвязь процессов
- 21. Структура кода MPI-процесса #include void main(int argc, char *argv[]) { MPI_Init(&argc, &argv); MPI_Finalize(); }
- 22. Ранг и количество процессов #include void main(int argc, char *argv[]) { MPI_Init(&argc, &argv); int rank, size;
- 23. Передача и прием сообщений int MPI_Send( void* buffer, int count, MPI_Datatype type, int dest, int tag,
- 24. Корневой процесс #include void main(int argc, char *argv[]) { int rank, size; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank);
- 25. Редукция Передача данных от всех процессов одному процессу (обычно корневому процессу) int MPI_Reduce( void* sendBuffer, void*
- 26. Барьерная синхронизация Точка синхронизации, которую должны достигнуть все процессы, прежде чем продолжат свое выполнение int MPI_Barrier(MPI_Comm
- 27. Время выполнения double startTime = MPI_Wtime();; double stopTime = MPI_Wtime();; double elapsed = stopTime - startTime;
- 28. Пример вычислений void CalculatePi(int rank, int size, int n) { double pi; MPI_Bcast(&n, 1, MPI_INT, 0,
- 30. Скачать презентацию