Лекция 4 Использование многопроцессорной вычислительной техники с распределенной памятью при решении задач локальных атмосферных процессов и переноса примеси.

Презентация:



Advertisements
Похожие презентации
Лекция 6 Множественное распараллеливание на Linux кластере с помощью библиотеки MPI 1. Компиляция и запуск программы на кластере. 2. SIMD модель параллельного.
Advertisements

Введение в параллельные вычисления. Технология программирования MPI (день второй) Антонов Александр Сергеевич, к.ф.-м.н., н.с. лаборатории Параллельных.
Параллельные аппаратные архитектуры и модели программирования Традиционная архитектура фон Неймана Расширение традиционной архитектуры Сопроцессоры Многоядерные.
Введение в параллельные вычисления. Технология программирования MPI (день четвертый) Антонов Александр Сергеевич, к.ф.-м.н., н.с. лаборатории Параллельных.
Вычислительный портал автор:Демидов А.В. науч.рук.:Афанасьев К.Е. КемГУ.
Интернет Университет Суперкомпьютерных технологий Лекция 1 Основные понятия Учебный курс Введение в параллельные алгоритмы Якобовский М.В., д.ф.-м.н. Институт.
Кафедра ЮНЕСКО по НИТ1 Параллельное программирование MPI – massage passing interface.
MPI за 90 минут Метод погружения Сергей Петрович Нечаев, Сибирский Суперкомпьютерный центр.
ПАРАЛЛЕЛЬНАЯ ФИЛЬТРАЦИЯ ИЗОБРАЖЕНИЙ Фурсов В.А., Попов С.Б. Самарский научный центр РАН, Самарский государственный аэрокосмический университет, Институт.
Параллельное программирование с использованием технологии MPI Аксёнов Сергей Владимирович к.т.н., доцент каф.ОСУ ТПУ Лекция 4 Томский политехнический университет.
Практические основы параллельного программирования. Посыпкин Михаил Анатольевич
Тестирование кластерных систем ТГУ и ИОА СО РАН с помощью пакета Linpack А.О. Есаулов, Н.В. Дмитриева Томский государственный университет, г. Томск.
Кафедра ЮНЕСКО по НИТ1 Параллельное программирование MPI – message passing interface Власенко Андрей Юрьевич.
Выполнила студентка II курса ГБОУ СПО Баймакский сельскохозяйственный техникум Вахитова Гульназ.
Кафедра ЮНЕСКО по НИТ1 Коллективные коммуникационные операции параллельное программирование.
Методы построения и программное обеспечение вычислительных кластеров Дмитрий Лайком гр. 8ВМ23.
Исследование эффективности параллельного алгоритма Монте-Карло моделирования внутренних свободномолекулярных течений Хохлов И.А. 4-й курс Московский физико-технический.
Решения компании «Т-Платформы» для высокопроизводительных вычислений: взаимовыгодное сотрудничество отечественной науки и бизнеса.
Супер-ЭВМ это достаточно гибкий и очень широкий термин. В общем понимании супер-ЭВМ это компьютер значительно мощнее всех имеющихся доступных на рынке.
Введение в параллельные вычисления. Технология программирования MPI (день седьмой) Антонов Александр Сергеевич, к.ф.-м.н., н.с. лаборатории Параллельных.
Транксрипт:

Лекция 4 Использование многопроцессорной вычислительной техники с распределенной памятью при решении задач локальных атмосферных процессов и переноса примеси

План лекции Назначение и архитектура ВВС Закон Амдаля Стандарты передачи сообщений. Введение в библиотеку MPI Работа с параллельными программами в ОС UNIX Способы построения параллельных программ Решение 3D уравнения диффузии на МВС с распределенной памятью Реализация ЛСДМ на МВС с распределенной памятью

С помощью высокопроизводительных вычислительных средств решают задачи следующих научных и научно- технических направлений: предсказание погоды, климата и глобальных изменений в атмосфере генетика человека гидрогазодинамика и теплоперенос прогноз катастрофических явлений в окружающей среде разведка нефти и газа исследование сверхпроводимости распознавание изображений защита информации

Суперкомпьютеры делятся: Векторно-конвейерные Массивно-параллельные компьютеры с распределенной памятью Параллельные компьютеры с общей памятью Кластеры

TOP 500 (21 редакция, июнь 2003) (1) NEC Earth Simulator (5120 Procs), Rpeak=40960 Gflops, Rmax=35860 Gflops (2) Hewlett-Packard (8192 Procs), Rpeak=20480 Gflops, Rmax=13880 Gflops (3) Linux Networkx (2304 Procs), Rpeak=11060 Gflops, Rmax=7634 Gflops … (95) MVS1000M (768 Procs) Rpeak=1024 Gflops, Rmax=735 Gflops … (357) Hewlett-Packard (192 Procs), Rpeak=576 Gflops, Rmax=345 Gflops (Sberbank RF)

Earth Simulator ES – параллельная векторная суперкомпьютерная система с распределенной памятью. ES состоит из 640 процессорных узлов. Каждый узел – система с разделяемой памятью, состоящая из 8 векторных арифметических процессоров, 16 Гб ОЗУ Пиковая производительность каждого арифметического процессора – 8Гфлопс. ES: 5120 процессоров и 10Тб памяти Процессорный узел ES

Вычислительный кластер ТГУ 9 двухпроцессорных узлов с локальной памятью Процессоры – Intel Pentium III, 650 MHz Сервер – 512 Mb RAM, 2x18 Gb HDD Вычислительные узлы – 256 Mb RAM Сеть – 100 Mбит Fast Ethernet ОС Unix FreeBSD 4.2 Кластерный пакет – LAM MPI для организации параллельных вычислений Пиковая производительность – 11.7 Gflops Производительность на тесте Linpack – 5.5 Gflops Вычислительный кластер ТГУ,

Вычислительный кластер ИОА 10 двухпроцессорных узлов с локальной памятью Процессоры – Intel Pentium III, 1 GHz Сервер – 1 Gb RAM, 3x18 Gb HDD Вычислительные узлы – 1 Gb RAM Сеть – Gigabit Ethernet ОС Linix RadHat 7.1 Кластерный пакет – MPICH Пиковая производительность – 20 Gflops Производительность на тесте Linpack – 11.5 Gflops Вычислительный кластер ИОА

Закон Амдаля Будет ли созданная параллельная программа работать быстрее, чем ее последовательный вариант? Соизмерим ли полученный выигрыш во времени, который дает параллельная программа, с затратами на программирование?

Закон Амдаля S p = t 1 /t p - ускорение параллельной программы; - доля операций, которые выполняются сугубо последовательно; p - число процессоров

Стандарты передачи сообщений. Введение в MPI Наиболее общим подходом при создании параллельных программ является применение библиотеки передачи сообщений, где процессы используют обращения к библиотеке MPI (Message Passing Interface), чтобы обмениваться сообщениями с другими процессами. MPI это стандарт передачи сообщений, который разрабатывался группой из 60 человек из 40 организаций США и Европы. MPI пригоден для широкого разнообразия платформ, начиная с массивно-параллельных систем (IBM SP2, Cray T3D, Intel Paragon) и заканчивая сетями рабочих станций (Sun4, Dec Alpha).

Стандарт MPI включает 129 функций Инициализации и закрытия параллельной части приложения Приема и передачи сообщений между отдельными процессами Осуществления коллективного взаимодействия процессов Работы с группами процессов и коммуникаторами Определения производных (составных) типов данных Создания виртуальных топологий для обеспечения более простого взаимодействия процессов

Основные понятия MPI Процесс – исполнение программы одним процессорным элементом, на котором загружен MPI. Процессы объединяются в группы с единой областью связи, внутри которой каждый процесс имеет свой уникальный номер в диапазоне от 0 до N-1, где N – количество процессов в группе. Для взаимодействия процессов в группе используется коммуникатор, который реализует передачу сообщений (обмен данными) между процессами и их синхронизацию.

Методология MPI Обычно MPI-программа для многопроцессорных вычислительных систем пишется на языке С или Фортран с использованием коммуникационных функций библиотеки MPI. Запуск на выполнение MPI-программы представляет собой одновременный запуск совокупности параллельных процессов, количество которых определяет пользователь при запуске. Параллельная программа начинается с инициализации MPI. При этом все активированные процессы объединяются в группу с коммуникатором, который имеет имя MPI_COMM_WORLD. Далее средствами MPI в программу передается число активированных процессов, каждому из них присваивается свой номер. Каждый процесс, как правило, отвечает за выполнение своей ветви параллельной программы

Компиляция и запуск MPI-программ Компиляция: mpicc – o myexecutable mysource.c mpif77 –o myexecutable mysource.f Запуск на счет: mpirun –np 3 myexecutable

MPI-программа Заголовочный файл (mpi.h или mpif.h) Вызов п/п MPI_INIT для инициализации MPI Вызов п/п MPI_COMM_SIZE, чтобы определить число (size) активированных процессов Вызов п/п MPI_COMM_RANK, чтобы определить номер (rank) каждого активированного процесса По номеру rank осуществляется создание ветвей параллельной программы Взаимодействие процессов производится путем передачи сообщений между отдельными процессами с помощью п/п MPI_SEND и MPI_RECV Вызов п/п MPI_FINALIZE для завершения параллельной части программы

MPI-программа «Hello World» Program hello include mpif.h integer rank, size, ierror, tag, status(MPI_STATUS_SIZE) character(12) message call MPI_INIT(ierror) call MPI_COMM_SIZE(MPI_COMM_WORLD,size,ierror) call MPI_COMM_RANK(MPI_COMM_WORLD,rank,ierror) tag=7 if(rank.eq.0) then message=Hello world do i=1,size-1 call MPI_SEND(message,12,MPI_CHARACTER,i,tag, MPI_COMM_WORLD,ierror) end do else call MPI_RECV(message,12,MPI_CHARACTER,0, tag,MPI_COMM_WORLD,status,ierror) end if print*, node,rank,:,message call MPI_FINALIZE(ierror) end node 1 : Hello world node 0 : Hello world node 2 : Hello world mpirun –np 3 hello.out

Способы построения параллельных программ Распараллеливание по данным – геометрическое решение Распараллеливание по процессам – коллективное решение

Геометрическое решение. Применение для сеточных уравнений. S c – источники выбросов и осаждение примеси R c – химические реакции

Геометрическое решение Явно-неявная разностная схема

Геометрическое решение MPI_SENDRECV – для обмена приграничными данными между соседними процессами MPI_BCAST, MPI_SCATTER – для распределения исходных данных между процессами MPI_GATHER – для «сборки» полученных результатов перед завершением программы

Геометрическое решение. Результаты На вычислительном кластере ТГУ (сетка 100х100х50) На вычислительном кластере ИОА расчет переноса четырех компонентов примеси (пыль, CO, NO2, SO2) в течение двух суток занимает не более трех часов

Геометрическое решение Неявная разностная схема Метод неполной факторизации Н.И.Булеева

Коллективное решение. Применение ЛДСМ N 10 4 m=N/p

Коллективное решение MPI_BCAST и MPI_SCATTER для передачи информации о исходных данных всем процессам MPI_REDUCE для суммирования значений концентрации в ячейках, рассчитанных на всех процессах

Датчик случайных чисел для параллельных вычислений - SPRNG (Scalable, Portable, Random Number Generators) – библиотека генераторов псевдослучайных чисел для высокопроизводительных параллельных вычислительных систем. SPRNG широко используется при применении параллельных методов Монте-Карло для решения математических задач. Структура реализации этих методов позволяет получить практически 100% эффективность параллельного вычислительного алгоритма.

Коллективное решение